1{ 2 "cells": [ 3 { 4 "cell_type": "code", 5 "execution_count": 1, 6 "metadata": {}, 7 "outputs": [], 8 "source": [ 9 "import spot\n", 10 "spot.setup()\n", 11 "from spot.jupyter import display_inline\n", 12 "def display2(*args):\n", 13 " display_inline(*args, per_row=2)" 14 ] 15 }, 16 { 17 "cell_type": "markdown", 18 "metadata": {}, 19 "source": [ 20 "# Definitions and examples for parity acceptance" 21 ] 22 }, 23 { 24 "cell_type": "markdown", 25 "metadata": {}, 26 "source": [ 27 "In Spot a **parity acceptance** is defined by a **kind**, a **style** and a **numsets**:\n", 28 "+ The **kind** can be either **max** or **min**.\n", 29 "+ The **style** can be either **odd** or **even**.\n", 30 "+ The **numsets** is the number of acceptance sets (a.k.a. colors) used by the parity acceptance.\n", 31 " \n", 32 "Here are some examples:" 33 ] 34 }, 35 { 36 "cell_type": "code", 37 "execution_count": 2, 38 "metadata": {}, 39 "outputs": [ 40 { 41 "name": "stdout", 42 "output_type": "stream", 43 "text": [ 44 "parity min odd 1 = Fin(0)\n", 45 "parity min odd 2 = Fin(0) & Inf(1)\n", 46 "parity min odd 3 = Fin(0) & (Inf(1) | Fin(2))\n", 47 "parity min odd 4 = Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))\n", 48 "parity min even 1 = Inf(0)\n", 49 "parity min even 2 = Inf(0) | Fin(1)\n", 50 "parity min even 3 = Inf(0) | (Fin(1) & Inf(2))\n", 51 "parity min even 4 = Inf(0) | (Fin(1) & (Inf(2) | Fin(3)))\n", 52 "parity max odd 1 = Fin(0)\n", 53 "parity max odd 2 = Inf(1) | Fin(0)\n", 54 "parity max odd 3 = Fin(2) & (Inf(1) | Fin(0))\n", 55 "parity max odd 4 = Inf(3) | (Fin(2) & (Inf(1) | Fin(0)))\n", 56 "parity max even 1 = Inf(0)\n", 57 "parity max even 2 = Fin(1) & Inf(0)\n", 58 "parity max even 3 = Inf(2) | (Fin(1) & Inf(0))\n", 59 "parity max even 4 = Fin(3) & (Inf(2) | (Fin(1) & Inf(0)))\n" 60 ] 61 } 62 ], 63 "source": [ 64 "for kind in ['min', 'max']:\n", 65 " for style in ['odd', 'even']:\n", 66 " for sets in range(1, 5):\n", 67 " name = 'parity {} {} {}'.format(kind, style, sets)\n", 68 " print('{:17} = {}'.format(name, spot.acc_code(name)))" 69 ] 70 }, 71 { 72 "cell_type": "markdown", 73 "metadata": {}, 74 "source": [ 75 "Of course the case of parity automata with a single color is a bit degenerate, as the same formula correspond to two parity conditions with different kinds. \n", 76 "\n", 77 "In addition the the above, an automaton is said to be **colored** if each of its edges (or states) has exactly one color. Automata that people usually call *parity automata* correspond in Spot to *colored* automata with *parity acceptance*. For this reason try to use the term *automata with parity acceptance* rather than *parity automata* for automata that are not *colored*." 78 ] 79 }, 80 { 81 "cell_type": "code", 82 "execution_count": 3, 83 "metadata": {}, 84 "outputs": [], 85 "source": [ 86 "# Generate a few random automata for the upcoming examples.\n", 87 "maxodd4, maxodd5, minodd4, minodd5, maxeven4 = spot.automata(\"\"\"\n", 88 "randaut -A 'parity max odd 4' -Q4 -e.4 2;\n", 89 "randaut -A 'parity max odd 5' -Q4 -e.4 2;\n", 90 "randaut -A 'parity min odd 4' -Q4 -e.4 2;\n", 91 "randaut -A 'parity min odd 5' -Q4 -e.4 2;\n", 92 "randaut -A 'parity max even 4' -Q4 -e.4 2|\"\"\")" 93 ] 94 }, 95 { 96 "cell_type": "markdown", 97 "metadata": {}, 98 "source": [ 99 "# Testing parity and colored\n", 100 "\n", 101 "`is_parity()` is a method of `spot.acc_cond` that returns three Boolean values: \n", 102 "1. whether the condition is a parity condition,\n", 103 "2. whether it has `max` kind,\n", 104 "3. whether it has `odd` style." 105 ] 106 }, 107 { 108 "cell_type": "code", 109 "execution_count": 4, 110 "metadata": {}, 111 "outputs": [ 112 { 113 "data": { 114 "text/plain": [ 115 "[True, True, True]" 116 ] 117 }, 118 "execution_count": 4, 119 "metadata": {}, 120 "output_type": "execute_result" 121 } 122 ], 123 "source": [ 124 "maxodd4.acc().is_parity()" 125 ] 126 }, 127 { 128 "cell_type": "code", 129 "execution_count": 5, 130 "metadata": {}, 131 "outputs": [ 132 { 133 "data": { 134 "text/plain": [ 135 "[True, True, False]" 136 ] 137 }, 138 "execution_count": 5, 139 "metadata": {}, 140 "output_type": "execute_result" 141 } 142 ], 143 "source": [ 144 "maxeven4.acc().is_parity()" 145 ] 146 }, 147 { 148 "cell_type": "code", 149 "execution_count": 6, 150 "metadata": {}, 151 "outputs": [ 152 { 153 "data": { 154 "text/plain": [ 155 "[True, False, True]" 156 ] 157 }, 158 "execution_count": 6, 159 "metadata": {}, 160 "output_type": "execute_result" 161 } 162 ], 163 "source": [ 164 "minodd5.acc().is_parity()" 165 ] 166 }, 167 { 168 "cell_type": "markdown", 169 "metadata": {}, 170 "source": [ 171 "By default, `is_parity()` will match only conditions that are exactly equal to what the HOA format defines for the relevant configuration. For instance, the formula for `min odd 4` should be exactly the following:" 172 ] 173 }, 174 { 175 "cell_type": "code", 176 "execution_count": 7, 177 "metadata": {}, 178 "outputs": [ 179 { 180 "name": "stdout", 181 "output_type": "stream", 182 "text": [ 183 "Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))\n" 184 ] 185 } 186 ], 187 "source": [ 188 "print(spot.acc_code(\"parity min odd 4\"))" 189 ] 190 }, 191 { 192 "cell_type": "markdown", 193 "metadata": {}, 194 "source": [ 195 "However there are many formulas that are equivalent to the above. For instance the following `testacc` acceptance condition is logically equivalent to `parity min odd 4`. Passing it through `is_parity()` will fail: the first Boolean returned is False, and the remaining one should be ignored." 196 ] 197 }, 198 { 199 "cell_type": "code", 200 "execution_count": 8, 201 "metadata": {}, 202 "outputs": [ 203 { 204 "name": "stdout", 205 "output_type": "stream", 206 "text": [ 207 "[False, False, True]\n" 208 ] 209 } 210 ], 211 "source": [ 212 "testacc = spot.acc_cond(\"(Fin(0) & Inf(1)) | (Fin(0) & Fin(2) & Inf(3))\")\n", 213 "print(testacc.is_parity())" 214 ] 215 }, 216 { 217 "cell_type": "markdown", 218 "metadata": {}, 219 "source": [ 220 "To test logical equivalence to a Parity condition, pass a `True` argument to `is_parity()`." 221 ] 222 }, 223 { 224 "cell_type": "code", 225 "execution_count": 9, 226 "metadata": {}, 227 "outputs": [ 228 { 229 "name": "stdout", 230 "output_type": "stream", 231 "text": [ 232 "[True, False, True]\n" 233 ] 234 } 235 ], 236 "source": [ 237 "print(testacc.is_parity(True))" 238 ] 239 }, 240 { 241 "cell_type": "markdown", 242 "metadata": {}, 243 "source": [ 244 "To test if an automaton is colored, use `is_colored`. Not this technically, this property is orthogonal to the fact the the automaton uses the acceptance conditions. It just states that each edge (or state) belongs to exactly one acceptance set." 245 ] 246 }, 247 { 248 "cell_type": "code", 249 "execution_count": 10, 250 "metadata": {}, 251 "outputs": [ 252 { 253 "data": { 254 "text/plain": [ 255 "False" 256 ] 257 }, 258 "execution_count": 10, 259 "metadata": {}, 260 "output_type": "execute_result" 261 } 262 ], 263 "source": [ 264 "spot.is_colored(minodd4)" 265 ] 266 }, 267 { 268 "cell_type": "code", 269 "execution_count": 11, 270 "metadata": {}, 271 "outputs": [ 272 { 273 "data": { 274 "text/plain": [ 275 "True" 276 ] 277 }, 278 "execution_count": 11, 279 "metadata": {}, 280 "output_type": "execute_result" 281 } 282 ], 283 "source": [ 284 "spot.is_colored(spot.colorize_parity(minodd4)) # See below for `colorize_parity()`." 285 ] 286 }, 287 { 288 "cell_type": "markdown", 289 "metadata": {}, 290 "source": [ 291 "# Functions for altering automata with parity acceptance\n", 292 "\n", 293 "- [`change_parity()`](#Change-parity) can be used to alter the [*style*](#Changing-the-style), or [*kind*](#Changing-the-kind) of a parity acceptance. For instance if you have an automaton with `parity min even` acceptance and want an automaton with `parity max odd`, this is the function to use.\n", 294 "- [`colorize_parity()`](#Colorize-parity) transforms an automaton with parity acceptance into a colored automaton with parity acceptance (a.k.a., parity automaton).\n", 295 "- [`cleanup_parity()`](#Cleanup-parity) remove from the acceptance condition colors that are unused in the automaton, while keeping it a parity acceptance.\n", 296 "- [`reduce_parity()`](#Reduce-parity) minimize the number of colors used in the automaton, producing the smallest parity acceptance condition possible for this automaton." 297 ] 298 }, 299 { 300 "cell_type": "markdown", 301 "metadata": {}, 302 "source": [ 303 "# Change parity\n", 304 "\n", 305 "This section describes the `change_parity()` method, that allows switching between different kinds and styles.\n", 306 "Its takes three arguments:\n", 307 "1. the automaton to modify\n", 308 "2. the desired kind (`spot.parity_kind_any`, `spot.parity_kind_same`, `spot.parity_kind_max`, `spot.parity_kind_min`)\n", 309 "3. the desired style (`spot.parity_style_any`, `spot.parity_style_same`, `spot.parity_style_odd`, `spot.parity_style_even`)" 310 ] 311 }, 312 { 313 "cell_type": "markdown", 314 "metadata": {}, 315 "source": [ 316 "## Changing the **style**\n", 317 "\n", 318 "Changing the style from `odd` to `even` or vice-versa can be done by adding a new color 0 and shifting all original colors by one, keeping the maximum or minimum color in case an edge has multiple colors.\n", 319 "\n", 320 "When the acceptance is a parity `max`, all the transitions that do not belong to any acceptance set will have the new color.\n", 321 "\n", 322 "### max odd 5 → max even 6" 323 ] 324 }, 325 { 326 "cell_type": "code", 327 "execution_count": 12, 328 "metadata": {}, 329 "outputs": [ 330 { 331 "data": { 332 "text/html": [ 333 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 334 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 335 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 336 "<!-- Generated by graphviz version 2.43.0 (0)\n", 337 " -->\n", 338 "<!-- Pages: 1 -->\n", 339 "<svg width=\"514pt\" height=\"190pt\"\n", 340 " viewBox=\"0.00 0.00 513.50 189.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 341 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 185.93)\">\n", 342 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.93 509.5,-185.93 509.5,4 -4,4\"/>\n", 343 "<text text-anchor=\"start\" x=\"107.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 344 "<text text-anchor=\"start\" x=\"130.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 345 "<text text-anchor=\"start\" x=\"146.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 346 "<text text-anchor=\"start\" x=\"192.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 347 "<text text-anchor=\"start\" x=\"208.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 348 "<text text-anchor=\"start\" x=\"250.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 349 "<text text-anchor=\"start\" x=\"266.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 350 "<text text-anchor=\"start\" x=\"312.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 351 "<text text-anchor=\"start\" x=\"328.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 352 "<text text-anchor=\"start\" x=\"366.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 353 "<text text-anchor=\"start\" x=\"382.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 354 "<text text-anchor=\"start\" x=\"197.25\" y=\"-153.73\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n", 355 "<!-- I -->\n", 356 "<!-- 0 -->\n", 357 "<g id=\"node2\" class=\"node\">\n", 358 "<title>0</title>\n", 359 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n", 360 "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 361 "</g>\n", 362 "<!-- I->0 -->\n", 363 "<g id=\"edge1\" class=\"edge\">\n", 364 "<title>I->0</title>\n", 365 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n", 366 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n", 367 "</g>\n", 368 "<!-- 2 -->\n", 369 "<g id=\"node3\" class=\"node\">\n", 370 "<title>2</title>\n", 371 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n", 372 "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 373 "</g>\n", 374 "<!-- 0->2 -->\n", 375 "<g id=\"edge2\" class=\"edge\">\n", 376 "<title>0->2</title>\n", 377 "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n", 378 "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n", 379 "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 380 "</g>\n", 381 "<!-- 3 -->\n", 382 "<g id=\"node4\" class=\"node\">\n", 383 "<title>3</title>\n", 384 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 385 "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 386 "</g>\n", 387 "<!-- 0->3 -->\n", 388 "<g id=\"edge3\" class=\"edge\">\n", 389 "<title>0->3</title>\n", 390 "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n", 391 "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n", 392 "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 393 "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 394 "</g>\n", 395 "<!-- 2->2 -->\n", 396 "<g id=\"edge7\" class=\"edge\">\n", 397 "<title>2->2</title>\n", 398 "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n", 399 "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n", 400 "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 401 "</g>\n", 402 "<!-- 1 -->\n", 403 "<g id=\"node5\" class=\"node\">\n", 404 "<title>1</title>\n", 405 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 406 "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 407 "</g>\n", 408 "<!-- 2->1 -->\n", 409 "<g id=\"edge8\" class=\"edge\">\n", 410 "<title>2->1</title>\n", 411 "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n", 412 "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n", 413 "<text text-anchor=\"start\" x=\"238\" y=\"-103.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 414 "<text text-anchor=\"start\" x=\"242.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 415 "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 416 "<text text-anchor=\"start\" x=\"274.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 417 "</g>\n", 418 "<!-- 3->2 -->\n", 419 "<g id=\"edge10\" class=\"edge\">\n", 420 "<title>3->2</title>\n", 421 "<path fill=\"none\" stroke=\"black\" d=\"M469.15,-71.93C462.86,-79.04 454.36,-87.16 445,-91.93 384.71,-122.65 362.41,-112.13 295,-117.93 269.76,-120.1 262.48,-124.47 238,-117.93 229.88,-115.77 221.7,-111.68 214.67,-107.43\"/>\n", 422 "<polygon fill=\"black\" stroke=\"black\" points=\"208.56,-103.54 216.15,-104.65 211.51,-105.42 214.46,-107.3 214.46,-107.3 214.46,-107.3 211.51,-105.42 212.76,-109.96 208.56,-103.54 208.56,-103.54\"/>\n", 423 "<text text-anchor=\"start\" x=\"313\" y=\"-134.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 424 "<text text-anchor=\"start\" x=\"333.5\" y=\"-119.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 425 "</g>\n", 426 "<!-- 3->3 -->\n", 427 "<g id=\"edge9\" class=\"edge\">\n", 428 "<title>3->3</title>\n", 429 "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n", 430 "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n", 431 "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 432 "<text text-anchor=\"start\" x=\"465\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 433 "<text text-anchor=\"start\" x=\"481\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 434 "</g>\n", 435 "<!-- 1->0 -->\n", 436 "<g id=\"edge5\" class=\"edge\">\n", 437 "<title>1->0</title>\n", 438 "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n", 439 "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n", 440 "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 441 "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 442 "</g>\n", 443 "<!-- 1->2 -->\n", 444 "<g id=\"edge4\" class=\"edge\">\n", 445 "<title>1->2</title>\n", 446 "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n", 447 "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n", 448 "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 449 "</g>\n", 450 "<!-- 1->3 -->\n", 451 "<g id=\"edge6\" class=\"edge\">\n", 452 "<title>1->3</title>\n", 453 "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n", 454 "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n", 455 "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 456 "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 457 "</g>\n", 458 "</g>\n", 459 "</svg>\n", 460 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 461 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 462 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 463 "<!-- Generated by graphviz version 2.43.0 (0)\n", 464 " -->\n", 465 "<!-- Pages: 1 -->\n", 466 "<svg width=\"514pt\" height=\"210pt\"\n", 467 " viewBox=\"0.00 0.00 513.50 209.89\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 468 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 205.89)\">\n", 469 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-205.89 509.5,-205.89 509.5,4 -4,4\"/>\n", 470 "<text text-anchor=\"start\" x=\"74.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 471 "<text text-anchor=\"start\" x=\"97.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 472 "<text text-anchor=\"start\" x=\"113.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 473 "<text text-anchor=\"start\" x=\"159.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 474 "<text text-anchor=\"start\" x=\"175.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 475 "<text text-anchor=\"start\" x=\"217.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 476 "<text text-anchor=\"start\" x=\"233.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 477 "<text text-anchor=\"start\" x=\"279.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 478 "<text text-anchor=\"start\" x=\"295.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 479 "<text text-anchor=\"start\" x=\"337.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 480 "<text text-anchor=\"start\" x=\"353.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 481 "<text text-anchor=\"start\" x=\"395.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 482 "<text text-anchor=\"start\" x=\"411.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n", 483 "<text text-anchor=\"start\" x=\"194.25\" y=\"-173.69\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 6]</text>\n", 484 "<!-- I -->\n", 485 "<!-- 0 -->\n", 486 "<g id=\"node2\" class=\"node\">\n", 487 "<title>0</title>\n", 488 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-23.89\" rx=\"18\" ry=\"18\"/>\n", 489 "<text text-anchor=\"middle\" x=\"56\" y=\"-20.19\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 490 "</g>\n", 491 "<!-- I->0 -->\n", 492 "<g id=\"edge1\" class=\"edge\">\n", 493 "<title>I->0</title>\n", 494 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.89C2.79,-23.89 17.15,-23.89 30.63,-23.89\"/>\n", 495 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.89 30.94,-27.04 34.44,-23.89 30.94,-23.89 30.94,-23.89 30.94,-23.89 34.44,-23.89 30.94,-20.74 37.94,-23.89 37.94,-23.89\"/>\n", 496 "</g>\n", 497 "<!-- 2 -->\n", 498 "<g id=\"node3\" class=\"node\">\n", 499 "<title>2</title>\n", 500 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-99.89\" rx=\"18\" ry=\"18\"/>\n", 501 "<text text-anchor=\"middle\" x=\"193.5\" y=\"-96.19\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 502 "</g>\n", 503 "<!-- 0->2 -->\n", 504 "<g id=\"edge2\" class=\"edge\">\n", 505 "<title>0->2</title>\n", 506 "<path fill=\"none\" stroke=\"black\" d=\"M72.02,-32.31C96.13,-45.83 143.57,-72.44 171.18,-87.93\"/>\n", 507 "<polygon fill=\"black\" stroke=\"black\" points=\"177.41,-91.43 169.77,-90.75 174.36,-89.71 171.31,-88 171.31,-88 171.31,-88 174.36,-89.71 172.85,-85.25 177.41,-91.43 177.41,-91.43\"/>\n", 508 "<text text-anchor=\"start\" x=\"92\" y=\"-93.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 509 "<text text-anchor=\"start\" x=\"112.5\" y=\"-78.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 510 "</g>\n", 511 "<!-- 3 -->\n", 512 "<g id=\"node4\" class=\"node\">\n", 513 "<title>3</title>\n", 514 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-56.89\" rx=\"18\" ry=\"18\"/>\n", 515 "<text text-anchor=\"middle\" x=\"481\" y=\"-53.19\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 516 "</g>\n", 517 "<!-- 0->3 -->\n", 518 "<g id=\"edge3\" class=\"edge\">\n", 519 "<title>0->3</title>\n", 520 "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-19.91C112.82,-11.24 212.46,7.7 295,-3.89 354.92,-12.3 422.66,-35.34 457.15,-48.1\"/>\n", 521 "<polygon fill=\"black\" stroke=\"black\" points=\"464,-50.65 456.34,-51.15 460.72,-49.43 457.44,-48.2 457.44,-48.2 457.44,-48.2 460.72,-49.43 458.54,-45.25 464,-50.65 464,-50.65\"/>\n", 522 "<text text-anchor=\"start\" x=\"238\" y=\"-22.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 523 "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 524 "</g>\n", 525 "<!-- 2->2 -->\n", 526 "<g id=\"edge7\" class=\"edge\">\n", 527 "<title>2->2</title>\n", 528 "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-113.93C177.35,-124.8 181.27,-135.89 193.5,-135.89 203.06,-135.89 207.54,-129.12 206.95,-120.98\"/>\n", 529 "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-113.93 209.95,-120 206.07,-117.33 206.89,-120.74 206.89,-120.74 206.89,-120.74 206.07,-117.33 203.83,-121.47 205.26,-113.93 205.26,-113.93\"/>\n", 530 "<text text-anchor=\"start\" x=\"169\" y=\"-154.69\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 531 "<text text-anchor=\"start\" x=\"185.5\" y=\"-139.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 532 "</g>\n", 533 "<!-- 1 -->\n", 534 "<g id=\"node5\" class=\"node\">\n", 535 "<title>1</title>\n", 536 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-56.89\" rx=\"18\" ry=\"18\"/>\n", 537 "<text text-anchor=\"middle\" x=\"341.5\" y=\"-53.19\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 538 "</g>\n", 539 "<!-- 2->1 -->\n", 540 "<g id=\"edge8\" class=\"edge\">\n", 541 "<title>2->1</title>\n", 542 "<path fill=\"none\" stroke=\"black\" d=\"M211.8,-100.28C232.3,-100.2 267.19,-98.31 295,-87.89 304.56,-84.31 314.06,-78.32 321.89,-72.56\"/>\n", 543 "<polygon fill=\"black\" stroke=\"black\" points=\"327.52,-68.24 323.88,-75 324.74,-70.37 321.97,-72.5 321.97,-72.5 321.97,-72.5 324.74,-70.37 320.05,-70 327.52,-68.24 327.52,-68.24\"/>\n", 544 "<text text-anchor=\"start\" x=\"238\" y=\"-117.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 545 "<text text-anchor=\"start\" x=\"258.5\" y=\"-102.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 546 "</g>\n", 547 "<!-- 3->2 -->\n", 548 "<g id=\"edge10\" class=\"edge\">\n", 549 "<title>3->2</title>\n", 550 "<path fill=\"none\" stroke=\"black\" d=\"M468.94,-70.51C462.6,-77.51 454.11,-85.65 445,-90.89 384.99,-125.4 363.59,-123.47 295,-132.89 269.9,-136.33 262.01,-140.96 238,-132.89 228.41,-129.66 219.25,-123.38 211.83,-117.16\"/>\n", 551 "<polygon fill=\"black\" stroke=\"black\" points=\"206.52,-112.47 213.85,-114.74 209.14,-114.79 211.76,-117.1 211.76,-117.1 211.76,-117.1 209.14,-114.79 209.68,-119.46 206.52,-112.47 206.52,-112.47\"/>\n", 552 "<text text-anchor=\"start\" x=\"313\" y=\"-148.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 553 "<text text-anchor=\"start\" x=\"333.5\" y=\"-133.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 554 "</g>\n", 555 "<!-- 3->3 -->\n", 556 "<g id=\"edge9\" class=\"edge\">\n", 557 "<title>3->3</title>\n", 558 "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-71.68C466.81,-82.3 470.38,-92.89 481,-92.89 489.13,-92.89 493.13,-86.68 493,-79.01\"/>\n", 559 "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-71.68 496.02,-78.03 492.31,-75.13 492.92,-78.57 492.92,-78.57 492.92,-78.57 492.31,-75.13 489.82,-79.12 491.71,-71.68 491.71,-71.68\"/>\n", 560 "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.69\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 561 "<text text-anchor=\"start\" x=\"473\" y=\"-96.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 562 "</g>\n", 563 "<!-- 1->0 -->\n", 564 "<g id=\"edge5\" class=\"edge\">\n", 565 "<title>1->0</title>\n", 566 "<path fill=\"none\" stroke=\"black\" d=\"M323.77,-52.23C315.22,-50 304.62,-47.49 295,-45.89 217.58,-33.02 124.64,-27.16 81.38,-24.97\"/>\n", 567 "<polygon fill=\"black\" stroke=\"black\" points=\"74.14,-24.62 81.28,-21.81 77.63,-24.79 81.13,-24.96 81.13,-24.96 81.13,-24.96 77.63,-24.79 80.97,-28.11 74.14,-24.62 74.14,-24.62\"/>\n", 568 "<text text-anchor=\"start\" x=\"167\" y=\"-53.69\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 569 "<text text-anchor=\"start\" x=\"185.5\" y=\"-38.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 570 "</g>\n", 571 "<!-- 1->2 -->\n", 572 "<g id=\"edge4\" class=\"edge\">\n", 573 "<title>1->2</title>\n", 574 "<path fill=\"none\" stroke=\"black\" d=\"M323.78,-53.39C302.86,-49.82 266.32,-46.28 238,-57.89 226.95,-62.41 217.13,-71.21 209.63,-79.59\"/>\n", 575 "<polygon fill=\"black\" stroke=\"black\" points=\"204.82,-85.26 206.94,-77.89 207.09,-82.59 209.35,-79.92 209.35,-79.92 209.35,-79.92 207.09,-82.59 211.75,-81.96 204.82,-85.26 204.82,-85.26\"/>\n", 576 "<text text-anchor=\"start\" x=\"238\" y=\"-76.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 577 "<text text-anchor=\"start\" x=\"258.5\" y=\"-61.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 578 "</g>\n", 579 "<!-- 1->3 -->\n", 580 "<g id=\"edge6\" class=\"edge\">\n", 581 "<title>1->3</title>\n", 582 "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-56.89C383.72,-56.89 427.72,-56.89 455.33,-56.89\"/>\n", 583 "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-56.89 455.65,-60.04 459.15,-56.89 455.65,-56.89 455.65,-56.89 455.65,-56.89 459.15,-56.89 455.65,-53.74 462.65,-56.89 462.65,-56.89\"/>\n", 584 "<text text-anchor=\"start\" x=\"388\" y=\"-75.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 585 "<text text-anchor=\"start\" x=\"408.5\" y=\"-60.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 586 "</g>\n", 587 "</g>\n", 588 "</svg>\n", 589 "</div>" 590 ], 591 "text/plain": [ 592 "<IPython.core.display.HTML object>" 593 ] 594 }, 595 "metadata": {}, 596 "output_type": "display_data" 597 } 598 ], 599 "source": [ 600 "display2(maxodd5, spot.change_parity(maxodd5, spot.parity_kind_any, spot.parity_style_even))" 601 ] 602 }, 603 { 604 "cell_type": "markdown", 605 "metadata": {}, 606 "source": [ 607 "### min odd 5 → min even 6\n" 608 ] 609 }, 610 { 611 "cell_type": "code", 612 "execution_count": 13, 613 "metadata": {}, 614 "outputs": [ 615 { 616 "data": { 617 "text/html": [ 618 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 619 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 620 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 621 "<!-- Generated by graphviz version 2.43.0 (0)\n", 622 " -->\n", 623 "<!-- Pages: 1 -->\n", 624 "<svg width=\"514pt\" height=\"190pt\"\n", 625 " viewBox=\"0.00 0.00 513.50 189.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 626 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 185.93)\">\n", 627 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.93 509.5,-185.93 509.5,4 -4,4\"/>\n", 628 "<text text-anchor=\"start\" x=\"107.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 629 "<text text-anchor=\"start\" x=\"130.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 630 "<text text-anchor=\"start\" x=\"146.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 631 "<text text-anchor=\"start\" x=\"192.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 632 "<text text-anchor=\"start\" x=\"208.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 633 "<text text-anchor=\"start\" x=\"250.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 634 "<text text-anchor=\"start\" x=\"266.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 635 "<text text-anchor=\"start\" x=\"312.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 636 "<text text-anchor=\"start\" x=\"328.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 637 "<text text-anchor=\"start\" x=\"366.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 638 "<text text-anchor=\"start\" x=\"382.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 639 "<text text-anchor=\"start\" x=\"198.75\" y=\"-153.73\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n", 640 "<!-- I -->\n", 641 "<!-- 0 -->\n", 642 "<g id=\"node2\" class=\"node\">\n", 643 "<title>0</title>\n", 644 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n", 645 "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 646 "</g>\n", 647 "<!-- I->0 -->\n", 648 "<g id=\"edge1\" class=\"edge\">\n", 649 "<title>I->0</title>\n", 650 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n", 651 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n", 652 "</g>\n", 653 "<!-- 2 -->\n", 654 "<g id=\"node3\" class=\"node\">\n", 655 "<title>2</title>\n", 656 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n", 657 "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 658 "</g>\n", 659 "<!-- 0->2 -->\n", 660 "<g id=\"edge2\" class=\"edge\">\n", 661 "<title>0->2</title>\n", 662 "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n", 663 "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n", 664 "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 665 "</g>\n", 666 "<!-- 3 -->\n", 667 "<g id=\"node4\" class=\"node\">\n", 668 "<title>3</title>\n", 669 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 670 "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 671 "</g>\n", 672 "<!-- 0->3 -->\n", 673 "<g id=\"edge3\" class=\"edge\">\n", 674 "<title>0->3</title>\n", 675 "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n", 676 "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n", 677 "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 678 "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 679 "</g>\n", 680 "<!-- 2->2 -->\n", 681 "<g id=\"edge7\" class=\"edge\">\n", 682 "<title>2->2</title>\n", 683 "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n", 684 "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n", 685 "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 686 "</g>\n", 687 "<!-- 1 -->\n", 688 "<g id=\"node5\" class=\"node\">\n", 689 "<title>1</title>\n", 690 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 691 "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 692 "</g>\n", 693 "<!-- 2->1 -->\n", 694 "<g id=\"edge8\" class=\"edge\">\n", 695 "<title>2->1</title>\n", 696 "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n", 697 "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n", 698 "<text text-anchor=\"start\" x=\"238\" y=\"-103.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 699 "<text text-anchor=\"start\" x=\"242.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 700 "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 701 "<text text-anchor=\"start\" x=\"274.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 702 "</g>\n", 703 "<!-- 3->2 -->\n", 704 "<g id=\"edge10\" class=\"edge\">\n", 705 "<title>3->2</title>\n", 706 "<path fill=\"none\" stroke=\"black\" d=\"M469.15,-71.93C462.86,-79.04 454.36,-87.16 445,-91.93 384.71,-122.65 362.41,-112.13 295,-117.93 269.76,-120.1 262.48,-124.47 238,-117.93 229.88,-115.77 221.7,-111.68 214.67,-107.43\"/>\n", 707 "<polygon fill=\"black\" stroke=\"black\" points=\"208.56,-103.54 216.15,-104.65 211.51,-105.42 214.46,-107.3 214.46,-107.3 214.46,-107.3 211.51,-105.42 212.76,-109.96 208.56,-103.54 208.56,-103.54\"/>\n", 708 "<text text-anchor=\"start\" x=\"313\" y=\"-134.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 709 "<text text-anchor=\"start\" x=\"333.5\" y=\"-119.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 710 "</g>\n", 711 "<!-- 3->3 -->\n", 712 "<g id=\"edge9\" class=\"edge\">\n", 713 "<title>3->3</title>\n", 714 "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n", 715 "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n", 716 "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 717 "<text text-anchor=\"start\" x=\"465\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 718 "<text text-anchor=\"start\" x=\"481\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 719 "</g>\n", 720 "<!-- 1->0 -->\n", 721 "<g id=\"edge5\" class=\"edge\">\n", 722 "<title>1->0</title>\n", 723 "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n", 724 "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n", 725 "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 726 "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 727 "</g>\n", 728 "<!-- 1->2 -->\n", 729 "<g id=\"edge4\" class=\"edge\">\n", 730 "<title>1->2</title>\n", 731 "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n", 732 "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n", 733 "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 734 "</g>\n", 735 "<!-- 1->3 -->\n", 736 "<g id=\"edge6\" class=\"edge\">\n", 737 "<title>1->3</title>\n", 738 "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n", 739 "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n", 740 "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 741 "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 742 "</g>\n", 743 "</g>\n", 744 "</svg>\n", 745 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 746 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 747 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 748 "<!-- Generated by graphviz version 2.43.0 (0)\n", 749 " -->\n", 750 "<!-- Pages: 1 -->\n", 751 "<svg width=\"514pt\" height=\"192pt\"\n", 752 " viewBox=\"0.00 0.00 513.50 191.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 753 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 187.93)\">\n", 754 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-187.93 509.5,-187.93 509.5,4 -4,4\"/>\n", 755 "<text text-anchor=\"start\" x=\"77.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 756 "<text text-anchor=\"start\" x=\"98.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 757 "<text text-anchor=\"start\" x=\"114.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 758 "<text text-anchor=\"start\" x=\"156.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 759 "<text text-anchor=\"start\" x=\"172.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 760 "<text text-anchor=\"start\" x=\"218.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 761 "<text text-anchor=\"start\" x=\"234.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 762 "<text text-anchor=\"start\" x=\"276.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 763 "<text text-anchor=\"start\" x=\"292.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 764 "<text text-anchor=\"start\" x=\"338.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 765 "<text text-anchor=\"start\" x=\"354.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 766 "<text text-anchor=\"start\" x=\"392.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 767 "<text text-anchor=\"start\" x=\"408.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n", 768 "<text text-anchor=\"start\" x=\"195.75\" y=\"-155.73\" font-family=\"Lato\" font-size=\"14.00\">[parity min even 6]</text>\n", 769 "<!-- I -->\n", 770 "<!-- 0 -->\n", 771 "<g id=\"node2\" class=\"node\">\n", 772 "<title>0</title>\n", 773 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n", 774 "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 775 "</g>\n", 776 "<!-- I->0 -->\n", 777 "<g id=\"edge1\" class=\"edge\">\n", 778 "<title>I->0</title>\n", 779 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n", 780 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n", 781 "</g>\n", 782 "<!-- 2 -->\n", 783 "<g id=\"node3\" class=\"node\">\n", 784 "<title>2</title>\n", 785 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n", 786 "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 787 "</g>\n", 788 "<!-- 0->2 -->\n", 789 "<g id=\"edge2\" class=\"edge\">\n", 790 "<title>0->2</title>\n", 791 "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n", 792 "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n", 793 "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 794 "</g>\n", 795 "<!-- 3 -->\n", 796 "<g id=\"node4\" class=\"node\">\n", 797 "<title>3</title>\n", 798 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 799 "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 800 "</g>\n", 801 "<!-- 0->3 -->\n", 802 "<g id=\"edge3\" class=\"edge\">\n", 803 "<title>0->3</title>\n", 804 "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n", 805 "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n", 806 "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 807 "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 808 "</g>\n", 809 "<!-- 2->2 -->\n", 810 "<g id=\"edge7\" class=\"edge\">\n", 811 "<title>2->2</title>\n", 812 "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n", 813 "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n", 814 "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 815 "</g>\n", 816 "<!-- 1 -->\n", 817 "<g id=\"node5\" class=\"node\">\n", 818 "<title>1</title>\n", 819 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 820 "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 821 "</g>\n", 822 "<!-- 2->1 -->\n", 823 "<g id=\"edge8\" class=\"edge\">\n", 824 "<title>2->1</title>\n", 825 "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n", 826 "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n", 827 "<text text-anchor=\"start\" x=\"238\" y=\"-104.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 828 "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 829 "</g>\n", 830 "<!-- 3->2 -->\n", 831 "<g id=\"edge10\" class=\"edge\">\n", 832 "<title>3->2</title>\n", 833 "<path fill=\"none\" stroke=\"black\" d=\"M469.12,-71.88C462.83,-78.98 454.33,-87.1 445,-91.93 384.77,-123.11 362.53,-113.68 295,-119.93 269.77,-122.27 262.36,-126.88 238,-119.93 229.62,-117.54 221.28,-113.03 214.18,-108.36\"/>\n", 834 "<polygon fill=\"black\" stroke=\"black\" points=\"208.04,-104.09 215.59,-105.5 210.92,-106.09 213.79,-108.09 213.79,-108.09 213.79,-108.09 210.92,-106.09 211.99,-110.68 208.04,-104.09 208.04,-104.09\"/>\n", 835 "<text text-anchor=\"start\" x=\"313\" y=\"-136.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 836 "<text text-anchor=\"start\" x=\"333.5\" y=\"-121.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 837 "</g>\n", 838 "<!-- 3->3 -->\n", 839 "<g id=\"edge9\" class=\"edge\">\n", 840 "<title>3->3</title>\n", 841 "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n", 842 "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n", 843 "<text text-anchor=\"start\" x=\"456.5\" y=\"-112.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 844 "<text text-anchor=\"start\" x=\"473\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 845 "</g>\n", 846 "<!-- 1->0 -->\n", 847 "<g id=\"edge5\" class=\"edge\">\n", 848 "<title>1->0</title>\n", 849 "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n", 850 "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n", 851 "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 852 "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 853 "</g>\n", 854 "<!-- 1->2 -->\n", 855 "<g id=\"edge4\" class=\"edge\">\n", 856 "<title>1->2</title>\n", 857 "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n", 858 "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n", 859 "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 860 "</g>\n", 861 "<!-- 1->3 -->\n", 862 "<g id=\"edge6\" class=\"edge\">\n", 863 "<title>1->3</title>\n", 864 "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n", 865 "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n", 866 "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 867 "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 868 "</g>\n", 869 "</g>\n", 870 "</svg>\n", 871 "</div>" 872 ], 873 "text/plain": [ 874 "<IPython.core.display.HTML object>" 875 ] 876 }, 877 "metadata": {}, 878 "output_type": "display_data" 879 } 880 ], 881 "source": [ 882 "display2(minodd5, spot.change_parity(minodd5, spot.parity_kind_any, spot.parity_style_even))" 883 ] 884 }, 885 { 886 "cell_type": "markdown", 887 "metadata": {}, 888 "source": [ 889 "## Changing the **kind**\n", 890 "\n", 891 "Generaly to go from `parity max` to `parity min`, it suffices to reverse the order of vertices.\n", 892 "\n", 893 "### max odd 5 → min odd 5:" 894 ] 895 }, 896 { 897 "cell_type": "code", 898 "execution_count": 14, 899 "metadata": {}, 900 "outputs": [ 901 { 902 "data": { 903 "text/html": [ 904 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 905 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 906 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 907 "<!-- Generated by graphviz version 2.43.0 (0)\n", 908 " -->\n", 909 "<!-- Pages: 1 -->\n", 910 "<svg width=\"514pt\" height=\"190pt\"\n", 911 " viewBox=\"0.00 0.00 513.50 189.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 912 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 185.93)\">\n", 913 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.93 509.5,-185.93 509.5,4 -4,4\"/>\n", 914 "<text text-anchor=\"start\" x=\"107.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 915 "<text text-anchor=\"start\" x=\"130.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 916 "<text text-anchor=\"start\" x=\"146.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 917 "<text text-anchor=\"start\" x=\"192.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 918 "<text text-anchor=\"start\" x=\"208.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 919 "<text text-anchor=\"start\" x=\"250.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 920 "<text text-anchor=\"start\" x=\"266.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 921 "<text text-anchor=\"start\" x=\"312.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 922 "<text text-anchor=\"start\" x=\"328.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 923 "<text text-anchor=\"start\" x=\"366.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 924 "<text text-anchor=\"start\" x=\"382.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 925 "<text text-anchor=\"start\" x=\"197.25\" y=\"-153.73\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n", 926 "<!-- I -->\n", 927 "<!-- 0 -->\n", 928 "<g id=\"node2\" class=\"node\">\n", 929 "<title>0</title>\n", 930 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n", 931 "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 932 "</g>\n", 933 "<!-- I->0 -->\n", 934 "<g id=\"edge1\" class=\"edge\">\n", 935 "<title>I->0</title>\n", 936 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n", 937 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n", 938 "</g>\n", 939 "<!-- 2 -->\n", 940 "<g id=\"node3\" class=\"node\">\n", 941 "<title>2</title>\n", 942 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n", 943 "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 944 "</g>\n", 945 "<!-- 0->2 -->\n", 946 "<g id=\"edge2\" class=\"edge\">\n", 947 "<title>0->2</title>\n", 948 "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n", 949 "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n", 950 "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 951 "</g>\n", 952 "<!-- 3 -->\n", 953 "<g id=\"node4\" class=\"node\">\n", 954 "<title>3</title>\n", 955 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 956 "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 957 "</g>\n", 958 "<!-- 0->3 -->\n", 959 "<g id=\"edge3\" class=\"edge\">\n", 960 "<title>0->3</title>\n", 961 "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n", 962 "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n", 963 "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 964 "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 965 "</g>\n", 966 "<!-- 2->2 -->\n", 967 "<g id=\"edge7\" class=\"edge\">\n", 968 "<title>2->2</title>\n", 969 "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n", 970 "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n", 971 "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 972 "</g>\n", 973 "<!-- 1 -->\n", 974 "<g id=\"node5\" class=\"node\">\n", 975 "<title>1</title>\n", 976 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 977 "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 978 "</g>\n", 979 "<!-- 2->1 -->\n", 980 "<g id=\"edge8\" class=\"edge\">\n", 981 "<title>2->1</title>\n", 982 "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n", 983 "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n", 984 "<text text-anchor=\"start\" x=\"238\" y=\"-103.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 985 "<text text-anchor=\"start\" x=\"242.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 986 "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 987 "<text text-anchor=\"start\" x=\"274.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 988 "</g>\n", 989 "<!-- 3->2 -->\n", 990 "<g id=\"edge10\" class=\"edge\">\n", 991 "<title>3->2</title>\n", 992 "<path fill=\"none\" stroke=\"black\" d=\"M469.15,-71.93C462.86,-79.04 454.36,-87.16 445,-91.93 384.71,-122.65 362.41,-112.13 295,-117.93 269.76,-120.1 262.48,-124.47 238,-117.93 229.88,-115.77 221.7,-111.68 214.67,-107.43\"/>\n", 993 "<polygon fill=\"black\" stroke=\"black\" points=\"208.56,-103.54 216.15,-104.65 211.51,-105.42 214.46,-107.3 214.46,-107.3 214.46,-107.3 211.51,-105.42 212.76,-109.96 208.56,-103.54 208.56,-103.54\"/>\n", 994 "<text text-anchor=\"start\" x=\"313\" y=\"-134.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 995 "<text text-anchor=\"start\" x=\"333.5\" y=\"-119.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 996 "</g>\n", 997 "<!-- 3->3 -->\n", 998 "<g id=\"edge9\" class=\"edge\">\n", 999 "<title>3->3</title>\n", 1000 "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n", 1001 "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n", 1002 "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 1003 "<text text-anchor=\"start\" x=\"465\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1004 "<text text-anchor=\"start\" x=\"481\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 1005 "</g>\n", 1006 "<!-- 1->0 -->\n", 1007 "<g id=\"edge5\" class=\"edge\">\n", 1008 "<title>1->0</title>\n", 1009 "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n", 1010 "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n", 1011 "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 1012 "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1013 "</g>\n", 1014 "<!-- 1->2 -->\n", 1015 "<g id=\"edge4\" class=\"edge\">\n", 1016 "<title>1->2</title>\n", 1017 "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n", 1018 "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n", 1019 "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1020 "</g>\n", 1021 "<!-- 1->3 -->\n", 1022 "<g id=\"edge6\" class=\"edge\">\n", 1023 "<title>1->3</title>\n", 1024 "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n", 1025 "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n", 1026 "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1027 "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 1028 "</g>\n", 1029 "</g>\n", 1030 "</svg>\n", 1031 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1032 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1033 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1034 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1035 " -->\n", 1036 "<!-- Pages: 1 -->\n", 1037 "<svg width=\"514pt\" height=\"192pt\"\n", 1038 " viewBox=\"0.00 0.00 513.50 191.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1039 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 187.93)\">\n", 1040 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-187.93 509.5,-187.93 509.5,4 -4,4\"/>\n", 1041 "<text text-anchor=\"start\" x=\"107.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 1042 "<text text-anchor=\"start\" x=\"130.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1043 "<text text-anchor=\"start\" x=\"146.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1044 "<text text-anchor=\"start\" x=\"192.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1045 "<text text-anchor=\"start\" x=\"208.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1046 "<text text-anchor=\"start\" x=\"250.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1047 "<text text-anchor=\"start\" x=\"266.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1048 "<text text-anchor=\"start\" x=\"312.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1049 "<text text-anchor=\"start\" x=\"328.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 1050 "<text text-anchor=\"start\" x=\"366.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 1051 "<text text-anchor=\"start\" x=\"382.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 1052 "<text text-anchor=\"start\" x=\"198.75\" y=\"-155.73\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n", 1053 "<!-- I -->\n", 1054 "<!-- 0 -->\n", 1055 "<g id=\"node2\" class=\"node\">\n", 1056 "<title>0</title>\n", 1057 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n", 1058 "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1059 "</g>\n", 1060 "<!-- I->0 -->\n", 1061 "<g id=\"edge1\" class=\"edge\">\n", 1062 "<title>I->0</title>\n", 1063 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n", 1064 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n", 1065 "</g>\n", 1066 "<!-- 2 -->\n", 1067 "<g id=\"node3\" class=\"node\">\n", 1068 "<title>2</title>\n", 1069 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n", 1070 "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1071 "</g>\n", 1072 "<!-- 0->2 -->\n", 1073 "<g id=\"edge2\" class=\"edge\">\n", 1074 "<title>0->2</title>\n", 1075 "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n", 1076 "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n", 1077 "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1078 "</g>\n", 1079 "<!-- 3 -->\n", 1080 "<g id=\"node4\" class=\"node\">\n", 1081 "<title>3</title>\n", 1082 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 1083 "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 1084 "</g>\n", 1085 "<!-- 0->3 -->\n", 1086 "<g id=\"edge3\" class=\"edge\">\n", 1087 "<title>0->3</title>\n", 1088 "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n", 1089 "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n", 1090 "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1091 "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1092 "</g>\n", 1093 "<!-- 2->2 -->\n", 1094 "<g id=\"edge7\" class=\"edge\">\n", 1095 "<title>2->2</title>\n", 1096 "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n", 1097 "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n", 1098 "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 1099 "</g>\n", 1100 "<!-- 1 -->\n", 1101 "<g id=\"node5\" class=\"node\">\n", 1102 "<title>1</title>\n", 1103 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 1104 "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1105 "</g>\n", 1106 "<!-- 2->1 -->\n", 1107 "<g id=\"edge8\" class=\"edge\">\n", 1108 "<title>2->1</title>\n", 1109 "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n", 1110 "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n", 1111 "<text text-anchor=\"start\" x=\"238\" y=\"-104.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1112 "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1113 "</g>\n", 1114 "<!-- 3->2 -->\n", 1115 "<g id=\"edge10\" class=\"edge\">\n", 1116 "<title>3->2</title>\n", 1117 "<path fill=\"none\" stroke=\"black\" d=\"M469.12,-71.88C462.83,-78.98 454.33,-87.1 445,-91.93 384.77,-123.11 362.53,-113.68 295,-119.93 269.77,-122.27 262.36,-126.88 238,-119.93 229.62,-117.54 221.28,-113.03 214.18,-108.36\"/>\n", 1118 "<polygon fill=\"black\" stroke=\"black\" points=\"208.04,-104.09 215.59,-105.5 210.92,-106.09 213.79,-108.09 213.79,-108.09 213.79,-108.09 210.92,-106.09 211.99,-110.68 208.04,-104.09 208.04,-104.09\"/>\n", 1119 "<text text-anchor=\"start\" x=\"313\" y=\"-136.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1120 "<text text-anchor=\"start\" x=\"333.5\" y=\"-121.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1121 "</g>\n", 1122 "<!-- 3->3 -->\n", 1123 "<g id=\"edge9\" class=\"edge\">\n", 1124 "<title>3->3</title>\n", 1125 "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n", 1126 "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n", 1127 "<text text-anchor=\"start\" x=\"456.5\" y=\"-112.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 1128 "<text text-anchor=\"start\" x=\"473\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1129 "</g>\n", 1130 "<!-- 1->0 -->\n", 1131 "<g id=\"edge5\" class=\"edge\">\n", 1132 "<title>1->0</title>\n", 1133 "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n", 1134 "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n", 1135 "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 1136 "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1137 "</g>\n", 1138 "<!-- 1->2 -->\n", 1139 "<g id=\"edge4\" class=\"edge\">\n", 1140 "<title>1->2</title>\n", 1141 "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n", 1142 "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n", 1143 "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1144 "</g>\n", 1145 "<!-- 1->3 -->\n", 1146 "<g id=\"edge6\" class=\"edge\">\n", 1147 "<title>1->3</title>\n", 1148 "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n", 1149 "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n", 1150 "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1151 "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1152 "</g>\n", 1153 "</g>\n", 1154 "</svg>\n", 1155 "</div>" 1156 ], 1157 "text/plain": [ 1158 "<IPython.core.display.HTML object>" 1159 ] 1160 }, 1161 "metadata": {}, 1162 "output_type": "display_data" 1163 } 1164 ], 1165 "source": [ 1166 "display2(maxodd5, spot.change_parity(maxodd5, spot.parity_kind_min, spot.parity_style_any))" 1167 ] 1168 }, 1169 { 1170 "cell_type": "markdown", 1171 "metadata": {}, 1172 "source": [ 1173 "### max odd 4 → min even 4\n", 1174 "\n", 1175 "When the number of colors is even, the style is changed too." 1176 ] 1177 }, 1178 { 1179 "cell_type": "code", 1180 "execution_count": 15, 1181 "metadata": {}, 1182 "outputs": [ 1183 { 1184 "data": { 1185 "text/html": [ 1186 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1187 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1188 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1189 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1190 " -->\n", 1191 "<!-- Pages: 1 -->\n", 1192 "<svg width=\"490pt\" height=\"169pt\"\n", 1193 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1194 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 1195 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 1196 "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 1197 "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1198 "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1199 "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1200 "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1201 "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1202 "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 1203 "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1204 "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 1205 "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n", 1206 "<!-- I -->\n", 1207 "<!-- 0 -->\n", 1208 "<g id=\"node2\" class=\"node\">\n", 1209 "<title>0</title>\n", 1210 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 1211 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1212 "</g>\n", 1213 "<!-- I->0 -->\n", 1214 "<g id=\"edge1\" class=\"edge\">\n", 1215 "<title>I->0</title>\n", 1216 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 1217 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 1218 "</g>\n", 1219 "<!-- 2 -->\n", 1220 "<g id=\"node3\" class=\"node\">\n", 1221 "<title>2</title>\n", 1222 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 1223 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1224 "</g>\n", 1225 "<!-- 0->2 -->\n", 1226 "<g id=\"edge2\" class=\"edge\">\n", 1227 "<title>0->2</title>\n", 1228 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 1229 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 1230 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1231 "</g>\n", 1232 "<!-- 3 -->\n", 1233 "<g id=\"node4\" class=\"node\">\n", 1234 "<title>3</title>\n", 1235 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 1236 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 1237 "</g>\n", 1238 "<!-- 0->3 -->\n", 1239 "<g id=\"edge3\" class=\"edge\">\n", 1240 "<title>0->3</title>\n", 1241 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 1242 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 1243 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1244 "</g>\n", 1245 "<!-- 1 -->\n", 1246 "<g id=\"node5\" class=\"node\">\n", 1247 "<title>1</title>\n", 1248 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 1249 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1250 "</g>\n", 1251 "<!-- 2->1 -->\n", 1252 "<g id=\"edge6\" class=\"edge\">\n", 1253 "<title>2->1</title>\n", 1254 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 1255 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 1256 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1257 "</g>\n", 1258 "<!-- 3->0 -->\n", 1259 "<g id=\"edge8\" class=\"edge\">\n", 1260 "<title>3->0</title>\n", 1261 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 1262 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 1263 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 1264 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1265 "</g>\n", 1266 "<!-- 3->2 -->\n", 1267 "<g id=\"edge7\" class=\"edge\">\n", 1268 "<title>3->2</title>\n", 1269 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 1270 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 1271 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1272 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1273 "</g>\n", 1274 "<!-- 3->3 -->\n", 1275 "<g id=\"edge9\" class=\"edge\">\n", 1276 "<title>3->3</title>\n", 1277 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 1278 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 1279 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1280 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1281 "</g>\n", 1282 "<!-- 1->0 -->\n", 1283 "<g id=\"edge4\" class=\"edge\">\n", 1284 "<title>1->0</title>\n", 1285 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 1286 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 1287 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1288 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1289 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1290 "</g>\n", 1291 "<!-- 1->2 -->\n", 1292 "<g id=\"edge5\" class=\"edge\">\n", 1293 "<title>1->2</title>\n", 1294 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 1295 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 1296 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1297 "</g>\n", 1298 "</g>\n", 1299 "</svg>\n", 1300 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1301 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1302 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1303 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1304 " -->\n", 1305 "<!-- Pages: 1 -->\n", 1306 "<svg width=\"490pt\" height=\"172pt\"\n", 1307 " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1308 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n", 1309 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n", 1310 "<text text-anchor=\"start\" x=\"129.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 1311 "<text text-anchor=\"start\" x=\"150.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1312 "<text text-anchor=\"start\" x=\"166.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1313 "<text text-anchor=\"start\" x=\"208.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1314 "<text text-anchor=\"start\" x=\"224.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1315 "<text text-anchor=\"start\" x=\"270.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1316 "<text text-anchor=\"start\" x=\"286.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 1317 "<text text-anchor=\"start\" x=\"324.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1318 "<text text-anchor=\"start\" x=\"340.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 1319 "<text text-anchor=\"start\" x=\"184\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min even 4]</text>\n", 1320 "<!-- I -->\n", 1321 "<!-- 0 -->\n", 1322 "<g id=\"node2\" class=\"node\">\n", 1323 "<title>0</title>\n", 1324 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n", 1325 "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1326 "</g>\n", 1327 "<!-- I->0 -->\n", 1328 "<g id=\"edge1\" class=\"edge\">\n", 1329 "<title>I->0</title>\n", 1330 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n", 1331 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n", 1332 "</g>\n", 1333 "<!-- 2 -->\n", 1334 "<g id=\"node3\" class=\"node\">\n", 1335 "<title>2</title>\n", 1336 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", 1337 "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1338 "</g>\n", 1339 "<!-- 0->2 -->\n", 1340 "<g id=\"edge2\" class=\"edge\">\n", 1341 "<title>0->2</title>\n", 1342 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n", 1343 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n", 1344 "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1345 "</g>\n", 1346 "<!-- 3 -->\n", 1347 "<g id=\"node4\" class=\"node\">\n", 1348 "<title>3</title>\n", 1349 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n", 1350 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 1351 "</g>\n", 1352 "<!-- 0->3 -->\n", 1353 "<g id=\"edge3\" class=\"edge\">\n", 1354 "<title>0->3</title>\n", 1355 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n", 1356 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n", 1357 "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1358 "</g>\n", 1359 "<!-- 1 -->\n", 1360 "<g id=\"node5\" class=\"node\">\n", 1361 "<title>1</title>\n", 1362 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n", 1363 "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1364 "</g>\n", 1365 "<!-- 2->1 -->\n", 1366 "<g id=\"edge6\" class=\"edge\">\n", 1367 "<title>2->1</title>\n", 1368 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n", 1369 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n", 1370 "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1371 "</g>\n", 1372 "<!-- 3->0 -->\n", 1373 "<g id=\"edge8\" class=\"edge\">\n", 1374 "<title>3->0</title>\n", 1375 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n", 1376 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n", 1377 "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 1378 "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1379 "</g>\n", 1380 "<!-- 3->2 -->\n", 1381 "<g id=\"edge7\" class=\"edge\">\n", 1382 "<title>3->2</title>\n", 1383 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n", 1384 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n", 1385 "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1386 "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1387 "</g>\n", 1388 "<!-- 3->3 -->\n", 1389 "<g id=\"edge9\" class=\"edge\">\n", 1390 "<title>3->3</title>\n", 1391 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n", 1392 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n", 1393 "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1394 "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1395 "</g>\n", 1396 "<!-- 1->0 -->\n", 1397 "<g id=\"edge4\" class=\"edge\">\n", 1398 "<title>1->0</title>\n", 1399 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n", 1400 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n", 1401 "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1402 "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1403 "</g>\n", 1404 "<!-- 1->2 -->\n", 1405 "<g id=\"edge5\" class=\"edge\">\n", 1406 "<title>1->2</title>\n", 1407 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n", 1408 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n", 1409 "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1410 "</g>\n", 1411 "</g>\n", 1412 "</svg>\n", 1413 "</div>" 1414 ], 1415 "text/plain": [ 1416 "<IPython.core.display.HTML object>" 1417 ] 1418 }, 1419 "metadata": {}, 1420 "output_type": "display_data" 1421 } 1422 ], 1423 "source": [ 1424 "display2(maxodd4, spot.change_parity(maxodd4, spot.parity_kind_min, spot.parity_style_any))" 1425 ] 1426 }, 1427 { 1428 "cell_type": "markdown", 1429 "metadata": {}, 1430 "source": [ 1431 "### max odd 4 → min odd 5\n", 1432 "\n", 1433 "In this case, to keep the same **style**, a new color would be introduced." 1434 ] 1435 }, 1436 { 1437 "cell_type": "code", 1438 "execution_count": 16, 1439 "metadata": {}, 1440 "outputs": [ 1441 { 1442 "data": { 1443 "text/html": [ 1444 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1445 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1446 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1447 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1448 " -->\n", 1449 "<!-- Pages: 1 -->\n", 1450 "<svg width=\"490pt\" height=\"169pt\"\n", 1451 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1452 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 1453 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 1454 "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 1455 "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1456 "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1457 "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1458 "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1459 "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1460 "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 1461 "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1462 "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 1463 "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n", 1464 "<!-- I -->\n", 1465 "<!-- 0 -->\n", 1466 "<g id=\"node2\" class=\"node\">\n", 1467 "<title>0</title>\n", 1468 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 1469 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1470 "</g>\n", 1471 "<!-- I->0 -->\n", 1472 "<g id=\"edge1\" class=\"edge\">\n", 1473 "<title>I->0</title>\n", 1474 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 1475 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 1476 "</g>\n", 1477 "<!-- 2 -->\n", 1478 "<g id=\"node3\" class=\"node\">\n", 1479 "<title>2</title>\n", 1480 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 1481 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1482 "</g>\n", 1483 "<!-- 0->2 -->\n", 1484 "<g id=\"edge2\" class=\"edge\">\n", 1485 "<title>0->2</title>\n", 1486 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 1487 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 1488 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1489 "</g>\n", 1490 "<!-- 3 -->\n", 1491 "<g id=\"node4\" class=\"node\">\n", 1492 "<title>3</title>\n", 1493 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 1494 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 1495 "</g>\n", 1496 "<!-- 0->3 -->\n", 1497 "<g id=\"edge3\" class=\"edge\">\n", 1498 "<title>0->3</title>\n", 1499 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 1500 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 1501 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1502 "</g>\n", 1503 "<!-- 1 -->\n", 1504 "<g id=\"node5\" class=\"node\">\n", 1505 "<title>1</title>\n", 1506 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 1507 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1508 "</g>\n", 1509 "<!-- 2->1 -->\n", 1510 "<g id=\"edge6\" class=\"edge\">\n", 1511 "<title>2->1</title>\n", 1512 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 1513 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 1514 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1515 "</g>\n", 1516 "<!-- 3->0 -->\n", 1517 "<g id=\"edge8\" class=\"edge\">\n", 1518 "<title>3->0</title>\n", 1519 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 1520 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 1521 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 1522 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1523 "</g>\n", 1524 "<!-- 3->2 -->\n", 1525 "<g id=\"edge7\" class=\"edge\">\n", 1526 "<title>3->2</title>\n", 1527 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 1528 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 1529 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1530 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1531 "</g>\n", 1532 "<!-- 3->3 -->\n", 1533 "<g id=\"edge9\" class=\"edge\">\n", 1534 "<title>3->3</title>\n", 1535 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 1536 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 1537 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1538 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1539 "</g>\n", 1540 "<!-- 1->0 -->\n", 1541 "<g id=\"edge4\" class=\"edge\">\n", 1542 "<title>1->0</title>\n", 1543 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 1544 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 1545 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1546 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1547 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1548 "</g>\n", 1549 "<!-- 1->2 -->\n", 1550 "<g id=\"edge5\" class=\"edge\">\n", 1551 "<title>1->2</title>\n", 1552 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 1553 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 1554 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1555 "</g>\n", 1556 "</g>\n", 1557 "</svg>\n", 1558 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1559 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1560 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1561 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1562 " -->\n", 1563 "<!-- Pages: 1 -->\n", 1564 "<svg width=\"490pt\" height=\"172pt\"\n", 1565 " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1566 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n", 1567 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n", 1568 "<text text-anchor=\"start\" x=\"95.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 1569 "<text text-anchor=\"start\" x=\"118.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1570 "<text text-anchor=\"start\" x=\"134.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1571 "<text text-anchor=\"start\" x=\"180.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1572 "<text text-anchor=\"start\" x=\"196.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1573 "<text text-anchor=\"start\" x=\"238.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1574 "<text text-anchor=\"start\" x=\"254.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1575 "<text text-anchor=\"start\" x=\"300.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1576 "<text text-anchor=\"start\" x=\"316.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 1577 "<text text-anchor=\"start\" x=\"354.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 1578 "<text text-anchor=\"start\" x=\"370.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 1579 "<text text-anchor=\"start\" x=\"187\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n", 1580 "<!-- I -->\n", 1581 "<!-- 0 -->\n", 1582 "<g id=\"node2\" class=\"node\">\n", 1583 "<title>0</title>\n", 1584 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n", 1585 "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1586 "</g>\n", 1587 "<!-- I->0 -->\n", 1588 "<g id=\"edge1\" class=\"edge\">\n", 1589 "<title>I->0</title>\n", 1590 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n", 1591 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n", 1592 "</g>\n", 1593 "<!-- 2 -->\n", 1594 "<g id=\"node3\" class=\"node\">\n", 1595 "<title>2</title>\n", 1596 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", 1597 "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1598 "</g>\n", 1599 "<!-- 0->2 -->\n", 1600 "<g id=\"edge2\" class=\"edge\">\n", 1601 "<title>0->2</title>\n", 1602 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n", 1603 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n", 1604 "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1605 "</g>\n", 1606 "<!-- 3 -->\n", 1607 "<g id=\"node4\" class=\"node\">\n", 1608 "<title>3</title>\n", 1609 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n", 1610 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 1611 "</g>\n", 1612 "<!-- 0->3 -->\n", 1613 "<g id=\"edge3\" class=\"edge\">\n", 1614 "<title>0->3</title>\n", 1615 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n", 1616 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n", 1617 "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1618 "</g>\n", 1619 "<!-- 1 -->\n", 1620 "<g id=\"node5\" class=\"node\">\n", 1621 "<title>1</title>\n", 1622 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n", 1623 "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1624 "</g>\n", 1625 "<!-- 2->1 -->\n", 1626 "<g id=\"edge6\" class=\"edge\">\n", 1627 "<title>2->1</title>\n", 1628 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n", 1629 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n", 1630 "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1631 "</g>\n", 1632 "<!-- 3->0 -->\n", 1633 "<g id=\"edge8\" class=\"edge\">\n", 1634 "<title>3->0</title>\n", 1635 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n", 1636 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n", 1637 "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 1638 "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1639 "</g>\n", 1640 "<!-- 3->2 -->\n", 1641 "<g id=\"edge7\" class=\"edge\">\n", 1642 "<title>3->2</title>\n", 1643 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n", 1644 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n", 1645 "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1646 "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1647 "</g>\n", 1648 "<!-- 3->3 -->\n", 1649 "<g id=\"edge9\" class=\"edge\">\n", 1650 "<title>3->3</title>\n", 1651 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n", 1652 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n", 1653 "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1654 "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1655 "</g>\n", 1656 "<!-- 1->0 -->\n", 1657 "<g id=\"edge4\" class=\"edge\">\n", 1658 "<title>1->0</title>\n", 1659 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n", 1660 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n", 1661 "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1662 "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1663 "</g>\n", 1664 "<!-- 1->2 -->\n", 1665 "<g id=\"edge5\" class=\"edge\">\n", 1666 "<title>1->2</title>\n", 1667 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n", 1668 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n", 1669 "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1670 "</g>\n", 1671 "</g>\n", 1672 "</svg>\n", 1673 "</div>" 1674 ], 1675 "text/plain": [ 1676 "<IPython.core.display.HTML object>" 1677 ] 1678 }, 1679 "metadata": {}, 1680 "output_type": "display_data" 1681 } 1682 ], 1683 "source": [ 1684 "display2(maxodd4, spot.change_parity(maxodd4, spot.parity_kind_min, spot.parity_style_same))" 1685 ] 1686 }, 1687 { 1688 "cell_type": "markdown", 1689 "metadata": {}, 1690 "source": [ 1691 "# Colorize parity\n", 1692 "\n", 1693 "People working with parity automata usually expect all states (or edges) to have exactly one color. This constraint, which comes in addition to the use of a parity acceptance, is what the HOA format calls \"colored\".\n", 1694 "\n", 1695 "A *parity automaton* is a *colored* automaton with *parity acceptance*.\n", 1696 "\n", 1697 "Coloring an automaton can be done with the `colorize_parity()` function. This function is not very smart: it will not attempt to simplify the acceptance before colorizing it.\n", 1698 "\n", 1699 "## Parity max\n", 1700 "Transitions with multiple colors are purified by keeping only the set with the greatest index.\n", 1701 "<br>\n", 1702 "If there are uncolored transitions, they get assigned to color 0, and all original colors are shifted by one, toggling the style. If the style must be preserved (second argument set to True), we can shift all colors once more.\n", 1703 "\n", 1704 "#### Colorize parity max odd 4" 1705 ] 1706 }, 1707 { 1708 "cell_type": "code", 1709 "execution_count": 17, 1710 "metadata": {}, 1711 "outputs": [ 1712 { 1713 "data": { 1714 "text/html": [ 1715 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1716 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1717 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1718 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1719 " -->\n", 1720 "<!-- Pages: 1 -->\n", 1721 "<svg width=\"490pt\" height=\"169pt\"\n", 1722 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1723 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 1724 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 1725 "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 1726 "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1727 "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1728 "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1729 "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1730 "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1731 "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 1732 "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1733 "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 1734 "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n", 1735 "<!-- I -->\n", 1736 "<!-- 0 -->\n", 1737 "<g id=\"node2\" class=\"node\">\n", 1738 "<title>0</title>\n", 1739 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 1740 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1741 "</g>\n", 1742 "<!-- I->0 -->\n", 1743 "<g id=\"edge1\" class=\"edge\">\n", 1744 "<title>I->0</title>\n", 1745 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 1746 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 1747 "</g>\n", 1748 "<!-- 2 -->\n", 1749 "<g id=\"node3\" class=\"node\">\n", 1750 "<title>2</title>\n", 1751 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 1752 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1753 "</g>\n", 1754 "<!-- 0->2 -->\n", 1755 "<g id=\"edge2\" class=\"edge\">\n", 1756 "<title>0->2</title>\n", 1757 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 1758 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 1759 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1760 "</g>\n", 1761 "<!-- 3 -->\n", 1762 "<g id=\"node4\" class=\"node\">\n", 1763 "<title>3</title>\n", 1764 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 1765 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 1766 "</g>\n", 1767 "<!-- 0->3 -->\n", 1768 "<g id=\"edge3\" class=\"edge\">\n", 1769 "<title>0->3</title>\n", 1770 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 1771 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 1772 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1773 "</g>\n", 1774 "<!-- 1 -->\n", 1775 "<g id=\"node5\" class=\"node\">\n", 1776 "<title>1</title>\n", 1777 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 1778 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1779 "</g>\n", 1780 "<!-- 2->1 -->\n", 1781 "<g id=\"edge6\" class=\"edge\">\n", 1782 "<title>2->1</title>\n", 1783 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 1784 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 1785 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1786 "</g>\n", 1787 "<!-- 3->0 -->\n", 1788 "<g id=\"edge8\" class=\"edge\">\n", 1789 "<title>3->0</title>\n", 1790 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 1791 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 1792 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 1793 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1794 "</g>\n", 1795 "<!-- 3->2 -->\n", 1796 "<g id=\"edge7\" class=\"edge\">\n", 1797 "<title>3->2</title>\n", 1798 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 1799 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 1800 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1801 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1802 "</g>\n", 1803 "<!-- 3->3 -->\n", 1804 "<g id=\"edge9\" class=\"edge\">\n", 1805 "<title>3->3</title>\n", 1806 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 1807 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 1808 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1809 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1810 "</g>\n", 1811 "<!-- 1->0 -->\n", 1812 "<g id=\"edge4\" class=\"edge\">\n", 1813 "<title>1->0</title>\n", 1814 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 1815 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 1816 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1817 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1818 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1819 "</g>\n", 1820 "<!-- 1->2 -->\n", 1821 "<g id=\"edge5\" class=\"edge\">\n", 1822 "<title>1->2</title>\n", 1823 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 1824 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 1825 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1826 "</g>\n", 1827 "</g>\n", 1828 "</svg>\n", 1829 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1830 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1831 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1832 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1833 " -->\n", 1834 "<!-- Pages: 1 -->\n", 1835 "<svg width=\"490pt\" height=\"183pt\"\n", 1836 " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1837 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n", 1838 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n", 1839 "<text text-anchor=\"start\" x=\"96.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 1840 "<text text-anchor=\"start\" x=\"117.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 1841 "<text text-anchor=\"start\" x=\"133.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1842 "<text text-anchor=\"start\" x=\"175.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1843 "<text text-anchor=\"start\" x=\"191.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1844 "<text text-anchor=\"start\" x=\"237.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1845 "<text text-anchor=\"start\" x=\"253.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1846 "<text text-anchor=\"start\" x=\"295.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1847 "<text text-anchor=\"start\" x=\"311.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 1848 "<text text-anchor=\"start\" x=\"353.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1849 "<text text-anchor=\"start\" x=\"369.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 1850 "<text text-anchor=\"start\" x=\"182.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 5]</text>\n", 1851 "<!-- I -->\n", 1852 "<!-- 0 -->\n", 1853 "<g id=\"node2\" class=\"node\">\n", 1854 "<title>0</title>\n", 1855 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 1856 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1857 "</g>\n", 1858 "<!-- I->0 -->\n", 1859 "<g id=\"edge1\" class=\"edge\">\n", 1860 "<title>I->0</title>\n", 1861 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 1862 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 1863 "</g>\n", 1864 "<!-- 2 -->\n", 1865 "<g id=\"node3\" class=\"node\">\n", 1866 "<title>2</title>\n", 1867 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", 1868 "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1869 "</g>\n", 1870 "<!-- 0->2 -->\n", 1871 "<g id=\"edge2\" class=\"edge\">\n", 1872 "<title>0->2</title>\n", 1873 "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n", 1874 "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n", 1875 "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1876 "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1877 "</g>\n", 1878 "<!-- 3 -->\n", 1879 "<g id=\"node4\" class=\"node\">\n", 1880 "<title>3</title>\n", 1881 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 1882 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 1883 "</g>\n", 1884 "<!-- 0->3 -->\n", 1885 "<g id=\"edge3\" class=\"edge\">\n", 1886 "<title>0->3</title>\n", 1887 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 1888 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 1889 "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1890 "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1891 "</g>\n", 1892 "<!-- 1 -->\n", 1893 "<g id=\"node5\" class=\"node\">\n", 1894 "<title>1</title>\n", 1895 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 1896 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1897 "</g>\n", 1898 "<!-- 2->1 -->\n", 1899 "<g id=\"edge6\" class=\"edge\">\n", 1900 "<title>2->1</title>\n", 1901 "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n", 1902 "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n", 1903 "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1904 "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1905 "</g>\n", 1906 "<!-- 3->0 -->\n", 1907 "<g id=\"edge8\" class=\"edge\">\n", 1908 "<title>3->0</title>\n", 1909 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 1910 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 1911 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 1912 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1913 "</g>\n", 1914 "<!-- 3->2 -->\n", 1915 "<g id=\"edge7\" class=\"edge\">\n", 1916 "<title>3->2</title>\n", 1917 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n", 1918 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n", 1919 "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1920 "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 1921 "</g>\n", 1922 "<!-- 3->3 -->\n", 1923 "<g id=\"edge9\" class=\"edge\">\n", 1924 "<title>3->3</title>\n", 1925 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 1926 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 1927 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1928 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1929 "</g>\n", 1930 "<!-- 1->0 -->\n", 1931 "<g id=\"edge4\" class=\"edge\">\n", 1932 "<title>1->0</title>\n", 1933 "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 1934 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 1935 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 1936 "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1937 "</g>\n", 1938 "<!-- 1->2 -->\n", 1939 "<g id=\"edge5\" class=\"edge\">\n", 1940 "<title>1->2</title>\n", 1941 "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n", 1942 "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n", 1943 "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 1944 "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1945 "</g>\n", 1946 "</g>\n", 1947 "</svg>\n", 1948 "</div>" 1949 ], 1950 "text/plain": [ 1951 "<IPython.core.display.HTML object>" 1952 ] 1953 }, 1954 "metadata": {}, 1955 "output_type": "display_data" 1956 }, 1957 { 1958 "data": { 1959 "text/html": [ 1960 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1961 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1962 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1963 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1964 " -->\n", 1965 "<!-- Pages: 1 -->\n", 1966 "<svg width=\"490pt\" height=\"169pt\"\n", 1967 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1968 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 1969 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 1970 "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 1971 "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 1972 "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 1973 "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 1974 "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 1975 "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1976 "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 1977 "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1978 "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 1979 "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n", 1980 "<!-- I -->\n", 1981 "<!-- 0 -->\n", 1982 "<g id=\"node2\" class=\"node\">\n", 1983 "<title>0</title>\n", 1984 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 1985 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1986 "</g>\n", 1987 "<!-- I->0 -->\n", 1988 "<g id=\"edge1\" class=\"edge\">\n", 1989 "<title>I->0</title>\n", 1990 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 1991 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 1992 "</g>\n", 1993 "<!-- 2 -->\n", 1994 "<g id=\"node3\" class=\"node\">\n", 1995 "<title>2</title>\n", 1996 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 1997 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1998 "</g>\n", 1999 "<!-- 0->2 -->\n", 2000 "<g id=\"edge2\" class=\"edge\">\n", 2001 "<title>0->2</title>\n", 2002 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 2003 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 2004 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2005 "</g>\n", 2006 "<!-- 3 -->\n", 2007 "<g id=\"node4\" class=\"node\">\n", 2008 "<title>3</title>\n", 2009 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 2010 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 2011 "</g>\n", 2012 "<!-- 0->3 -->\n", 2013 "<g id=\"edge3\" class=\"edge\">\n", 2014 "<title>0->3</title>\n", 2015 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 2016 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 2017 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2018 "</g>\n", 2019 "<!-- 1 -->\n", 2020 "<g id=\"node5\" class=\"node\">\n", 2021 "<title>1</title>\n", 2022 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 2023 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 2024 "</g>\n", 2025 "<!-- 2->1 -->\n", 2026 "<g id=\"edge6\" class=\"edge\">\n", 2027 "<title>2->1</title>\n", 2028 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 2029 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 2030 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2031 "</g>\n", 2032 "<!-- 3->0 -->\n", 2033 "<g id=\"edge8\" class=\"edge\">\n", 2034 "<title>3->0</title>\n", 2035 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 2036 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 2037 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 2038 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2039 "</g>\n", 2040 "<!-- 3->2 -->\n", 2041 "<g id=\"edge7\" class=\"edge\">\n", 2042 "<title>3->2</title>\n", 2043 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 2044 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 2045 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2046 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2047 "</g>\n", 2048 "<!-- 3->3 -->\n", 2049 "<g id=\"edge9\" class=\"edge\">\n", 2050 "<title>3->3</title>\n", 2051 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 2052 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 2053 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2054 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2055 "</g>\n", 2056 "<!-- 1->0 -->\n", 2057 "<g id=\"edge4\" class=\"edge\">\n", 2058 "<title>1->0</title>\n", 2059 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 2060 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 2061 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2062 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2063 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2064 "</g>\n", 2065 "<!-- 1->2 -->\n", 2066 "<g id=\"edge5\" class=\"edge\">\n", 2067 "<title>1->2</title>\n", 2068 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 2069 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 2070 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2071 "</g>\n", 2072 "</g>\n", 2073 "</svg>\n", 2074 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2075 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2076 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2077 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2078 " -->\n", 2079 "<!-- Pages: 1 -->\n", 2080 "<svg width=\"490pt\" height=\"183pt\"\n", 2081 " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2082 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n", 2083 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n", 2084 "<text text-anchor=\"start\" x=\"66\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 2085 "<text text-anchor=\"start\" x=\"87\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 2086 "<text text-anchor=\"start\" x=\"103\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2087 "<text text-anchor=\"start\" x=\"145\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2088 "<text text-anchor=\"start\" x=\"161\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2089 "<text text-anchor=\"start\" x=\"207\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2090 "<text text-anchor=\"start\" x=\"223\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2091 "<text text-anchor=\"start\" x=\"265\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2092 "<text text-anchor=\"start\" x=\"281\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2093 "<text text-anchor=\"start\" x=\"327\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2094 "<text text-anchor=\"start\" x=\"343\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 2095 "<text text-anchor=\"start\" x=\"381\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2096 "<text text-anchor=\"start\" x=\"397\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n", 2097 "<text text-anchor=\"start\" x=\"185.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 6]</text>\n", 2098 "<!-- I -->\n", 2099 "<!-- 0 -->\n", 2100 "<g id=\"node2\" class=\"node\">\n", 2101 "<title>0</title>\n", 2102 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 2103 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 2104 "</g>\n", 2105 "<!-- I->0 -->\n", 2106 "<g id=\"edge1\" class=\"edge\">\n", 2107 "<title>I->0</title>\n", 2108 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 2109 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 2110 "</g>\n", 2111 "<!-- 2 -->\n", 2112 "<g id=\"node3\" class=\"node\">\n", 2113 "<title>2</title>\n", 2114 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", 2115 "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 2116 "</g>\n", 2117 "<!-- 0->2 -->\n", 2118 "<g id=\"edge2\" class=\"edge\">\n", 2119 "<title>0->2</title>\n", 2120 "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n", 2121 "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n", 2122 "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2123 "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2124 "</g>\n", 2125 "<!-- 3 -->\n", 2126 "<g id=\"node4\" class=\"node\">\n", 2127 "<title>3</title>\n", 2128 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 2129 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 2130 "</g>\n", 2131 "<!-- 0->3 -->\n", 2132 "<g id=\"edge3\" class=\"edge\">\n", 2133 "<title>0->3</title>\n", 2134 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 2135 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 2136 "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2137 "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2138 "</g>\n", 2139 "<!-- 1 -->\n", 2140 "<g id=\"node5\" class=\"node\">\n", 2141 "<title>1</title>\n", 2142 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 2143 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 2144 "</g>\n", 2145 "<!-- 2->1 -->\n", 2146 "<g id=\"edge6\" class=\"edge\">\n", 2147 "<title>2->1</title>\n", 2148 "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n", 2149 "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n", 2150 "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2151 "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2152 "</g>\n", 2153 "<!-- 3->0 -->\n", 2154 "<g id=\"edge8\" class=\"edge\">\n", 2155 "<title>3->0</title>\n", 2156 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 2157 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 2158 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 2159 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2160 "</g>\n", 2161 "<!-- 3->2 -->\n", 2162 "<g id=\"edge7\" class=\"edge\">\n", 2163 "<title>3->2</title>\n", 2164 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n", 2165 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n", 2166 "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2167 "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 2168 "</g>\n", 2169 "<!-- 3->3 -->\n", 2170 "<g id=\"edge9\" class=\"edge\">\n", 2171 "<title>3->3</title>\n", 2172 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 2173 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 2174 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2175 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2176 "</g>\n", 2177 "<!-- 1->0 -->\n", 2178 "<g id=\"edge4\" class=\"edge\">\n", 2179 "<title>1->0</title>\n", 2180 "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 2181 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 2182 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2183 "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2184 "</g>\n", 2185 "<!-- 1->2 -->\n", 2186 "<g id=\"edge5\" class=\"edge\">\n", 2187 "<title>1->2</title>\n", 2188 "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n", 2189 "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n", 2190 "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2191 "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2192 "</g>\n", 2193 "</g>\n", 2194 "</svg>\n", 2195 "</div>" 2196 ], 2197 "text/plain": [ 2198 "<IPython.core.display.HTML object>" 2199 ] 2200 }, 2201 "metadata": {}, 2202 "output_type": "display_data" 2203 } 2204 ], 2205 "source": [ 2206 "display2(maxodd4, spot.colorize_parity(maxodd4, False))\n", 2207 "display2(maxodd4, spot.colorize_parity(maxodd4, True))" 2208 ] 2209 }, 2210 { 2211 "cell_type": "markdown", 2212 "metadata": {}, 2213 "source": [ 2214 "#### Colorize parity max even 4" 2215 ] 2216 }, 2217 { 2218 "cell_type": "code", 2219 "execution_count": 18, 2220 "metadata": {}, 2221 "outputs": [ 2222 { 2223 "data": { 2224 "text/html": [ 2225 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2226 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2227 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2228 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2229 " -->\n", 2230 "<!-- Pages: 1 -->\n", 2231 "<svg width=\"490pt\" height=\"169pt\"\n", 2232 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2233 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 2234 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 2235 "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 2236 "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2237 "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2238 "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2239 "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2240 "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2241 "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 2242 "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2243 "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 2244 "<text text-anchor=\"start\" x=\"182.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 4]</text>\n", 2245 "<!-- I -->\n", 2246 "<!-- 0 -->\n", 2247 "<g id=\"node2\" class=\"node\">\n", 2248 "<title>0</title>\n", 2249 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 2250 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 2251 "</g>\n", 2252 "<!-- I->0 -->\n", 2253 "<g id=\"edge1\" class=\"edge\">\n", 2254 "<title>I->0</title>\n", 2255 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 2256 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 2257 "</g>\n", 2258 "<!-- 2 -->\n", 2259 "<g id=\"node3\" class=\"node\">\n", 2260 "<title>2</title>\n", 2261 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 2262 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 2263 "</g>\n", 2264 "<!-- 0->2 -->\n", 2265 "<g id=\"edge2\" class=\"edge\">\n", 2266 "<title>0->2</title>\n", 2267 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 2268 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 2269 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2270 "</g>\n", 2271 "<!-- 3 -->\n", 2272 "<g id=\"node4\" class=\"node\">\n", 2273 "<title>3</title>\n", 2274 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 2275 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 2276 "</g>\n", 2277 "<!-- 0->3 -->\n", 2278 "<g id=\"edge3\" class=\"edge\">\n", 2279 "<title>0->3</title>\n", 2280 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 2281 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 2282 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2283 "</g>\n", 2284 "<!-- 1 -->\n", 2285 "<g id=\"node5\" class=\"node\">\n", 2286 "<title>1</title>\n", 2287 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 2288 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 2289 "</g>\n", 2290 "<!-- 2->1 -->\n", 2291 "<g id=\"edge6\" class=\"edge\">\n", 2292 "<title>2->1</title>\n", 2293 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 2294 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 2295 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2296 "</g>\n", 2297 "<!-- 3->0 -->\n", 2298 "<g id=\"edge8\" class=\"edge\">\n", 2299 "<title>3->0</title>\n", 2300 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 2301 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 2302 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 2303 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2304 "</g>\n", 2305 "<!-- 3->2 -->\n", 2306 "<g id=\"edge7\" class=\"edge\">\n", 2307 "<title>3->2</title>\n", 2308 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 2309 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 2310 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2311 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2312 "</g>\n", 2313 "<!-- 3->3 -->\n", 2314 "<g id=\"edge9\" class=\"edge\">\n", 2315 "<title>3->3</title>\n", 2316 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 2317 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 2318 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2319 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2320 "</g>\n", 2321 "<!-- 1->0 -->\n", 2322 "<g id=\"edge4\" class=\"edge\">\n", 2323 "<title>1->0</title>\n", 2324 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 2325 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 2326 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2327 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2328 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2329 "</g>\n", 2330 "<!-- 1->2 -->\n", 2331 "<g id=\"edge5\" class=\"edge\">\n", 2332 "<title>1->2</title>\n", 2333 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 2334 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 2335 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2336 "</g>\n", 2337 "</g>\n", 2338 "</svg>\n", 2339 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2340 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2341 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2342 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2343 " -->\n", 2344 "<!-- Pages: 1 -->\n", 2345 "<svg width=\"490pt\" height=\"183pt\"\n", 2346 " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2347 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n", 2348 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n", 2349 "<text text-anchor=\"start\" x=\"95.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 2350 "<text text-anchor=\"start\" x=\"118.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2351 "<text text-anchor=\"start\" x=\"134.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2352 "<text text-anchor=\"start\" x=\"180.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2353 "<text text-anchor=\"start\" x=\"196.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2354 "<text text-anchor=\"start\" x=\"238.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2355 "<text text-anchor=\"start\" x=\"254.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2356 "<text text-anchor=\"start\" x=\"300.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2357 "<text text-anchor=\"start\" x=\"316.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 2358 "<text text-anchor=\"start\" x=\"354.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2359 "<text text-anchor=\"start\" x=\"370.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 2360 "<text text-anchor=\"start\" x=\"185.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n", 2361 "<!-- I -->\n", 2362 "<!-- 0 -->\n", 2363 "<g id=\"node2\" class=\"node\">\n", 2364 "<title>0</title>\n", 2365 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 2366 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 2367 "</g>\n", 2368 "<!-- I->0 -->\n", 2369 "<g id=\"edge1\" class=\"edge\">\n", 2370 "<title>I->0</title>\n", 2371 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 2372 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 2373 "</g>\n", 2374 "<!-- 2 -->\n", 2375 "<g id=\"node3\" class=\"node\">\n", 2376 "<title>2</title>\n", 2377 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", 2378 "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 2379 "</g>\n", 2380 "<!-- 0->2 -->\n", 2381 "<g id=\"edge2\" class=\"edge\">\n", 2382 "<title>0->2</title>\n", 2383 "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n", 2384 "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n", 2385 "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2386 "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2387 "</g>\n", 2388 "<!-- 3 -->\n", 2389 "<g id=\"node4\" class=\"node\">\n", 2390 "<title>3</title>\n", 2391 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 2392 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 2393 "</g>\n", 2394 "<!-- 0->3 -->\n", 2395 "<g id=\"edge3\" class=\"edge\">\n", 2396 "<title>0->3</title>\n", 2397 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 2398 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 2399 "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2400 "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2401 "</g>\n", 2402 "<!-- 1 -->\n", 2403 "<g id=\"node5\" class=\"node\">\n", 2404 "<title>1</title>\n", 2405 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 2406 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 2407 "</g>\n", 2408 "<!-- 2->1 -->\n", 2409 "<g id=\"edge6\" class=\"edge\">\n", 2410 "<title>2->1</title>\n", 2411 "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n", 2412 "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n", 2413 "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2414 "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2415 "</g>\n", 2416 "<!-- 3->0 -->\n", 2417 "<g id=\"edge8\" class=\"edge\">\n", 2418 "<title>3->0</title>\n", 2419 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 2420 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 2421 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 2422 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2423 "</g>\n", 2424 "<!-- 3->2 -->\n", 2425 "<g id=\"edge7\" class=\"edge\">\n", 2426 "<title>3->2</title>\n", 2427 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n", 2428 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n", 2429 "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2430 "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2431 "</g>\n", 2432 "<!-- 3->3 -->\n", 2433 "<g id=\"edge9\" class=\"edge\">\n", 2434 "<title>3->3</title>\n", 2435 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 2436 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 2437 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2438 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2439 "</g>\n", 2440 "<!-- 1->0 -->\n", 2441 "<g id=\"edge4\" class=\"edge\">\n", 2442 "<title>1->0</title>\n", 2443 "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 2444 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 2445 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2446 "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2447 "</g>\n", 2448 "<!-- 1->2 -->\n", 2449 "<g id=\"edge5\" class=\"edge\">\n", 2450 "<title>1->2</title>\n", 2451 "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n", 2452 "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n", 2453 "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2454 "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2455 "</g>\n", 2456 "</g>\n", 2457 "</svg>\n", 2458 "</div>" 2459 ], 2460 "text/plain": [ 2461 "<IPython.core.display.HTML object>" 2462 ] 2463 }, 2464 "metadata": {}, 2465 "output_type": "display_data" 2466 }, 2467 { 2468 "data": { 2469 "text/html": [ 2470 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2471 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2472 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2473 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2474 " -->\n", 2475 "<!-- Pages: 1 -->\n", 2476 "<svg width=\"490pt\" height=\"169pt\"\n", 2477 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2478 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 2479 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 2480 "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 2481 "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2482 "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2483 "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2484 "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2485 "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2486 "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 2487 "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2488 "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 2489 "<text text-anchor=\"start\" x=\"182.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 4]</text>\n", 2490 "<!-- I -->\n", 2491 "<!-- 0 -->\n", 2492 "<g id=\"node2\" class=\"node\">\n", 2493 "<title>0</title>\n", 2494 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 2495 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 2496 "</g>\n", 2497 "<!-- I->0 -->\n", 2498 "<g id=\"edge1\" class=\"edge\">\n", 2499 "<title>I->0</title>\n", 2500 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 2501 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 2502 "</g>\n", 2503 "<!-- 2 -->\n", 2504 "<g id=\"node3\" class=\"node\">\n", 2505 "<title>2</title>\n", 2506 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 2507 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 2508 "</g>\n", 2509 "<!-- 0->2 -->\n", 2510 "<g id=\"edge2\" class=\"edge\">\n", 2511 "<title>0->2</title>\n", 2512 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 2513 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 2514 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2515 "</g>\n", 2516 "<!-- 3 -->\n", 2517 "<g id=\"node4\" class=\"node\">\n", 2518 "<title>3</title>\n", 2519 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 2520 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 2521 "</g>\n", 2522 "<!-- 0->3 -->\n", 2523 "<g id=\"edge3\" class=\"edge\">\n", 2524 "<title>0->3</title>\n", 2525 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 2526 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 2527 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2528 "</g>\n", 2529 "<!-- 1 -->\n", 2530 "<g id=\"node5\" class=\"node\">\n", 2531 "<title>1</title>\n", 2532 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 2533 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 2534 "</g>\n", 2535 "<!-- 2->1 -->\n", 2536 "<g id=\"edge6\" class=\"edge\">\n", 2537 "<title>2->1</title>\n", 2538 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 2539 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 2540 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2541 "</g>\n", 2542 "<!-- 3->0 -->\n", 2543 "<g id=\"edge8\" class=\"edge\">\n", 2544 "<title>3->0</title>\n", 2545 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 2546 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 2547 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 2548 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2549 "</g>\n", 2550 "<!-- 3->2 -->\n", 2551 "<g id=\"edge7\" class=\"edge\">\n", 2552 "<title>3->2</title>\n", 2553 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 2554 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 2555 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2556 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2557 "</g>\n", 2558 "<!-- 3->3 -->\n", 2559 "<g id=\"edge9\" class=\"edge\">\n", 2560 "<title>3->3</title>\n", 2561 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 2562 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 2563 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2564 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2565 "</g>\n", 2566 "<!-- 1->0 -->\n", 2567 "<g id=\"edge4\" class=\"edge\">\n", 2568 "<title>1->0</title>\n", 2569 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 2570 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 2571 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2572 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2573 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2574 "</g>\n", 2575 "<!-- 1->2 -->\n", 2576 "<g id=\"edge5\" class=\"edge\">\n", 2577 "<title>1->2</title>\n", 2578 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 2579 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 2580 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2581 "</g>\n", 2582 "</g>\n", 2583 "</svg>\n", 2584 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2585 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2586 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2587 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2588 " -->\n", 2589 "<!-- Pages: 1 -->\n", 2590 "<svg width=\"490pt\" height=\"183pt\"\n", 2591 " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2592 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n", 2593 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n", 2594 "<text text-anchor=\"start\" x=\"63\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 2595 "<text text-anchor=\"start\" x=\"86\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 2596 "<text text-anchor=\"start\" x=\"102\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2597 "<text text-anchor=\"start\" x=\"148\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2598 "<text text-anchor=\"start\" x=\"164\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2599 "<text text-anchor=\"start\" x=\"206\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2600 "<text text-anchor=\"start\" x=\"222\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2601 "<text text-anchor=\"start\" x=\"268\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2602 "<text text-anchor=\"start\" x=\"284\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2603 "<text text-anchor=\"start\" x=\"326\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2604 "<text text-anchor=\"start\" x=\"342\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 2605 "<text text-anchor=\"start\" x=\"384\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2606 "<text text-anchor=\"start\" x=\"400\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n", 2607 "<text text-anchor=\"start\" x=\"182.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 6]</text>\n", 2608 "<!-- I -->\n", 2609 "<!-- 0 -->\n", 2610 "<g id=\"node2\" class=\"node\">\n", 2611 "<title>0</title>\n", 2612 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 2613 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 2614 "</g>\n", 2615 "<!-- I->0 -->\n", 2616 "<g id=\"edge1\" class=\"edge\">\n", 2617 "<title>I->0</title>\n", 2618 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 2619 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 2620 "</g>\n", 2621 "<!-- 2 -->\n", 2622 "<g id=\"node3\" class=\"node\">\n", 2623 "<title>2</title>\n", 2624 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", 2625 "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 2626 "</g>\n", 2627 "<!-- 0->2 -->\n", 2628 "<g id=\"edge2\" class=\"edge\">\n", 2629 "<title>0->2</title>\n", 2630 "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n", 2631 "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n", 2632 "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2633 "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2634 "</g>\n", 2635 "<!-- 3 -->\n", 2636 "<g id=\"node4\" class=\"node\">\n", 2637 "<title>3</title>\n", 2638 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 2639 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 2640 "</g>\n", 2641 "<!-- 0->3 -->\n", 2642 "<g id=\"edge3\" class=\"edge\">\n", 2643 "<title>0->3</title>\n", 2644 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 2645 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 2646 "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2647 "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2648 "</g>\n", 2649 "<!-- 1 -->\n", 2650 "<g id=\"node5\" class=\"node\">\n", 2651 "<title>1</title>\n", 2652 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 2653 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 2654 "</g>\n", 2655 "<!-- 2->1 -->\n", 2656 "<g id=\"edge6\" class=\"edge\">\n", 2657 "<title>2->1</title>\n", 2658 "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n", 2659 "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n", 2660 "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2661 "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2662 "</g>\n", 2663 "<!-- 3->0 -->\n", 2664 "<g id=\"edge8\" class=\"edge\">\n", 2665 "<title>3->0</title>\n", 2666 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 2667 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 2668 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 2669 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2670 "</g>\n", 2671 "<!-- 3->2 -->\n", 2672 "<g id=\"edge7\" class=\"edge\">\n", 2673 "<title>3->2</title>\n", 2674 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n", 2675 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n", 2676 "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2677 "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n", 2678 "</g>\n", 2679 "<!-- 3->3 -->\n", 2680 "<g id=\"edge9\" class=\"edge\">\n", 2681 "<title>3->3</title>\n", 2682 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 2683 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 2684 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2685 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2686 "</g>\n", 2687 "<!-- 1->0 -->\n", 2688 "<g id=\"edge4\" class=\"edge\">\n", 2689 "<title>1->0</title>\n", 2690 "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 2691 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 2692 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2693 "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2694 "</g>\n", 2695 "<!-- 1->2 -->\n", 2696 "<g id=\"edge5\" class=\"edge\">\n", 2697 "<title>1->2</title>\n", 2698 "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n", 2699 "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n", 2700 "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2701 "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2702 "</g>\n", 2703 "</g>\n", 2704 "</svg>\n", 2705 "</div>" 2706 ], 2707 "text/plain": [ 2708 "<IPython.core.display.HTML object>" 2709 ] 2710 }, 2711 "metadata": {}, 2712 "output_type": "display_data" 2713 } 2714 ], 2715 "source": [ 2716 "display2(maxeven4, spot.colorize_parity(maxeven4, False))\n", 2717 "display2(maxeven4, spot.colorize_parity(maxeven4, True))" 2718 ] 2719 }, 2720 { 2721 "cell_type": "markdown", 2722 "metadata": {}, 2723 "source": [ 2724 "## Parity min\n", 2725 "Transitions with multiple colors are simplified by keeping only the color with the lowest index.\n", 2726 "<br>\n", 2727 "An extra color may be introduced at the end of the range, without changing the acceptance style (so the second argument of `colorize_parity()` is useless in this case).\n", 2728 "\n", 2729 "#### Colorize parity min odd 4" 2730 ] 2731 }, 2732 { 2733 "cell_type": "code", 2734 "execution_count": 19, 2735 "metadata": {}, 2736 "outputs": [ 2737 { 2738 "data": { 2739 "text/html": [ 2740 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2741 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2742 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2743 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2744 " -->\n", 2745 "<!-- Pages: 1 -->\n", 2746 "<svg width=\"490pt\" height=\"169pt\"\n", 2747 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2748 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 2749 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 2750 "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 2751 "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2752 "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2753 "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2754 "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2755 "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2756 "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 2757 "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2758 "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 2759 "<text text-anchor=\"start\" x=\"187\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n", 2760 "<!-- I -->\n", 2761 "<!-- 0 -->\n", 2762 "<g id=\"node2\" class=\"node\">\n", 2763 "<title>0</title>\n", 2764 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 2765 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 2766 "</g>\n", 2767 "<!-- I->0 -->\n", 2768 "<g id=\"edge1\" class=\"edge\">\n", 2769 "<title>I->0</title>\n", 2770 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 2771 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 2772 "</g>\n", 2773 "<!-- 2 -->\n", 2774 "<g id=\"node3\" class=\"node\">\n", 2775 "<title>2</title>\n", 2776 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 2777 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 2778 "</g>\n", 2779 "<!-- 0->2 -->\n", 2780 "<g id=\"edge2\" class=\"edge\">\n", 2781 "<title>0->2</title>\n", 2782 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 2783 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 2784 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2785 "</g>\n", 2786 "<!-- 3 -->\n", 2787 "<g id=\"node4\" class=\"node\">\n", 2788 "<title>3</title>\n", 2789 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 2790 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 2791 "</g>\n", 2792 "<!-- 0->3 -->\n", 2793 "<g id=\"edge3\" class=\"edge\">\n", 2794 "<title>0->3</title>\n", 2795 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 2796 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 2797 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2798 "</g>\n", 2799 "<!-- 1 -->\n", 2800 "<g id=\"node5\" class=\"node\">\n", 2801 "<title>1</title>\n", 2802 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 2803 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 2804 "</g>\n", 2805 "<!-- 2->1 -->\n", 2806 "<g id=\"edge6\" class=\"edge\">\n", 2807 "<title>2->1</title>\n", 2808 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 2809 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 2810 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2811 "</g>\n", 2812 "<!-- 3->0 -->\n", 2813 "<g id=\"edge8\" class=\"edge\">\n", 2814 "<title>3->0</title>\n", 2815 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 2816 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 2817 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 2818 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2819 "</g>\n", 2820 "<!-- 3->2 -->\n", 2821 "<g id=\"edge7\" class=\"edge\">\n", 2822 "<title>3->2</title>\n", 2823 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 2824 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 2825 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2826 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2827 "</g>\n", 2828 "<!-- 3->3 -->\n", 2829 "<g id=\"edge9\" class=\"edge\">\n", 2830 "<title>3->3</title>\n", 2831 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 2832 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 2833 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2834 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2835 "</g>\n", 2836 "<!-- 1->0 -->\n", 2837 "<g id=\"edge4\" class=\"edge\">\n", 2838 "<title>1->0</title>\n", 2839 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 2840 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 2841 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2842 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2843 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2844 "</g>\n", 2845 "<!-- 1->2 -->\n", 2846 "<g id=\"edge5\" class=\"edge\">\n", 2847 "<title>1->2</title>\n", 2848 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 2849 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 2850 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2851 "</g>\n", 2852 "</g>\n", 2853 "</svg>\n", 2854 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2855 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2856 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2857 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2858 " -->\n", 2859 "<!-- Pages: 1 -->\n", 2860 "<svg width=\"490pt\" height=\"183pt\"\n", 2861 " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2862 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n", 2863 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n", 2864 "<text text-anchor=\"start\" x=\"95.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 2865 "<text text-anchor=\"start\" x=\"118.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2866 "<text text-anchor=\"start\" x=\"134.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2867 "<text text-anchor=\"start\" x=\"180.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 2868 "<text text-anchor=\"start\" x=\"196.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 2869 "<text text-anchor=\"start\" x=\"238.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2870 "<text text-anchor=\"start\" x=\"254.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 2871 "<text text-anchor=\"start\" x=\"300.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2872 "<text text-anchor=\"start\" x=\"316.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 2873 "<text text-anchor=\"start\" x=\"354.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2874 "<text text-anchor=\"start\" x=\"370.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 2875 "<text text-anchor=\"start\" x=\"187\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n", 2876 "<!-- I -->\n", 2877 "<!-- 0 -->\n", 2878 "<g id=\"node2\" class=\"node\">\n", 2879 "<title>0</title>\n", 2880 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 2881 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 2882 "</g>\n", 2883 "<!-- I->0 -->\n", 2884 "<g id=\"edge1\" class=\"edge\">\n", 2885 "<title>I->0</title>\n", 2886 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 2887 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 2888 "</g>\n", 2889 "<!-- 2 -->\n", 2890 "<g id=\"node3\" class=\"node\">\n", 2891 "<title>2</title>\n", 2892 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", 2893 "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 2894 "</g>\n", 2895 "<!-- 0->2 -->\n", 2896 "<g id=\"edge2\" class=\"edge\">\n", 2897 "<title>0->2</title>\n", 2898 "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n", 2899 "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n", 2900 "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2901 "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2902 "</g>\n", 2903 "<!-- 3 -->\n", 2904 "<g id=\"node4\" class=\"node\">\n", 2905 "<title>3</title>\n", 2906 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 2907 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 2908 "</g>\n", 2909 "<!-- 0->3 -->\n", 2910 "<g id=\"edge3\" class=\"edge\">\n", 2911 "<title>0->3</title>\n", 2912 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 2913 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 2914 "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2915 "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2916 "</g>\n", 2917 "<!-- 1 -->\n", 2918 "<g id=\"node5\" class=\"node\">\n", 2919 "<title>1</title>\n", 2920 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 2921 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 2922 "</g>\n", 2923 "<!-- 2->1 -->\n", 2924 "<g id=\"edge6\" class=\"edge\">\n", 2925 "<title>2->1</title>\n", 2926 "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n", 2927 "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n", 2928 "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2929 "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2930 "</g>\n", 2931 "<!-- 3->0 -->\n", 2932 "<g id=\"edge8\" class=\"edge\">\n", 2933 "<title>3->0</title>\n", 2934 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 2935 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 2936 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 2937 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2938 "</g>\n", 2939 "<!-- 3->2 -->\n", 2940 "<g id=\"edge7\" class=\"edge\">\n", 2941 "<title>3->2</title>\n", 2942 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n", 2943 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n", 2944 "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2945 "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 2946 "</g>\n", 2947 "<!-- 3->3 -->\n", 2948 "<g id=\"edge9\" class=\"edge\">\n", 2949 "<title>3->3</title>\n", 2950 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 2951 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 2952 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2953 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 2954 "</g>\n", 2955 "<!-- 1->0 -->\n", 2956 "<g id=\"edge4\" class=\"edge\">\n", 2957 "<title>1->0</title>\n", 2958 "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 2959 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 2960 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 2961 "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 2962 "</g>\n", 2963 "<!-- 1->2 -->\n", 2964 "<g id=\"edge5\" class=\"edge\">\n", 2965 "<title>1->2</title>\n", 2966 "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n", 2967 "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n", 2968 "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 2969 "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 2970 "</g>\n", 2971 "</g>\n", 2972 "</svg>\n", 2973 "</div>" 2974 ], 2975 "text/plain": [ 2976 "<IPython.core.display.HTML object>" 2977 ] 2978 }, 2979 "metadata": {}, 2980 "output_type": "display_data" 2981 } 2982 ], 2983 "source": [ 2984 "display2(minodd4, spot.colorize_parity(minodd4))" 2985 ] 2986 }, 2987 { 2988 "cell_type": "markdown", 2989 "metadata": {}, 2990 "source": [ 2991 "## Degenerate cases\n", 2992 "\n", 2993 "### max odd 1\n", 2994 "\n", 2995 "This is just another name for co-Büchi." 2996 ] 2997 }, 2998 { 2999 "cell_type": "code", 3000 "execution_count": 20, 3001 "metadata": {}, 3002 "outputs": [ 3003 { 3004 "data": { 3005 "text/html": [ 3006 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3007 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3008 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3009 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3010 " -->\n", 3011 "<!-- Pages: 1 -->\n", 3012 "<svg width=\"499pt\" height=\"140pt\"\n", 3013 " viewBox=\"0.00 0.00 498.50 140.34\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3014 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 136.34)\">\n", 3015 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-136.34 494.5,-136.34 494.5,4 -4,4\"/>\n", 3016 "<text text-anchor=\"start\" x=\"213.75\" y=\"-102.14\" font-family=\"Lato\" font-size=\"14.00\">[co-Büchi]</text>\n", 3017 "<!-- I -->\n", 3018 "<!-- 0 -->\n", 3019 "<g id=\"node2\" class=\"node\">\n", 3020 "<title>0</title>\n", 3021 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n", 3022 "<text text-anchor=\"middle\" x=\"56\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3023 "</g>\n", 3024 "<!-- I->0 -->\n", 3025 "<g id=\"edge1\" class=\"edge\">\n", 3026 "<title>I->0</title>\n", 3027 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.54C2.79,-23.54 17.15,-23.54 30.63,-23.54\"/>\n", 3028 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.54 30.94,-26.69 34.44,-23.54 30.94,-23.54 30.94,-23.54 30.94,-23.54 34.44,-23.54 30.94,-20.39 37.94,-23.54 37.94,-23.54\"/>\n", 3029 "</g>\n", 3030 "<!-- 2 -->\n", 3031 "<g id=\"node3\" class=\"node\">\n", 3032 "<title>2</title>\n", 3033 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-74.54\" rx=\"18\" ry=\"18\"/>\n", 3034 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-70.84\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3035 "</g>\n", 3036 "<!-- 0->2 -->\n", 3037 "<g id=\"edge2\" class=\"edge\">\n", 3038 "<title>0->2</title>\n", 3039 "<path fill=\"none\" stroke=\"black\" d=\"M72.99,-30.07C78.94,-32.46 85.76,-35.17 92,-37.54 119.17,-47.87 150.64,-59.13 171.47,-66.48\"/>\n", 3040 "<polygon fill=\"black\" stroke=\"black\" points=\"178.1,-68.82 170.46,-69.46 174.8,-67.65 171.5,-66.49 171.5,-66.49 171.5,-66.49 174.8,-67.65 172.55,-63.52 178.1,-68.82 178.1,-68.82\"/>\n", 3041 "<text text-anchor=\"start\" x=\"92\" y=\"-61.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3042 "</g>\n", 3043 "<!-- 1 -->\n", 3044 "<g id=\"node4\" class=\"node\">\n", 3045 "<title>1</title>\n", 3046 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"331\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n", 3047 "<text text-anchor=\"middle\" x=\"331\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3048 "</g>\n", 3049 "<!-- 0->1 -->\n", 3050 "<g id=\"edge3\" class=\"edge\">\n", 3051 "<title>0->1</title>\n", 3052 "<path fill=\"none\" stroke=\"black\" d=\"M74.08,-23.54C120.9,-23.54 251.44,-23.54 305.78,-23.54\"/>\n", 3053 "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-23.54 305.93,-26.69 309.43,-23.54 305.93,-23.54 305.93,-23.54 305.93,-23.54 309.43,-23.54 305.93,-20.39 312.93,-23.54 312.93,-23.54\"/>\n", 3054 "<text text-anchor=\"start\" x=\"167\" y=\"-27.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3055 "</g>\n", 3056 "<!-- 2->1 -->\n", 3057 "<g id=\"edge6\" class=\"edge\">\n", 3058 "<title>2->1</title>\n", 3059 "<path fill=\"none\" stroke=\"black\" d=\"M212.58,-68.62C232.11,-61.4 266.05,-48.77 295,-37.54 298.99,-35.99 303.22,-34.33 307.31,-32.7\"/>\n", 3060 "<polygon fill=\"black\" stroke=\"black\" points=\"314,-30.02 308.67,-35.55 310.75,-31.32 307.5,-32.62 307.5,-32.62 307.5,-32.62 310.75,-31.32 306.33,-29.7 314,-30.02 314,-30.02\"/>\n", 3061 "<text text-anchor=\"start\" x=\"242\" y=\"-60.34\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 3062 "</g>\n", 3063 "<!-- 1->0 -->\n", 3064 "<g id=\"edge4\" class=\"edge\">\n", 3065 "<title>1->0</title>\n", 3066 "<path fill=\"none\" stroke=\"black\" d=\"M313.23,-19.58C292.44,-14.9 255.84,-7.37 224,-4.54 198.77,-2.3 192.24,-2.38 167,-4.54 136.99,-7.11 102.87,-13.57 80.7,-18.24\"/>\n", 3067 "<polygon fill=\"black\" stroke=\"black\" points=\"73.66,-19.75 79.84,-15.2 77.08,-19.01 80.5,-18.28 80.5,-18.28 80.5,-18.28 77.08,-19.01 81.16,-21.36 73.66,-19.75 73.66,-19.75\"/>\n", 3068 "<text text-anchor=\"start\" x=\"169\" y=\"-8.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3069 "</g>\n", 3070 "<!-- 3 -->\n", 3071 "<g id=\"node5\" class=\"node\">\n", 3072 "<title>3</title>\n", 3073 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n", 3074 "<ellipse fill=\"none\" stroke=\"black\" cx=\"464\" cy=\"-23.54\" rx=\"22\" ry=\"22\"/>\n", 3075 "<text text-anchor=\"middle\" x=\"464\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3076 "</g>\n", 3077 "<!-- 1->3 -->\n", 3078 "<g id=\"edge5\" class=\"edge\">\n", 3079 "<title>1->3</title>\n", 3080 "<path fill=\"none\" stroke=\"black\" d=\"M349.13,-23.54C370.93,-23.54 408.9,-23.54 434.96,-23.54\"/>\n", 3081 "<polygon fill=\"black\" stroke=\"black\" points=\"441.97,-23.54 434.97,-26.69 438.47,-23.54 434.97,-23.54 434.97,-23.54 434.97,-23.54 438.47,-23.54 434.97,-20.39 441.97,-23.54 441.97,-23.54\"/>\n", 3082 "<text text-anchor=\"start\" x=\"371\" y=\"-27.34\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 3083 "</g>\n", 3084 "<!-- 3->1 -->\n", 3085 "<g id=\"edge8\" class=\"edge\">\n", 3086 "<title>3->1</title>\n", 3087 "<path fill=\"none\" stroke=\"black\" d=\"M444.6,-12.46C438.29,-9.24 431.05,-6.17 424,-4.54 399.31,1.15 391.55,1.69 367,-4.54 362.14,-5.78 357.22,-7.84 352.67,-10.16\"/>\n", 3088 "<polygon fill=\"black\" stroke=\"black\" points=\"346.31,-13.68 350.91,-7.53 349.37,-11.98 352.44,-10.29 352.44,-10.29 352.44,-10.29 349.37,-11.98 353.96,-13.04 346.31,-13.68 346.31,-13.68\"/>\n", 3089 "<text text-anchor=\"start\" x=\"367\" y=\"-8.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3090 "</g>\n", 3091 "<!-- 3->3 -->\n", 3092 "<g id=\"edge7\" class=\"edge\">\n", 3093 "<title>3->3</title>\n", 3094 "<path fill=\"none\" stroke=\"black\" d=\"M452.05,-42.06C449.39,-53.12 453.38,-63.54 464,-63.54 472.3,-63.54 476.55,-57.18 476.74,-49.12\"/>\n", 3095 "<polygon fill=\"black\" stroke=\"black\" points=\"475.95,-42.06 479.86,-48.66 476.34,-45.53 476.73,-49.01 476.73,-49.01 476.73,-49.01 476.34,-45.53 473.6,-49.36 475.95,-42.06 475.95,-42.06\"/>\n", 3096 "<text text-anchor=\"start\" x=\"437.5\" y=\"-67.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3097 "</g>\n", 3098 "</g>\n", 3099 "</svg>\n", 3100 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3101 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3102 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3103 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3104 " -->\n", 3105 "<!-- Pages: 1 -->\n", 3106 "<svg width=\"495pt\" height=\"139pt\"\n", 3107 " viewBox=\"0.00 0.00 494.50 138.68\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3108 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 134.68)\">\n", 3109 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-134.68 490.5,-134.68 490.5,4 -4,4\"/>\n", 3110 "<text text-anchor=\"start\" x=\"192.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 3111 "<text text-anchor=\"start\" x=\"215.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3112 "<text text-anchor=\"start\" x=\"231.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 3113 "<text text-anchor=\"start\" x=\"273.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3114 "<text text-anchor=\"start\" x=\"289.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 3115 "<text text-anchor=\"start\" x=\"184.75\" y=\"-102.48\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 2]</text>\n", 3116 "<!-- I -->\n", 3117 "<!-- 0 -->\n", 3118 "<g id=\"node2\" class=\"node\">\n", 3119 "<title>0</title>\n", 3120 "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M62,-42.68C62,-42.68 50,-42.68 50,-42.68 44,-42.68 38,-36.68 38,-30.68 38,-30.68 38,-16.68 38,-16.68 38,-10.68 44,-4.68 50,-4.68 50,-4.68 62,-4.68 62,-4.68 68,-4.68 74,-10.68 74,-16.68 74,-16.68 74,-30.68 74,-30.68 74,-36.68 68,-42.68 62,-42.68\"/>\n", 3121 "<text text-anchor=\"start\" x=\"51.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3122 "<text text-anchor=\"start\" x=\"48\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3123 "</g>\n", 3124 "<!-- I->0 -->\n", 3125 "<g id=\"edge1\" class=\"edge\">\n", 3126 "<title>I->0</title>\n", 3127 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.68C2.79,-23.68 17.15,-23.68 30.63,-23.68\"/>\n", 3128 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.68 30.94,-26.83 34.44,-23.68 30.94,-23.68 30.94,-23.68 30.94,-23.68 34.44,-23.68 30.94,-20.53 37.94,-23.68 37.94,-23.68\"/>\n", 3129 "</g>\n", 3130 "<!-- 2 -->\n", 3131 "<g id=\"node3\" class=\"node\">\n", 3132 "<title>2</title>\n", 3133 "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M201.5,-94.68C201.5,-94.68 189.5,-94.68 189.5,-94.68 183.5,-94.68 177.5,-88.68 177.5,-82.68 177.5,-82.68 177.5,-68.68 177.5,-68.68 177.5,-62.68 183.5,-56.68 189.5,-56.68 189.5,-56.68 201.5,-56.68 201.5,-56.68 207.5,-56.68 213.5,-62.68 213.5,-68.68 213.5,-68.68 213.5,-82.68 213.5,-82.68 213.5,-88.68 207.5,-94.68 201.5,-94.68\"/>\n", 3134 "<text text-anchor=\"start\" x=\"191\" y=\"-79.48\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3135 "<text text-anchor=\"start\" x=\"187.5\" y=\"-64.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3136 "</g>\n", 3137 "<!-- 0->2 -->\n", 3138 "<g id=\"edge2\" class=\"edge\">\n", 3139 "<title>0->2</title>\n", 3140 "<path fill=\"none\" stroke=\"black\" d=\"M74.06,-30.6C79.75,-32.88 86.14,-35.42 92,-37.68 118.89,-48.04 149.94,-59.47 170.76,-67.07\"/>\n", 3141 "<polygon fill=\"black\" stroke=\"black\" points=\"177.4,-69.49 169.75,-70.05 174.11,-68.29 170.82,-67.09 170.82,-67.09 170.82,-67.09 174.11,-68.29 171.9,-64.13 177.4,-69.49 177.4,-69.49\"/>\n", 3142 "<text text-anchor=\"start\" x=\"92\" y=\"-61.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3143 "</g>\n", 3144 "<!-- 1 -->\n", 3145 "<g id=\"node4\" class=\"node\">\n", 3146 "<title>1</title>\n", 3147 "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M337,-42.68C337,-42.68 325,-42.68 325,-42.68 319,-42.68 313,-36.68 313,-30.68 313,-30.68 313,-16.68 313,-16.68 313,-10.68 319,-4.68 325,-4.68 325,-4.68 337,-4.68 337,-4.68 343,-4.68 349,-10.68 349,-16.68 349,-16.68 349,-30.68 349,-30.68 349,-36.68 343,-42.68 337,-42.68\"/>\n", 3148 "<text text-anchor=\"start\" x=\"326.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3149 "<text text-anchor=\"start\" x=\"323\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3150 "</g>\n", 3151 "<!-- 0->1 -->\n", 3152 "<g id=\"edge3\" class=\"edge\">\n", 3153 "<title>0->1</title>\n", 3154 "<path fill=\"none\" stroke=\"black\" d=\"M74.08,-23.68C120.9,-23.68 251.44,-23.68 305.78,-23.68\"/>\n", 3155 "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-23.68 305.93,-26.83 309.43,-23.68 305.93,-23.68 305.93,-23.68 305.93,-23.68 309.43,-23.68 305.93,-20.53 312.93,-23.68 312.93,-23.68\"/>\n", 3156 "<text text-anchor=\"start\" x=\"167\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3157 "</g>\n", 3158 "<!-- 2->1 -->\n", 3159 "<g id=\"edge6\" class=\"edge\">\n", 3160 "<title>2->1</title>\n", 3161 "<path fill=\"none\" stroke=\"black\" d=\"M213.61,-69.15C233.27,-61.63 266.51,-48.87 295,-37.68 298.65,-36.24 302.52,-34.71 306.29,-33.2\"/>\n", 3162 "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-30.55 307.6,-36.08 309.68,-31.85 306.43,-33.15 306.43,-33.15 306.43,-33.15 309.68,-31.85 305.26,-30.23 312.93,-30.55 312.93,-30.55\"/>\n", 3163 "<text text-anchor=\"start\" x=\"242\" y=\"-60.48\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 3164 "</g>\n", 3165 "<!-- 1->0 -->\n", 3166 "<g id=\"edge4\" class=\"edge\">\n", 3167 "<title>1->0</title>\n", 3168 "<path fill=\"none\" stroke=\"black\" d=\"M312.87,-19.64C292.01,-14.95 255.66,-7.49 224,-4.68 198.77,-2.43 192.24,-2.51 167,-4.68 137.16,-7.23 103.26,-13.63 81.08,-18.29\"/>\n", 3169 "<polygon fill=\"black\" stroke=\"black\" points=\"74.03,-19.8 80.22,-15.26 77.45,-19.07 80.88,-18.34 80.88,-18.34 80.88,-18.34 77.45,-19.07 81.53,-21.42 74.03,-19.8 74.03,-19.8\"/>\n", 3170 "<text text-anchor=\"start\" x=\"169\" y=\"-8.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3171 "</g>\n", 3172 "<!-- 3 -->\n", 3173 "<g id=\"node5\" class=\"node\">\n", 3174 "<title>3</title>\n", 3175 "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M466,-42.68C466,-42.68 454,-42.68 454,-42.68 448,-42.68 442,-36.68 442,-30.68 442,-30.68 442,-16.68 442,-16.68 442,-10.68 448,-4.68 454,-4.68 454,-4.68 466,-4.68 466,-4.68 472,-4.68 478,-10.68 478,-16.68 478,-16.68 478,-30.68 478,-30.68 478,-36.68 472,-42.68 466,-42.68\"/>\n", 3176 "<text text-anchor=\"start\" x=\"455.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3177 "<text text-anchor=\"start\" x=\"452\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3178 "</g>\n", 3179 "<!-- 1->3 -->\n", 3180 "<g id=\"edge5\" class=\"edge\">\n", 3181 "<title>1->3</title>\n", 3182 "<path fill=\"none\" stroke=\"black\" d=\"M349.13,-23.68C371.19,-23.68 409.67,-23.68 434.74,-23.68\"/>\n", 3183 "<polygon fill=\"black\" stroke=\"black\" points=\"441.74,-23.68 434.74,-26.83 438.24,-23.68 434.74,-23.68 434.74,-23.68 434.74,-23.68 438.24,-23.68 434.74,-20.53 441.74,-23.68 441.74,-23.68\"/>\n", 3184 "<text text-anchor=\"start\" x=\"371\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 3185 "</g>\n", 3186 "<!-- 3->1 -->\n", 3187 "<g id=\"edge8\" class=\"edge\">\n", 3188 "<title>3->1</title>\n", 3189 "<path fill=\"none\" stroke=\"black\" d=\"M441.9,-12.2C436.42,-9.14 430.17,-6.24 424,-4.68 399.45,1.56 391.55,1.56 367,-4.68 363.15,-5.65 359.26,-7.15 355.55,-8.89\"/>\n", 3190 "<polygon fill=\"black\" stroke=\"black\" points=\"349.1,-12.2 353.88,-6.2 352.21,-10.6 355.32,-9 355.32,-9 355.32,-9 352.21,-10.6 356.76,-11.8 349.1,-12.2 349.1,-12.2\"/>\n", 3191 "<text text-anchor=\"start\" x=\"367\" y=\"-8.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3192 "</g>\n", 3193 "<!-- 3->3 -->\n", 3194 "<g id=\"edge7\" class=\"edge\">\n", 3195 "<title>3->3</title>\n", 3196 "<path fill=\"none\" stroke=\"black\" d=\"M448.35,-42.71C446.74,-52.21 450.62,-60.68 460,-60.68 466.88,-60.68 470.81,-56.11 471.77,-49.92\"/>\n", 3197 "<polygon fill=\"black\" stroke=\"black\" points=\"471.65,-42.71 474.91,-49.66 471.7,-46.21 471.76,-49.71 471.76,-49.71 471.76,-49.71 471.7,-46.21 468.61,-49.77 471.65,-42.71 471.65,-42.71\"/>\n", 3198 "<text text-anchor=\"start\" x=\"433.5\" y=\"-64.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3199 "</g>\n", 3200 "</g>\n", 3201 "</svg>\n", 3202 "</div>" 3203 ], 3204 "text/plain": [ 3205 "<IPython.core.display.HTML object>" 3206 ] 3207 }, 3208 "metadata": {}, 3209 "output_type": "display_data" 3210 } 3211 ], 3212 "source": [ 3213 "maxodd1 = spot.automaton(\"randaut -A 'parity max odd 1' -Q4 2|\")\n", 3214 "display2(maxodd1, spot.colorize_parity(maxodd1))" 3215 ] 3216 }, 3217 { 3218 "cell_type": "markdown", 3219 "metadata": {}, 3220 "source": [ 3221 "### max even 1\n", 3222 "\n", 3223 "Another name for Büchi" 3224 ] 3225 }, 3226 { 3227 "cell_type": "code", 3228 "execution_count": 21, 3229 "metadata": {}, 3230 "outputs": [ 3231 { 3232 "data": { 3233 "text/html": [ 3234 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3235 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3236 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3237 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3238 " -->\n", 3239 "<!-- Pages: 1 -->\n", 3240 "<svg width=\"499pt\" height=\"140pt\"\n", 3241 " viewBox=\"0.00 0.00 498.50 140.34\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3242 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 136.34)\">\n", 3243 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-136.34 494.5,-136.34 494.5,4 -4,4\"/>\n", 3244 "<text text-anchor=\"start\" x=\"223.75\" y=\"-102.14\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n", 3245 "<!-- I -->\n", 3246 "<!-- 0 -->\n", 3247 "<g id=\"node2\" class=\"node\">\n", 3248 "<title>0</title>\n", 3249 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n", 3250 "<text text-anchor=\"middle\" x=\"56\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3251 "</g>\n", 3252 "<!-- I->0 -->\n", 3253 "<g id=\"edge1\" class=\"edge\">\n", 3254 "<title>I->0</title>\n", 3255 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.54C2.79,-23.54 17.15,-23.54 30.63,-23.54\"/>\n", 3256 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.54 30.94,-26.69 34.44,-23.54 30.94,-23.54 30.94,-23.54 30.94,-23.54 34.44,-23.54 30.94,-20.39 37.94,-23.54 37.94,-23.54\"/>\n", 3257 "</g>\n", 3258 "<!-- 2 -->\n", 3259 "<g id=\"node3\" class=\"node\">\n", 3260 "<title>2</title>\n", 3261 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-74.54\" rx=\"18\" ry=\"18\"/>\n", 3262 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-70.84\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3263 "</g>\n", 3264 "<!-- 0->2 -->\n", 3265 "<g id=\"edge2\" class=\"edge\">\n", 3266 "<title>0->2</title>\n", 3267 "<path fill=\"none\" stroke=\"black\" d=\"M72.99,-30.07C78.94,-32.46 85.76,-35.17 92,-37.54 119.17,-47.87 150.64,-59.13 171.47,-66.48\"/>\n", 3268 "<polygon fill=\"black\" stroke=\"black\" points=\"178.1,-68.82 170.46,-69.46 174.8,-67.65 171.5,-66.49 171.5,-66.49 171.5,-66.49 174.8,-67.65 172.55,-63.52 178.1,-68.82 178.1,-68.82\"/>\n", 3269 "<text text-anchor=\"start\" x=\"92\" y=\"-61.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3270 "</g>\n", 3271 "<!-- 1 -->\n", 3272 "<g id=\"node4\" class=\"node\">\n", 3273 "<title>1</title>\n", 3274 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"331\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n", 3275 "<text text-anchor=\"middle\" x=\"331\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3276 "</g>\n", 3277 "<!-- 0->1 -->\n", 3278 "<g id=\"edge3\" class=\"edge\">\n", 3279 "<title>0->1</title>\n", 3280 "<path fill=\"none\" stroke=\"black\" d=\"M74.08,-23.54C120.9,-23.54 251.44,-23.54 305.78,-23.54\"/>\n", 3281 "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-23.54 305.93,-26.69 309.43,-23.54 305.93,-23.54 305.93,-23.54 305.93,-23.54 309.43,-23.54 305.93,-20.39 312.93,-23.54 312.93,-23.54\"/>\n", 3282 "<text text-anchor=\"start\" x=\"167\" y=\"-27.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3283 "</g>\n", 3284 "<!-- 2->1 -->\n", 3285 "<g id=\"edge6\" class=\"edge\">\n", 3286 "<title>2->1</title>\n", 3287 "<path fill=\"none\" stroke=\"black\" d=\"M212.58,-68.62C232.11,-61.4 266.05,-48.77 295,-37.54 298.99,-35.99 303.22,-34.33 307.31,-32.7\"/>\n", 3288 "<polygon fill=\"black\" stroke=\"black\" points=\"314,-30.02 308.67,-35.55 310.75,-31.32 307.5,-32.62 307.5,-32.62 307.5,-32.62 310.75,-31.32 306.33,-29.7 314,-30.02 314,-30.02\"/>\n", 3289 "<text text-anchor=\"start\" x=\"242\" y=\"-60.34\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 3290 "</g>\n", 3291 "<!-- 1->0 -->\n", 3292 "<g id=\"edge4\" class=\"edge\">\n", 3293 "<title>1->0</title>\n", 3294 "<path fill=\"none\" stroke=\"black\" d=\"M313.23,-19.58C292.44,-14.9 255.84,-7.37 224,-4.54 198.77,-2.3 192.24,-2.38 167,-4.54 136.99,-7.11 102.87,-13.57 80.7,-18.24\"/>\n", 3295 "<polygon fill=\"black\" stroke=\"black\" points=\"73.66,-19.75 79.84,-15.2 77.08,-19.01 80.5,-18.28 80.5,-18.28 80.5,-18.28 77.08,-19.01 81.16,-21.36 73.66,-19.75 73.66,-19.75\"/>\n", 3296 "<text text-anchor=\"start\" x=\"169\" y=\"-8.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3297 "</g>\n", 3298 "<!-- 3 -->\n", 3299 "<g id=\"node5\" class=\"node\">\n", 3300 "<title>3</title>\n", 3301 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n", 3302 "<ellipse fill=\"none\" stroke=\"black\" cx=\"464\" cy=\"-23.54\" rx=\"22\" ry=\"22\"/>\n", 3303 "<text text-anchor=\"middle\" x=\"464\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3304 "</g>\n", 3305 "<!-- 1->3 -->\n", 3306 "<g id=\"edge5\" class=\"edge\">\n", 3307 "<title>1->3</title>\n", 3308 "<path fill=\"none\" stroke=\"black\" d=\"M349.13,-23.54C370.93,-23.54 408.9,-23.54 434.96,-23.54\"/>\n", 3309 "<polygon fill=\"black\" stroke=\"black\" points=\"441.97,-23.54 434.97,-26.69 438.47,-23.54 434.97,-23.54 434.97,-23.54 434.97,-23.54 438.47,-23.54 434.97,-20.39 441.97,-23.54 441.97,-23.54\"/>\n", 3310 "<text text-anchor=\"start\" x=\"371\" y=\"-27.34\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 3311 "</g>\n", 3312 "<!-- 3->1 -->\n", 3313 "<g id=\"edge8\" class=\"edge\">\n", 3314 "<title>3->1</title>\n", 3315 "<path fill=\"none\" stroke=\"black\" d=\"M444.6,-12.46C438.29,-9.24 431.05,-6.17 424,-4.54 399.31,1.15 391.55,1.69 367,-4.54 362.14,-5.78 357.22,-7.84 352.67,-10.16\"/>\n", 3316 "<polygon fill=\"black\" stroke=\"black\" points=\"346.31,-13.68 350.91,-7.53 349.37,-11.98 352.44,-10.29 352.44,-10.29 352.44,-10.29 349.37,-11.98 353.96,-13.04 346.31,-13.68 346.31,-13.68\"/>\n", 3317 "<text text-anchor=\"start\" x=\"367\" y=\"-8.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3318 "</g>\n", 3319 "<!-- 3->3 -->\n", 3320 "<g id=\"edge7\" class=\"edge\">\n", 3321 "<title>3->3</title>\n", 3322 "<path fill=\"none\" stroke=\"black\" d=\"M452.05,-42.06C449.39,-53.12 453.38,-63.54 464,-63.54 472.3,-63.54 476.55,-57.18 476.74,-49.12\"/>\n", 3323 "<polygon fill=\"black\" stroke=\"black\" points=\"475.95,-42.06 479.86,-48.66 476.34,-45.53 476.73,-49.01 476.73,-49.01 476.73,-49.01 476.34,-45.53 473.6,-49.36 475.95,-42.06 475.95,-42.06\"/>\n", 3324 "<text text-anchor=\"start\" x=\"437.5\" y=\"-67.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3325 "</g>\n", 3326 "</g>\n", 3327 "</svg>\n", 3328 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3329 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3330 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3331 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3332 " -->\n", 3333 "<!-- Pages: 1 -->\n", 3334 "<svg width=\"495pt\" height=\"139pt\"\n", 3335 " viewBox=\"0.00 0.00 494.50 138.68\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3336 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 134.68)\">\n", 3337 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-134.68 490.5,-134.68 490.5,4 -4,4\"/>\n", 3338 "<text text-anchor=\"start\" x=\"195.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 3339 "<text text-anchor=\"start\" x=\"216.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3340 "<text text-anchor=\"start\" x=\"232.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 3341 "<text text-anchor=\"start\" x=\"270.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3342 "<text text-anchor=\"start\" x=\"286.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 3343 "<text text-anchor=\"start\" x=\"211.75\" y=\"-102.48\" font-family=\"Lato\" font-size=\"14.00\">[Streett 1]</text>\n", 3344 "<!-- I -->\n", 3345 "<!-- 0 -->\n", 3346 "<g id=\"node2\" class=\"node\">\n", 3347 "<title>0</title>\n", 3348 "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M62,-42.68C62,-42.68 50,-42.68 50,-42.68 44,-42.68 38,-36.68 38,-30.68 38,-30.68 38,-16.68 38,-16.68 38,-10.68 44,-4.68 50,-4.68 50,-4.68 62,-4.68 62,-4.68 68,-4.68 74,-10.68 74,-16.68 74,-16.68 74,-30.68 74,-30.68 74,-36.68 68,-42.68 62,-42.68\"/>\n", 3349 "<text text-anchor=\"start\" x=\"51.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3350 "<text text-anchor=\"start\" x=\"48\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3351 "</g>\n", 3352 "<!-- I->0 -->\n", 3353 "<g id=\"edge1\" class=\"edge\">\n", 3354 "<title>I->0</title>\n", 3355 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.68C2.79,-23.68 17.15,-23.68 30.63,-23.68\"/>\n", 3356 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.68 30.94,-26.83 34.44,-23.68 30.94,-23.68 30.94,-23.68 30.94,-23.68 34.44,-23.68 30.94,-20.53 37.94,-23.68 37.94,-23.68\"/>\n", 3357 "</g>\n", 3358 "<!-- 2 -->\n", 3359 "<g id=\"node3\" class=\"node\">\n", 3360 "<title>2</title>\n", 3361 "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M201.5,-94.68C201.5,-94.68 189.5,-94.68 189.5,-94.68 183.5,-94.68 177.5,-88.68 177.5,-82.68 177.5,-82.68 177.5,-68.68 177.5,-68.68 177.5,-62.68 183.5,-56.68 189.5,-56.68 189.5,-56.68 201.5,-56.68 201.5,-56.68 207.5,-56.68 213.5,-62.68 213.5,-68.68 213.5,-68.68 213.5,-82.68 213.5,-82.68 213.5,-88.68 207.5,-94.68 201.5,-94.68\"/>\n", 3362 "<text text-anchor=\"start\" x=\"191\" y=\"-79.48\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3363 "<text text-anchor=\"start\" x=\"187.5\" y=\"-64.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3364 "</g>\n", 3365 "<!-- 0->2 -->\n", 3366 "<g id=\"edge2\" class=\"edge\">\n", 3367 "<title>0->2</title>\n", 3368 "<path fill=\"none\" stroke=\"black\" d=\"M74.06,-30.6C79.75,-32.88 86.14,-35.42 92,-37.68 118.89,-48.04 149.94,-59.47 170.76,-67.07\"/>\n", 3369 "<polygon fill=\"black\" stroke=\"black\" points=\"177.4,-69.49 169.75,-70.05 174.11,-68.29 170.82,-67.09 170.82,-67.09 170.82,-67.09 174.11,-68.29 171.9,-64.13 177.4,-69.49 177.4,-69.49\"/>\n", 3370 "<text text-anchor=\"start\" x=\"92\" y=\"-61.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3371 "</g>\n", 3372 "<!-- 1 -->\n", 3373 "<g id=\"node4\" class=\"node\">\n", 3374 "<title>1</title>\n", 3375 "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M337,-42.68C337,-42.68 325,-42.68 325,-42.68 319,-42.68 313,-36.68 313,-30.68 313,-30.68 313,-16.68 313,-16.68 313,-10.68 319,-4.68 325,-4.68 325,-4.68 337,-4.68 337,-4.68 343,-4.68 349,-10.68 349,-16.68 349,-16.68 349,-30.68 349,-30.68 349,-36.68 343,-42.68 337,-42.68\"/>\n", 3376 "<text text-anchor=\"start\" x=\"326.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3377 "<text text-anchor=\"start\" x=\"323\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3378 "</g>\n", 3379 "<!-- 0->1 -->\n", 3380 "<g id=\"edge3\" class=\"edge\">\n", 3381 "<title>0->1</title>\n", 3382 "<path fill=\"none\" stroke=\"black\" d=\"M74.08,-23.68C120.9,-23.68 251.44,-23.68 305.78,-23.68\"/>\n", 3383 "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-23.68 305.93,-26.83 309.43,-23.68 305.93,-23.68 305.93,-23.68 305.93,-23.68 309.43,-23.68 305.93,-20.53 312.93,-23.68 312.93,-23.68\"/>\n", 3384 "<text text-anchor=\"start\" x=\"167\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3385 "</g>\n", 3386 "<!-- 2->1 -->\n", 3387 "<g id=\"edge6\" class=\"edge\">\n", 3388 "<title>2->1</title>\n", 3389 "<path fill=\"none\" stroke=\"black\" d=\"M213.61,-69.15C233.27,-61.63 266.51,-48.87 295,-37.68 298.65,-36.24 302.52,-34.71 306.29,-33.2\"/>\n", 3390 "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-30.55 307.6,-36.08 309.68,-31.85 306.43,-33.15 306.43,-33.15 306.43,-33.15 309.68,-31.85 305.26,-30.23 312.93,-30.55 312.93,-30.55\"/>\n", 3391 "<text text-anchor=\"start\" x=\"242\" y=\"-60.48\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 3392 "</g>\n", 3393 "<!-- 1->0 -->\n", 3394 "<g id=\"edge4\" class=\"edge\">\n", 3395 "<title>1->0</title>\n", 3396 "<path fill=\"none\" stroke=\"black\" d=\"M312.87,-19.64C292.01,-14.95 255.66,-7.49 224,-4.68 198.77,-2.43 192.24,-2.51 167,-4.68 137.16,-7.23 103.26,-13.63 81.08,-18.29\"/>\n", 3397 "<polygon fill=\"black\" stroke=\"black\" points=\"74.03,-19.8 80.22,-15.26 77.45,-19.07 80.88,-18.34 80.88,-18.34 80.88,-18.34 77.45,-19.07 81.53,-21.42 74.03,-19.8 74.03,-19.8\"/>\n", 3398 "<text text-anchor=\"start\" x=\"169\" y=\"-8.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3399 "</g>\n", 3400 "<!-- 3 -->\n", 3401 "<g id=\"node5\" class=\"node\">\n", 3402 "<title>3</title>\n", 3403 "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M466,-42.68C466,-42.68 454,-42.68 454,-42.68 448,-42.68 442,-36.68 442,-30.68 442,-30.68 442,-16.68 442,-16.68 442,-10.68 448,-4.68 454,-4.68 454,-4.68 466,-4.68 466,-4.68 472,-4.68 478,-10.68 478,-16.68 478,-16.68 478,-30.68 478,-30.68 478,-36.68 472,-42.68 466,-42.68\"/>\n", 3404 "<text text-anchor=\"start\" x=\"455.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3405 "<text text-anchor=\"start\" x=\"452\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3406 "</g>\n", 3407 "<!-- 1->3 -->\n", 3408 "<g id=\"edge5\" class=\"edge\">\n", 3409 "<title>1->3</title>\n", 3410 "<path fill=\"none\" stroke=\"black\" d=\"M349.13,-23.68C371.19,-23.68 409.67,-23.68 434.74,-23.68\"/>\n", 3411 "<polygon fill=\"black\" stroke=\"black\" points=\"441.74,-23.68 434.74,-26.83 438.24,-23.68 434.74,-23.68 434.74,-23.68 434.74,-23.68 438.24,-23.68 434.74,-20.53 441.74,-23.68 441.74,-23.68\"/>\n", 3412 "<text text-anchor=\"start\" x=\"371\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 3413 "</g>\n", 3414 "<!-- 3->1 -->\n", 3415 "<g id=\"edge8\" class=\"edge\">\n", 3416 "<title>3->1</title>\n", 3417 "<path fill=\"none\" stroke=\"black\" d=\"M441.9,-12.2C436.42,-9.14 430.17,-6.24 424,-4.68 399.45,1.56 391.55,1.56 367,-4.68 363.15,-5.65 359.26,-7.15 355.55,-8.89\"/>\n", 3418 "<polygon fill=\"black\" stroke=\"black\" points=\"349.1,-12.2 353.88,-6.2 352.21,-10.6 355.32,-9 355.32,-9 355.32,-9 352.21,-10.6 356.76,-11.8 349.1,-12.2 349.1,-12.2\"/>\n", 3419 "<text text-anchor=\"start\" x=\"367\" y=\"-8.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3420 "</g>\n", 3421 "<!-- 3->3 -->\n", 3422 "<g id=\"edge7\" class=\"edge\">\n", 3423 "<title>3->3</title>\n", 3424 "<path fill=\"none\" stroke=\"black\" d=\"M448.35,-42.71C446.74,-52.21 450.62,-60.68 460,-60.68 466.88,-60.68 470.81,-56.11 471.77,-49.92\"/>\n", 3425 "<polygon fill=\"black\" stroke=\"black\" points=\"471.65,-42.71 474.91,-49.66 471.7,-46.21 471.76,-49.71 471.76,-49.71 471.76,-49.71 471.7,-46.21 468.61,-49.77 471.65,-42.71 471.65,-42.71\"/>\n", 3426 "<text text-anchor=\"start\" x=\"433.5\" y=\"-64.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3427 "</g>\n", 3428 "</g>\n", 3429 "</svg>\n", 3430 "</div>" 3431 ], 3432 "text/plain": [ 3433 "<IPython.core.display.HTML object>" 3434 ] 3435 }, 3436 "metadata": {}, 3437 "output_type": "display_data" 3438 } 3439 ], 3440 "source": [ 3441 "maxeven1 = spot.automaton(\"randaut -A 'parity max even 1' -Q4 2|\")\n", 3442 "display2(maxeven1, spot.colorize_parity(maxeven1))" 3443 ] 3444 }, 3445 { 3446 "cell_type": "markdown", 3447 "metadata": {}, 3448 "source": [ 3449 "Here `Streett 1` is just a synonym for `parity max odd 2`. (Spot's automaton printer cannot guess which name should be prefered.)" 3450 ] 3451 }, 3452 { 3453 "cell_type": "code", 3454 "execution_count": 22, 3455 "metadata": {}, 3456 "outputs": [ 3457 { 3458 "data": { 3459 "text/plain": [ 3460 "'Streett 1'" 3461 ] 3462 }, 3463 "execution_count": 22, 3464 "metadata": {}, 3465 "output_type": "execute_result" 3466 } 3467 ], 3468 "source": [ 3469 "spot.acc_cond(\"parity max odd 2\").name()" 3470 ] 3471 }, 3472 { 3473 "cell_type": "markdown", 3474 "metadata": {}, 3475 "source": [ 3476 "# Cleanup parity\n", 3477 "\n", 3478 "The `cleanup_parity()` function removes useless colors of an automaton with parity acceptance.\n", 3479 "This function is just looking at colors that do not occur in the automaton to perform the simplification.\n", 3480 "For a stronger simplification, see [`reduce_parity()`](#Reduce-parity) below." 3481 ] 3482 }, 3483 { 3484 "cell_type": "code", 3485 "execution_count": 23, 3486 "metadata": {}, 3487 "outputs": [ 3488 { 3489 "data": { 3490 "text/html": [ 3491 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3492 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3493 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3494 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3495 " -->\n", 3496 "<!-- Pages: 1 -->\n", 3497 "<svg width=\"490pt\" height=\"169pt\"\n", 3498 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3499 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 3500 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 3501 "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 3502 "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3503 "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 3504 "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3505 "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 3506 "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 3507 "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 3508 "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 3509 "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 3510 "<text text-anchor=\"start\" x=\"187\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n", 3511 "<!-- I -->\n", 3512 "<!-- 0 -->\n", 3513 "<g id=\"node2\" class=\"node\">\n", 3514 "<title>0</title>\n", 3515 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 3516 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3517 "</g>\n", 3518 "<!-- I->0 -->\n", 3519 "<g id=\"edge1\" class=\"edge\">\n", 3520 "<title>I->0</title>\n", 3521 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 3522 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 3523 "</g>\n", 3524 "<!-- 2 -->\n", 3525 "<g id=\"node3\" class=\"node\">\n", 3526 "<title>2</title>\n", 3527 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 3528 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3529 "</g>\n", 3530 "<!-- 0->2 -->\n", 3531 "<g id=\"edge2\" class=\"edge\">\n", 3532 "<title>0->2</title>\n", 3533 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 3534 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 3535 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3536 "</g>\n", 3537 "<!-- 3 -->\n", 3538 "<g id=\"node4\" class=\"node\">\n", 3539 "<title>3</title>\n", 3540 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 3541 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3542 "</g>\n", 3543 "<!-- 0->3 -->\n", 3544 "<g id=\"edge3\" class=\"edge\">\n", 3545 "<title>0->3</title>\n", 3546 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 3547 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 3548 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3549 "</g>\n", 3550 "<!-- 1 -->\n", 3551 "<g id=\"node5\" class=\"node\">\n", 3552 "<title>1</title>\n", 3553 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 3554 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3555 "</g>\n", 3556 "<!-- 2->1 -->\n", 3557 "<g id=\"edge6\" class=\"edge\">\n", 3558 "<title>2->1</title>\n", 3559 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 3560 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 3561 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3562 "</g>\n", 3563 "<!-- 3->0 -->\n", 3564 "<g id=\"edge8\" class=\"edge\">\n", 3565 "<title>3->0</title>\n", 3566 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 3567 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 3568 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 3569 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 3570 "</g>\n", 3571 "<!-- 3->2 -->\n", 3572 "<g id=\"edge7\" class=\"edge\">\n", 3573 "<title>3->2</title>\n", 3574 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 3575 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 3576 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3577 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 3578 "</g>\n", 3579 "<!-- 3->3 -->\n", 3580 "<g id=\"edge9\" class=\"edge\">\n", 3581 "<title>3->3</title>\n", 3582 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 3583 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 3584 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3585 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 3586 "</g>\n", 3587 "<!-- 1->0 -->\n", 3588 "<g id=\"edge4\" class=\"edge\">\n", 3589 "<title>1->0</title>\n", 3590 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 3591 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 3592 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3593 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3594 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 3595 "</g>\n", 3596 "<!-- 1->2 -->\n", 3597 "<g id=\"edge5\" class=\"edge\">\n", 3598 "<title>1->2</title>\n", 3599 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 3600 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 3601 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3602 "</g>\n", 3603 "</g>\n", 3604 "</svg>\n", 3605 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3606 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3607 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3608 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3609 " -->\n", 3610 "<!-- Pages: 1 -->\n", 3611 "<svg width=\"490pt\" height=\"172pt\"\n", 3612 " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3613 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n", 3614 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n", 3615 "<text text-anchor=\"start\" x=\"190.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 3616 "<text text-anchor=\"start\" x=\"213.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3617 "<text text-anchor=\"start\" x=\"229.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 3618 "<text text-anchor=\"start\" x=\"271.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3619 "<text text-anchor=\"start\" x=\"287.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 3620 "<text text-anchor=\"start\" x=\"213.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 3621 "<!-- I -->\n", 3622 "<!-- 0 -->\n", 3623 "<g id=\"node2\" class=\"node\">\n", 3624 "<title>0</title>\n", 3625 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n", 3626 "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3627 "</g>\n", 3628 "<!-- I->0 -->\n", 3629 "<g id=\"edge1\" class=\"edge\">\n", 3630 "<title>I->0</title>\n", 3631 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n", 3632 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n", 3633 "</g>\n", 3634 "<!-- 2 -->\n", 3635 "<g id=\"node3\" class=\"node\">\n", 3636 "<title>2</title>\n", 3637 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", 3638 "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3639 "</g>\n", 3640 "<!-- 0->2 -->\n", 3641 "<g id=\"edge2\" class=\"edge\">\n", 3642 "<title>0->2</title>\n", 3643 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n", 3644 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n", 3645 "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3646 "</g>\n", 3647 "<!-- 3 -->\n", 3648 "<g id=\"node4\" class=\"node\">\n", 3649 "<title>3</title>\n", 3650 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n", 3651 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3652 "</g>\n", 3653 "<!-- 0->3 -->\n", 3654 "<g id=\"edge3\" class=\"edge\">\n", 3655 "<title>0->3</title>\n", 3656 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n", 3657 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n", 3658 "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3659 "</g>\n", 3660 "<!-- 1 -->\n", 3661 "<g id=\"node5\" class=\"node\">\n", 3662 "<title>1</title>\n", 3663 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n", 3664 "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3665 "</g>\n", 3666 "<!-- 2->1 -->\n", 3667 "<g id=\"edge6\" class=\"edge\">\n", 3668 "<title>2->1</title>\n", 3669 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n", 3670 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n", 3671 "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3672 "</g>\n", 3673 "<!-- 3->0 -->\n", 3674 "<g id=\"edge8\" class=\"edge\">\n", 3675 "<title>3->0</title>\n", 3676 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n", 3677 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n", 3678 "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 3679 "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3680 "</g>\n", 3681 "<!-- 3->2 -->\n", 3682 "<g id=\"edge7\" class=\"edge\">\n", 3683 "<title>3->2</title>\n", 3684 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n", 3685 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n", 3686 "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3687 "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3688 "</g>\n", 3689 "<!-- 3->3 -->\n", 3690 "<g id=\"edge9\" class=\"edge\">\n", 3691 "<title>3->3</title>\n", 3692 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n", 3693 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n", 3694 "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3695 "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3696 "</g>\n", 3697 "<!-- 1->0 -->\n", 3698 "<g id=\"edge4\" class=\"edge\">\n", 3699 "<title>1->0</title>\n", 3700 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n", 3701 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n", 3702 "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 3703 "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3704 "</g>\n", 3705 "<!-- 1->2 -->\n", 3706 "<g id=\"edge5\" class=\"edge\">\n", 3707 "<title>1->2</title>\n", 3708 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n", 3709 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n", 3710 "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3711 "</g>\n", 3712 "</g>\n", 3713 "</svg>\n", 3714 "</div>" 3715 ], 3716 "text/plain": [ 3717 "<IPython.core.display.HTML object>" 3718 ] 3719 }, 3720 "metadata": {}, 3721 "output_type": "display_data" 3722 }, 3723 { 3724 "data": { 3725 "text/html": [ 3726 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3727 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3728 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3729 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3730 " -->\n", 3731 "<!-- Pages: 1 -->\n", 3732 "<svg width=\"514pt\" height=\"190pt\"\n", 3733 " viewBox=\"0.00 0.00 513.50 189.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3734 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 185.93)\">\n", 3735 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.93 509.5,-185.93 509.5,4 -4,4\"/>\n", 3736 "<text text-anchor=\"start\" x=\"107.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 3737 "<text text-anchor=\"start\" x=\"130.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 3738 "<text text-anchor=\"start\" x=\"146.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 3739 "<text text-anchor=\"start\" x=\"192.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 3740 "<text text-anchor=\"start\" x=\"208.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 3741 "<text text-anchor=\"start\" x=\"250.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 3742 "<text text-anchor=\"start\" x=\"266.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 3743 "<text text-anchor=\"start\" x=\"312.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3744 "<text text-anchor=\"start\" x=\"328.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 3745 "<text text-anchor=\"start\" x=\"366.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3746 "<text text-anchor=\"start\" x=\"382.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n", 3747 "<text text-anchor=\"start\" x=\"197.25\" y=\"-153.73\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n", 3748 "<!-- I -->\n", 3749 "<!-- 0 -->\n", 3750 "<g id=\"node2\" class=\"node\">\n", 3751 "<title>0</title>\n", 3752 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n", 3753 "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3754 "</g>\n", 3755 "<!-- I->0 -->\n", 3756 "<g id=\"edge1\" class=\"edge\">\n", 3757 "<title>I->0</title>\n", 3758 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n", 3759 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n", 3760 "</g>\n", 3761 "<!-- 2 -->\n", 3762 "<g id=\"node3\" class=\"node\">\n", 3763 "<title>2</title>\n", 3764 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n", 3765 "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3766 "</g>\n", 3767 "<!-- 0->2 -->\n", 3768 "<g id=\"edge2\" class=\"edge\">\n", 3769 "<title>0->2</title>\n", 3770 "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n", 3771 "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n", 3772 "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3773 "</g>\n", 3774 "<!-- 3 -->\n", 3775 "<g id=\"node4\" class=\"node\">\n", 3776 "<title>3</title>\n", 3777 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 3778 "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3779 "</g>\n", 3780 "<!-- 0->3 -->\n", 3781 "<g id=\"edge3\" class=\"edge\">\n", 3782 "<title>0->3</title>\n", 3783 "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n", 3784 "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n", 3785 "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3786 "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 3787 "</g>\n", 3788 "<!-- 2->2 -->\n", 3789 "<g id=\"edge7\" class=\"edge\">\n", 3790 "<title>2->2</title>\n", 3791 "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n", 3792 "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n", 3793 "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 3794 "</g>\n", 3795 "<!-- 1 -->\n", 3796 "<g id=\"node5\" class=\"node\">\n", 3797 "<title>1</title>\n", 3798 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n", 3799 "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3800 "</g>\n", 3801 "<!-- 2->1 -->\n", 3802 "<g id=\"edge8\" class=\"edge\">\n", 3803 "<title>2->1</title>\n", 3804 "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n", 3805 "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n", 3806 "<text text-anchor=\"start\" x=\"238\" y=\"-103.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3807 "<text text-anchor=\"start\" x=\"242.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3808 "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 3809 "<text text-anchor=\"start\" x=\"274.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 3810 "</g>\n", 3811 "<!-- 3->2 -->\n", 3812 "<g id=\"edge10\" class=\"edge\">\n", 3813 "<title>3->2</title>\n", 3814 "<path fill=\"none\" stroke=\"black\" d=\"M469.15,-71.93C462.86,-79.04 454.36,-87.16 445,-91.93 384.71,-122.65 362.41,-112.13 295,-117.93 269.76,-120.1 262.48,-124.47 238,-117.93 229.88,-115.77 221.7,-111.68 214.67,-107.43\"/>\n", 3815 "<polygon fill=\"black\" stroke=\"black\" points=\"208.56,-103.54 216.15,-104.65 211.51,-105.42 214.46,-107.3 214.46,-107.3 214.46,-107.3 211.51,-105.42 212.76,-109.96 208.56,-103.54 208.56,-103.54\"/>\n", 3816 "<text text-anchor=\"start\" x=\"313\" y=\"-134.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3817 "<text text-anchor=\"start\" x=\"333.5\" y=\"-119.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3818 "</g>\n", 3819 "<!-- 3->3 -->\n", 3820 "<g id=\"edge9\" class=\"edge\">\n", 3821 "<title>3->3</title>\n", 3822 "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n", 3823 "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n", 3824 "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 3825 "<text text-anchor=\"start\" x=\"465\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 3826 "<text text-anchor=\"start\" x=\"481\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 3827 "</g>\n", 3828 "<!-- 1->0 -->\n", 3829 "<g id=\"edge5\" class=\"edge\">\n", 3830 "<title>1->0</title>\n", 3831 "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n", 3832 "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n", 3833 "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 3834 "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3835 "</g>\n", 3836 "<!-- 1->2 -->\n", 3837 "<g id=\"edge4\" class=\"edge\">\n", 3838 "<title>1->2</title>\n", 3839 "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n", 3840 "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n", 3841 "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3842 "</g>\n", 3843 "<!-- 1->3 -->\n", 3844 "<g id=\"edge6\" class=\"edge\">\n", 3845 "<title>1->3</title>\n", 3846 "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n", 3847 "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n", 3848 "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3849 "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", 3850 "</g>\n", 3851 "</g>\n", 3852 "</svg>\n", 3853 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3854 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3855 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3856 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3857 " -->\n", 3858 "<!-- Pages: 1 -->\n", 3859 "<svg width=\"514pt\" height=\"178pt\"\n", 3860 " viewBox=\"0.00 0.00 513.50 177.79\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3861 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 173.79)\">\n", 3862 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-173.79 509.5,-173.79 509.5,4 -4,4\"/>\n", 3863 "<text text-anchor=\"start\" x=\"231.25\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 3864 "<text text-anchor=\"start\" x=\"254.25\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3865 "<text text-anchor=\"start\" x=\"270.25\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 3866 "<text text-anchor=\"start\" x=\"221.25\" y=\"-141.59\" font-family=\"Lato\" font-size=\"14.00\">[co-Büchi]</text>\n", 3867 "<!-- I -->\n", 3868 "<!-- 0 -->\n", 3869 "<g id=\"node2\" class=\"node\">\n", 3870 "<title>0</title>\n", 3871 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-21.79\" rx=\"18\" ry=\"18\"/>\n", 3872 "<text text-anchor=\"middle\" x=\"56\" y=\"-18.09\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3873 "</g>\n", 3874 "<!-- I->0 -->\n", 3875 "<g id=\"edge1\" class=\"edge\">\n", 3876 "<title>I->0</title>\n", 3877 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-21.79C2.79,-21.79 17.15,-21.79 30.63,-21.79\"/>\n", 3878 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-21.79 30.94,-24.94 34.44,-21.79 30.94,-21.79 30.94,-21.79 30.94,-21.79 34.44,-21.79 30.94,-18.64 37.94,-21.79 37.94,-21.79\"/>\n", 3879 "</g>\n", 3880 "<!-- 2 -->\n", 3881 "<g id=\"node3\" class=\"node\">\n", 3882 "<title>2</title>\n", 3883 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-82.79\" rx=\"18\" ry=\"18\"/>\n", 3884 "<text text-anchor=\"middle\" x=\"193.5\" y=\"-79.09\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3885 "</g>\n", 3886 "<!-- 0->2 -->\n", 3887 "<g id=\"edge2\" class=\"edge\">\n", 3888 "<title>0->2</title>\n", 3889 "<path fill=\"none\" stroke=\"black\" d=\"M72.81,-28.91C96.88,-39.75 142.81,-60.42 170.24,-72.77\"/>\n", 3890 "<polygon fill=\"black\" stroke=\"black\" points=\"176.79,-75.72 169.12,-75.72 173.6,-74.29 170.41,-72.85 170.41,-72.85 170.41,-72.85 173.6,-74.29 171.7,-69.98 176.79,-75.72 176.79,-75.72\"/>\n", 3891 "<text text-anchor=\"start\" x=\"92\" y=\"-66.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3892 "</g>\n", 3893 "<!-- 3 -->\n", 3894 "<g id=\"node4\" class=\"node\">\n", 3895 "<title>3</title>\n", 3896 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-54.79\" rx=\"18\" ry=\"18\"/>\n", 3897 "<text text-anchor=\"middle\" x=\"481\" y=\"-51.09\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3898 "</g>\n", 3899 "<!-- 0->3 -->\n", 3900 "<g id=\"edge3\" class=\"edge\">\n", 3901 "<title>0->3</title>\n", 3902 "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-18.11C112.81,-10.09 212.46,7.37 295,-3.79 354.8,-11.89 422.58,-34.06 457.12,-46.33\"/>\n", 3903 "<polygon fill=\"black\" stroke=\"black\" points=\"463.97,-48.79 456.32,-49.39 460.68,-47.61 457.39,-46.43 457.39,-46.43 457.39,-46.43 460.68,-47.61 458.45,-43.46 463.97,-48.79 463.97,-48.79\"/>\n", 3904 "<text text-anchor=\"start\" x=\"238\" y=\"-22.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3905 "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3906 "</g>\n", 3907 "<!-- 2->2 -->\n", 3908 "<g id=\"edge7\" class=\"edge\">\n", 3909 "<title>2->2</title>\n", 3910 "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-96.84C177.35,-107.71 181.27,-118.79 193.5,-118.79 203.06,-118.79 207.54,-112.03 206.95,-103.88\"/>\n", 3911 "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-96.84 209.95,-102.91 206.07,-100.24 206.89,-103.64 206.89,-103.64 206.89,-103.64 206.07,-100.24 203.83,-104.38 205.26,-96.84 205.26,-96.84\"/>\n", 3912 "<text text-anchor=\"start\" x=\"169\" y=\"-122.59\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 3913 "</g>\n", 3914 "<!-- 1 -->\n", 3915 "<g id=\"node5\" class=\"node\">\n", 3916 "<title>1</title>\n", 3917 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-54.79\" rx=\"18\" ry=\"18\"/>\n", 3918 "<text text-anchor=\"middle\" x=\"341.5\" y=\"-51.09\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3919 "</g>\n", 3920 "<!-- 2->1 -->\n", 3921 "<g id=\"edge8\" class=\"edge\">\n", 3922 "<title>2->1</title>\n", 3923 "<path fill=\"none\" stroke=\"black\" d=\"M211.77,-81.89C231.95,-80.56 266.25,-77.48 295,-70.79 302.46,-69.06 310.4,-66.52 317.53,-63.97\"/>\n", 3924 "<polygon fill=\"black\" stroke=\"black\" points=\"324.33,-61.45 318.86,-66.84 321.05,-62.67 317.77,-63.89 317.77,-63.89 317.77,-63.89 321.05,-62.67 316.67,-60.93 324.33,-61.45 324.33,-61.45\"/>\n", 3925 "<text text-anchor=\"start\" x=\"238\" y=\"-97.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3926 "<text text-anchor=\"start\" x=\"258.5\" y=\"-82.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3927 "</g>\n", 3928 "<!-- 3->2 -->\n", 3929 "<g id=\"edge10\" class=\"edge\">\n", 3930 "<title>3->2</title>\n", 3931 "<path fill=\"none\" stroke=\"black\" d=\"M469.17,-68.84C462.9,-75.96 454.39,-84.09 445,-88.79 384.65,-119.06 362.3,-107.44 295,-112.79 269.75,-114.8 262.19,-120.33 238,-112.79 229.1,-110.02 220.42,-104.73 213.18,-99.35\"/>\n", 3932 "<polygon fill=\"black\" stroke=\"black\" points=\"207.46,-94.87 214.92,-96.71 210.22,-97.03 212.97,-99.19 212.97,-99.19 212.97,-99.19 210.22,-97.03 211.03,-101.67 207.46,-94.87 207.46,-94.87\"/>\n", 3933 "<text text-anchor=\"start\" x=\"313\" y=\"-114.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3934 "</g>\n", 3935 "<!-- 3->3 -->\n", 3936 "<g id=\"edge9\" class=\"edge\">\n", 3937 "<title>3->3</title>\n", 3938 "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-69.59C466.81,-80.21 470.38,-90.79 481,-90.79 489.13,-90.79 493.13,-84.59 493,-76.91\"/>\n", 3939 "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-69.59 496.02,-75.93 492.31,-73.03 492.92,-76.48 492.92,-76.48 492.92,-76.48 492.31,-73.03 489.82,-77.03 491.71,-69.59 491.71,-69.59\"/>\n", 3940 "<text text-anchor=\"start\" x=\"456.5\" y=\"-109.59\" font-family=\"Lato\" font-size=\"14.00\">p0 & p1</text>\n", 3941 "<text text-anchor=\"start\" x=\"473\" y=\"-94.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3942 "</g>\n", 3943 "<!-- 1->0 -->\n", 3944 "<g id=\"edge5\" class=\"edge\">\n", 3945 "<title>1->0</title>\n", 3946 "<path fill=\"none\" stroke=\"black\" d=\"M323.71,-51.08C315.15,-49.28 304.56,-47.22 295,-45.79 217.31,-34.22 124.5,-26.65 81.32,-23.48\"/>\n", 3947 "<polygon fill=\"black\" stroke=\"black\" points=\"74.1,-22.96 81.3,-20.32 77.59,-23.21 81.08,-23.46 81.08,-23.46 81.08,-23.46 77.59,-23.21 80.85,-26.61 74.1,-22.96 74.1,-22.96\"/>\n", 3948 "<text text-anchor=\"start\" x=\"167\" y=\"-39.59\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 3949 "</g>\n", 3950 "<!-- 1->2 -->\n", 3951 "<g id=\"edge4\" class=\"edge\">\n", 3952 "<title>1->2</title>\n", 3953 "<path fill=\"none\" stroke=\"black\" d=\"M323.41,-52.2C302.72,-49.69 267.05,-47.36 238,-55.79 229.63,-58.22 221.3,-62.75 214.2,-67.41\"/>\n", 3954 "<polygon fill=\"black\" stroke=\"black\" points=\"208.06,-71.67 212.01,-65.1 210.93,-69.68 213.81,-67.68 213.81,-67.68 213.81,-67.68 210.93,-69.68 215.6,-70.27 208.06,-71.67 208.06,-71.67\"/>\n", 3955 "<text text-anchor=\"start\" x=\"238\" y=\"-59.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3956 "</g>\n", 3957 "<!-- 1->3 -->\n", 3958 "<g id=\"edge6\" class=\"edge\">\n", 3959 "<title>1->3</title>\n", 3960 "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-54.79C383.72,-54.79 427.72,-54.79 455.33,-54.79\"/>\n", 3961 "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-54.79 455.65,-57.94 459.15,-54.79 455.65,-54.79 455.65,-54.79 455.65,-54.79 459.15,-54.79 455.65,-51.64 462.65,-54.79 462.65,-54.79\"/>\n", 3962 "<text text-anchor=\"start\" x=\"388\" y=\"-73.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 3963 "<text text-anchor=\"start\" x=\"408.5\" y=\"-58.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3964 "</g>\n", 3965 "</g>\n", 3966 "</svg>\n", 3967 "</div>" 3968 ], 3969 "text/plain": [ 3970 "<IPython.core.display.HTML object>" 3971 ] 3972 }, 3973 "metadata": {}, 3974 "output_type": "display_data" 3975 }, 3976 { 3977 "data": { 3978 "text/html": [ 3979 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3980 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3981 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3982 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3983 " -->\n", 3984 "<!-- Pages: 1 -->\n", 3985 "<svg width=\"490pt\" height=\"169pt\"\n", 3986 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3987 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 3988 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 3989 "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 3990 "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 3991 "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 3992 "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 3993 "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 3994 "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3995 "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 3996 "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3997 "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 3998 "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n", 3999 "<!-- I -->\n", 4000 "<!-- 0 -->\n", 4001 "<g id=\"node2\" class=\"node\">\n", 4002 "<title>0</title>\n", 4003 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 4004 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4005 "</g>\n", 4006 "<!-- I->0 -->\n", 4007 "<g id=\"edge1\" class=\"edge\">\n", 4008 "<title>I->0</title>\n", 4009 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 4010 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 4011 "</g>\n", 4012 "<!-- 2 -->\n", 4013 "<g id=\"node3\" class=\"node\">\n", 4014 "<title>2</title>\n", 4015 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 4016 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4017 "</g>\n", 4018 "<!-- 0->2 -->\n", 4019 "<g id=\"edge2\" class=\"edge\">\n", 4020 "<title>0->2</title>\n", 4021 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 4022 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 4023 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4024 "</g>\n", 4025 "<!-- 3 -->\n", 4026 "<g id=\"node4\" class=\"node\">\n", 4027 "<title>3</title>\n", 4028 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 4029 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4030 "</g>\n", 4031 "<!-- 0->3 -->\n", 4032 "<g id=\"edge3\" class=\"edge\">\n", 4033 "<title>0->3</title>\n", 4034 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 4035 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 4036 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4037 "</g>\n", 4038 "<!-- 1 -->\n", 4039 "<g id=\"node5\" class=\"node\">\n", 4040 "<title>1</title>\n", 4041 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 4042 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4043 "</g>\n", 4044 "<!-- 2->1 -->\n", 4045 "<g id=\"edge6\" class=\"edge\">\n", 4046 "<title>2->1</title>\n", 4047 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 4048 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 4049 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4050 "</g>\n", 4051 "<!-- 3->0 -->\n", 4052 "<g id=\"edge8\" class=\"edge\">\n", 4053 "<title>3->0</title>\n", 4054 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 4055 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 4056 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 4057 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4058 "</g>\n", 4059 "<!-- 3->2 -->\n", 4060 "<g id=\"edge7\" class=\"edge\">\n", 4061 "<title>3->2</title>\n", 4062 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 4063 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 4064 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4065 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 4066 "</g>\n", 4067 "<!-- 3->3 -->\n", 4068 "<g id=\"edge9\" class=\"edge\">\n", 4069 "<title>3->3</title>\n", 4070 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 4071 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 4072 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4073 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4074 "</g>\n", 4075 "<!-- 1->0 -->\n", 4076 "<g id=\"edge4\" class=\"edge\">\n", 4077 "<title>1->0</title>\n", 4078 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 4079 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 4080 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4081 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4082 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4083 "</g>\n", 4084 "<!-- 1->2 -->\n", 4085 "<g id=\"edge5\" class=\"edge\">\n", 4086 "<title>1->2</title>\n", 4087 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 4088 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 4089 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4090 "</g>\n", 4091 "</g>\n", 4092 "</svg>\n", 4093 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4094 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4095 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4096 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4097 " -->\n", 4098 "<!-- Pages: 1 -->\n", 4099 "<svg width=\"490pt\" height=\"172pt\"\n", 4100 " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4101 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n", 4102 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n", 4103 "<text text-anchor=\"start\" x=\"193.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 4104 "<text text-anchor=\"start\" x=\"214.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4105 "<text text-anchor=\"start\" x=\"230.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 4106 "<text text-anchor=\"start\" x=\"268.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4107 "<text text-anchor=\"start\" x=\"284.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 4108 "<text text-anchor=\"start\" x=\"209.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[Streett 1]</text>\n", 4109 "<!-- I -->\n", 4110 "<!-- 0 -->\n", 4111 "<g id=\"node2\" class=\"node\">\n", 4112 "<title>0</title>\n", 4113 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n", 4114 "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4115 "</g>\n", 4116 "<!-- I->0 -->\n", 4117 "<g id=\"edge1\" class=\"edge\">\n", 4118 "<title>I->0</title>\n", 4119 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n", 4120 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n", 4121 "</g>\n", 4122 "<!-- 2 -->\n", 4123 "<g id=\"node3\" class=\"node\">\n", 4124 "<title>2</title>\n", 4125 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", 4126 "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4127 "</g>\n", 4128 "<!-- 0->2 -->\n", 4129 "<g id=\"edge2\" class=\"edge\">\n", 4130 "<title>0->2</title>\n", 4131 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n", 4132 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n", 4133 "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4134 "</g>\n", 4135 "<!-- 3 -->\n", 4136 "<g id=\"node4\" class=\"node\">\n", 4137 "<title>3</title>\n", 4138 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n", 4139 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4140 "</g>\n", 4141 "<!-- 0->3 -->\n", 4142 "<g id=\"edge3\" class=\"edge\">\n", 4143 "<title>0->3</title>\n", 4144 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n", 4145 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n", 4146 "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4147 "</g>\n", 4148 "<!-- 1 -->\n", 4149 "<g id=\"node5\" class=\"node\">\n", 4150 "<title>1</title>\n", 4151 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n", 4152 "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4153 "</g>\n", 4154 "<!-- 2->1 -->\n", 4155 "<g id=\"edge6\" class=\"edge\">\n", 4156 "<title>2->1</title>\n", 4157 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n", 4158 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n", 4159 "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4160 "</g>\n", 4161 "<!-- 3->0 -->\n", 4162 "<g id=\"edge8\" class=\"edge\">\n", 4163 "<title>3->0</title>\n", 4164 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n", 4165 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n", 4166 "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 4167 "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4168 "</g>\n", 4169 "<!-- 3->2 -->\n", 4170 "<g id=\"edge7\" class=\"edge\">\n", 4171 "<title>3->2</title>\n", 4172 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n", 4173 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n", 4174 "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4175 "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4176 "</g>\n", 4177 "<!-- 3->3 -->\n", 4178 "<g id=\"edge9\" class=\"edge\">\n", 4179 "<title>3->3</title>\n", 4180 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n", 4181 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n", 4182 "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4183 "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4184 "</g>\n", 4185 "<!-- 1->0 -->\n", 4186 "<g id=\"edge4\" class=\"edge\">\n", 4187 "<title>1->0</title>\n", 4188 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n", 4189 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n", 4190 "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4191 "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4192 "</g>\n", 4193 "<!-- 1->2 -->\n", 4194 "<g id=\"edge5\" class=\"edge\">\n", 4195 "<title>1->2</title>\n", 4196 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n", 4197 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n", 4198 "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4199 "</g>\n", 4200 "</g>\n", 4201 "</svg>\n", 4202 "</div>" 4203 ], 4204 "text/plain": [ 4205 "<IPython.core.display.HTML object>" 4206 ] 4207 }, 4208 "metadata": {}, 4209 "output_type": "display_data" 4210 } 4211 ], 4212 "source": [ 4213 "display2(minodd4, spot.cleanup_parity(minodd4))\n", 4214 "display2(maxodd5, spot.cleanup_parity(maxodd5))\n", 4215 "display2(maxodd4, spot.cleanup_parity(maxodd4))" 4216 ] 4217 }, 4218 { 4219 "cell_type": "markdown", 4220 "metadata": {}, 4221 "source": [ 4222 "Here Rabin 1, co-Büchi, and Streett 1, are respectively the same as \"min odd 2\", \"max odd 1\", \"max odd 2\".\n", 4223 "\n", 4224 "# Reduce parity\n", 4225 "\n", 4226 "The `reduce_parity()` function is a more elaborate version of `cleanup_parity()`. It implements an algorithm by Carton and Maceiras (*Computing the Rabin index of a parity automaton*, Informatique théorique et applications, 1999), to obtain the minimal parity acceptance condition for a given automaton. Why the original algorithm assume *max odd* parity, this version with work with the four types of parity acceptance. It will only try to preserve the kind (max/min) and may change the style if it allows saving one color. Furthermore, it can colorize (or uncolorize) automata at the same time,\n", 4227 "making it a very nice replacement for both `cleanup_parity()` and `colorize_parity()`.\n", 4228 "\n", 4229 "It takes two arguments:\n", 4230 "1. the automaton whose parity acceptance condition should be reduced\n", 4231 "2. a Boolean indicating whether the output should be colored (`True`), or if transition with no color can be used (`False`).\n", 4232 "\n", 4233 "By default, the second argument is `False`, because acceptance sets is a scarse ressource in Spot." 4234 ] 4235 }, 4236 { 4237 "cell_type": "code", 4238 "execution_count": 24, 4239 "metadata": {}, 4240 "outputs": [ 4241 { 4242 "data": { 4243 "text/html": [ 4244 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4245 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4246 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4247 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4248 " -->\n", 4249 "<!-- Pages: 1 -->\n", 4250 "<svg width=\"490pt\" height=\"169pt\"\n", 4251 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4252 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 4253 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 4254 "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 4255 "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4256 "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 4257 "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4258 "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 4259 "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4260 "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 4261 "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 4262 "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 4263 "<text text-anchor=\"start\" x=\"187\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n", 4264 "<!-- I -->\n", 4265 "<!-- 0 -->\n", 4266 "<g id=\"node2\" class=\"node\">\n", 4267 "<title>0</title>\n", 4268 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 4269 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4270 "</g>\n", 4271 "<!-- I->0 -->\n", 4272 "<g id=\"edge1\" class=\"edge\">\n", 4273 "<title>I->0</title>\n", 4274 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 4275 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 4276 "</g>\n", 4277 "<!-- 2 -->\n", 4278 "<g id=\"node3\" class=\"node\">\n", 4279 "<title>2</title>\n", 4280 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 4281 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4282 "</g>\n", 4283 "<!-- 0->2 -->\n", 4284 "<g id=\"edge2\" class=\"edge\">\n", 4285 "<title>0->2</title>\n", 4286 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 4287 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 4288 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4289 "</g>\n", 4290 "<!-- 3 -->\n", 4291 "<g id=\"node4\" class=\"node\">\n", 4292 "<title>3</title>\n", 4293 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 4294 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4295 "</g>\n", 4296 "<!-- 0->3 -->\n", 4297 "<g id=\"edge3\" class=\"edge\">\n", 4298 "<title>0->3</title>\n", 4299 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 4300 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 4301 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4302 "</g>\n", 4303 "<!-- 1 -->\n", 4304 "<g id=\"node5\" class=\"node\">\n", 4305 "<title>1</title>\n", 4306 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 4307 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4308 "</g>\n", 4309 "<!-- 2->1 -->\n", 4310 "<g id=\"edge6\" class=\"edge\">\n", 4311 "<title>2->1</title>\n", 4312 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 4313 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 4314 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4315 "</g>\n", 4316 "<!-- 3->0 -->\n", 4317 "<g id=\"edge8\" class=\"edge\">\n", 4318 "<title>3->0</title>\n", 4319 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 4320 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 4321 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 4322 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4323 "</g>\n", 4324 "<!-- 3->2 -->\n", 4325 "<g id=\"edge7\" class=\"edge\">\n", 4326 "<title>3->2</title>\n", 4327 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 4328 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 4329 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4330 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 4331 "</g>\n", 4332 "<!-- 3->3 -->\n", 4333 "<g id=\"edge9\" class=\"edge\">\n", 4334 "<title>3->3</title>\n", 4335 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 4336 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 4337 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4338 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4339 "</g>\n", 4340 "<!-- 1->0 -->\n", 4341 "<g id=\"edge4\" class=\"edge\">\n", 4342 "<title>1->0</title>\n", 4343 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 4344 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 4345 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4346 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4347 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4348 "</g>\n", 4349 "<!-- 1->2 -->\n", 4350 "<g id=\"edge5\" class=\"edge\">\n", 4351 "<title>1->2</title>\n", 4352 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 4353 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 4354 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4355 "</g>\n", 4356 "</g>\n", 4357 "</svg>\n", 4358 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4359 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4360 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4361 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4362 " -->\n", 4363 "<!-- Pages: 1 -->\n", 4364 "<svg width=\"490pt\" height=\"155pt\"\n", 4365 " viewBox=\"0.00 0.00 490.00 155.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4366 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 151)\">\n", 4367 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-151 486,-151 486,4 -4,4\"/>\n", 4368 "<text text-anchor=\"start\" x=\"238\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">f</text>\n", 4369 "<text text-anchor=\"start\" x=\"221.5\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">[none]</text>\n", 4370 "<!-- I -->\n", 4371 "<!-- 0 -->\n", 4372 "<g id=\"node2\" class=\"node\">\n", 4373 "<title>0</title>\n", 4374 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43\" rx=\"18\" ry=\"18\"/>\n", 4375 "<text text-anchor=\"middle\" x=\"56\" y=\"-39.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4376 "</g>\n", 4377 "<!-- I->0 -->\n", 4378 "<g id=\"edge1\" class=\"edge\">\n", 4379 "<title>I->0</title>\n", 4380 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43C2.79,-43 17.15,-43 30.63,-43\"/>\n", 4381 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43 30.94,-46.15 34.44,-43 30.94,-43 30.94,-43 30.94,-43 34.44,-43 30.94,-39.85 37.94,-43 37.94,-43\"/>\n", 4382 "</g>\n", 4383 "<!-- 2 -->\n", 4384 "<g id=\"node3\" class=\"node\">\n", 4385 "<title>2</title>\n", 4386 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 4387 "<text text-anchor=\"middle\" x=\"335\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4388 "</g>\n", 4389 "<!-- 0->2 -->\n", 4390 "<g id=\"edge2\" class=\"edge\">\n", 4391 "<title>0->2</title>\n", 4392 "<path fill=\"none\" stroke=\"black\" d=\"M71.95,-52.16C92.48,-64.11 130.95,-84.27 167,-91 191.9,-95.65 199.07,-95.5 224,-91 255.67,-85.29 290.13,-71.02 311.88,-60.93\"/>\n", 4393 "<polygon fill=\"black\" stroke=\"black\" points=\"318.47,-57.82 313.49,-63.65 315.31,-59.31 312.14,-60.8 312.14,-60.8 312.14,-60.8 315.31,-59.31 310.8,-57.96 318.47,-57.82 318.47,-57.82\"/>\n", 4394 "<text text-anchor=\"start\" x=\"167\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4395 "</g>\n", 4396 "<!-- 3 -->\n", 4397 "<g id=\"node4\" class=\"node\">\n", 4398 "<title>3</title>\n", 4399 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 4400 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4401 "</g>\n", 4402 "<!-- 0->3 -->\n", 4403 "<g id=\"edge3\" class=\"edge\">\n", 4404 "<title>0->3</title>\n", 4405 "<path fill=\"none\" stroke=\"black\" d=\"M74.02,-43.27C92.53,-43.37 122.96,-42.98 149,-40 156.05,-39.19 163.64,-37.88 170.56,-36.49\"/>\n", 4406 "<polygon fill=\"black\" stroke=\"black\" points=\"177.75,-34.99 171.54,-39.51 174.32,-35.71 170.9,-36.42 170.9,-36.42 170.9,-36.42 174.32,-35.71 170.25,-33.34 177.75,-34.99 177.75,-34.99\"/>\n", 4407 "<text text-anchor=\"start\" x=\"92\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4408 "</g>\n", 4409 "<!-- 1 -->\n", 4410 "<g id=\"node5\" class=\"node\">\n", 4411 "<title>1</title>\n", 4412 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 4413 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4414 "</g>\n", 4415 "<!-- 2->1 -->\n", 4416 "<g id=\"edge6\" class=\"edge\">\n", 4417 "<title>2->1</title>\n", 4418 "<path fill=\"none\" stroke=\"black\" d=\"M353.27,-48.34C371.99,-46.22 402.6,-41.87 428,-34 432.36,-32.65 436.88,-30.88 441.16,-29.02\"/>\n", 4419 "<polygon fill=\"black\" stroke=\"black\" points=\"447.66,-26.05 442.6,-31.82 444.47,-27.5 441.29,-28.96 441.29,-28.96 441.29,-28.96 444.47,-27.5 439.98,-26.1 447.66,-26.05 447.66,-26.05\"/>\n", 4420 "<text text-anchor=\"start\" x=\"373\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4421 "</g>\n", 4422 "<!-- 3->0 -->\n", 4423 "<g id=\"edge8\" class=\"edge\">\n", 4424 "<title>3->0</title>\n", 4425 "<path fill=\"none\" stroke=\"black\" d=\"M178.18,-25.73C157.66,-19.93 121.55,-12.48 92,-21 86.57,-22.57 81.17,-25.25 76.29,-28.22\"/>\n", 4426 "<polygon fill=\"black\" stroke=\"black\" points=\"70.43,-32.06 74.56,-25.59 73.36,-30.14 76.28,-28.22 76.28,-28.22 76.28,-28.22 73.36,-30.14 78.01,-30.85 70.43,-32.06 70.43,-32.06\"/>\n", 4427 "<text text-anchor=\"start\" x=\"94\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 4428 "</g>\n", 4429 "<!-- 3->2 -->\n", 4430 "<g id=\"edge7\" class=\"edge\">\n", 4431 "<title>3->2</title>\n", 4432 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.33C237.59,-36.68 282.36,-42.86 310.02,-46.69\"/>\n", 4433 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-47.65 309.64,-49.81 313.53,-47.17 310.07,-46.69 310.07,-46.69 310.07,-46.69 313.53,-47.17 310.5,-43.57 317,-47.65 317,-47.65\"/>\n", 4434 "<text text-anchor=\"start\" x=\"242\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4435 "</g>\n", 4436 "<!-- 3->3 -->\n", 4437 "<g id=\"edge9\" class=\"edge\">\n", 4438 "<title>3->3</title>\n", 4439 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 4440 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 4441 "<text text-anchor=\"start\" x=\"169\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4442 "</g>\n", 4443 "<!-- 1->0 -->\n", 4444 "<g id=\"edge4\" class=\"edge\">\n", 4445 "<title>1->0</title>\n", 4446 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 370.5,0.63 234.56,0.04 167,-4 133.49,-6 122.74,0.51 92,-13 85.54,-15.84 79.38,-20.28 74.08,-24.88\"/>\n", 4447 "<polygon fill=\"black\" stroke=\"black\" points=\"68.69,-29.87 71.69,-22.8 71.26,-27.49 73.83,-25.11 73.83,-25.11 73.83,-25.11 71.26,-27.49 75.97,-27.42 68.69,-29.87 68.69,-29.87\"/>\n", 4448 "<text text-anchor=\"start\" x=\"244\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4449 "</g>\n", 4450 "<!-- 1->2 -->\n", 4451 "<g id=\"edge5\" class=\"edge\">\n", 4452 "<title>1->2</title>\n", 4453 "<path fill=\"none\" stroke=\"black\" d=\"M446.06,-14.75C427.08,-11.87 395.74,-9.46 371,-19 364.07,-21.67 357.62,-26.39 352.2,-31.36\"/>\n", 4454 "<polygon fill=\"black\" stroke=\"black\" points=\"347.13,-36.34 349.92,-29.18 349.63,-33.88 352.13,-31.43 352.13,-31.43 352.13,-31.43 349.63,-33.88 354.33,-33.68 347.13,-36.34 347.13,-36.34\"/>\n", 4455 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4456 "</g>\n", 4457 "</g>\n", 4458 "</svg>\n", 4459 "</div>" 4460 ], 4461 "text/plain": [ 4462 "<IPython.core.display.HTML object>" 4463 ] 4464 }, 4465 "metadata": {}, 4466 "output_type": "display_data" 4467 }, 4468 { 4469 "data": { 4470 "text/html": [ 4471 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4472 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4473 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4474 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4475 " -->\n", 4476 "<!-- Pages: 1 -->\n", 4477 "<svg width=\"490pt\" height=\"169pt\"\n", 4478 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4479 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 4480 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 4481 "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 4482 "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4483 "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 4484 "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4485 "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 4486 "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4487 "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 4488 "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 4489 "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 4490 "<text text-anchor=\"start\" x=\"187\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n", 4491 "<!-- I -->\n", 4492 "<!-- 0 -->\n", 4493 "<g id=\"node2\" class=\"node\">\n", 4494 "<title>0</title>\n", 4495 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 4496 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4497 "</g>\n", 4498 "<!-- I->0 -->\n", 4499 "<g id=\"edge1\" class=\"edge\">\n", 4500 "<title>I->0</title>\n", 4501 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 4502 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 4503 "</g>\n", 4504 "<!-- 2 -->\n", 4505 "<g id=\"node3\" class=\"node\">\n", 4506 "<title>2</title>\n", 4507 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 4508 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4509 "</g>\n", 4510 "<!-- 0->2 -->\n", 4511 "<g id=\"edge2\" class=\"edge\">\n", 4512 "<title>0->2</title>\n", 4513 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 4514 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 4515 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4516 "</g>\n", 4517 "<!-- 3 -->\n", 4518 "<g id=\"node4\" class=\"node\">\n", 4519 "<title>3</title>\n", 4520 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 4521 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4522 "</g>\n", 4523 "<!-- 0->3 -->\n", 4524 "<g id=\"edge3\" class=\"edge\">\n", 4525 "<title>0->3</title>\n", 4526 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 4527 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 4528 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4529 "</g>\n", 4530 "<!-- 1 -->\n", 4531 "<g id=\"node5\" class=\"node\">\n", 4532 "<title>1</title>\n", 4533 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 4534 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4535 "</g>\n", 4536 "<!-- 2->1 -->\n", 4537 "<g id=\"edge6\" class=\"edge\">\n", 4538 "<title>2->1</title>\n", 4539 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 4540 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 4541 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4542 "</g>\n", 4543 "<!-- 3->0 -->\n", 4544 "<g id=\"edge8\" class=\"edge\">\n", 4545 "<title>3->0</title>\n", 4546 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 4547 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 4548 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 4549 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4550 "</g>\n", 4551 "<!-- 3->2 -->\n", 4552 "<g id=\"edge7\" class=\"edge\">\n", 4553 "<title>3->2</title>\n", 4554 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 4555 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 4556 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4557 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 4558 "</g>\n", 4559 "<!-- 3->3 -->\n", 4560 "<g id=\"edge9\" class=\"edge\">\n", 4561 "<title>3->3</title>\n", 4562 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 4563 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 4564 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4565 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4566 "</g>\n", 4567 "<!-- 1->0 -->\n", 4568 "<g id=\"edge4\" class=\"edge\">\n", 4569 "<title>1->0</title>\n", 4570 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 4571 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 4572 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4573 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4574 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4575 "</g>\n", 4576 "<!-- 1->2 -->\n", 4577 "<g id=\"edge5\" class=\"edge\">\n", 4578 "<title>1->2</title>\n", 4579 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 4580 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 4581 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4582 "</g>\n", 4583 "</g>\n", 4584 "</svg>\n", 4585 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4586 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4587 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4588 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4589 " -->\n", 4590 "<!-- Pages: 1 -->\n", 4591 "<svg width=\"490pt\" height=\"183pt\"\n", 4592 " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4593 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n", 4594 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n", 4595 "<text text-anchor=\"start\" x=\"219.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 4596 "<text text-anchor=\"start\" x=\"242.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4597 "<text text-anchor=\"start\" x=\"258.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 4598 "<text text-anchor=\"start\" x=\"209.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[co-Büchi]</text>\n", 4599 "<!-- I -->\n", 4600 "<!-- 0 -->\n", 4601 "<g id=\"node2\" class=\"node\">\n", 4602 "<title>0</title>\n", 4603 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 4604 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4605 "</g>\n", 4606 "<!-- I->0 -->\n", 4607 "<g id=\"edge1\" class=\"edge\">\n", 4608 "<title>I->0</title>\n", 4609 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 4610 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 4611 "</g>\n", 4612 "<!-- 2 -->\n", 4613 "<g id=\"node3\" class=\"node\">\n", 4614 "<title>2</title>\n", 4615 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", 4616 "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4617 "</g>\n", 4618 "<!-- 0->2 -->\n", 4619 "<g id=\"edge2\" class=\"edge\">\n", 4620 "<title>0->2</title>\n", 4621 "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n", 4622 "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n", 4623 "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4624 "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4625 "</g>\n", 4626 "<!-- 3 -->\n", 4627 "<g id=\"node4\" class=\"node\">\n", 4628 "<title>3</title>\n", 4629 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 4630 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4631 "</g>\n", 4632 "<!-- 0->3 -->\n", 4633 "<g id=\"edge3\" class=\"edge\">\n", 4634 "<title>0->3</title>\n", 4635 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 4636 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 4637 "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4638 "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4639 "</g>\n", 4640 "<!-- 1 -->\n", 4641 "<g id=\"node5\" class=\"node\">\n", 4642 "<title>1</title>\n", 4643 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 4644 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4645 "</g>\n", 4646 "<!-- 2->1 -->\n", 4647 "<g id=\"edge6\" class=\"edge\">\n", 4648 "<title>2->1</title>\n", 4649 "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n", 4650 "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n", 4651 "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4652 "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4653 "</g>\n", 4654 "<!-- 3->0 -->\n", 4655 "<g id=\"edge8\" class=\"edge\">\n", 4656 "<title>3->0</title>\n", 4657 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 4658 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 4659 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 4660 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4661 "</g>\n", 4662 "<!-- 3->2 -->\n", 4663 "<g id=\"edge7\" class=\"edge\">\n", 4664 "<title>3->2</title>\n", 4665 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n", 4666 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n", 4667 "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4668 "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4669 "</g>\n", 4670 "<!-- 3->3 -->\n", 4671 "<g id=\"edge9\" class=\"edge\">\n", 4672 "<title>3->3</title>\n", 4673 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 4674 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 4675 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4676 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4677 "</g>\n", 4678 "<!-- 1->0 -->\n", 4679 "<g id=\"edge4\" class=\"edge\">\n", 4680 "<title>1->0</title>\n", 4681 "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 4682 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 4683 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4684 "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4685 "</g>\n", 4686 "<!-- 1->2 -->\n", 4687 "<g id=\"edge5\" class=\"edge\">\n", 4688 "<title>1->2</title>\n", 4689 "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n", 4690 "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n", 4691 "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4692 "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4693 "</g>\n", 4694 "</g>\n", 4695 "</svg>\n", 4696 "</div>" 4697 ], 4698 "text/plain": [ 4699 "<IPython.core.display.HTML object>" 4700 ] 4701 }, 4702 "metadata": {}, 4703 "output_type": "display_data" 4704 } 4705 ], 4706 "source": [ 4707 "display2(minodd4, spot.reduce_parity(minodd4))\n", 4708 "display2(minodd4, spot.reduce_parity(minodd4, True))" 4709 ] 4710 }, 4711 { 4712 "cell_type": "code", 4713 "execution_count": 25, 4714 "metadata": {}, 4715 "outputs": [ 4716 { 4717 "data": { 4718 "text/html": [ 4719 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4720 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4721 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4722 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4723 " -->\n", 4724 "<!-- Pages: 1 -->\n", 4725 "<svg width=\"490pt\" height=\"169pt\"\n", 4726 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4727 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 4728 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 4729 "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 4730 "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 4731 "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 4732 "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4733 "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 4734 "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4735 "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 4736 "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4737 "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 4738 "<text text-anchor=\"start\" x=\"182.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 4]</text>\n", 4739 "<!-- I -->\n", 4740 "<!-- 0 -->\n", 4741 "<g id=\"node2\" class=\"node\">\n", 4742 "<title>0</title>\n", 4743 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 4744 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4745 "</g>\n", 4746 "<!-- I->0 -->\n", 4747 "<g id=\"edge1\" class=\"edge\">\n", 4748 "<title>I->0</title>\n", 4749 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 4750 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 4751 "</g>\n", 4752 "<!-- 2 -->\n", 4753 "<g id=\"node3\" class=\"node\">\n", 4754 "<title>2</title>\n", 4755 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 4756 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4757 "</g>\n", 4758 "<!-- 0->2 -->\n", 4759 "<g id=\"edge2\" class=\"edge\">\n", 4760 "<title>0->2</title>\n", 4761 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 4762 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 4763 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4764 "</g>\n", 4765 "<!-- 3 -->\n", 4766 "<g id=\"node4\" class=\"node\">\n", 4767 "<title>3</title>\n", 4768 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 4769 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4770 "</g>\n", 4771 "<!-- 0->3 -->\n", 4772 "<g id=\"edge3\" class=\"edge\">\n", 4773 "<title>0->3</title>\n", 4774 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 4775 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 4776 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4777 "</g>\n", 4778 "<!-- 1 -->\n", 4779 "<g id=\"node5\" class=\"node\">\n", 4780 "<title>1</title>\n", 4781 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 4782 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4783 "</g>\n", 4784 "<!-- 2->1 -->\n", 4785 "<g id=\"edge6\" class=\"edge\">\n", 4786 "<title>2->1</title>\n", 4787 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 4788 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 4789 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4790 "</g>\n", 4791 "<!-- 3->0 -->\n", 4792 "<g id=\"edge8\" class=\"edge\">\n", 4793 "<title>3->0</title>\n", 4794 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 4795 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 4796 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 4797 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4798 "</g>\n", 4799 "<!-- 3->2 -->\n", 4800 "<g id=\"edge7\" class=\"edge\">\n", 4801 "<title>3->2</title>\n", 4802 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 4803 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 4804 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4805 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 4806 "</g>\n", 4807 "<!-- 3->3 -->\n", 4808 "<g id=\"edge9\" class=\"edge\">\n", 4809 "<title>3->3</title>\n", 4810 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 4811 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 4812 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4813 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4814 "</g>\n", 4815 "<!-- 1->0 -->\n", 4816 "<g id=\"edge4\" class=\"edge\">\n", 4817 "<title>1->0</title>\n", 4818 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 4819 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 4820 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4821 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4822 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4823 "</g>\n", 4824 "<!-- 1->2 -->\n", 4825 "<g id=\"edge5\" class=\"edge\">\n", 4826 "<title>1->2</title>\n", 4827 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 4828 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 4829 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4830 "</g>\n", 4831 "</g>\n", 4832 "</svg>\n", 4833 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4834 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4835 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4836 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4837 " -->\n", 4838 "<!-- Pages: 1 -->\n", 4839 "<svg width=\"490pt\" height=\"172pt\"\n", 4840 " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4841 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n", 4842 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n", 4843 "<text text-anchor=\"start\" x=\"190.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 4844 "<text text-anchor=\"start\" x=\"213.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4845 "<text text-anchor=\"start\" x=\"229.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 4846 "<text text-anchor=\"start\" x=\"271.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4847 "<text text-anchor=\"start\" x=\"287.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 4848 "<text text-anchor=\"start\" x=\"182.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 2]</text>\n", 4849 "<!-- I -->\n", 4850 "<!-- 0 -->\n", 4851 "<g id=\"node2\" class=\"node\">\n", 4852 "<title>0</title>\n", 4853 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n", 4854 "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4855 "</g>\n", 4856 "<!-- I->0 -->\n", 4857 "<g id=\"edge1\" class=\"edge\">\n", 4858 "<title>I->0</title>\n", 4859 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n", 4860 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n", 4861 "</g>\n", 4862 "<!-- 2 -->\n", 4863 "<g id=\"node3\" class=\"node\">\n", 4864 "<title>2</title>\n", 4865 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", 4866 "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4867 "</g>\n", 4868 "<!-- 0->2 -->\n", 4869 "<g id=\"edge2\" class=\"edge\">\n", 4870 "<title>0->2</title>\n", 4871 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n", 4872 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n", 4873 "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4874 "</g>\n", 4875 "<!-- 3 -->\n", 4876 "<g id=\"node4\" class=\"node\">\n", 4877 "<title>3</title>\n", 4878 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n", 4879 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4880 "</g>\n", 4881 "<!-- 0->3 -->\n", 4882 "<g id=\"edge3\" class=\"edge\">\n", 4883 "<title>0->3</title>\n", 4884 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n", 4885 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n", 4886 "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4887 "</g>\n", 4888 "<!-- 1 -->\n", 4889 "<g id=\"node5\" class=\"node\">\n", 4890 "<title>1</title>\n", 4891 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n", 4892 "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4893 "</g>\n", 4894 "<!-- 2->1 -->\n", 4895 "<g id=\"edge6\" class=\"edge\">\n", 4896 "<title>2->1</title>\n", 4897 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n", 4898 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n", 4899 "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4900 "</g>\n", 4901 "<!-- 3->0 -->\n", 4902 "<g id=\"edge8\" class=\"edge\">\n", 4903 "<title>3->0</title>\n", 4904 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n", 4905 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n", 4906 "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 4907 "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4908 "</g>\n", 4909 "<!-- 3->2 -->\n", 4910 "<g id=\"edge7\" class=\"edge\">\n", 4911 "<title>3->2</title>\n", 4912 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n", 4913 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n", 4914 "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4915 "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4916 "</g>\n", 4917 "<!-- 3->3 -->\n", 4918 "<g id=\"edge9\" class=\"edge\">\n", 4919 "<title>3->3</title>\n", 4920 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n", 4921 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n", 4922 "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4923 "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4924 "</g>\n", 4925 "<!-- 1->0 -->\n", 4926 "<g id=\"edge4\" class=\"edge\">\n", 4927 "<title>1->0</title>\n", 4928 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n", 4929 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n", 4930 "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 4931 "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4932 "</g>\n", 4933 "<!-- 1->2 -->\n", 4934 "<g id=\"edge5\" class=\"edge\">\n", 4935 "<title>1->2</title>\n", 4936 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n", 4937 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n", 4938 "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4939 "</g>\n", 4940 "</g>\n", 4941 "</svg>\n", 4942 "</div>" 4943 ], 4944 "text/plain": [ 4945 "<IPython.core.display.HTML object>" 4946 ] 4947 }, 4948 "metadata": {}, 4949 "output_type": "display_data" 4950 }, 4951 { 4952 "data": { 4953 "text/html": [ 4954 "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4955 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4956 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4957 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4958 " -->\n", 4959 "<!-- Pages: 1 -->\n", 4960 "<svg width=\"490pt\" height=\"169pt\"\n", 4961 " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4962 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n", 4963 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n", 4964 "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 4965 "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 4966 "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 4967 "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 4968 "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", 4969 "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4970 "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 4971 "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4972 "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n", 4973 "<text text-anchor=\"start\" x=\"182.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 4]</text>\n", 4974 "<!-- I -->\n", 4975 "<!-- 0 -->\n", 4976 "<g id=\"node2\" class=\"node\">\n", 4977 "<title>0</title>\n", 4978 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 4979 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4980 "</g>\n", 4981 "<!-- I->0 -->\n", 4982 "<g id=\"edge1\" class=\"edge\">\n", 4983 "<title>I->0</title>\n", 4984 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 4985 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 4986 "</g>\n", 4987 "<!-- 2 -->\n", 4988 "<g id=\"node3\" class=\"node\">\n", 4989 "<title>2</title>\n", 4990 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n", 4991 "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4992 "</g>\n", 4993 "<!-- 0->2 -->\n", 4994 "<g id=\"edge2\" class=\"edge\">\n", 4995 "<title>0->2</title>\n", 4996 "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n", 4997 "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n", 4998 "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 4999 "</g>\n", 5000 "<!-- 3 -->\n", 5001 "<g id=\"node4\" class=\"node\">\n", 5002 "<title>3</title>\n", 5003 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 5004 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 5005 "</g>\n", 5006 "<!-- 0->3 -->\n", 5007 "<g id=\"edge3\" class=\"edge\">\n", 5008 "<title>0->3</title>\n", 5009 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 5010 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 5011 "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 5012 "</g>\n", 5013 "<!-- 1 -->\n", 5014 "<g id=\"node5\" class=\"node\">\n", 5015 "<title>1</title>\n", 5016 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 5017 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 5018 "</g>\n", 5019 "<!-- 2->1 -->\n", 5020 "<g id=\"edge6\" class=\"edge\">\n", 5021 "<title>2->1</title>\n", 5022 "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n", 5023 "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n", 5024 "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 5025 "</g>\n", 5026 "<!-- 3->0 -->\n", 5027 "<g id=\"edge8\" class=\"edge\">\n", 5028 "<title>3->0</title>\n", 5029 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 5030 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 5031 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 5032 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 5033 "</g>\n", 5034 "<!-- 3->2 -->\n", 5035 "<g id=\"edge7\" class=\"edge\">\n", 5036 "<title>3->2</title>\n", 5037 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n", 5038 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n", 5039 "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 5040 "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", 5041 "</g>\n", 5042 "<!-- 3->3 -->\n", 5043 "<g id=\"edge9\" class=\"edge\">\n", 5044 "<title>3->3</title>\n", 5045 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 5046 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 5047 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 5048 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 5049 "</g>\n", 5050 "<!-- 1->0 -->\n", 5051 "<g id=\"edge4\" class=\"edge\">\n", 5052 "<title>1->0</title>\n", 5053 "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 5054 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 5055 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 5056 "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5057 "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 5058 "</g>\n", 5059 "<!-- 1->2 -->\n", 5060 "<g id=\"edge5\" class=\"edge\">\n", 5061 "<title>1->2</title>\n", 5062 "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n", 5063 "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n", 5064 "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 5065 "</g>\n", 5066 "</g>\n", 5067 "</svg>\n", 5068 "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 5069 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 5070 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 5071 "<!-- Generated by graphviz version 2.43.0 (0)\n", 5072 " -->\n", 5073 "<!-- Pages: 1 -->\n", 5074 "<svg width=\"490pt\" height=\"183pt\"\n", 5075 " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 5076 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n", 5077 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n", 5078 "<text text-anchor=\"start\" x=\"159.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 5079 "<text text-anchor=\"start\" x=\"182.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 5080 "<text text-anchor=\"start\" x=\"198.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n", 5081 "<text text-anchor=\"start\" x=\"244.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 5082 "<text text-anchor=\"start\" x=\"260.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n", 5083 "<text text-anchor=\"start\" x=\"298.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5084 "<text text-anchor=\"start\" x=\"314.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n", 5085 "<text text-anchor=\"start\" x=\"185.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 3]</text>\n", 5086 "<!-- I -->\n", 5087 "<!-- 0 -->\n", 5088 "<g id=\"node2\" class=\"node\">\n", 5089 "<title>0</title>\n", 5090 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n", 5091 "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 5092 "</g>\n", 5093 "<!-- I->0 -->\n", 5094 "<g id=\"edge1\" class=\"edge\">\n", 5095 "<title>I->0</title>\n", 5096 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n", 5097 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n", 5098 "</g>\n", 5099 "<!-- 2 -->\n", 5100 "<g id=\"node3\" class=\"node\">\n", 5101 "<title>2</title>\n", 5102 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", 5103 "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 5104 "</g>\n", 5105 "<!-- 0->2 -->\n", 5106 "<g id=\"edge2\" class=\"edge\">\n", 5107 "<title>0->2</title>\n", 5108 "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n", 5109 "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n", 5110 "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 5111 "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5112 "</g>\n", 5113 "<!-- 3 -->\n", 5114 "<g id=\"node4\" class=\"node\">\n", 5115 "<title>3</title>\n", 5116 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n", 5117 "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 5118 "</g>\n", 5119 "<!-- 0->3 -->\n", 5120 "<g id=\"edge3\" class=\"edge\">\n", 5121 "<title>0->3</title>\n", 5122 "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n", 5123 "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n", 5124 "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 5125 "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5126 "</g>\n", 5127 "<!-- 1 -->\n", 5128 "<g id=\"node5\" class=\"node\">\n", 5129 "<title>1</title>\n", 5130 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", 5131 "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 5132 "</g>\n", 5133 "<!-- 2->1 -->\n", 5134 "<g id=\"edge6\" class=\"edge\">\n", 5135 "<title>2->1</title>\n", 5136 "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n", 5137 "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n", 5138 "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 5139 "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5140 "</g>\n", 5141 "<!-- 3->0 -->\n", 5142 "<g id=\"edge8\" class=\"edge\">\n", 5143 "<title>3->0</title>\n", 5144 "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n", 5145 "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n", 5146 "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 & !p1</text>\n", 5147 "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 5148 "</g>\n", 5149 "<!-- 3->2 -->\n", 5150 "<g id=\"edge7\" class=\"edge\">\n", 5151 "<title>3->2</title>\n", 5152 "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n", 5153 "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n", 5154 "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 5155 "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", 5156 "</g>\n", 5157 "<!-- 3->3 -->\n", 5158 "<g id=\"edge9\" class=\"edge\">\n", 5159 "<title>3->3</title>\n", 5160 "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n", 5161 "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n", 5162 "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 5163 "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 5164 "</g>\n", 5165 "<!-- 1->0 -->\n", 5166 "<g id=\"edge4\" class=\"edge\">\n", 5167 "<title>1->0</title>\n", 5168 "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n", 5169 "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n", 5170 "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & p1</text>\n", 5171 "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 5172 "</g>\n", 5173 "<!-- 1->2 -->\n", 5174 "<g id=\"edge5\" class=\"edge\">\n", 5175 "<title>1->2</title>\n", 5176 "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n", 5177 "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n", 5178 "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 & !p1</text>\n", 5179 "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5180 "</g>\n", 5181 "</g>\n", 5182 "</svg>\n", 5183 "</div>" 5184 ], 5185 "text/plain": [ 5186 "<IPython.core.display.HTML object>" 5187 ] 5188 }, 5189 "metadata": {}, 5190 "output_type": "display_data" 5191 } 5192 ], 5193 "source": [ 5194 "display2(maxeven4, spot.reduce_parity(maxeven4))\n", 5195 "display2(maxeven4, spot.reduce_parity(maxeven4, True))" 5196 ] 5197 } 5198 ], 5199 "metadata": { 5200 "kernelspec": { 5201 "display_name": "Python 3", 5202 "language": "python", 5203 "name": "python3" 5204 }, 5205 "language_info": { 5206 "codemirror_mode": { 5207 "name": "ipython", 5208 "version": 3 5209 }, 5210 "file_extension": ".py", 5211 "mimetype": "text/x-python", 5212 "name": "python", 5213 "nbconvert_exporter": "python", 5214 "pygments_lexer": "ipython3", 5215 "version": "3.8.2" 5216 } 5217 }, 5218 "nbformat": 4, 5219 "nbformat_minor": 2 5220} 5221