spot/tests/python/synthesis.ipynb
Alexandre Duret-Lutz 3034e8fcc3 python: render <svg> via _repr_html_
Work around a recent decision in Jupyter Lab and Notebook to render
<svg> is inline <img>, breaking tooltips or text selection.

(Rerendering all notebooks was painful.)

* NEWS: Mention the change.
* python/spot/__init__.py: Add a _repr_html_ method to all
classes that had a _repr_svg_.  It seems Jupyter will use
_repr_html_ by default.
* python/spot/jupyter.py: SVG replace the _repr_svg_ method
by a _repr_html.
* tests/python/_altscc.ipynb, tests/python/_autparserr.ipynb,
tests/python/_aux.ipynb, tests/python/_mealy.ipynb,
tests/python/_partitioned_relabel.ipynb,
tests/python/_product_susp.ipynb, tests/python/_product_weak.ipynb,
tests/python/_synthesis.ipynb, tests/python/aliases.ipynb,
tests/python/alternation.ipynb, tests/python/atva16-fig2a.ipynb,
tests/python/atva16-fig2b.ipynb, tests/python/automata-io.ipynb,
tests/python/automata.ipynb, tests/python/cav22-figs.ipynb,
tests/python/contains.ipynb, tests/python/decompose.ipynb,
tests/python/formulas.ipynb, tests/python/games.ipynb,
tests/python/gen.ipynb, tests/python/highlighting.ipynb,
tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
tests/python/parity.ipynb, tests/python/product.ipynb,
tests/python/randaut.ipynb, tests/python/satmin.ipynb,
tests/python/stutter-inv.ipynb, tests/python/synthesis.ipynb,
tests/python/testingaut.ipynb, tests/python/twagraph-internals.ipynb,
tests/python/word.ipynb, tests/python/zlktree.ipynb: Update all
notebooks.
2024-02-09 15:06:07 +01:00

7018 lines
489 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4f84fa79",
"metadata": {},
"outputs": [],
"source": [
"import spot\n",
"spot.setup()\n",
"from spot.jupyter import display_inline"
]
},
{
"cell_type": "markdown",
"id": "4ad017a0",
"metadata": {},
"source": [
"This notebook presents functions that can be used to solve the Reactive Synthesis problem using games.\n",
"If you are not familiar with how Spot represents games, please read the `games` notebook first.\n",
"\n",
"In Reactive Synthesis, the goal is to build an electronic circuit that reacts to some input signals by producing some output signals, under some LTL constraints that tie both input and output. Of course the input signals are not controllable, so only job is to decide what output signal to produce.\n",
"\n",
"# Reactive synthesis in four steps\n",
"\n",
"A strategy/control circuit can be derived more conveniently from an LTL/PSL specification.\n",
"The process is decomposed in three steps:\n",
"- Creating the game\n",
"- Solving the game\n",
"- Simplifying the winning strategy\n",
"- Building the circuit from the strategy\n",
"\n",
"Each of these steps is parameterized by a structure called `synthesis_info`. This structure stores some additional data needed to pass fine-tuning options or to store statistics.\n",
"\n",
"The `ltl_to_game` function takes the LTL specification, and the list of controllable atomic propositions (or output signals). It returns a two-player game, where player 0 plays the input variables (and wants to invalidate the acceptance condition), and player 1 plays the output variables (and wants to satisfy the output condition). The conversion from LTL to parity automata can use one of many algorithms, and can be specified in the `synthesis_info` structure (this works like the `--algo=` option of `ltlsynt`)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "e333be09",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"game has 29 states and 55 edges\n",
"output propositions are: o0\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"352pt\"\n",
" viewBox=\"0.00 0.00 729.00 351.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.4926108374384237 0.4926108374384237) rotate(0) translate(4 711)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-711 1478.88,-711 1478.88,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"715.94\" y=\"-692.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"738.94\" y=\"-692.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"754.94\" y=\"-692.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"705.94\" y=\"-678.8\" font-family=\"Lato\" font-size=\"14.00\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-83\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-79.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-83C2.79,-83 17.15,-83 30.63,-83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-83 30.94,-86.15 34.44,-83 30.94,-83 30.94,-83 30.94,-83 34.44,-83 30.94,-79.85 37.94,-83 37.94,-83\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"188.33,-182 158.17,-164 188.33,-146 218.5,-164 188.33,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"188.33\" y=\"-160.3\" font-family=\"Lato\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;10 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M67.91,-96.91C74.33,-104.44 82.95,-113.5 92,-120 113.59,-135.5 141.51,-147.62 161.55,-155.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.28,-157.66 160.63,-158.2 165,-156.45 161.72,-155.24 161.72,-155.24 161.72,-155.24 165,-156.45 162.81,-152.28 168.28,-157.66 168.28,-157.66\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>11</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"267,-78 236.83,-60 267,-42 297.16,-60 267,-78\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-56.3\" font-family=\"Lato\" font-size=\"14.00\">11</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;11 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.05,-79.82C79.75,-78.83 86.13,-77.79 92,-77 140.87,-70.43 197.78,-65.36 232.85,-62.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"239.99,-61.95 233.26,-65.65 236.5,-62.23 233.01,-62.51 233.01,-62.51 233.01,-62.51 236.5,-62.23 232.76,-59.37 239.99,-61.95 239.99,-61.95\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-80.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>12</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"399.66,-124 369.5,-106 399.66,-88 429.83,-106 399.66,-124\"/>\n",
"<text text-anchor=\"middle\" x=\"399.66\" y=\"-102.3\" font-family=\"Lato\" font-size=\"14.00\">12</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;12 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.59,-88.01C79.36,-89.56 85.92,-91.09 92,-92 189.55,-106.61 306.34,-107.41 363.56,-106.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"370.57,-106.64 363.61,-109.89 367.07,-106.69 363.57,-106.74 363.57,-106.74 363.57,-106.74 367.07,-106.69 363.53,-103.59 370.57,-106.64 370.57,-106.64\"/>\n",
"<text text-anchor=\"start\" x=\"166.33\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>13</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"556.99,-36 526.82,-18 556.99,0 587.16,-18 556.99,-36\"/>\n",
"<text text-anchor=\"middle\" x=\"556.99\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">13</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;13 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.03,-71.56C92.38,-53.15 140.19,-19 187.33,-19 187.33,-19 187.33,-19 400.66,-19 441.48,-19 488.33,-18.65 519.81,-18.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"527.08,-18.3 520.11,-21.51 523.58,-18.33 520.08,-18.36 520.08,-18.36 520.08,-18.36 523.58,-18.33 520.05,-15.21 527.08,-18.3 527.08,-18.3\"/>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node25\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"333.33\" cy=\"-203\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"333.33\" y=\"-199.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;8 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>10&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.52,-169.51C235.67,-176.64 281.17,-189.05 308.84,-196.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"315.8,-198.49 308.22,-199.69 312.43,-197.57 309.05,-196.65 309.05,-196.65 309.05,-196.65 312.43,-197.57 309.88,-193.61 315.8,-198.49 315.8,-198.49\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node23\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.99\" cy=\"-102\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"860.99\" y=\"-98.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;7 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>11&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M294.98,-61.4C375.59,-65.69 621.56,-79.45 824.99,-98 828.46,-98.32 832.12,-98.69 835.71,-99.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"842.91,-99.89 835.6,-102.24 839.43,-99.5 835.96,-99.11 835.96,-99.11 835.96,-99.11 839.43,-99.5 836.31,-95.98 842.91,-99.89 842.91,-99.89\"/>\n",
"<text text-anchor=\"middle\" x=\"556.99\" y=\"-83.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node27\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"623.32\" cy=\"-280\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"623.32\" y=\"-276.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;9 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>12&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M428.53,-106.99C469.08,-109.95 544.18,-121.39 587.32,-165 611.1,-189.04 618.8,-228.71 621.25,-254.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"621.83,-261.83 618.13,-255.11 621.55,-258.34 621.27,-254.85 621.27,-254.85 621.27,-254.85 621.55,-258.34 624.41,-254.6 621.83,-261.83 621.83,-261.83\"/>\n",
"<text text-anchor=\"middle\" x=\"478.33\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node17\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-52\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-48.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;5 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>13&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M583.2,-15.42C608.3,-13.09 647.93,-10 682.32,-10 682.32,-10 682.32,-10 994.32,-10 1024.9,-10 1057.07,-25.98 1077.23,-38.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1083.34,-42.05 1075.74,-41.01 1080.37,-40.19 1077.41,-38.33 1077.41,-38.33 1077.41,-38.33 1080.37,-40.19 1079.08,-35.66 1083.34,-42.05 1083.34,-42.05\"/>\n",
"<text text-anchor=\"middle\" x=\"814.49\" y=\"-13.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-435\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-431.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>14</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-571 1200.82,-553 1230.98,-535 1261.15,-553 1230.98,-571\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-549.3\" font-family=\"Lato\" font-size=\"14.00\">14</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;14 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1101.15,-453.08C1103.94,-474.82 1111.92,-510.91 1134.65,-531 1144.05,-539.31 1174.34,-545.35 1198.29,-548.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1205.49,-550.03 1198.11,-552.14 1202.02,-549.53 1198.56,-549.02 1198.56,-549.02 1198.56,-549.02 1202.02,-549.53 1199.01,-545.9 1205.49,-550.03 1205.49,-550.03\"/>\n",
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-548.8\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 16 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>16</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-495 1200.82,-477 1230.98,-459 1261.15,-477 1230.98,-495\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-473.3\" font-family=\"Lato\" font-size=\"14.00\">16</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;16 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1102.85,-417.43C1106.98,-400.44 1115.98,-375.61 1134.65,-364 1152.77,-352.73 1164.89,-352.18 1182.65,-364 1212.43,-383.82 1223.51,-426.37 1227.61,-453.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1228.59,-460.36 1224.51,-453.85 1228.11,-456.89 1227.64,-453.42 1227.64,-453.42 1227.64,-453.42 1228.11,-456.89 1230.76,-452.99 1228.59,-460.36 1228.59,-460.36\"/>\n",
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-367.8\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
"</g>\n",
"<!-- 15 -->\n",
"<g id=\"node30\" class=\"node\">\n",
"<title>15</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1335.76\" cy=\"-552\" rx=\"21.4\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1335.76\" y=\"-548.3\" font-family=\"Lato\" font-size=\"14.00\">15</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;15 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>14&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1256.42,-555.98C1268.44,-557.07 1283.14,-557.85 1296.32,-557 1299.92,-556.77 1303.7,-556.41 1307.42,-556\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1314.46,-555.14 1307.89,-559.11 1310.98,-555.56 1307.51,-555.99 1307.51,-555.99 1307.51,-555.99 1310.98,-555.56 1307.13,-552.86 1314.46,-555.14 1314.46,-555.14\"/>\n",
"<text text-anchor=\"start\" x=\"1283.32\" y=\"-575.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"1279.82\" y=\"-560.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;1 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>16&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1206.29,-473.52C1186.65,-470.16 1158.22,-464.22 1134.65,-455 1129.92,-453.15 1125.06,-450.74 1120.52,-448.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1114.16,-444.56 1121.8,-445.34 1117.19,-446.31 1120.22,-448.07 1120.22,-448.07 1120.22,-448.07 1117.19,-446.31 1118.65,-450.79 1114.16,-444.56 1114.16,-444.56\"/>\n",
"<text text-anchor=\"middle\" x=\"1158.65\" y=\"-471.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-275\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-271.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;14 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1099.1,-293.07C1099.19,-322.58 1103.59,-381.43 1134.65,-417 1149.74,-434.28 1167.41,-418.85 1182.65,-436 1203.41,-459.37 1188.5,-475.19 1200.65,-504 1205.11,-514.59 1211.55,-525.63 1217.25,-534.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1221.24,-540.62 1214.77,-536.5 1219.32,-537.7 1217.4,-534.77 1217.4,-534.77 1217.4,-534.77 1219.32,-537.7 1220.03,-533.04 1221.24,-540.62 1221.24,-540.62\"/>\n",
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-439.8\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 17 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>17</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-297 1200.82,-279 1230.98,-261 1261.15,-279 1230.98,-297\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-275.3\" font-family=\"Lato\" font-size=\"14.00\">17</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;17 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1112.2,-263.12C1118.44,-258.02 1126.4,-252.64 1134.65,-250 1154.97,-243.49 1162.12,-244.21 1182.65,-250 1193,-252.92 1203.32,-258.8 1211.67,-264.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1217.63,-268.79 1210.11,-267.27 1214.79,-266.75 1211.95,-264.71 1211.95,-264.71 1211.95,-264.71 1214.79,-266.75 1213.78,-262.15 1217.63,-268.79 1217.63,-268.79\"/>\n",
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"</g>\n",
"<!-- 17&#45;&gt;2 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>17&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1201.98,-278.14C1178.69,-277.43 1145.89,-276.42 1123.76,-275.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1116.69,-275.52 1123.78,-272.59 1120.19,-275.63 1123.69,-275.74 1123.69,-275.74 1123.69,-275.74 1120.19,-275.63 1123.59,-278.89 1116.69,-275.52 1116.69,-275.52\"/>\n",
"<text text-anchor=\"middle\" x=\"1158.65\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-553\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-549.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;14 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1114.83,-561.66C1120.81,-564.6 1127.86,-567.52 1134.65,-569 1155.5,-573.54 1161.6,-572.46 1182.65,-569 1190.35,-567.73 1198.49,-565.38 1205.8,-562.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1212.8,-560.32 1207.29,-565.67 1209.51,-561.51 1206.22,-562.71 1206.22,-562.71 1206.22,-562.71 1209.51,-561.51 1205.14,-559.75 1212.8,-560.32 1212.8,-560.32\"/>\n",
"<text text-anchor=\"start\" x=\"1138.65\" y=\"-575.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;16 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1110.45,-538.94C1116.84,-531.36 1125.46,-522.3 1134.65,-516 1155.76,-501.53 1183.07,-491.05 1203.04,-484.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1209.78,-482.52 1204.03,-487.61 1206.44,-483.56 1203.09,-484.6 1203.09,-484.6 1203.09,-484.6 1206.44,-483.56 1202.16,-481.6 1209.78,-482.52 1209.78,-482.52\"/>\n",
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-519.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;17 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1102.84,-535.43C1109.77,-497.89 1126.28,-412.44 1134.65,-402 1149.45,-383.54 1165.96,-395.77 1182.65,-379 1204.41,-357.13 1217.5,-323.34 1224.23,-301.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1226.2,-294.44 1227.26,-302.05 1225.22,-297.8 1224.24,-301.17 1224.24,-301.17 1224.24,-301.17 1225.22,-297.8 1221.21,-300.29 1226.2,-294.44 1226.2,-294.44\"/>\n",
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-405.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 18 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>18</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-666 1200.82,-648 1230.98,-630 1261.15,-648 1230.98,-666\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-644.3\" font-family=\"Lato\" font-size=\"14.00\">18</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;18 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1100.79,-571.08C1103.23,-592.69 1110.86,-628.04 1134.65,-645 1154.19,-658.93 1182.16,-658.05 1202.75,-654.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1209.7,-653.38 1203.38,-657.75 1206.25,-654.02 1202.81,-654.65 1202.81,-654.65 1202.81,-654.65 1206.25,-654.02 1202.24,-651.55 1209.7,-653.38 1209.7,-653.38\"/>\n",
"<text text-anchor=\"start\" x=\"1134.65\" y=\"-659.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;3 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>18&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1213.55,-640.03C1193.78,-630.03 1160.09,-611.68 1134.65,-591 1127.94,-585.54 1121.31,-578.8 1115.67,-572.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1110.78,-566.93 1117.76,-570.13 1113.08,-569.56 1115.39,-572.2 1115.39,-572.2 1115.39,-572.2 1113.08,-569.56 1113.01,-574.27 1110.78,-566.93 1110.78,-566.93\"/>\n",
"<text text-anchor=\"middle\" x=\"1158.65\" y=\"-626.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1335.76\" cy=\"-216\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1335.76\" y=\"-212.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 19 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>19</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1444.54,-272 1414.38,-254 1444.54,-236 1474.71,-254 1444.54,-272\"/>\n",
"<text text-anchor=\"middle\" x=\"1444.54\" y=\"-250.3\" font-family=\"Lato\" font-size=\"14.00\">19</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;19 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1353.67,-213.48C1365.85,-212.33 1382.49,-212.14 1396.21,-217 1408.03,-221.18 1419.19,-229.6 1427.7,-237.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1433.15,-242.55 1425.91,-239.99 1430.62,-240.13 1428.09,-237.72 1428.09,-237.72 1428.09,-237.72 1430.62,-240.13 1430.26,-235.44 1433.15,-242.55 1433.15,-242.55\"/>\n",
"<text text-anchor=\"start\" x=\"1377.71\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"</g>\n",
"<!-- 20 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>20</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"993.32,-108 963.15,-90 993.32,-72 1023.48,-90 993.32,-108\"/>\n",
"<text text-anchor=\"middle\" x=\"993.32\" y=\"-86.3\" font-family=\"Lato\" font-size=\"14.00\">20</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;20 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1318.77,-209.95C1303.93,-204.38 1281.19,-195.95 1261.32,-189 1205.33,-169.43 1190.3,-167.5 1134.65,-147 1093.25,-131.75 1045.84,-112 1018.08,-100.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1011.46,-97.39 1019.13,-97.23 1014.68,-98.76 1017.9,-100.13 1017.9,-100.13 1017.9,-100.13 1014.68,-98.76 1016.66,-103.03 1011.46,-97.39 1011.46,-97.39\"/>\n",
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 19&#45;&gt;4 -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>19&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1423.96,-248.17C1410.22,-243.96 1391.47,-237.99 1375.21,-232 1370.08,-230.11 1364.63,-227.94 1359.49,-225.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1352.73,-222.99 1360.41,-222.79 1355.96,-224.35 1359.19,-225.7 1359.19,-225.7 1359.19,-225.7 1355.96,-224.35 1357.97,-228.6 1352.73,-222.99 1352.73,-222.99\"/>\n",
"<text text-anchor=\"start\" x=\"1375.21\" y=\"-242.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;5 -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>20&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1010.76,-82.11C1019.77,-77.94 1031.2,-72.89 1041.65,-69 1052.07,-65.12 1063.82,-61.45 1073.85,-58.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1080.81,-56.53 1074.95,-61.49 1077.44,-57.49 1074.08,-58.46 1074.08,-58.46 1074.08,-58.46 1077.44,-57.49 1073.21,-55.43 1080.81,-56.53 1080.81,-56.53\"/>\n",
"<text text-anchor=\"start\" x=\"1041.65\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 21 -->\n",
"<g id=\"node18\" class=\"node\">\n",
"<title>21</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-234 1200.82,-216 1230.98,-198 1261.15,-216 1230.98,-234\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-212.3\" font-family=\"Lato\" font-size=\"14.00\">21</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;21 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>5&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1113.18,-62.89C1130.66,-77.4 1161.34,-104.46 1182.65,-132 1198.2,-152.1 1211.96,-177.91 1220.58,-195.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1223.73,-202.16 1217.86,-197.21 1222.22,-199 1220.7,-195.85 1220.7,-195.85 1220.7,-195.85 1222.22,-199 1223.54,-194.48 1223.73,-202.16 1223.73,-202.16\"/>\n",
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"</g>\n",
"<!-- 22 -->\n",
"<g id=\"node19\" class=\"node\">\n",
"<title>22</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-86 1200.82,-68 1230.98,-50 1261.15,-68 1230.98,-86\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-64.3\" font-family=\"Lato\" font-size=\"14.00\">22</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;22 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>5&#45;&gt;22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1116.69,-54.09C1137.38,-56.63 1172.68,-60.97 1198.4,-64.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1205.37,-64.98 1198.04,-67.25 1201.9,-64.55 1198.42,-64.13 1198.42,-64.13 1198.42,-64.13 1201.9,-64.55 1198.81,-61 1205.37,-64.98 1205.37,-64.98\"/>\n",
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;4 -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>21&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1261.16,-216C1276.73,-216 1295.66,-216 1310.42,-216\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1317.73,-216 1310.73,-219.15 1314.23,-216 1310.73,-216 1310.73,-216 1310.73,-216 1314.23,-216 1310.73,-212.85 1317.73,-216 1317.73,-216\"/>\n",
"<text text-anchor=\"start\" x=\"1279.32\" y=\"-219.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 22&#45;&gt;5 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>22&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1217.69,-57.44C1208.66,-50.41 1195.73,-41.8 1182.65,-38 1162.16,-32.05 1155.6,-33.97 1134.65,-38 1130.45,-38.81 1126.12,-40.12 1121.99,-41.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1115.29,-44.27 1120.64,-38.76 1118.55,-42.98 1121.8,-41.69 1121.8,-41.69 1121.8,-41.69 1118.55,-42.98 1122.96,-44.62 1115.29,-44.27 1115.29,-44.27\"/>\n",
"<text text-anchor=\"start\" x=\"1150.15\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node20\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.99\" cy=\"-350\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"860.99\" y=\"-346.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;19 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>6&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M878.78,-346.98C917.32,-340.34 1015.16,-325 1097.65,-325 1097.65,-325 1097.65,-325 1336.76,-325 1375.39,-325 1410.7,-292.39 1429.45,-271.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1434.08,-266.04 1431.87,-273.4 1431.78,-268.69 1429.49,-271.33 1429.49,-271.33 1429.49,-271.33 1431.78,-268.69 1427.11,-269.27 1434.08,-266.04 1434.08,-266.04\"/>\n",
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-328.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;20 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>6&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M861.94,-331.87C862.79,-303.42 868.34,-247.92 896.99,-213 911.99,-194.71 928.3,-206.77 944.99,-190 966.75,-168.13 979.84,-134.34 986.57,-112.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"988.53,-105.44 989.6,-113.05 987.55,-108.8 986.57,-112.17 986.57,-112.17 986.57,-112.17 987.55,-108.8 983.55,-111.29 988.53,-105.44 988.53,-105.44\"/>\n",
"<text text-anchor=\"start\" x=\"900.99\" y=\"-216.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 23 -->\n",
"<g id=\"node21\" class=\"node\">\n",
"<title>23</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"993.32,-407 963.15,-389 993.32,-371 1023.48,-389 993.32,-407\"/>\n",
"<text text-anchor=\"middle\" x=\"993.32\" y=\"-385.3\" font-family=\"Lato\" font-size=\"14.00\">23</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;23 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>6&#45;&gt;23</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M879,-349.94C896.11,-350.37 923.05,-352.37 944.99,-360 955,-363.48 965.14,-369.32 973.46,-374.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"979.43,-378.98 971.88,-377.59 976.55,-376.99 973.67,-375 973.67,-375 973.67,-375 976.55,-376.99 975.46,-372.41 979.43,-378.98 979.43,-378.98\"/>\n",
"<text text-anchor=\"start\" x=\"896.99\" y=\"-363.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 24 -->\n",
"<g id=\"node22\" class=\"node\">\n",
"<title>24</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"478.33,-298 448.16,-280 478.33,-262 508.49,-280 478.33,-298\"/>\n",
"<text text-anchor=\"middle\" x=\"478.33\" y=\"-276.3\" font-family=\"Lato\" font-size=\"14.00\">24</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;24 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>6&#45;&gt;24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M844.58,-357.72C829.93,-364.59 807.07,-374.15 785.99,-378 759.46,-382.85 752.23,-379.63 725.32,-378 695.83,-376.22 687.62,-378.51 659.32,-370 597.84,-351.51 531.89,-313.2 499.55,-293.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"493.55,-289.26 501.15,-290.32 496.51,-291.13 499.47,-292.99 499.47,-292.99 499.47,-292.99 496.51,-291.13 497.8,-295.66 493.55,-289.26 493.55,-289.26\"/>\n",
"<text text-anchor=\"start\" x=\"661.32\" y=\"-380.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 23&#45;&gt;1 -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>23&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1018.33,-392.27C1031.87,-394.76 1048.79,-399 1062.65,-406 1068.75,-409.08 1074.74,-413.4 1079.98,-417.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1085.35,-422.47 1078.01,-420.23 1082.71,-420.16 1080.08,-417.86 1080.08,-417.86 1080.08,-417.86 1082.71,-420.16 1082.15,-415.49 1085.35,-422.47 1085.35,-422.47\"/>\n",
"<text text-anchor=\"start\" x=\"1043.65\" y=\"-409.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 23&#45;&gt;6 -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>23&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M963.87,-388.32C944.43,-387.02 918.4,-383.63 896.99,-375 891.43,-372.76 885.93,-369.48 880.98,-366.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"875.06,-361.61 882.55,-363.26 877.87,-363.7 880.67,-365.79 880.67,-365.79 880.67,-365.79 877.87,-363.7 878.79,-368.31 875.06,-361.61 875.06,-361.61\"/>\n",
"<text text-anchor=\"start\" x=\"910.49\" y=\"-389.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 24&#45;&gt;1 -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>24&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M491.87,-290C497.41,-294.78 503.76,-300.81 508.66,-307 518.79,-319.79 517.9,-325.23 526.66,-339 565.91,-400.76 549.15,-473 622.32,-473 622.32,-473 622.32,-473 994.32,-473 1024.33,-473 1056.4,-458.71 1076.71,-447.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1082.87,-444.2 1078.31,-450.37 1079.82,-445.91 1076.77,-447.62 1076.77,-447.62 1076.77,-447.62 1079.82,-445.91 1075.23,-444.87 1082.87,-444.2 1082.87,-444.2\"/>\n",
"<text text-anchor=\"start\" x=\"805.99\" y=\"-476.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 24&#45;&gt;9 -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>24&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M508.61,-280C534.97,-280 573.26,-280 597.98,-280\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"605.19,-280 598.19,-283.15 601.69,-280 598.19,-280 598.19,-280 598.19,-280 601.69,-280 598.19,-276.85 605.19,-280 605.19,-280\"/>\n",
"<text text-anchor=\"start\" x=\"546.49\" y=\"-283.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;20 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>7&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M879.02,-100.43C899.37,-98.56 933.86,-95.38 959.46,-93.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"966.75,-92.35 960.07,-96.13 963.27,-92.67 959.78,-93 959.78,-93 959.78,-93 963.27,-92.67 959.49,-89.86 966.75,-92.35 966.75,-92.35\"/>\n",
"<text text-anchor=\"start\" x=\"914.99\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 25 -->\n",
"<g id=\"node24\" class=\"node\">\n",
"<title>25</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-180 725.49,-162 755.65,-144 785.82,-162 755.65,-180\"/>\n",
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-158.3\" font-family=\"Lato\" font-size=\"14.00\">25</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;25 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>7&#45;&gt;25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M842.9,-100.28C831.3,-99.87 815.97,-100.84 803.99,-107 801.77,-108.14 784.14,-128.96 771.05,-144.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"766.46,-150.15 768.52,-142.76 768.7,-147.46 770.94,-144.77 770.94,-144.77 770.94,-144.77 768.7,-147.46 773.37,-146.79 766.46,-150.15 766.46,-150.15\"/>\n",
"<text text-anchor=\"start\" x=\"806.49\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"</g>\n",
"<!-- 25&#45;&gt;2 -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>25&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M780.91,-159.05C817.53,-155.5 888.64,-152.15 944.99,-171 999.78,-189.34 1053.07,-233.38 1079.83,-257.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1085.13,-262.77 1077.85,-260.32 1082.56,-260.39 1079.99,-258.01 1079.99,-258.01 1079.99,-258.01 1082.56,-260.39 1082.14,-255.7 1085.13,-262.77 1085.13,-262.77\"/>\n",
"<text text-anchor=\"start\" x=\"912.49\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 25&#45;&gt;7 -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>25&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M771.46,-153.4C789.08,-143.17 818.65,-126 838.72,-114.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"844.87,-110.78 840.4,-117.01 841.85,-112.53 838.82,-114.29 838.82,-114.29 838.82,-114.29 841.85,-112.53 837.24,-111.57 844.87,-110.78 844.87,-110.78\"/>\n",
"<text text-anchor=\"start\" x=\"803.99\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;20 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>8&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.18,-196.1C356.12,-193.66 362.97,-191.03 369.33,-189 575.64,-123.29 627.97,-100.51 842.99,-75 884.97,-70.02 933.72,-77.38 963.8,-83.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"971.02,-84.94 963.53,-86.6 967.6,-84.23 964.17,-83.51 964.17,-83.51 964.17,-83.51 967.6,-84.23 964.81,-80.43 971.02,-84.94 971.02,-84.94\"/>\n",
"<text text-anchor=\"start\" x=\"663.32\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;24 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>8&#45;&gt;24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.12,-210.41C369.26,-219.52 402.38,-235.65 429.99,-251 438.99,-256 448.71,-261.87 457,-267.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"463.01,-270.79 455.41,-269.75 460.05,-268.94 457.08,-267.08 457.08,-267.08 457.08,-267.08 460.05,-268.94 458.75,-264.41 463.01,-270.79 463.01,-270.79\"/>\n",
"<text text-anchor=\"start\" x=\"377.66\" y=\"-254.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;25 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>8&#45;&gt;25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M351.33,-201.34C414.75,-195.16 638.25,-173.35 722.34,-165.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"729.33,-164.47 722.67,-168.29 725.85,-164.81 722.36,-165.15 722.36,-165.15 722.36,-165.15 725.85,-164.81 722.06,-162.01 729.33,-164.47 729.33,-164.47\"/>\n",
"<text text-anchor=\"start\" x=\"534.99\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 26 -->\n",
"<g id=\"node26\" class=\"node\">\n",
"<title>26</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"478.33,-352 448.16,-334 478.33,-316 508.49,-334 478.33,-352\"/>\n",
"<text text-anchor=\"middle\" x=\"478.33\" y=\"-330.3\" font-family=\"Lato\" font-size=\"14.00\">26</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;26 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>8&#45;&gt;26</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M340.29,-219.89C345.92,-233.8 355.57,-253.23 369.33,-266 391.1,-286.2 404.95,-278.05 429.99,-294 440.76,-300.86 451.71,-309.95 460.36,-317.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"465.96,-322.86 458.67,-320.45 463.38,-320.5 460.8,-318.13 460.8,-318.13 460.8,-318.13 463.38,-320.5 462.93,-315.81 465.96,-322.86 465.96,-322.86\"/>\n",
"<text text-anchor=\"start\" x=\"375.66\" y=\"-297.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 26&#45;&gt;3 -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>26&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M482.58,-349.54C493.36,-396.21 532.43,-532 622.32,-532 622.32,-532 622.32,-532 994.32,-532 1022.32,-532 1053.75,-539.5 1074.52,-545.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1081.39,-547.59 1073.78,-548.6 1078.04,-546.59 1074.69,-545.58 1074.69,-545.58 1074.69,-545.58 1078.04,-546.59 1075.59,-542.57 1081.39,-547.59 1081.39,-547.59\"/>\n",
"<text text-anchor=\"start\" x=\"805.99\" y=\"-535.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 26&#45;&gt;8 -->\n",
"<g id=\"edge52\" class=\"edge\">\n",
"<title>26&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M449.03,-334.74C424.96,-333.83 390.94,-328.72 369.33,-309 346.62,-288.28 338.62,-252.55 335.81,-228.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"335.1,-221.25 338.93,-227.9 335.45,-224.74 335.8,-228.22 335.8,-228.22 335.8,-228.22 335.45,-224.74 332.66,-228.53 335.1,-221.25 335.1,-221.25\"/>\n",
"<text text-anchor=\"start\" x=\"389.16\" y=\"-336.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;21 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>9&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M641.41,-278.02C647.11,-277.37 653.49,-276.64 659.32,-276 688.64,-272.77 695.99,-272.1 725.32,-269 903.77,-250.17 1117.72,-227.75 1197.72,-219.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1205.04,-218.61 1198.41,-222.47 1201.56,-218.97 1198.08,-219.34 1198.08,-219.34 1198.08,-219.34 1201.56,-218.97 1197.75,-216.21 1205.04,-218.61 1205.04,-218.61\"/>\n",
"<text text-anchor=\"start\" x=\"898.99\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;22 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>9&#45;&gt;22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M639.16,-271.42C687.75,-243.5 842.05,-156.14 896.99,-141 1019.66,-107.19 1068.56,-178.35 1182.65,-122 1197.88,-114.48 1210.31,-99.67 1218.6,-87.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1222.55,-81.36 1221.39,-88.95 1220.65,-84.3 1218.74,-87.23 1218.74,-87.23 1218.74,-87.23 1220.65,-84.3 1216.1,-85.52 1222.55,-81.36 1222.55,-81.36\"/>\n",
"<text text-anchor=\"start\" x=\"900.99\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 27 -->\n",
"<g id=\"node28\" class=\"node\">\n",
"<title>27</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-314 725.49,-296 755.65,-278 785.82,-296 755.65,-314\"/>\n",
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-292.3\" font-family=\"Lato\" font-size=\"14.00\">27</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;27 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>9&#45;&gt;27</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M641.59,-279.83C658.45,-279.9 684.78,-280.63 707.32,-284 714.09,-285.01 721.31,-286.58 728.01,-288.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"735.03,-290.09 727.46,-291.36 731.64,-289.2 728.26,-288.32 728.26,-288.32 728.26,-288.32 731.64,-289.2 729.05,-285.27 735.03,-290.09 735.03,-290.09\"/>\n",
"<text text-anchor=\"start\" x=\"659.32\" y=\"-287.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 28 -->\n",
"<g id=\"node29\" class=\"node\">\n",
"<title>28</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-369 725.49,-351 755.65,-333 785.82,-351 755.65,-369\"/>\n",
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-347.3\" font-family=\"Lato\" font-size=\"14.00\">28</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;28 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>9&#45;&gt;28</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M639.57,-288.49C645.67,-291.84 652.79,-295.67 659.32,-299 680.39,-309.76 686.54,-310.69 707.32,-322 716.36,-326.92 726.09,-332.78 734.37,-337.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"740.38,-341.72 732.78,-340.66 737.42,-339.86 734.46,-337.99 734.46,-337.99 734.46,-337.99 737.42,-339.86 736.13,-335.33 740.38,-341.72 740.38,-341.72\"/>\n",
"<text text-anchor=\"start\" x=\"661.32\" y=\"-325.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 27&#45;&gt;1 -->\n",
"<g id=\"edge53\" class=\"edge\">\n",
"<title>27&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M783.11,-297.65C833.24,-301.8 944.15,-315.87 1023.65,-362 1047.28,-375.71 1068.85,-398.74 1082.52,-415.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1087.19,-421.03 1080.34,-417.58 1084.99,-418.31 1082.79,-415.59 1082.79,-415.59 1082.79,-415.59 1084.99,-418.31 1085.23,-413.61 1087.19,-421.03 1087.19,-421.03\"/>\n",
"<text text-anchor=\"start\" x=\"910.49\" y=\"-330.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 27&#45;&gt;6 -->\n",
"<g id=\"edge54\" class=\"edge\">\n",
"<title>27&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M772.35,-304.2C790,-313.43 818.77,-328.46 838.5,-338.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"844.82,-342.07 837.16,-341.62 841.72,-340.45 838.62,-338.83 838.62,-338.83 838.62,-338.83 841.72,-340.45 840.07,-336.04 844.82,-342.07 844.82,-342.07\"/>\n",
"<text text-anchor=\"start\" x=\"805.99\" y=\"-333.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 28&#45;&gt;1 -->\n",
"<g id=\"edge55\" class=\"edge\">\n",
"<title>28&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M773.14,-358.6C798.99,-370.24 850.9,-392.43 896.99,-405 925.68,-412.82 933.59,-411.48 962.99,-416 1001.59,-421.94 1046.55,-428.14 1073.51,-431.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1080.62,-432.74 1073.27,-434.92 1077.16,-432.27 1073.69,-431.8 1073.69,-431.8 1073.69,-431.8 1077.16,-432.27 1074.11,-428.68 1080.62,-432.74 1080.62,-432.74\"/>\n",
"<text text-anchor=\"start\" x=\"910.49\" y=\"-416.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 28&#45;&gt;9 -->\n",
"<g id=\"edge56\" class=\"edge\">\n",
"<title>28&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M728.69,-352.91C708.24,-353.14 679.85,-350.54 659.32,-337 647.22,-329.02 638.59,-315.26 632.93,-303.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"630.09,-296.82 635.8,-301.95 631.51,-300.02 632.92,-303.23 632.92,-303.23 632.92,-303.23 631.51,-300.02 630.04,-304.5 630.09,-296.82 630.09,-296.82\"/>\n",
"<text text-anchor=\"start\" x=\"674.82\" y=\"-354.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;14 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>15&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1321.45,-538.54C1314.57,-532.54 1305.67,-526.13 1296.32,-523 1289.15,-520.6 1286.57,-520.89 1279.32,-523 1268.89,-526.03 1258.56,-532.11 1250.23,-538.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1244.27,-542.44 1248.01,-535.74 1247.08,-540.35 1249.89,-538.27 1249.89,-538.27 1249.89,-538.27 1247.08,-540.35 1251.77,-540.79 1244.27,-542.44 1244.27,-542.44\"/>\n",
"<text text-anchor=\"start\" x=\"1283.32\" y=\"-541.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"1279.82\" y=\"-526.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"352pt\"\n",
" viewBox=\"0.00 0.00 729.00 351.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.4926108374384237 0.4926108374384237) rotate(0) translate(4 711)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-711 1478.88,-711 1478.88,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"715.94\" y=\"-692.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"738.94\" y=\"-692.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"754.94\" y=\"-692.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"705.94\" y=\"-678.8\" font-family=\"Lato\" font-size=\"14.00\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-83\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-79.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-83C2.79,-83 17.15,-83 30.63,-83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-83 30.94,-86.15 34.44,-83 30.94,-83 30.94,-83 30.94,-83 34.44,-83 30.94,-79.85 37.94,-83 37.94,-83\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"188.33,-182 158.17,-164 188.33,-146 218.5,-164 188.33,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"188.33\" y=\"-160.3\" font-family=\"Lato\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;10 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M67.91,-96.91C74.33,-104.44 82.95,-113.5 92,-120 113.59,-135.5 141.51,-147.62 161.55,-155.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.28,-157.66 160.63,-158.2 165,-156.45 161.72,-155.24 161.72,-155.24 161.72,-155.24 165,-156.45 162.81,-152.28 168.28,-157.66 168.28,-157.66\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>11</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"267,-78 236.83,-60 267,-42 297.16,-60 267,-78\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-56.3\" font-family=\"Lato\" font-size=\"14.00\">11</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;11 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.05,-79.82C79.75,-78.83 86.13,-77.79 92,-77 140.87,-70.43 197.78,-65.36 232.85,-62.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"239.99,-61.95 233.26,-65.65 236.5,-62.23 233.01,-62.51 233.01,-62.51 233.01,-62.51 236.5,-62.23 232.76,-59.37 239.99,-61.95 239.99,-61.95\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-80.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>12</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"399.66,-124 369.5,-106 399.66,-88 429.83,-106 399.66,-124\"/>\n",
"<text text-anchor=\"middle\" x=\"399.66\" y=\"-102.3\" font-family=\"Lato\" font-size=\"14.00\">12</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;12 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.59,-88.01C79.36,-89.56 85.92,-91.09 92,-92 189.55,-106.61 306.34,-107.41 363.56,-106.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"370.57,-106.64 363.61,-109.89 367.07,-106.69 363.57,-106.74 363.57,-106.74 363.57,-106.74 367.07,-106.69 363.53,-103.59 370.57,-106.64 370.57,-106.64\"/>\n",
"<text text-anchor=\"start\" x=\"166.33\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>13</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"556.99,-36 526.82,-18 556.99,0 587.16,-18 556.99,-36\"/>\n",
"<text text-anchor=\"middle\" x=\"556.99\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">13</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;13 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.03,-71.56C92.38,-53.15 140.19,-19 187.33,-19 187.33,-19 187.33,-19 400.66,-19 441.48,-19 488.33,-18.65 519.81,-18.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"527.08,-18.3 520.11,-21.51 523.58,-18.33 520.08,-18.36 520.08,-18.36 520.08,-18.36 523.58,-18.33 520.05,-15.21 527.08,-18.3 527.08,-18.3\"/>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node25\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"333.33\" cy=\"-203\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"333.33\" y=\"-199.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;8 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>10&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.52,-169.51C235.67,-176.64 281.17,-189.05 308.84,-196.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"315.8,-198.49 308.22,-199.69 312.43,-197.57 309.05,-196.65 309.05,-196.65 309.05,-196.65 312.43,-197.57 309.88,-193.61 315.8,-198.49 315.8,-198.49\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node23\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.99\" cy=\"-102\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"860.99\" y=\"-98.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;7 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>11&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M294.98,-61.4C375.59,-65.69 621.56,-79.45 824.99,-98 828.46,-98.32 832.12,-98.69 835.71,-99.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"842.91,-99.89 835.6,-102.24 839.43,-99.5 835.96,-99.11 835.96,-99.11 835.96,-99.11 839.43,-99.5 836.31,-95.98 842.91,-99.89 842.91,-99.89\"/>\n",
"<text text-anchor=\"middle\" x=\"556.99\" y=\"-83.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node27\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"623.32\" cy=\"-280\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"623.32\" y=\"-276.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;9 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>12&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M428.53,-106.99C469.08,-109.95 544.18,-121.39 587.32,-165 611.1,-189.04 618.8,-228.71 621.25,-254.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"621.83,-261.83 618.13,-255.11 621.55,-258.34 621.27,-254.85 621.27,-254.85 621.27,-254.85 621.55,-258.34 624.41,-254.6 621.83,-261.83 621.83,-261.83\"/>\n",
"<text text-anchor=\"middle\" x=\"478.33\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node17\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-52\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-48.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;5 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>13&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M583.2,-15.42C608.3,-13.09 647.93,-10 682.32,-10 682.32,-10 682.32,-10 994.32,-10 1024.9,-10 1057.07,-25.98 1077.23,-38.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1083.34,-42.05 1075.74,-41.01 1080.37,-40.19 1077.41,-38.33 1077.41,-38.33 1077.41,-38.33 1080.37,-40.19 1079.08,-35.66 1083.34,-42.05 1083.34,-42.05\"/>\n",
"<text text-anchor=\"middle\" x=\"814.49\" y=\"-13.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-435\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-431.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>14</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-571 1200.82,-553 1230.98,-535 1261.15,-553 1230.98,-571\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-549.3\" font-family=\"Lato\" font-size=\"14.00\">14</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;14 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1101.15,-453.08C1103.94,-474.82 1111.92,-510.91 1134.65,-531 1144.05,-539.31 1174.34,-545.35 1198.29,-548.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1205.49,-550.03 1198.11,-552.14 1202.02,-549.53 1198.56,-549.02 1198.56,-549.02 1198.56,-549.02 1202.02,-549.53 1199.01,-545.9 1205.49,-550.03 1205.49,-550.03\"/>\n",
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-548.8\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 16 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>16</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-495 1200.82,-477 1230.98,-459 1261.15,-477 1230.98,-495\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-473.3\" font-family=\"Lato\" font-size=\"14.00\">16</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;16 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1102.85,-417.43C1106.98,-400.44 1115.98,-375.61 1134.65,-364 1152.77,-352.73 1164.89,-352.18 1182.65,-364 1212.43,-383.82 1223.51,-426.37 1227.61,-453.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1228.59,-460.36 1224.51,-453.85 1228.11,-456.89 1227.64,-453.42 1227.64,-453.42 1227.64,-453.42 1228.11,-456.89 1230.76,-452.99 1228.59,-460.36 1228.59,-460.36\"/>\n",
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-367.8\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
"</g>\n",
"<!-- 15 -->\n",
"<g id=\"node30\" class=\"node\">\n",
"<title>15</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1335.76\" cy=\"-552\" rx=\"21.4\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1335.76\" y=\"-548.3\" font-family=\"Lato\" font-size=\"14.00\">15</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;15 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>14&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1256.42,-555.98C1268.44,-557.07 1283.14,-557.85 1296.32,-557 1299.92,-556.77 1303.7,-556.41 1307.42,-556\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1314.46,-555.14 1307.89,-559.11 1310.98,-555.56 1307.51,-555.99 1307.51,-555.99 1307.51,-555.99 1310.98,-555.56 1307.13,-552.86 1314.46,-555.14 1314.46,-555.14\"/>\n",
"<text text-anchor=\"start\" x=\"1283.32\" y=\"-575.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"1279.82\" y=\"-560.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;1 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>16&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1206.29,-473.52C1186.65,-470.16 1158.22,-464.22 1134.65,-455 1129.92,-453.15 1125.06,-450.74 1120.52,-448.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1114.16,-444.56 1121.8,-445.34 1117.19,-446.31 1120.22,-448.07 1120.22,-448.07 1120.22,-448.07 1117.19,-446.31 1118.65,-450.79 1114.16,-444.56 1114.16,-444.56\"/>\n",
"<text text-anchor=\"middle\" x=\"1158.65\" y=\"-471.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-275\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-271.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;14 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1099.1,-293.07C1099.19,-322.58 1103.59,-381.43 1134.65,-417 1149.74,-434.28 1167.41,-418.85 1182.65,-436 1203.41,-459.37 1188.5,-475.19 1200.65,-504 1205.11,-514.59 1211.55,-525.63 1217.25,-534.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1221.24,-540.62 1214.77,-536.5 1219.32,-537.7 1217.4,-534.77 1217.4,-534.77 1217.4,-534.77 1219.32,-537.7 1220.03,-533.04 1221.24,-540.62 1221.24,-540.62\"/>\n",
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-439.8\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 17 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>17</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-297 1200.82,-279 1230.98,-261 1261.15,-279 1230.98,-297\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-275.3\" font-family=\"Lato\" font-size=\"14.00\">17</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;17 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1112.2,-263.12C1118.44,-258.02 1126.4,-252.64 1134.65,-250 1154.97,-243.49 1162.12,-244.21 1182.65,-250 1193,-252.92 1203.32,-258.8 1211.67,-264.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1217.63,-268.79 1210.11,-267.27 1214.79,-266.75 1211.95,-264.71 1211.95,-264.71 1211.95,-264.71 1214.79,-266.75 1213.78,-262.15 1217.63,-268.79 1217.63,-268.79\"/>\n",
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"</g>\n",
"<!-- 17&#45;&gt;2 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>17&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1201.98,-278.14C1178.69,-277.43 1145.89,-276.42 1123.76,-275.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1116.69,-275.52 1123.78,-272.59 1120.19,-275.63 1123.69,-275.74 1123.69,-275.74 1123.69,-275.74 1120.19,-275.63 1123.59,-278.89 1116.69,-275.52 1116.69,-275.52\"/>\n",
"<text text-anchor=\"middle\" x=\"1158.65\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-553\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-549.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;14 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1114.83,-561.66C1120.81,-564.6 1127.86,-567.52 1134.65,-569 1155.5,-573.54 1161.6,-572.46 1182.65,-569 1190.35,-567.73 1198.49,-565.38 1205.8,-562.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1212.8,-560.32 1207.29,-565.67 1209.51,-561.51 1206.22,-562.71 1206.22,-562.71 1206.22,-562.71 1209.51,-561.51 1205.14,-559.75 1212.8,-560.32 1212.8,-560.32\"/>\n",
"<text text-anchor=\"start\" x=\"1138.65\" y=\"-575.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;16 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1110.45,-538.94C1116.84,-531.36 1125.46,-522.3 1134.65,-516 1155.76,-501.53 1183.07,-491.05 1203.04,-484.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1209.78,-482.52 1204.03,-487.61 1206.44,-483.56 1203.09,-484.6 1203.09,-484.6 1203.09,-484.6 1206.44,-483.56 1202.16,-481.6 1209.78,-482.52 1209.78,-482.52\"/>\n",
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-519.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;17 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1102.84,-535.43C1109.77,-497.89 1126.28,-412.44 1134.65,-402 1149.45,-383.54 1165.96,-395.77 1182.65,-379 1204.41,-357.13 1217.5,-323.34 1224.23,-301.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1226.2,-294.44 1227.26,-302.05 1225.22,-297.8 1224.24,-301.17 1224.24,-301.17 1224.24,-301.17 1225.22,-297.8 1221.21,-300.29 1226.2,-294.44 1226.2,-294.44\"/>\n",
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-405.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 18 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>18</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-666 1200.82,-648 1230.98,-630 1261.15,-648 1230.98,-666\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-644.3\" font-family=\"Lato\" font-size=\"14.00\">18</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;18 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1100.79,-571.08C1103.23,-592.69 1110.86,-628.04 1134.65,-645 1154.19,-658.93 1182.16,-658.05 1202.75,-654.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1209.7,-653.38 1203.38,-657.75 1206.25,-654.02 1202.81,-654.65 1202.81,-654.65 1202.81,-654.65 1206.25,-654.02 1202.24,-651.55 1209.7,-653.38 1209.7,-653.38\"/>\n",
"<text text-anchor=\"start\" x=\"1134.65\" y=\"-659.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;3 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>18&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1213.55,-640.03C1193.78,-630.03 1160.09,-611.68 1134.65,-591 1127.94,-585.54 1121.31,-578.8 1115.67,-572.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1110.78,-566.93 1117.76,-570.13 1113.08,-569.56 1115.39,-572.2 1115.39,-572.2 1115.39,-572.2 1113.08,-569.56 1113.01,-574.27 1110.78,-566.93 1110.78,-566.93\"/>\n",
"<text text-anchor=\"middle\" x=\"1158.65\" y=\"-626.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1335.76\" cy=\"-216\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1335.76\" y=\"-212.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 19 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>19</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1444.54,-272 1414.38,-254 1444.54,-236 1474.71,-254 1444.54,-272\"/>\n",
"<text text-anchor=\"middle\" x=\"1444.54\" y=\"-250.3\" font-family=\"Lato\" font-size=\"14.00\">19</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;19 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1353.67,-213.48C1365.85,-212.33 1382.49,-212.14 1396.21,-217 1408.03,-221.18 1419.19,-229.6 1427.7,-237.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1433.15,-242.55 1425.91,-239.99 1430.62,-240.13 1428.09,-237.72 1428.09,-237.72 1428.09,-237.72 1430.62,-240.13 1430.26,-235.44 1433.15,-242.55 1433.15,-242.55\"/>\n",
"<text text-anchor=\"start\" x=\"1377.71\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"</g>\n",
"<!-- 20 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>20</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"993.32,-108 963.15,-90 993.32,-72 1023.48,-90 993.32,-108\"/>\n",
"<text text-anchor=\"middle\" x=\"993.32\" y=\"-86.3\" font-family=\"Lato\" font-size=\"14.00\">20</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;20 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1318.77,-209.95C1303.93,-204.38 1281.19,-195.95 1261.32,-189 1205.33,-169.43 1190.3,-167.5 1134.65,-147 1093.25,-131.75 1045.84,-112 1018.08,-100.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1011.46,-97.39 1019.13,-97.23 1014.68,-98.76 1017.9,-100.13 1017.9,-100.13 1017.9,-100.13 1014.68,-98.76 1016.66,-103.03 1011.46,-97.39 1011.46,-97.39\"/>\n",
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 19&#45;&gt;4 -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>19&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1423.96,-248.17C1410.22,-243.96 1391.47,-237.99 1375.21,-232 1370.08,-230.11 1364.63,-227.94 1359.49,-225.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1352.73,-222.99 1360.41,-222.79 1355.96,-224.35 1359.19,-225.7 1359.19,-225.7 1359.19,-225.7 1355.96,-224.35 1357.97,-228.6 1352.73,-222.99 1352.73,-222.99\"/>\n",
"<text text-anchor=\"start\" x=\"1375.21\" y=\"-242.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;5 -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>20&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1010.76,-82.11C1019.77,-77.94 1031.2,-72.89 1041.65,-69 1052.07,-65.12 1063.82,-61.45 1073.85,-58.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1080.81,-56.53 1074.95,-61.49 1077.44,-57.49 1074.08,-58.46 1074.08,-58.46 1074.08,-58.46 1077.44,-57.49 1073.21,-55.43 1080.81,-56.53 1080.81,-56.53\"/>\n",
"<text text-anchor=\"start\" x=\"1041.65\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 21 -->\n",
"<g id=\"node18\" class=\"node\">\n",
"<title>21</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-234 1200.82,-216 1230.98,-198 1261.15,-216 1230.98,-234\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-212.3\" font-family=\"Lato\" font-size=\"14.00\">21</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;21 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>5&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1113.18,-62.89C1130.66,-77.4 1161.34,-104.46 1182.65,-132 1198.2,-152.1 1211.96,-177.91 1220.58,-195.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1223.73,-202.16 1217.86,-197.21 1222.22,-199 1220.7,-195.85 1220.7,-195.85 1220.7,-195.85 1222.22,-199 1223.54,-194.48 1223.73,-202.16 1223.73,-202.16\"/>\n",
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"</g>\n",
"<!-- 22 -->\n",
"<g id=\"node19\" class=\"node\">\n",
"<title>22</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-86 1200.82,-68 1230.98,-50 1261.15,-68 1230.98,-86\"/>\n",
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-64.3\" font-family=\"Lato\" font-size=\"14.00\">22</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;22 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>5&#45;&gt;22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1116.69,-54.09C1137.38,-56.63 1172.68,-60.97 1198.4,-64.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1205.37,-64.98 1198.04,-67.25 1201.9,-64.55 1198.42,-64.13 1198.42,-64.13 1198.42,-64.13 1201.9,-64.55 1198.81,-61 1205.37,-64.98 1205.37,-64.98\"/>\n",
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;4 -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>21&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1261.16,-216C1276.73,-216 1295.66,-216 1310.42,-216\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1317.73,-216 1310.73,-219.15 1314.23,-216 1310.73,-216 1310.73,-216 1310.73,-216 1314.23,-216 1310.73,-212.85 1317.73,-216 1317.73,-216\"/>\n",
"<text text-anchor=\"start\" x=\"1279.32\" y=\"-219.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 22&#45;&gt;5 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>22&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1217.69,-57.44C1208.66,-50.41 1195.73,-41.8 1182.65,-38 1162.16,-32.05 1155.6,-33.97 1134.65,-38 1130.45,-38.81 1126.12,-40.12 1121.99,-41.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1115.29,-44.27 1120.64,-38.76 1118.55,-42.98 1121.8,-41.69 1121.8,-41.69 1121.8,-41.69 1118.55,-42.98 1122.96,-44.62 1115.29,-44.27 1115.29,-44.27\"/>\n",
"<text text-anchor=\"start\" x=\"1150.15\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node20\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.99\" cy=\"-350\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"860.99\" y=\"-346.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;19 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>6&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M878.78,-346.98C917.32,-340.34 1015.16,-325 1097.65,-325 1097.65,-325 1097.65,-325 1336.76,-325 1375.39,-325 1410.7,-292.39 1429.45,-271.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1434.08,-266.04 1431.87,-273.4 1431.78,-268.69 1429.49,-271.33 1429.49,-271.33 1429.49,-271.33 1431.78,-268.69 1427.11,-269.27 1434.08,-266.04 1434.08,-266.04\"/>\n",
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-328.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;20 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>6&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M861.94,-331.87C862.79,-303.42 868.34,-247.92 896.99,-213 911.99,-194.71 928.3,-206.77 944.99,-190 966.75,-168.13 979.84,-134.34 986.57,-112.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"988.53,-105.44 989.6,-113.05 987.55,-108.8 986.57,-112.17 986.57,-112.17 986.57,-112.17 987.55,-108.8 983.55,-111.29 988.53,-105.44 988.53,-105.44\"/>\n",
"<text text-anchor=\"start\" x=\"900.99\" y=\"-216.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 23 -->\n",
"<g id=\"node21\" class=\"node\">\n",
"<title>23</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"993.32,-407 963.15,-389 993.32,-371 1023.48,-389 993.32,-407\"/>\n",
"<text text-anchor=\"middle\" x=\"993.32\" y=\"-385.3\" font-family=\"Lato\" font-size=\"14.00\">23</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;23 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>6&#45;&gt;23</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M879,-349.94C896.11,-350.37 923.05,-352.37 944.99,-360 955,-363.48 965.14,-369.32 973.46,-374.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"979.43,-378.98 971.88,-377.59 976.55,-376.99 973.67,-375 973.67,-375 973.67,-375 976.55,-376.99 975.46,-372.41 979.43,-378.98 979.43,-378.98\"/>\n",
"<text text-anchor=\"start\" x=\"896.99\" y=\"-363.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 24 -->\n",
"<g id=\"node22\" class=\"node\">\n",
"<title>24</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"478.33,-298 448.16,-280 478.33,-262 508.49,-280 478.33,-298\"/>\n",
"<text text-anchor=\"middle\" x=\"478.33\" y=\"-276.3\" font-family=\"Lato\" font-size=\"14.00\">24</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;24 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>6&#45;&gt;24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M844.58,-357.72C829.93,-364.59 807.07,-374.15 785.99,-378 759.46,-382.85 752.23,-379.63 725.32,-378 695.83,-376.22 687.62,-378.51 659.32,-370 597.84,-351.51 531.89,-313.2 499.55,-293.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"493.55,-289.26 501.15,-290.32 496.51,-291.13 499.47,-292.99 499.47,-292.99 499.47,-292.99 496.51,-291.13 497.8,-295.66 493.55,-289.26 493.55,-289.26\"/>\n",
"<text text-anchor=\"start\" x=\"661.32\" y=\"-380.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 23&#45;&gt;1 -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>23&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1018.33,-392.27C1031.87,-394.76 1048.79,-399 1062.65,-406 1068.75,-409.08 1074.74,-413.4 1079.98,-417.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1085.35,-422.47 1078.01,-420.23 1082.71,-420.16 1080.08,-417.86 1080.08,-417.86 1080.08,-417.86 1082.71,-420.16 1082.15,-415.49 1085.35,-422.47 1085.35,-422.47\"/>\n",
"<text text-anchor=\"start\" x=\"1043.65\" y=\"-409.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 23&#45;&gt;6 -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>23&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M963.87,-388.32C944.43,-387.02 918.4,-383.63 896.99,-375 891.43,-372.76 885.93,-369.48 880.98,-366.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"875.06,-361.61 882.55,-363.26 877.87,-363.7 880.67,-365.79 880.67,-365.79 880.67,-365.79 877.87,-363.7 878.79,-368.31 875.06,-361.61 875.06,-361.61\"/>\n",
"<text text-anchor=\"start\" x=\"910.49\" y=\"-389.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 24&#45;&gt;1 -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>24&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M491.87,-290C497.41,-294.78 503.76,-300.81 508.66,-307 518.79,-319.79 517.9,-325.23 526.66,-339 565.91,-400.76 549.15,-473 622.32,-473 622.32,-473 622.32,-473 994.32,-473 1024.33,-473 1056.4,-458.71 1076.71,-447.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1082.87,-444.2 1078.31,-450.37 1079.82,-445.91 1076.77,-447.62 1076.77,-447.62 1076.77,-447.62 1079.82,-445.91 1075.23,-444.87 1082.87,-444.2 1082.87,-444.2\"/>\n",
"<text text-anchor=\"start\" x=\"805.99\" y=\"-476.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 24&#45;&gt;9 -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>24&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M508.61,-280C534.97,-280 573.26,-280 597.98,-280\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"605.19,-280 598.19,-283.15 601.69,-280 598.19,-280 598.19,-280 598.19,-280 601.69,-280 598.19,-276.85 605.19,-280 605.19,-280\"/>\n",
"<text text-anchor=\"start\" x=\"546.49\" y=\"-283.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;20 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>7&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M879.02,-100.43C899.37,-98.56 933.86,-95.38 959.46,-93.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"966.75,-92.35 960.07,-96.13 963.27,-92.67 959.78,-93 959.78,-93 959.78,-93 963.27,-92.67 959.49,-89.86 966.75,-92.35 966.75,-92.35\"/>\n",
"<text text-anchor=\"start\" x=\"914.99\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 25 -->\n",
"<g id=\"node24\" class=\"node\">\n",
"<title>25</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-180 725.49,-162 755.65,-144 785.82,-162 755.65,-180\"/>\n",
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-158.3\" font-family=\"Lato\" font-size=\"14.00\">25</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;25 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>7&#45;&gt;25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M842.9,-100.28C831.3,-99.87 815.97,-100.84 803.99,-107 801.77,-108.14 784.14,-128.96 771.05,-144.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"766.46,-150.15 768.52,-142.76 768.7,-147.46 770.94,-144.77 770.94,-144.77 770.94,-144.77 768.7,-147.46 773.37,-146.79 766.46,-150.15 766.46,-150.15\"/>\n",
"<text text-anchor=\"start\" x=\"806.49\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"</g>\n",
"<!-- 25&#45;&gt;2 -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>25&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M780.91,-159.05C817.53,-155.5 888.64,-152.15 944.99,-171 999.78,-189.34 1053.07,-233.38 1079.83,-257.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1085.13,-262.77 1077.85,-260.32 1082.56,-260.39 1079.99,-258.01 1079.99,-258.01 1079.99,-258.01 1082.56,-260.39 1082.14,-255.7 1085.13,-262.77 1085.13,-262.77\"/>\n",
"<text text-anchor=\"start\" x=\"912.49\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 25&#45;&gt;7 -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>25&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M771.46,-153.4C789.08,-143.17 818.65,-126 838.72,-114.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"844.87,-110.78 840.4,-117.01 841.85,-112.53 838.82,-114.29 838.82,-114.29 838.82,-114.29 841.85,-112.53 837.24,-111.57 844.87,-110.78 844.87,-110.78\"/>\n",
"<text text-anchor=\"start\" x=\"803.99\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;20 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>8&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.18,-196.1C356.12,-193.66 362.97,-191.03 369.33,-189 575.64,-123.29 627.97,-100.51 842.99,-75 884.97,-70.02 933.72,-77.38 963.8,-83.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"971.02,-84.94 963.53,-86.6 967.6,-84.23 964.17,-83.51 964.17,-83.51 964.17,-83.51 967.6,-84.23 964.81,-80.43 971.02,-84.94 971.02,-84.94\"/>\n",
"<text text-anchor=\"start\" x=\"663.32\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;24 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>8&#45;&gt;24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.12,-210.41C369.26,-219.52 402.38,-235.65 429.99,-251 438.99,-256 448.71,-261.87 457,-267.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"463.01,-270.79 455.41,-269.75 460.05,-268.94 457.08,-267.08 457.08,-267.08 457.08,-267.08 460.05,-268.94 458.75,-264.41 463.01,-270.79 463.01,-270.79\"/>\n",
"<text text-anchor=\"start\" x=\"377.66\" y=\"-254.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;25 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>8&#45;&gt;25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M351.33,-201.34C414.75,-195.16 638.25,-173.35 722.34,-165.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"729.33,-164.47 722.67,-168.29 725.85,-164.81 722.36,-165.15 722.36,-165.15 722.36,-165.15 725.85,-164.81 722.06,-162.01 729.33,-164.47 729.33,-164.47\"/>\n",
"<text text-anchor=\"start\" x=\"534.99\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 26 -->\n",
"<g id=\"node26\" class=\"node\">\n",
"<title>26</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"478.33,-352 448.16,-334 478.33,-316 508.49,-334 478.33,-352\"/>\n",
"<text text-anchor=\"middle\" x=\"478.33\" y=\"-330.3\" font-family=\"Lato\" font-size=\"14.00\">26</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;26 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>8&#45;&gt;26</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M340.29,-219.89C345.92,-233.8 355.57,-253.23 369.33,-266 391.1,-286.2 404.95,-278.05 429.99,-294 440.76,-300.86 451.71,-309.95 460.36,-317.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"465.96,-322.86 458.67,-320.45 463.38,-320.5 460.8,-318.13 460.8,-318.13 460.8,-318.13 463.38,-320.5 462.93,-315.81 465.96,-322.86 465.96,-322.86\"/>\n",
"<text text-anchor=\"start\" x=\"375.66\" y=\"-297.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 26&#45;&gt;3 -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>26&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M482.58,-349.54C493.36,-396.21 532.43,-532 622.32,-532 622.32,-532 622.32,-532 994.32,-532 1022.32,-532 1053.75,-539.5 1074.52,-545.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1081.39,-547.59 1073.78,-548.6 1078.04,-546.59 1074.69,-545.58 1074.69,-545.58 1074.69,-545.58 1078.04,-546.59 1075.59,-542.57 1081.39,-547.59 1081.39,-547.59\"/>\n",
"<text text-anchor=\"start\" x=\"805.99\" y=\"-535.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 26&#45;&gt;8 -->\n",
"<g id=\"edge52\" class=\"edge\">\n",
"<title>26&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M449.03,-334.74C424.96,-333.83 390.94,-328.72 369.33,-309 346.62,-288.28 338.62,-252.55 335.81,-228.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"335.1,-221.25 338.93,-227.9 335.45,-224.74 335.8,-228.22 335.8,-228.22 335.8,-228.22 335.45,-224.74 332.66,-228.53 335.1,-221.25 335.1,-221.25\"/>\n",
"<text text-anchor=\"start\" x=\"389.16\" y=\"-336.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;21 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>9&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M641.41,-278.02C647.11,-277.37 653.49,-276.64 659.32,-276 688.64,-272.77 695.99,-272.1 725.32,-269 903.77,-250.17 1117.72,-227.75 1197.72,-219.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1205.04,-218.61 1198.41,-222.47 1201.56,-218.97 1198.08,-219.34 1198.08,-219.34 1198.08,-219.34 1201.56,-218.97 1197.75,-216.21 1205.04,-218.61 1205.04,-218.61\"/>\n",
"<text text-anchor=\"start\" x=\"898.99\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;22 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>9&#45;&gt;22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M639.16,-271.42C687.75,-243.5 842.05,-156.14 896.99,-141 1019.66,-107.19 1068.56,-178.35 1182.65,-122 1197.88,-114.48 1210.31,-99.67 1218.6,-87.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1222.55,-81.36 1221.39,-88.95 1220.65,-84.3 1218.74,-87.23 1218.74,-87.23 1218.74,-87.23 1220.65,-84.3 1216.1,-85.52 1222.55,-81.36 1222.55,-81.36\"/>\n",
"<text text-anchor=\"start\" x=\"900.99\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 27 -->\n",
"<g id=\"node28\" class=\"node\">\n",
"<title>27</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-314 725.49,-296 755.65,-278 785.82,-296 755.65,-314\"/>\n",
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-292.3\" font-family=\"Lato\" font-size=\"14.00\">27</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;27 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>9&#45;&gt;27</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M641.59,-279.83C658.45,-279.9 684.78,-280.63 707.32,-284 714.09,-285.01 721.31,-286.58 728.01,-288.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"735.03,-290.09 727.46,-291.36 731.64,-289.2 728.26,-288.32 728.26,-288.32 728.26,-288.32 731.64,-289.2 729.05,-285.27 735.03,-290.09 735.03,-290.09\"/>\n",
"<text text-anchor=\"start\" x=\"659.32\" y=\"-287.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 28 -->\n",
"<g id=\"node29\" class=\"node\">\n",
"<title>28</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-369 725.49,-351 755.65,-333 785.82,-351 755.65,-369\"/>\n",
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-347.3\" font-family=\"Lato\" font-size=\"14.00\">28</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;28 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>9&#45;&gt;28</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M639.57,-288.49C645.67,-291.84 652.79,-295.67 659.32,-299 680.39,-309.76 686.54,-310.69 707.32,-322 716.36,-326.92 726.09,-332.78 734.37,-337.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"740.38,-341.72 732.78,-340.66 737.42,-339.86 734.46,-337.99 734.46,-337.99 734.46,-337.99 737.42,-339.86 736.13,-335.33 740.38,-341.72 740.38,-341.72\"/>\n",
"<text text-anchor=\"start\" x=\"661.32\" y=\"-325.8\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 27&#45;&gt;1 -->\n",
"<g id=\"edge53\" class=\"edge\">\n",
"<title>27&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M783.11,-297.65C833.24,-301.8 944.15,-315.87 1023.65,-362 1047.28,-375.71 1068.85,-398.74 1082.52,-415.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1087.19,-421.03 1080.34,-417.58 1084.99,-418.31 1082.79,-415.59 1082.79,-415.59 1082.79,-415.59 1084.99,-418.31 1085.23,-413.61 1087.19,-421.03 1087.19,-421.03\"/>\n",
"<text text-anchor=\"start\" x=\"910.49\" y=\"-330.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 27&#45;&gt;6 -->\n",
"<g id=\"edge54\" class=\"edge\">\n",
"<title>27&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M772.35,-304.2C790,-313.43 818.77,-328.46 838.5,-338.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"844.82,-342.07 837.16,-341.62 841.72,-340.45 838.62,-338.83 838.62,-338.83 838.62,-338.83 841.72,-340.45 840.07,-336.04 844.82,-342.07 844.82,-342.07\"/>\n",
"<text text-anchor=\"start\" x=\"805.99\" y=\"-333.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 28&#45;&gt;1 -->\n",
"<g id=\"edge55\" class=\"edge\">\n",
"<title>28&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M773.14,-358.6C798.99,-370.24 850.9,-392.43 896.99,-405 925.68,-412.82 933.59,-411.48 962.99,-416 1001.59,-421.94 1046.55,-428.14 1073.51,-431.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1080.62,-432.74 1073.27,-434.92 1077.16,-432.27 1073.69,-431.8 1073.69,-431.8 1073.69,-431.8 1077.16,-432.27 1074.11,-428.68 1080.62,-432.74 1080.62,-432.74\"/>\n",
"<text text-anchor=\"start\" x=\"910.49\" y=\"-416.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 28&#45;&gt;9 -->\n",
"<g id=\"edge56\" class=\"edge\">\n",
"<title>28&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M728.69,-352.91C708.24,-353.14 679.85,-350.54 659.32,-337 647.22,-329.02 638.59,-315.26 632.93,-303.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"630.09,-296.82 635.8,-301.95 631.51,-300.02 632.92,-303.23 632.92,-303.23 632.92,-303.23 631.51,-300.02 630.04,-304.5 630.09,-296.82 630.09,-296.82\"/>\n",
"<text text-anchor=\"start\" x=\"674.82\" y=\"-354.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;14 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>15&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1321.45,-538.54C1314.57,-532.54 1305.67,-526.13 1296.32,-523 1289.15,-520.6 1286.57,-520.89 1279.32,-523 1268.89,-526.03 1258.56,-532.11 1250.23,-538.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1244.27,-542.44 1248.01,-535.74 1247.08,-540.35 1249.89,-538.27 1249.89,-538.27 1249.89,-538.27 1247.08,-540.35 1251.77,-540.79 1244.27,-542.44 1244.27,-542.44\"/>\n",
"<text text-anchor=\"start\" x=\"1283.32\" y=\"-541.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"1279.82\" y=\"-526.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb32a0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"si = spot.synthesis_info()\n",
"si.s = spot.synthesis_info.algo_LAR # Use LAR algorithm\n",
"\n",
"game = spot.ltl_to_game(\"G((F(i0) && F(i1))->(G(i1<->(X(o0)))))\", [\"o0\"], si)\n",
"print(\"game has\", game.num_states(), \"states and\", game.num_edges(), \"edges\")\n",
"print(\"output propositions are:\", \", \".join(spot.get_synthesis_output_aps(game)))\n",
"display(game)"
]
},
{
"cell_type": "markdown",
"id": "4d030586",
"metadata": {},
"source": [
"Solving the game, is done with `solve_game()` as with any game. There is also a version that takes a `synthesis_info` as second argument in case the time it takes has to be recorded. Here passing `si` or not makes no difference."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f13ac820",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found a solution: True\n"
]
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"306pt\"\n",
" viewBox=\"0.00 0.00 729.00 306.05\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.591715976331361 0.591715976331361) rotate(0) translate(4 514)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-514 1229.88,-514 1229.88,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"591.44\" y=\"-495.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"614.44\" y=\"-495.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"630.44\" y=\"-495.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"581.44\" y=\"-481.8\" font-family=\"Lato\" font-size=\"14.00\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-144\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-140.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-144C2.79,-144 17.15,-144 30.63,-144\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-144 30.94,-147.15 34.44,-144 30.94,-144 30.94,-144 30.94,-144 34.44,-144 30.94,-140.85 37.94,-144 37.94,-144\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"141.33,-208 111.17,-190 141.33,-172 171.5,-190 141.33,-208\"/>\n",
"<text text-anchor=\"middle\" x=\"141.33\" y=\"-186.3\" font-family=\"Lato\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;10 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.28,-152.44C85.32,-159.63 104.22,-170.06 118.79,-178.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"125.14,-181.62 117.49,-180.99 122.08,-179.92 119.02,-178.23 119.02,-178.23 119.02,-178.23 122.08,-179.92 120.54,-175.48 125.14,-181.62 125.14,-181.62\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>11</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"220,-133 189.83,-115 220,-97 250.16,-115 220,-133\"/>\n",
"<text text-anchor=\"middle\" x=\"220\" y=\"-111.3\" font-family=\"Lato\" font-size=\"14.00\">11</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;11 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.03,-140.95C101.37,-136.06 155.4,-126.38 189.22,-120.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.53,-119.02 190.2,-123.36 193.09,-119.64 189.64,-120.26 189.64,-120.26 189.64,-120.26 193.09,-119.64 189.09,-117.15 196.53,-119.02 196.53,-119.02\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>12</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"352.66,-336 322.5,-318 352.66,-300 382.83,-318 352.66,-336\"/>\n",
"<text text-anchor=\"middle\" x=\"352.66\" y=\"-314.3\" font-family=\"Lato\" font-size=\"14.00\">12</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;12 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.2,-159.62C74.42,-175.88 90.79,-201.13 111,-217 177.78,-269.43 275.74,-299.22 323.45,-311.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"330.39,-313.16 322.84,-314.52 327,-312.31 323.6,-311.46 323.6,-311.46 323.6,-311.46 327,-312.31 324.37,-308.4 330.39,-313.16 330.39,-313.16\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>13</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"509.99,-54 479.82,-36 509.99,-18 540.16,-36 509.99,-54\"/>\n",
"<text text-anchor=\"middle\" x=\"509.99\" y=\"-32.3\" font-family=\"Lato\" font-size=\"14.00\">13</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;13 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.64,-127.26C75.09,-101.48 101.17,-55 140.33,-55 140.33,-55 140.33,-55 353.66,-55 397.93,-55 448.77,-47.3 479.88,-41.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"486.97,-40.41 480.66,-44.77 483.53,-41.04 480.09,-41.67 480.09,-41.67 480.09,-41.67 483.53,-41.04 479.52,-38.57 486.97,-40.41 486.97,-40.41\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node25\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"286.33\" cy=\"-199\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"286.33\" y=\"-195.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;8 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>10&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M168.89,-191.67C195.36,-193.34 235.64,-195.87 261.21,-197.48\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"268.32,-197.93 261.14,-200.63 264.8,-198.21 261.31,-197.99 261.34,-197.49 261.37,-196.99 264.86,-197.21 261.54,-194.35 268.32,-197.93 268.32,-197.93\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node23\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"746.99\" cy=\"-152\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"746.99\" y=\"-148.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;7 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>11&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M249.22,-115.76C304.94,-117.39 432.97,-121.74 540.32,-130 606.11,-135.06 683.41,-144.19 721.81,-148.94\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"728.95,-149.83 721.62,-152.09 725.42,-149.89 721.95,-149.46 722.01,-148.97 722.07,-148.47 725.54,-148.9 722.4,-145.84 728.95,-149.83 728.95,-149.83\"/>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node27\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"576.32\" cy=\"-324\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"576.32\" y=\"-320.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;9 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>12&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M381.73,-318.76C425.6,-319.95 509.66,-322.22 551.06,-323.34\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"558.27,-323.54 551.19,-326.5 554.76,-323.94 551.26,-323.85 551.28,-323.35 551.29,-322.85 554.79,-322.94 551.36,-320.2 558.27,-323.54 558.27,-323.54\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node17\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"917.65\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"917.65\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;5 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>13&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M532.61,-31.26C553.05,-27.2 584.62,-22 612.32,-22 612.32,-22 612.32,-22 833.32,-22 853.16,-22 875.64,-20.85 892.24,-19.79\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"899.43,-19.31 892.65,-22.92 895.97,-20.04 892.47,-20.27 892.44,-19.78 892.41,-19.28 895.9,-19.04 892.23,-16.63 899.43,-19.31 899.43,-19.31\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"917.65\" cy=\"-348\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"917.65\" y=\"-344.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>14</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1002.98,-410 972.82,-392 1002.98,-374 1033.15,-392 1002.98,-410\"/>\n",
"<text text-anchor=\"middle\" x=\"1002.98\" y=\"-388.3\" font-family=\"Lato\" font-size=\"14.00\">14</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;14 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M933.94,-356.07C946.81,-362.87 965.4,-372.68 979.89,-380.34\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"986.23,-383.68 978.57,-383.2 982.9,-382.49 979.81,-380.86 980.04,-380.41 980.27,-379.97 983.37,-381.61 981.51,-377.63 986.23,-383.68 986.23,-383.68\"/>\n",
"</g>\n",
"<!-- 16 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>16</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1002.98,-356 972.82,-338 1002.98,-320 1033.15,-338 1002.98,-356\"/>\n",
"<text text-anchor=\"middle\" x=\"1002.98\" y=\"-334.3\" font-family=\"Lato\" font-size=\"14.00\">16</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;16 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M934.32,-340.71C944.65,-338.23 958.52,-336.19 971.02,-335.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"978.18,-334.69 971.4,-338.3 974.69,-334.92 971.19,-335.16 971.19,-335.16 971.19,-335.16 974.69,-334.92 970.98,-332.01 978.18,-334.69 978.18,-334.69\"/>\n",
"</g>\n",
"<!-- 15 -->\n",
"<g id=\"node30\" class=\"node\">\n",
"<title>15</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"1106.76\" cy=\"-392\" rx=\"21.4\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1106.76\" y=\"-388.3\" font-family=\"Lato\" font-size=\"14.00\">15</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;15 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>14&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1033.15,-392C1047.36,-392 1064.34,-392 1078.31,-392\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1085.31,-392 1078.31,-395.15 1081.81,-392 1078.31,-392 1078.31,-392 1078.31,-392 1081.81,-392 1078.31,-388.85 1085.31,-392 1085.31,-392\"/>\n",
"<text text-anchor=\"start\" x=\"1051.32\" y=\"-395.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;1 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>16&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M985.14,-345.57C972.95,-348.38 956.29,-350.59 942.7,-351.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"935.51,-351.52 942.41,-348.15 939.01,-351.41 942.51,-351.3 942.51,-351.3 942.51,-351.3 939.01,-351.41 942.61,-354.45 935.51,-351.52 935.51,-351.52\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"917.65\" cy=\"-210\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"917.65\" y=\"-206.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;14 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M921.83,-227.52C927.91,-257.62 943.25,-320.22 972.65,-365 975.63,-369.53 979.53,-373.82 983.52,-377.59\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"988.92,-382.38 981.59,-380.09 985.97,-380.43 983.35,-378.11 983.68,-377.74 984.01,-377.36 986.63,-379.69 985.77,-375.38 988.92,-382.38 988.92,-382.38\"/>\n",
"</g>\n",
"<!-- 17 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>17</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1002.98,-232 972.82,-214 1002.98,-196 1033.15,-214 1002.98,-232\"/>\n",
"<text text-anchor=\"middle\" x=\"1002.98\" y=\"-210.3\" font-family=\"Lato\" font-size=\"14.00\">17</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;17 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M935.11,-205.29C946.88,-204.51 962.94,-205.02 976.37,-206.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"983.52,-207.4 976.18,-209.64 980.05,-206.96 976.58,-206.51 976.58,-206.51 976.58,-206.51 980.05,-206.96 976.98,-203.39 983.52,-207.4 983.52,-207.4\"/>\n",
"</g>\n",
"<!-- 17&#45;&gt;2 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>17&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M980.91,-218.94C969.03,-219.37 954.17,-218.72 941.94,-217.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"934.72,-216.23 942.09,-214.09 938.18,-216.72 941.65,-217.21 941.65,-217.21 941.65,-217.21 938.18,-216.72 941.21,-220.33 934.72,-216.23 934.72,-216.23\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"917.65\" cy=\"-439\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"917.65\" y=\"-435.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;14 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M933.94,-430.38C946.97,-423.03 965.87,-412.37 980.44,-404.15\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"986.8,-400.57 982.25,-406.75 983.99,-402.72 980.94,-404.44 980.7,-404 980.45,-403.57 983.5,-401.85 979.15,-401.26 986.8,-400.57 986.8,-400.57\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;16 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M928.21,-424.17C938.43,-408.75 955.5,-384.22 972.65,-365 976.26,-360.95 980.41,-356.85 984.43,-353.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"989.77,-348.27 986.7,-355.31 987.18,-350.62 984.58,-352.97 984.58,-352.97 984.58,-352.97 987.18,-350.62 982.47,-350.64 989.77,-348.27 989.77,-348.27\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;17 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M924.78,-422.46C939.66,-382.28 977.67,-279.64 994.16,-235.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"996.61,-228.5 997.14,-236.15 995.4,-231.78 994.18,-235.06 994.18,-235.06 994.18,-235.06 995.4,-231.78 991.23,-233.97 996.61,-228.5 996.61,-228.5\"/>\n",
"</g>\n",
"<!-- 18 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>18</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1002.98,-474 972.82,-456 1002.98,-438 1033.15,-456 1002.98,-474\"/>\n",
"<text text-anchor=\"middle\" x=\"1002.98\" y=\"-452.3\" font-family=\"Lato\" font-size=\"14.00\">18</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;18 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M935.92,-436.93C948.66,-438.15 966.12,-441.57 979.88,-445.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"986.7,-447.52 979.09,-448.5 983.35,-446.5 980,-445.49 980,-445.49 980,-445.49 983.35,-446.5 980.91,-442.47 986.7,-447.52 986.7,-447.52\"/>\n",
"</g>\n",
"<!-- 18&#45;&gt;3 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>18&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M973.98,-456.7C963.12,-455.04 950.85,-452.41 940.64,-449.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"933.94,-447.48 941.55,-446.5 937.28,-448.5 940.63,-449.51 940.63,-449.51 940.63,-449.51 937.28,-448.5 939.72,-452.53 933.94,-447.48 933.94,-447.48\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"1106.76\" cy=\"-160\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1106.76\" y=\"-156.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 19 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>19</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1195.54,-178 1165.38,-160 1195.54,-142 1225.71,-160 1195.54,-178\"/>\n",
"<text text-anchor=\"middle\" x=\"1195.54\" y=\"-156.3\" font-family=\"Lato\" font-size=\"14.00\">19</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;19 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1124.09,-154.59C1136.38,-153.17 1153.5,-152.88 1167.78,-153.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1174.95,-154.25 1167.74,-156.87 1171.46,-153.99 1167.97,-153.73 1167.97,-153.73 1167.97,-153.73 1171.46,-153.99 1168.21,-150.58 1174.95,-154.25 1174.95,-154.25\"/>\n",
"</g>\n",
"<!-- 20 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>20</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"832.32,-132 802.15,-114 832.32,-96 862.48,-114 832.32,-132\"/>\n",
"<text text-anchor=\"middle\" x=\"832.32\" y=\"-110.3\" font-family=\"Lato\" font-size=\"14.00\">20</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;20 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1090.02,-152.76C1075.59,-146.46 1053.46,-137.63 1033.32,-133 976.99,-120.07 909.8,-115.92 869.4,-114.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"862.18,-114.38 869.27,-111.44 865.68,-114.49 869.17,-114.59 869.17,-114.59 869.17,-114.59 865.68,-114.49 869.08,-117.74 862.18,-114.38 862.18,-114.38\"/>\n",
"</g>\n",
"<!-- 19&#45;&gt;4 -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>19&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M1174.95,-165.75C1162.01,-166.96 1144.97,-167.07 1131.29,-166.08\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1124.09,-165.41 1131.35,-162.92 1127.62,-165.24 1131.1,-165.56 1131.06,-166.06 1131.01,-166.55 1127.52,-166.23 1130.77,-169.19 1124.09,-165.41 1124.09,-165.41\"/>\n",
"</g>\n",
"<!-- 20&#45;&gt;5 -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>20&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M843.54,-102.23C857.72,-85.89 883.51,-56.18 900.36,-36.76\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"905.28,-31.1 903.07,-38.45 903.37,-34.07 901.07,-36.71 900.69,-36.38 900.32,-36.06 902.61,-33.41 898.31,-34.32 905.28,-31.1 905.28,-31.1\"/>\n",
"</g>\n",
"<!-- 21 -->\n",
"<g id=\"node18\" class=\"node\">\n",
"<title>21</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1002.98,-178 972.82,-160 1002.98,-142 1033.15,-160 1002.98,-178\"/>\n",
"<text text-anchor=\"middle\" x=\"1002.98\" y=\"-156.3\" font-family=\"Lato\" font-size=\"14.00\">21</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;21 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>5&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M927.57,-33.2C942.81,-59.16 973.83,-112.02 990.6,-140.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"994.35,-146.99 988.09,-142.55 992.58,-143.97 990.81,-140.95 990.81,-140.95 990.81,-140.95 992.58,-143.97 993.52,-139.36 994.35,-146.99 994.35,-146.99\"/>\n",
"</g>\n",
"<!-- 22 -->\n",
"<g id=\"node19\" class=\"node\">\n",
"<title>22</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1002.98,-36 972.82,-18 1002.98,0 1033.15,-18 1002.98,-36\"/>\n",
"<text text-anchor=\"middle\" x=\"1002.98\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">22</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;22 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>5&#45;&gt;22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M935.11,-12.5C946.56,-11.19 962.07,-10.91 975.27,-11.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"982.33,-12.17 975.12,-14.8 978.84,-11.91 975.35,-11.66 975.35,-11.66 975.35,-11.66 978.84,-11.91 975.58,-8.52 982.33,-12.17 982.33,-12.17\"/>\n",
"</g>\n",
"<!-- 21&#45;&gt;4 -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>21&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M1033.15,-160C1048.46,-160 1066.99,-160 1081.5,-160\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1088.69,-160 1081.69,-163.15 1085.19,-160.5 1081.69,-160.5 1081.69,-160 1081.69,-159.5 1085.19,-159.5 1081.69,-156.85 1088.69,-160 1088.69,-160\"/>\n",
"</g>\n",
"<!-- 22&#45;&gt;5 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>22&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M982.33,-23.83C970.31,-24.94 954.87,-25.05 942.21,-24.15\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"935.11,-23.5 942.37,-21 938.65,-23.32 942.13,-23.64 942.09,-24.14 942.04,-24.64 938.55,-24.32 941.8,-27.27 935.11,-23.5 935.11,-23.5\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node20\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"746.99\" cy=\"-291\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"746.99\" y=\"-287.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;19 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>6&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M764.37,-285.48C775,-282.07 789.19,-277.82 801.99,-275 903.47,-252.63 934.22,-272.28 1033.32,-241 1086.64,-224.17 1143.99,-191.43 1173.82,-173.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1180.11,-169.26 1175.81,-175.62 1177.13,-171.1 1174.15,-172.94 1174.15,-172.94 1174.15,-172.94 1177.13,-171.1 1172.5,-170.26 1180.11,-169.26 1180.11,-169.26\"/>\n",
"</g>\n",
"<!-- 6&#45;&gt;20 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>6&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M755.53,-274.98C770.7,-242.75 804.9,-170.11 821.67,-134.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"824.78,-127.88 824.65,-135.55 823.29,-131.04 821.8,-134.21 821.8,-134.21 821.8,-134.21 823.29,-131.04 818.95,-132.87 824.78,-127.88 824.78,-127.88\"/>\n",
"</g>\n",
"<!-- 23 -->\n",
"<g id=\"node21\" class=\"node\">\n",
"<title>23</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"832.32,-320 802.15,-302 832.32,-284 862.48,-302 832.32,-320\"/>\n",
"<text text-anchor=\"middle\" x=\"832.32\" y=\"-298.3\" font-family=\"Lato\" font-size=\"14.00\">23</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;23 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>6&#45;&gt;23</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M764.85,-287.68C777.13,-287.94 793.93,-289.95 807.56,-292.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"814.76,-294.3 807.25,-295.86 811.35,-293.54 807.93,-292.78 807.93,-292.78 807.93,-292.78 811.35,-293.54 808.61,-289.71 814.76,-294.3 814.76,-294.3\"/>\n",
"</g>\n",
"<!-- 24 -->\n",
"<g id=\"node22\" class=\"node\">\n",
"<title>24</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"431.33,-246 401.16,-228 431.33,-210 461.49,-228 431.33,-246\"/>\n",
"<text text-anchor=\"middle\" x=\"431.33\" y=\"-224.3\" font-family=\"Lato\" font-size=\"14.00\">24</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;24 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>6&#45;&gt;24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M729.1,-287.61C678.17,-277.38 525.69,-246.75 461.41,-233.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"454.38,-232.43 461.86,-230.72 457.81,-233.12 461.24,-233.81 461.24,-233.81 461.24,-233.81 457.81,-233.12 460.62,-236.9 454.38,-232.43 454.38,-232.43\"/>\n",
"</g>\n",
"<!-- 23&#45;&gt;1 -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>23&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M848.6,-310.44C861.64,-317.63 880.54,-328.06 895.11,-336.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"901.46,-339.62 893.81,-338.99 898.4,-337.92 895.33,-336.23 895.33,-336.23 895.33,-336.23 898.4,-337.92 896.86,-333.48 901.46,-339.62 901.46,-339.62\"/>\n",
"</g>\n",
"<!-- 23&#45;&gt;6 -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>23&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M806.87,-304.98C795.42,-304.23 781.86,-302.4 770.65,-300.07\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"763.66,-298.48 771.19,-296.97 767.18,-298.77 770.6,-299.55 770.49,-300.04 770.37,-300.52 766.96,-299.75 769.78,-303.11 763.66,-298.48 763.66,-298.48\"/>\n",
"</g>\n",
"<!-- 24&#45;&gt;1 -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>24&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M445.18,-237.76C450.78,-242.5 457.1,-248.56 461.66,-255 473.39,-271.58 469.47,-279.43 479.66,-297 515.09,-358.14 504.66,-424 575.32,-424 575.32,-424 575.32,-424 833.32,-424 865.71,-424 891.04,-392.26 904.91,-369.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"908.51,-363.75 907.64,-371.37 906.72,-366.75 904.93,-369.76 904.93,-369.76 904.93,-369.76 906.72,-366.75 902.22,-368.15 908.51,-363.75 908.51,-363.75\"/>\n",
"</g>\n",
"<!-- 24&#45;&gt;9 -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>24&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M444.89,-238.44C454.27,-246.08 467.5,-256.54 479.66,-265 504.55,-282.33 534.48,-300.36 554.15,-311.86\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"560.41,-315.5 552.78,-314.7 557.13,-314.17 554.11,-312.41 554.36,-311.98 554.61,-311.55 557.64,-313.31 555.94,-309.26 560.41,-315.5 560.41,-315.5\"/>\n",
"</g>\n",
"<!-- 7&#45;&gt;20 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>7&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M763.66,-144.85C776.14,-139.16 793.8,-131.11 807.95,-124.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"814.57,-121.64 809.51,-127.41 811.39,-123.09 808.2,-124.54 808.2,-124.54 808.2,-124.54 811.39,-123.09 806.89,-121.68 814.57,-121.64 814.57,-121.64\"/>\n",
"</g>\n",
"<!-- 25 -->\n",
"<g id=\"node24\" class=\"node\">\n",
"<title>25</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"661.65,-204 631.49,-186 661.65,-168 691.82,-186 661.65,-204\"/>\n",
"<text text-anchor=\"middle\" x=\"661.65\" y=\"-182.3\" font-family=\"Lato\" font-size=\"14.00\">25</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;25 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>7&#45;&gt;25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M732.17,-162.81C721.57,-168.58 706.51,-175.18 693.13,-180.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"686.31,-182.5 691.86,-177.2 689.61,-181.34 692.91,-180.17 692.91,-180.17 692.91,-180.17 689.61,-181.34 693.96,-183.14 686.31,-182.5 686.31,-182.5\"/>\n",
"</g>\n",
"<!-- 25&#45;&gt;2 -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>25&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M687.94,-188.39C736.89,-193.01 844.03,-203.14 892.26,-207.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"899.48,-208.38 892.22,-210.86 896,-208.05 892.51,-207.72 892.51,-207.72 892.51,-207.72 896,-208.05 892.81,-204.58 899.48,-208.38 899.48,-208.38\"/>\n",
"</g>\n",
"<!-- 25&#45;&gt;7 -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>25&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M675.31,-175.83C687.71,-168.94 706.91,-160.72 722.17,-155.55\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"728.87,-153.41 723.16,-158.54 725.69,-154.95 722.35,-156.02 722.2,-155.54 722.05,-155.07 725.38,-154 721.24,-152.54 728.87,-153.41 728.87,-153.41\"/>\n",
"</g>\n",
"<!-- 8&#45;&gt;20 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>8&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M304.02,-194.96C309.8,-193.62 316.33,-192.17 322.33,-191 502.04,-155.92 547.53,-149.46 728.99,-125 752.33,-121.85 778.76,-119.03 798.92,-117.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"806.04,-116.34 799.38,-120.15 802.56,-116.68 799.07,-117.02 799.07,-117.02 799.07,-117.02 802.56,-116.68 798.77,-113.88 806.04,-116.34 806.04,-116.34\"/>\n",
"</g>\n",
"<!-- 8&#45;&gt;24 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>8&#45;&gt;24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M304.01,-202.38C327.78,-207.2 371.76,-216.12 401.03,-222.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"408.14,-223.5 400.65,-225.2 404.71,-222.8 401.27,-222.11 401.27,-222.11 401.27,-222.11 404.71,-222.8 401.9,-219.02 408.14,-223.5 408.14,-223.5\"/>\n",
"</g>\n",
"<!-- 8&#45;&gt;25 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>8&#45;&gt;25</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M304.34,-198.41C361.55,-196.42 547.77,-189.93 625.78,-187.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"632.98,-186.96 626.09,-190.36 629.48,-187.09 625.98,-187.21 625.98,-187.21 625.98,-187.21 629.48,-187.09 625.87,-184.06 632.98,-186.96 632.98,-186.96\"/>\n",
"</g>\n",
"<!-- 26 -->\n",
"<g id=\"node26\" class=\"node\">\n",
"<title>26</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"431.33,-300 401.16,-282 431.33,-264 461.49,-282 431.33,-300\"/>\n",
"<text text-anchor=\"middle\" x=\"431.33\" y=\"-278.3\" font-family=\"Lato\" font-size=\"14.00\">26</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;26 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>8&#45;&gt;26</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M303.62,-204.04C309.37,-208.05 315.99,-212.96 322.33,-217 352.67,-236.35 390.46,-254.75 412.34,-267.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"418.6,-271.33 410.98,-270.4 415.61,-269.52 412.61,-267.7 412.61,-267.7 412.61,-267.7 415.61,-269.52 414.24,-265.01 418.6,-271.33 418.6,-271.33\"/>\n",
"</g>\n",
"<!-- 26&#45;&gt;3 -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>26&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M436.31,-297.04C448.78,-340.3 491.31,-462 575.32,-462 575.32,-462 575.32,-462 833.32,-462 854.59,-462 877.86,-454.95 894.38,-448.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"901.03,-446.03 895.68,-451.53 897.78,-447.31 894.52,-448.6 894.52,-448.6 894.52,-448.6 897.78,-447.31 893.36,-445.67 901.03,-446.03 901.03,-446.03\"/>\n",
"</g>\n",
"<!-- 26&#45;&gt;8 -->\n",
"<g id=\"edge52\" class=\"edge\">\n",
"<title>26&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M406.91,-278.28C384.57,-269.85 350.29,-252.83 322.33,-235 315.29,-230.51 307.92,-224.97 301.77,-219.38\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"296.5,-214.27 303.72,-216.89 299.36,-216.35 301.87,-218.79 301.53,-219.15 301.18,-219.51 298.67,-217.07 299.33,-221.41 296.5,-214.27 296.5,-214.27\"/>\n",
"</g>\n",
"<!-- 9&#45;&gt;21 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>9&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M592.65,-315.95C638.21,-292.34 777.26,-222.4 899.65,-183 923.68,-175.26 951.7,-169.16 972.34,-165.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"979.31,-163.88 973.02,-168.27 975.87,-164.53 972.43,-165.17 972.43,-165.17 972.43,-165.17 975.87,-164.53 971.85,-162.08 979.31,-163.88 979.31,-163.88\"/>\n",
"</g>\n",
"<!-- 9&#45;&gt;22 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>9&#45;&gt;22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M578.08,-305.72C581.61,-246.54 601.29,-64 709.99,-64 709.99,-64 709.99,-64 918.65,-64 944.41,-64 969.69,-46.95 985.53,-33.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"990.92,-28.9 987.72,-35.88 988.28,-31.2 985.65,-33.51 985.65,-33.51 985.65,-33.51 988.28,-31.2 983.58,-31.13 990.92,-28.9 990.92,-28.9\"/>\n",
"</g>\n",
"<!-- 27 -->\n",
"<g id=\"node28\" class=\"node\">\n",
"<title>27</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"661.65,-342 631.49,-324 661.65,-306 691.82,-324 661.65,-342\"/>\n",
"<text text-anchor=\"middle\" x=\"661.65\" y=\"-320.3\" font-family=\"Lato\" font-size=\"14.00\">27</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;27 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>9&#45;&gt;27</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M594.59,-324C603.19,-324 613.93,-324 624.23,-324\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"631.27,-324 624.27,-327.15 627.77,-324 624.27,-324 624.27,-324 624.27,-324 627.77,-324 624.27,-320.85 631.27,-324 631.27,-324\"/>\n",
"</g>\n",
"<!-- 28 -->\n",
"<g id=\"node29\" class=\"node\">\n",
"<title>28</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"661.65,-396 631.49,-378 661.65,-360 691.82,-378 661.65,-396\"/>\n",
"<text text-anchor=\"middle\" x=\"661.65\" y=\"-374.3\" font-family=\"Lato\" font-size=\"14.00\">28</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;28 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>9&#45;&gt;28</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M593.79,-329.16C608.39,-336.97 629.63,-350.73 644.22,-361.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"650.04,-366.44 642.59,-364.58 647.29,-364.27 644.54,-362.1 644.54,-362.1 644.54,-362.1 647.29,-364.27 646.49,-359.63 650.04,-366.44 650.04,-366.44\"/>\n",
"</g>\n",
"<!-- 27&#45;&gt;1 -->\n",
"<g id=\"edge53\" class=\"edge\">\n",
"<title>27&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M687.94,-326.39C736.89,-331.01 844.03,-341.14 892.26,-345.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"899.48,-346.38 892.22,-348.86 896,-346.05 892.51,-345.72 892.51,-345.72 892.51,-345.72 896,-346.05 892.81,-342.58 899.48,-346.38 899.48,-346.38\"/>\n",
"</g>\n",
"<!-- 27&#45;&gt;6 -->\n",
"<g id=\"edge54\" class=\"edge\">\n",
"<title>27&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M680.33,-317C692.86,-312.04 709.78,-305.34 723.31,-299.98\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"730.03,-297.32 724.68,-302.82 726.96,-299.07 723.71,-300.36 723.52,-299.9 723.34,-299.43 726.59,-298.14 722.36,-296.97 730.03,-297.32 730.03,-297.32\"/>\n",
"</g>\n",
"<!-- 28&#45;&gt;1 -->\n",
"<g id=\"edge55\" class=\"edge\">\n",
"<title>28&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M690.54,-377.12C732.37,-375.43 813.72,-370.69 881.65,-358 885.53,-357.27 889.61,-356.31 893.55,-355.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"900.42,-353.32 894.54,-358.25 897.05,-354.27 893.68,-355.22 893.68,-355.22 893.68,-355.22 897.05,-354.27 892.83,-352.19 900.42,-353.32 900.42,-353.32\"/>\n",
"</g>\n",
"<!-- 28&#45;&gt;9 -->\n",
"<g id=\"edge56\" class=\"edge\">\n",
"<title>28&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M641.97,-371.63C627.86,-363.88 608.63,-351.37 594.82,-340.96\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"589.26,-336.64 596.72,-338.44 592.33,-338.39 595.1,-340.54 594.79,-340.93 594.48,-341.33 591.72,-339.18 592.86,-343.42 589.26,-336.64 589.26,-336.64\"/>\n",
"</g>\n",
"<!-- 15&#45;&gt;14 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>15&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M1088.79,-381.52C1082.32,-378.09 1074.71,-374.73 1067.32,-373 1052.98,-369.65 1037.11,-374.43 1024.85,-380.03\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1018.43,-383.18 1023.33,-377.26 1021.36,-381.18 1024.5,-379.64 1024.72,-380.09 1024.94,-380.54 1021.8,-382.08 1026.11,-382.92 1018.43,-383.18 1018.43,-383.18\"/>\n",
"<text text-anchor=\"start\" x=\"1051.32\" y=\"-376.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(\"Found a solution:\", spot.solve_game(game, si))\n",
"spot.highlight_strategy(game)\n",
"game.show('.g')"
]
},
{
"cell_type": "markdown",
"id": "98aa1402",
"metadata": {},
"source": [
"Once a strategy has been found, it can be extracted as an automaton and simplified using 6 different levels (the default is 2). The output should be interpreted as a Mealy automaton, where transition have the form `(ins)&(outs)` where `ins` and `outs` are Boolean formulas representing possible inputs and outputs (they could be more than just conjunctions of atomic proposition). Mealy machines with this type of labels are called \"separated\" in Spot."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4c93add7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"simplification lvl 0 : No simplification\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"240pt\"\n",
" viewBox=\"0.00 0.00 729.00 240.47\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.6896551724137931 0.6896551724137931) rotate(0) translate(4 345.65)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-345.65 1056,-345.65 1056,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-232.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-228.95\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-232.65C2.79,-232.65 17.15,-232.65 30.63,-232.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-232.65 30.94,-235.8 34.44,-232.65 30.94,-232.65 30.94,-232.65 30.94,-232.65 34.44,-232.65 30.94,-229.5 37.94,-232.65 37.94,-232.65\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"234\" cy=\"-161.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"234\" y=\"-157.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.93,-226.22C104.26,-213.58 174.01,-185.45 210.21,-170.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"216.98,-168.11 211.67,-173.65 213.73,-169.42 210.49,-170.73 210.49,-170.73 210.49,-170.73 213.73,-169.42 209.31,-167.81 216.98,-168.11 216.98,-168.11\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-218.15 94,-237.15 146,-237.15 146,-218.15 94,-218.15\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-223.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-223.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-218.15 161,-237.15 174,-237.15 174,-218.15 161,-218.15\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-223.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"440\" cy=\"-223.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"440\" y=\"-219.95\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.18,-238.29C79.03,-240.06 85.74,-241.77 92,-242.65 128.97,-247.83 138.67,-242.74 176,-242.65 268.45,-242.43 292.74,-256.43 384,-241.65 394.85,-239.89 406.48,-236.35 416.23,-232.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"422.97,-230.37 417.5,-235.76 419.68,-231.59 416.4,-232.8 416.4,-232.8 416.4,-232.8 419.68,-231.59 415.31,-229.85 422.97,-230.37 422.97,-230.37\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"196,-248.15 196,-267.15 244,-267.15 244,-248.15 196,-248.15\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-253.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-253.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"259,-248.15 259,-267.15 272,-267.15 272,-248.15 259,-248.15\"/>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-253.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"440\" cy=\"-87.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"440\" y=\"-83.95\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.5,-217.27C71.9,-206.54 81.37,-192.28 92,-181.65 130.88,-142.77 142.34,-130.48 194,-111.65 270.86,-83.63 369.77,-84.1 414.77,-86.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"422.03,-86.47 414.88,-89.27 418.53,-86.3 415.03,-86.13 415.03,-86.13 415.03,-86.13 418.53,-86.3 415.19,-82.98 422.03,-86.47 422.03,-86.47\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"196,-113.15 196,-132.15 244,-132.15 244,-113.15 196,-113.15\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-118.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-118.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"259,-113.15 259,-132.15 272,-132.15 272,-113.15 259,-113.15\"/>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-118.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860\" cy=\"-126.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"860\" y=\"-122.95\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.06,-244.25C97.9,-267.72 166,-318.65 233,-318.65 233,-318.65 233,-318.65 649,-318.65 748.52,-318.65 821.45,-199.75 848.02,-149.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"851.31,-142.69 850.9,-150.36 849.71,-145.8 848.1,-148.91 848.1,-148.91 848.1,-148.91 849.71,-145.8 845.3,-147.47 851.31,-142.69 851.31,-142.69\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"404,-320.15 404,-339.15 448,-339.15 448,-320.15 404,-320.15\"/>\n",
"<text text-anchor=\"start\" x=\"406\" y=\"-325.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"452\" y=\"-325.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"463,-320.15 463,-339.15 476,-339.15 476,-320.15 463,-320.15\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-325.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M219.65,-172.71C210.66,-184.43 215.45,-197.65 234,-197.65 249.22,-197.65 255.17,-188.75 251.86,-179.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"248.35,-172.71 254.49,-177.32 250.04,-175.77 251.73,-178.84 251.73,-178.84 251.73,-178.84 250.04,-175.77 248.97,-180.36 248.35,-172.71 248.35,-172.71\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"188,-199.15 188,-218.15 240,-218.15 240,-199.15 188,-199.15\"/>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-204.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"244\" y=\"-204.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"255,-199.15 255,-218.15 280,-218.15 280,-199.15 255,-199.15\"/>\n",
"<text text-anchor=\"start\" x=\"257\" y=\"-204.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M249.97,-170.97C261.17,-177.58 277.08,-186.21 292,-191.65 333.85,-206.9 385.18,-216.03 414.79,-220.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"421.83,-221.45 414.45,-223.57 418.36,-220.95 414.9,-220.45 414.9,-220.45 414.9,-220.45 418.36,-220.95 415.35,-217.33 421.83,-221.45 421.83,-221.45\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"294,-216.15 294,-235.15 342,-235.15 342,-216.15 294,-216.15\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-221.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-221.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"357,-216.15 357,-235.15 382,-235.15 382,-216.15 357,-216.15\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-221.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.39,-155.38C262.74,-151.09 278.23,-145.36 292,-140.65 332.57,-126.79 343.85,-126.69 384,-111.65 394.94,-107.55 406.85,-102.44 416.78,-97.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"423.3,-95.03 418.22,-100.79 420.11,-96.48 416.92,-97.92 416.92,-97.92 416.92,-97.92 420.11,-96.48 415.62,-95.05 423.3,-95.03 423.3,-95.03\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"294,-142.15 294,-161.15 342,-161.15 342,-142.15 294,-142.15\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-147.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-147.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"357,-142.15 357,-161.15 382,-161.15 382,-142.15 357,-142.15\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-147.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M252.21,-162.41C263.51,-162.87 278.63,-163.42 292,-163.65 332.88,-164.37 343.11,-164.12 384,-163.65 520.03,-162.09 554.28,-165.87 690,-156.65 737.3,-153.44 749.49,-153.86 796,-144.65 809.31,-142.02 823.89,-137.93 835.67,-134.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"842.6,-132.14 836.86,-137.24 839.26,-133.19 835.92,-134.24 835.92,-134.24 835.92,-134.24 839.26,-133.19 834.98,-131.23 842.6,-132.14 842.6,-132.14\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"500,-165.15 500,-184.15 544,-184.15 544,-165.15 500,-165.15\"/>\n",
"<text text-anchor=\"start\" x=\"502\" y=\"-170.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"548\" y=\"-170.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"559,-165.15 559,-184.15 584,-184.15 584,-165.15 559,-165.15\"/>\n",
"<text text-anchor=\"start\" x=\"561\" y=\"-170.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M425.36,-234.71C416.19,-246.43 421.07,-259.65 440,-259.65 455.67,-259.65 461.71,-250.58 458.12,-240.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"454.64,-234.71 460.84,-239.23 456.37,-237.75 458.11,-240.79 458.11,-240.79 458.11,-240.79 456.37,-237.75 455.37,-242.35 454.64,-234.71 454.64,-234.71\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"410,-261.15 410,-280.15 430,-280.15 430,-261.15 410,-261.15\"/>\n",
"<text text-anchor=\"start\" x=\"412\" y=\"-266.95\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"434\" y=\"-266.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"445,-261.15 445,-280.15 470,-280.15 470,-261.15 445,-261.15\"/>\n",
"<text text-anchor=\"start\" x=\"447\" y=\"-266.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M457.99,-226.1C511.07,-232.95 677.33,-248.31 796,-191.65 816.53,-181.85 833.99,-162.34 845.29,-147.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"849.45,-141.5 847.89,-149.01 847.4,-144.33 845.34,-147.17 845.34,-147.17 845.34,-147.17 847.4,-144.33 842.79,-145.32 849.45,-141.5 849.45,-141.5\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"620,-233.15 620,-252.15 636,-252.15 636,-233.15 620,-233.15\"/>\n",
"<text text-anchor=\"start\" x=\"622\" y=\"-238.95\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"640\" y=\"-238.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"651,-233.15 651,-252.15 676,-252.15 676,-233.15 651,-233.15\"/>\n",
"<text text-anchor=\"start\" x=\"653\" y=\"-238.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M425.36,-98.71C416.19,-110.43 421.07,-123.65 440,-123.65 455.67,-123.65 461.71,-114.58 458.12,-104.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"454.64,-98.71 460.84,-103.23 456.37,-101.75 458.11,-104.79 458.11,-104.79 458.11,-104.79 456.37,-101.75 455.37,-106.35 454.64,-98.71 454.64,-98.71\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"398,-125.15 398,-144.15 446,-144.15 446,-125.15 398,-125.15\"/>\n",
"<text text-anchor=\"start\" x=\"400\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"450\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"461,-125.15 461,-144.15 482,-144.15 482,-125.15 461,-125.15\"/>\n",
"<text text-anchor=\"start\" x=\"463\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M456.49,-95.07C467.29,-99.87 482.2,-105.75 496,-108.65 621.24,-134.97 775.89,-130.88 834.73,-128.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"841.75,-127.7 834.91,-131.2 838.25,-127.87 834.76,-128.05 834.76,-128.05 834.76,-128.05 838.25,-127.87 834.6,-124.9 841.75,-127.7 841.75,-127.7\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"608,-131.15 608,-150.15 652,-150.15 652,-131.15 608,-131.15\"/>\n",
"<text text-anchor=\"start\" x=\"610\" y=\"-136.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"656\" y=\"-136.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"667,-131.15 667,-150.15 688,-150.15 688,-131.15 667,-131.15\"/>\n",
"<text text-anchor=\"start\" x=\"669\" y=\"-136.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1020\" cy=\"-49.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1020\" y=\"-45.95\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M449.47,-72.01C458.73,-56.53 475.1,-33.47 496,-21.65 539.06,2.7 556.68,-8.44 606,-4.65 774.31,8.28 818.62,-7.81 984,-41.65 987.65,-42.4 991.5,-43.23 995.26,-44.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1002.3,-45.67 994.78,-47.19 998.89,-44.89 995.47,-44.12 995.47,-44.12 995.47,-44.12 998.89,-44.89 996.17,-41.05 1002.3,-45.67 1002.3,-45.67\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"710,-7.15 710,-26.15 758,-26.15 758,-7.15 710,-7.15\"/>\n",
"<text text-anchor=\"start\" x=\"712\" y=\"-12.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"762\" y=\"-12.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"773,-7.15 773,-26.15 794,-26.15 794,-7.15 773,-7.15\"/>\n",
"<text text-anchor=\"start\" x=\"775\" y=\"-12.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"648\" cy=\"-31.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"648\" y=\"-27.95\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M451.94,-73.59C461.98,-61.89 478,-45.99 496,-38.65 537.89,-21.57 591.84,-24.32 622.61,-27.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"629.91,-28.86 622.57,-31.11 626.44,-28.42 622.96,-27.98 622.96,-27.98 622.96,-27.98 626.44,-28.42 623.36,-24.86 629.91,-28.86 629.91,-28.86\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"498,-40.15 498,-59.15 550,-59.15 550,-40.15 498,-40.15\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-45.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"554\" y=\"-45.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"565,-40.15 565,-59.15 586,-59.15 586,-40.15 565,-40.15\"/>\n",
"<text text-anchor=\"start\" x=\"567\" y=\"-45.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M845.99,-138.45C838.26,-149.98 842.93,-162.65 860,-162.65 873.87,-162.65 879.56,-154.29 877.05,-144.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"874.01,-138.45 879.82,-143.46 875.49,-141.62 876.97,-144.79 876.97,-144.79 876.97,-144.79 875.49,-141.62 874.11,-146.13 874.01,-138.45 874.01,-138.45\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"834,-164.15 834,-183.15 850,-183.15 850,-164.15 834,-164.15\"/>\n",
"<text text-anchor=\"start\" x=\"836\" y=\"-169.95\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"854\" y=\"-169.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"865,-164.15 865,-183.15 886,-183.15 886,-164.15 865,-164.15\"/>\n",
"<text text-anchor=\"start\" x=\"867\" y=\"-169.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M878.04,-127.12C903.3,-126.99 951.21,-123.58 984,-101.65 994.64,-94.54 1002.89,-82.99 1008.7,-72.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1012,-66.29 1011.53,-73.95 1010.37,-69.39 1008.74,-72.49 1008.74,-72.49 1008.74,-72.49 1010.37,-69.39 1005.96,-71.02 1012,-66.29 1012,-66.29\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"926,-125.15 926,-144.15 946,-144.15 946,-125.15 926,-125.15\"/>\n",
"<text text-anchor=\"start\" x=\"928\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"950\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"961,-125.15 961,-144.15 982,-144.15 982,-125.15 961,-125.15\"/>\n",
"<text text-anchor=\"start\" x=\"963\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1002.08,-51.85C982.44,-54.9 949.5,-61.58 924,-74.65 906.93,-83.4 890.31,-97.43 878.43,-108.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"873.32,-113.67 876.14,-106.53 875.83,-111.23 878.34,-108.79 878.34,-108.79 878.34,-108.79 875.83,-111.23 880.53,-111.05 873.32,-113.67 873.32,-113.67\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"926,-76.15 926,-95.15 942,-95.15 942,-76.15 926,-76.15\"/>\n",
"<text text-anchor=\"start\" x=\"928\" y=\"-81.95\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"946\" y=\"-81.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"957,-76.15 957,-95.15 982,-95.15 982,-76.15 957,-76.15\"/>\n",
"<text text-anchor=\"start\" x=\"959\" y=\"-81.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1009.09,-64.07C1005.28,-74.82 1008.91,-85.65 1020,-85.65 1028.66,-85.65 1032.78,-79.04 1032.34,-71.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1030.91,-64.07 1035.41,-70.29 1031.62,-67.5 1032.32,-70.92 1032.32,-70.92 1032.32,-70.92 1031.62,-67.5 1029.24,-71.56 1030.91,-64.07 1030.91,-64.07\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"990,-87.15 990,-106.15 1010,-106.15 1010,-87.15 990,-87.15\"/>\n",
"<text text-anchor=\"start\" x=\"992\" y=\"-92.95\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"1014\" y=\"-92.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"1025,-87.15 1025,-106.15 1050,-106.15 1050,-87.15 1025,-87.15\"/>\n",
"<text text-anchor=\"start\" x=\"1027\" y=\"-92.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M632.01,-40.84C620.4,-47.57 603.69,-56.4 588,-61.65 546.08,-75.67 494.77,-82.55 465.19,-85.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"458.16,-86.27 464.82,-82.45 461.64,-85.93 465.12,-85.59 465.12,-85.59 465.12,-85.59 461.64,-85.93 465.43,-88.72 458.16,-86.27 458.16,-86.27\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"498,-83.15 498,-102.15 546,-102.15 546,-83.15 498,-83.15\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-88.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"550\" y=\"-88.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"561,-83.15 561,-102.15 586,-102.15 586,-83.15 561,-83.15\"/>\n",
"<text text-anchor=\"start\" x=\"563\" y=\"-88.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M665.23,-37.12C692.7,-46.59 749.88,-67.18 796,-89.65 810.66,-96.8 826.49,-106.1 838.61,-113.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"844.59,-117.32 836.98,-116.28 841.62,-115.46 838.65,-113.61 838.65,-113.61 838.65,-113.61 841.62,-115.46 840.32,-110.94 844.59,-117.32 844.59,-117.32\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"710,-91.15 710,-110.15 754,-110.15 754,-91.15 710,-91.15\"/>\n",
"<text text-anchor=\"start\" x=\"712\" y=\"-96.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"758\" y=\"-96.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"769,-91.15 769,-110.15 794,-110.15 794,-91.15 769,-91.15\"/>\n",
"<text text-anchor=\"start\" x=\"771\" y=\"-96.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M666.35,-32.49C726.31,-35.41 924.94,-45.07 994.6,-48.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1001.69,-48.81 994.54,-51.61 998.19,-48.64 994.7,-48.47 994.7,-48.47 994.7,-48.47 998.19,-48.64 994.85,-45.32 1001.69,-48.81 1001.69,-48.81\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"816,-46.15 816,-65.15 864,-65.15 864,-46.15 816,-46.15\"/>\n",
"<text text-anchor=\"start\" x=\"818\" y=\"-51.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"868\" y=\"-51.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"879,-46.15 879,-65.15 904,-65.15 904,-46.15 879,-46.15\"/>\n",
"<text text-anchor=\"start\" x=\"881\" y=\"-51.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M633.38,-42.34C623.62,-54.15 628.5,-67.65 648,-67.65 664.15,-67.65 670.27,-58.39 666.36,-48.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"662.62,-42.34 668.94,-46.69 664.44,-45.33 666.25,-48.33 666.25,-48.33 666.25,-48.33 664.44,-45.33 663.56,-49.96 662.62,-42.34 662.62,-42.34\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"602,-69.15 602,-88.15 654,-88.15 654,-69.15 602,-69.15\"/>\n",
"<text text-anchor=\"start\" x=\"604\" y=\"-74.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"658\" y=\"-74.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"669,-69.15 669,-88.15 694,-88.15 694,-69.15 669,-69.15\"/>\n",
"<text text-anchor=\"start\" x=\"671\" y=\"-74.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"240pt\"\n",
" viewBox=\"0.00 0.00 729.00 240.47\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.6896551724137931 0.6896551724137931) rotate(0) translate(4 345.65)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-345.65 1056,-345.65 1056,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-232.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-228.95\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-232.65C2.79,-232.65 17.15,-232.65 30.63,-232.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-232.65 30.94,-235.8 34.44,-232.65 30.94,-232.65 30.94,-232.65 30.94,-232.65 34.44,-232.65 30.94,-229.5 37.94,-232.65 37.94,-232.65\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"234\" cy=\"-161.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"234\" y=\"-157.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.93,-226.22C104.26,-213.58 174.01,-185.45 210.21,-170.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"216.98,-168.11 211.67,-173.65 213.73,-169.42 210.49,-170.73 210.49,-170.73 210.49,-170.73 213.73,-169.42 209.31,-167.81 216.98,-168.11 216.98,-168.11\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-218.15 94,-237.15 146,-237.15 146,-218.15 94,-218.15\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-223.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-223.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-218.15 161,-237.15 174,-237.15 174,-218.15 161,-218.15\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-223.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"440\" cy=\"-223.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"440\" y=\"-219.95\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.18,-238.29C79.03,-240.06 85.74,-241.77 92,-242.65 128.97,-247.83 138.67,-242.74 176,-242.65 268.45,-242.43 292.74,-256.43 384,-241.65 394.85,-239.89 406.48,-236.35 416.23,-232.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"422.97,-230.37 417.5,-235.76 419.68,-231.59 416.4,-232.8 416.4,-232.8 416.4,-232.8 419.68,-231.59 415.31,-229.85 422.97,-230.37 422.97,-230.37\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"196,-248.15 196,-267.15 244,-267.15 244,-248.15 196,-248.15\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-253.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-253.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"259,-248.15 259,-267.15 272,-267.15 272,-248.15 259,-248.15\"/>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-253.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"440\" cy=\"-87.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"440\" y=\"-83.95\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.5,-217.27C71.9,-206.54 81.37,-192.28 92,-181.65 130.88,-142.77 142.34,-130.48 194,-111.65 270.86,-83.63 369.77,-84.1 414.77,-86.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"422.03,-86.47 414.88,-89.27 418.53,-86.3 415.03,-86.13 415.03,-86.13 415.03,-86.13 418.53,-86.3 415.19,-82.98 422.03,-86.47 422.03,-86.47\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"196,-113.15 196,-132.15 244,-132.15 244,-113.15 196,-113.15\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-118.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-118.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"259,-113.15 259,-132.15 272,-132.15 272,-113.15 259,-113.15\"/>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-118.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860\" cy=\"-126.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"860\" y=\"-122.95\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.06,-244.25C97.9,-267.72 166,-318.65 233,-318.65 233,-318.65 233,-318.65 649,-318.65 748.52,-318.65 821.45,-199.75 848.02,-149.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"851.31,-142.69 850.9,-150.36 849.71,-145.8 848.1,-148.91 848.1,-148.91 848.1,-148.91 849.71,-145.8 845.3,-147.47 851.31,-142.69 851.31,-142.69\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"404,-320.15 404,-339.15 448,-339.15 448,-320.15 404,-320.15\"/>\n",
"<text text-anchor=\"start\" x=\"406\" y=\"-325.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"452\" y=\"-325.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"463,-320.15 463,-339.15 476,-339.15 476,-320.15 463,-320.15\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-325.95\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M219.65,-172.71C210.66,-184.43 215.45,-197.65 234,-197.65 249.22,-197.65 255.17,-188.75 251.86,-179.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"248.35,-172.71 254.49,-177.32 250.04,-175.77 251.73,-178.84 251.73,-178.84 251.73,-178.84 250.04,-175.77 248.97,-180.36 248.35,-172.71 248.35,-172.71\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"188,-199.15 188,-218.15 240,-218.15 240,-199.15 188,-199.15\"/>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-204.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"244\" y=\"-204.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"255,-199.15 255,-218.15 280,-218.15 280,-199.15 255,-199.15\"/>\n",
"<text text-anchor=\"start\" x=\"257\" y=\"-204.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M249.97,-170.97C261.17,-177.58 277.08,-186.21 292,-191.65 333.85,-206.9 385.18,-216.03 414.79,-220.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"421.83,-221.45 414.45,-223.57 418.36,-220.95 414.9,-220.45 414.9,-220.45 414.9,-220.45 418.36,-220.95 415.35,-217.33 421.83,-221.45 421.83,-221.45\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"294,-216.15 294,-235.15 342,-235.15 342,-216.15 294,-216.15\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-221.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-221.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"357,-216.15 357,-235.15 382,-235.15 382,-216.15 357,-216.15\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-221.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.39,-155.38C262.74,-151.09 278.23,-145.36 292,-140.65 332.57,-126.79 343.85,-126.69 384,-111.65 394.94,-107.55 406.85,-102.44 416.78,-97.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"423.3,-95.03 418.22,-100.79 420.11,-96.48 416.92,-97.92 416.92,-97.92 416.92,-97.92 420.11,-96.48 415.62,-95.05 423.3,-95.03 423.3,-95.03\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"294,-142.15 294,-161.15 342,-161.15 342,-142.15 294,-142.15\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-147.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-147.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"357,-142.15 357,-161.15 382,-161.15 382,-142.15 357,-142.15\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-147.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M252.21,-162.41C263.51,-162.87 278.63,-163.42 292,-163.65 332.88,-164.37 343.11,-164.12 384,-163.65 520.03,-162.09 554.28,-165.87 690,-156.65 737.3,-153.44 749.49,-153.86 796,-144.65 809.31,-142.02 823.89,-137.93 835.67,-134.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"842.6,-132.14 836.86,-137.24 839.26,-133.19 835.92,-134.24 835.92,-134.24 835.92,-134.24 839.26,-133.19 834.98,-131.23 842.6,-132.14 842.6,-132.14\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"500,-165.15 500,-184.15 544,-184.15 544,-165.15 500,-165.15\"/>\n",
"<text text-anchor=\"start\" x=\"502\" y=\"-170.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"548\" y=\"-170.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"559,-165.15 559,-184.15 584,-184.15 584,-165.15 559,-165.15\"/>\n",
"<text text-anchor=\"start\" x=\"561\" y=\"-170.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M425.36,-234.71C416.19,-246.43 421.07,-259.65 440,-259.65 455.67,-259.65 461.71,-250.58 458.12,-240.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"454.64,-234.71 460.84,-239.23 456.37,-237.75 458.11,-240.79 458.11,-240.79 458.11,-240.79 456.37,-237.75 455.37,-242.35 454.64,-234.71 454.64,-234.71\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"410,-261.15 410,-280.15 430,-280.15 430,-261.15 410,-261.15\"/>\n",
"<text text-anchor=\"start\" x=\"412\" y=\"-266.95\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"434\" y=\"-266.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"445,-261.15 445,-280.15 470,-280.15 470,-261.15 445,-261.15\"/>\n",
"<text text-anchor=\"start\" x=\"447\" y=\"-266.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M457.99,-226.1C511.07,-232.95 677.33,-248.31 796,-191.65 816.53,-181.85 833.99,-162.34 845.29,-147.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"849.45,-141.5 847.89,-149.01 847.4,-144.33 845.34,-147.17 845.34,-147.17 845.34,-147.17 847.4,-144.33 842.79,-145.32 849.45,-141.5 849.45,-141.5\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"620,-233.15 620,-252.15 636,-252.15 636,-233.15 620,-233.15\"/>\n",
"<text text-anchor=\"start\" x=\"622\" y=\"-238.95\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"640\" y=\"-238.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"651,-233.15 651,-252.15 676,-252.15 676,-233.15 651,-233.15\"/>\n",
"<text text-anchor=\"start\" x=\"653\" y=\"-238.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M425.36,-98.71C416.19,-110.43 421.07,-123.65 440,-123.65 455.67,-123.65 461.71,-114.58 458.12,-104.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"454.64,-98.71 460.84,-103.23 456.37,-101.75 458.11,-104.79 458.11,-104.79 458.11,-104.79 456.37,-101.75 455.37,-106.35 454.64,-98.71 454.64,-98.71\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"398,-125.15 398,-144.15 446,-144.15 446,-125.15 398,-125.15\"/>\n",
"<text text-anchor=\"start\" x=\"400\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"450\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"461,-125.15 461,-144.15 482,-144.15 482,-125.15 461,-125.15\"/>\n",
"<text text-anchor=\"start\" x=\"463\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M456.49,-95.07C467.29,-99.87 482.2,-105.75 496,-108.65 621.24,-134.97 775.89,-130.88 834.73,-128.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"841.75,-127.7 834.91,-131.2 838.25,-127.87 834.76,-128.05 834.76,-128.05 834.76,-128.05 838.25,-127.87 834.6,-124.9 841.75,-127.7 841.75,-127.7\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"608,-131.15 608,-150.15 652,-150.15 652,-131.15 608,-131.15\"/>\n",
"<text text-anchor=\"start\" x=\"610\" y=\"-136.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"656\" y=\"-136.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"667,-131.15 667,-150.15 688,-150.15 688,-131.15 667,-131.15\"/>\n",
"<text text-anchor=\"start\" x=\"669\" y=\"-136.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1020\" cy=\"-49.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1020\" y=\"-45.95\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M449.47,-72.01C458.73,-56.53 475.1,-33.47 496,-21.65 539.06,2.7 556.68,-8.44 606,-4.65 774.31,8.28 818.62,-7.81 984,-41.65 987.65,-42.4 991.5,-43.23 995.26,-44.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1002.3,-45.67 994.78,-47.19 998.89,-44.89 995.47,-44.12 995.47,-44.12 995.47,-44.12 998.89,-44.89 996.17,-41.05 1002.3,-45.67 1002.3,-45.67\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"710,-7.15 710,-26.15 758,-26.15 758,-7.15 710,-7.15\"/>\n",
"<text text-anchor=\"start\" x=\"712\" y=\"-12.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"762\" y=\"-12.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"773,-7.15 773,-26.15 794,-26.15 794,-7.15 773,-7.15\"/>\n",
"<text text-anchor=\"start\" x=\"775\" y=\"-12.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"648\" cy=\"-31.65\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"648\" y=\"-27.95\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M451.94,-73.59C461.98,-61.89 478,-45.99 496,-38.65 537.89,-21.57 591.84,-24.32 622.61,-27.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"629.91,-28.86 622.57,-31.11 626.44,-28.42 622.96,-27.98 622.96,-27.98 622.96,-27.98 626.44,-28.42 623.36,-24.86 629.91,-28.86 629.91,-28.86\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"498,-40.15 498,-59.15 550,-59.15 550,-40.15 498,-40.15\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-45.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"554\" y=\"-45.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"565,-40.15 565,-59.15 586,-59.15 586,-40.15 565,-40.15\"/>\n",
"<text text-anchor=\"start\" x=\"567\" y=\"-45.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M845.99,-138.45C838.26,-149.98 842.93,-162.65 860,-162.65 873.87,-162.65 879.56,-154.29 877.05,-144.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"874.01,-138.45 879.82,-143.46 875.49,-141.62 876.97,-144.79 876.97,-144.79 876.97,-144.79 875.49,-141.62 874.11,-146.13 874.01,-138.45 874.01,-138.45\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"834,-164.15 834,-183.15 850,-183.15 850,-164.15 834,-164.15\"/>\n",
"<text text-anchor=\"start\" x=\"836\" y=\"-169.95\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"854\" y=\"-169.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"865,-164.15 865,-183.15 886,-183.15 886,-164.15 865,-164.15\"/>\n",
"<text text-anchor=\"start\" x=\"867\" y=\"-169.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M878.04,-127.12C903.3,-126.99 951.21,-123.58 984,-101.65 994.64,-94.54 1002.89,-82.99 1008.7,-72.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1012,-66.29 1011.53,-73.95 1010.37,-69.39 1008.74,-72.49 1008.74,-72.49 1008.74,-72.49 1010.37,-69.39 1005.96,-71.02 1012,-66.29 1012,-66.29\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"926,-125.15 926,-144.15 946,-144.15 946,-125.15 926,-125.15\"/>\n",
"<text text-anchor=\"start\" x=\"928\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"950\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"961,-125.15 961,-144.15 982,-144.15 982,-125.15 961,-125.15\"/>\n",
"<text text-anchor=\"start\" x=\"963\" y=\"-130.95\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1002.08,-51.85C982.44,-54.9 949.5,-61.58 924,-74.65 906.93,-83.4 890.31,-97.43 878.43,-108.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"873.32,-113.67 876.14,-106.53 875.83,-111.23 878.34,-108.79 878.34,-108.79 878.34,-108.79 875.83,-111.23 880.53,-111.05 873.32,-113.67 873.32,-113.67\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"926,-76.15 926,-95.15 942,-95.15 942,-76.15 926,-76.15\"/>\n",
"<text text-anchor=\"start\" x=\"928\" y=\"-81.95\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"946\" y=\"-81.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"957,-76.15 957,-95.15 982,-95.15 982,-76.15 957,-76.15\"/>\n",
"<text text-anchor=\"start\" x=\"959\" y=\"-81.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1009.09,-64.07C1005.28,-74.82 1008.91,-85.65 1020,-85.65 1028.66,-85.65 1032.78,-79.04 1032.34,-71.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1030.91,-64.07 1035.41,-70.29 1031.62,-67.5 1032.32,-70.92 1032.32,-70.92 1032.32,-70.92 1031.62,-67.5 1029.24,-71.56 1030.91,-64.07 1030.91,-64.07\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"990,-87.15 990,-106.15 1010,-106.15 1010,-87.15 990,-87.15\"/>\n",
"<text text-anchor=\"start\" x=\"992\" y=\"-92.95\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"1014\" y=\"-92.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"1025,-87.15 1025,-106.15 1050,-106.15 1050,-87.15 1025,-87.15\"/>\n",
"<text text-anchor=\"start\" x=\"1027\" y=\"-92.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M632.01,-40.84C620.4,-47.57 603.69,-56.4 588,-61.65 546.08,-75.67 494.77,-82.55 465.19,-85.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"458.16,-86.27 464.82,-82.45 461.64,-85.93 465.12,-85.59 465.12,-85.59 465.12,-85.59 461.64,-85.93 465.43,-88.72 458.16,-86.27 458.16,-86.27\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"498,-83.15 498,-102.15 546,-102.15 546,-83.15 498,-83.15\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-88.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"550\" y=\"-88.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"561,-83.15 561,-102.15 586,-102.15 586,-83.15 561,-83.15\"/>\n",
"<text text-anchor=\"start\" x=\"563\" y=\"-88.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M665.23,-37.12C692.7,-46.59 749.88,-67.18 796,-89.65 810.66,-96.8 826.49,-106.1 838.61,-113.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"844.59,-117.32 836.98,-116.28 841.62,-115.46 838.65,-113.61 838.65,-113.61 838.65,-113.61 841.62,-115.46 840.32,-110.94 844.59,-117.32 844.59,-117.32\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"710,-91.15 710,-110.15 754,-110.15 754,-91.15 710,-91.15\"/>\n",
"<text text-anchor=\"start\" x=\"712\" y=\"-96.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"758\" y=\"-96.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"769,-91.15 769,-110.15 794,-110.15 794,-91.15 769,-91.15\"/>\n",
"<text text-anchor=\"start\" x=\"771\" y=\"-96.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M666.35,-32.49C726.31,-35.41 924.94,-45.07 994.6,-48.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1001.69,-48.81 994.54,-51.61 998.19,-48.64 994.7,-48.47 994.7,-48.47 994.7,-48.47 998.19,-48.64 994.85,-45.32 1001.69,-48.81 1001.69,-48.81\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"816,-46.15 816,-65.15 864,-65.15 864,-46.15 816,-46.15\"/>\n",
"<text text-anchor=\"start\" x=\"818\" y=\"-51.95\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"868\" y=\"-51.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"879,-46.15 879,-65.15 904,-65.15 904,-46.15 879,-46.15\"/>\n",
"<text text-anchor=\"start\" x=\"881\" y=\"-51.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M633.38,-42.34C623.62,-54.15 628.5,-67.65 648,-67.65 664.15,-67.65 670.27,-58.39 666.36,-48.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"662.62,-42.34 668.94,-46.69 664.44,-45.33 666.25,-48.33 666.25,-48.33 666.25,-48.33 664.44,-45.33 663.56,-49.96 662.62,-42.34 662.62,-42.34\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"602,-69.15 602,-88.15 654,-88.15 654,-69.15 602,-69.15\"/>\n",
"<text text-anchor=\"start\" x=\"604\" y=\"-74.95\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"658\" y=\"-74.95\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"669,-69.15 669,-88.15 694,-88.15 694,-69.15 669,-69.15\"/>\n",
"<text text-anchor=\"start\" x=\"671\" y=\"-74.95\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb2ca0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"simplification lvl 1 : bisimulation-based reduction\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"472pt\" height=\"237pt\"\n",
" viewBox=\"0.00 0.00 472.00 236.78\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 232.78)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-232.78 468,-232.78 468,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-57.78\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-54.08\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-57.78C2.79,-57.78 17.15,-57.78 30.63,-57.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-57.78 30.94,-60.93 34.44,-57.78 30.94,-57.78 30.94,-57.78 30.94,-57.78 34.44,-57.78 30.94,-54.63 37.94,-57.78 37.94,-57.78\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"234\" cy=\"-120.78\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"234\" y=\"-117.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.09,-73.08C72.25,-82.04 81.22,-92.76 92,-98.78 128.89,-119.39 179.2,-122.3 208.69,-121.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"215.71,-121.8 208.78,-125.1 212.21,-121.88 208.71,-121.95 208.71,-121.95 208.71,-121.95 212.21,-121.88 208.65,-118.8 215.71,-121.8 215.71,-121.8\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-121.28 94,-140.28 146,-140.28 146,-121.28 94,-121.28\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-127.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-127.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-121.28 161,-140.28 174,-140.28 174,-121.28 161,-121.28\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-127.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.37,-56.73C98.3,-55.95 142.28,-56.98 176,-71.78 191.81,-78.72 206.51,-91.58 217.02,-102.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"221.83,-107.49 214.74,-104.55 219.43,-104.94 217.03,-102.39 217.03,-102.39 217.03,-102.39 219.43,-104.94 219.32,-100.23 221.83,-107.49 221.83,-107.49\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-73.28 96,-92.28 144,-92.28 144,-73.28 96,-73.28\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-79.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-79.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"159,-73.28 159,-92.28 172,-92.28 172,-73.28 159,-73.28\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-79.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"420\" cy=\"-97.78\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"420\" y=\"-94.08\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.61,-53.51C123.38,-41.62 274.55,-12.09 384,-60.78 392.21,-64.43 399.41,-71.01 405.11,-77.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"409.54,-83.11 402.7,-79.64 407.35,-80.38 405.15,-77.66 405.15,-77.66 405.15,-77.66 407.35,-80.38 407.6,-75.68 409.54,-83.11 409.54,-83.11\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"196,-36.28 196,-55.28 244,-55.28 244,-36.28 196,-36.28\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-42.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-42.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"259,-36.28 259,-55.28 272,-55.28 272,-36.28 259,-36.28\"/>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-42.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.17,-46.08C76.42,-41.05 84.21,-35.49 92,-31.78 165.78,3.34 192.88,4.03 274,-5.78 323.98,-11.82 344.19,-1.96 384,-32.78 397.33,-43.1 406.2,-59.96 411.67,-73.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"414.09,-80.51 408.72,-75.03 412.88,-77.23 411.68,-73.94 411.68,-73.94 411.68,-73.94 412.88,-77.23 414.63,-72.85 414.09,-80.51 414.09,-80.51\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"198,-7.28 198,-26.28 242,-26.28 242,-7.28 198,-7.28\"/>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-13.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-13.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"257,-7.28 257,-26.28 270,-26.28 270,-7.28 257,-7.28\"/>\n",
"<text text-anchor=\"start\" x=\"259\" y=\"-13.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M225.37,-136.7C223.11,-146.93 225.99,-156.78 234,-156.78 240.13,-156.78 243.25,-151.01 243.37,-143.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"242.63,-136.7 246.5,-143.33 243,-140.18 243.37,-143.66 243.37,-143.66 243.37,-143.66 243,-140.18 240.23,-143.99 242.63,-136.7 242.63,-136.7\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"190,-158.28 190,-177.28 238,-177.28 238,-158.28 190,-158.28\"/>\n",
"<text text-anchor=\"start\" x=\"192\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"253,-158.28 253,-177.28 278,-177.28 278,-158.28 253,-158.28\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M221.69,-134.35C210.07,-154 214.18,-179.78 234,-179.78 251.66,-179.78 256.84,-159.33 249.56,-140.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"246.31,-134.35 252.22,-139.25 247.85,-137.49 249.39,-140.64 249.39,-140.64 249.39,-140.64 247.85,-137.49 246.56,-142.02 246.31,-134.35 246.31,-134.35\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"188,-181.28 188,-200.28 240,-200.28 240,-181.28 188,-181.28\"/>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-187.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"244\" y=\"-187.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"255,-181.28 255,-200.28 280,-200.28 280,-181.28 255,-181.28\"/>\n",
"<text text-anchor=\"start\" x=\"257\" y=\"-187.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.63,-136.82C251.72,-153.81 268.64,-179.68 292,-190.78 328.93,-208.33 350.38,-214.05 384,-190.78 405.92,-175.61 414.13,-144.87 417.19,-122.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"418.05,-115.79 420.34,-123.12 417.63,-119.27 417.21,-122.74 417.21,-122.74 417.21,-122.74 417.63,-119.27 414.08,-122.37 418.05,-115.79 418.05,-115.79\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"296,-207.28 296,-226.28 340,-226.28 340,-207.28 296,-207.28\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-213.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-213.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"355,-207.28 355,-226.28 380,-226.28 380,-207.28 355,-207.28\"/>\n",
"<text text-anchor=\"start\" x=\"357\" y=\"-213.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.29,-128.98C278.35,-142.82 339.28,-167.24 384,-144.78 394.34,-139.59 402.4,-129.73 408.17,-120.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"411.79,-114.05 411.05,-121.69 410.05,-117.09 408.32,-120.12 408.32,-120.12 408.32,-120.12 410.05,-117.09 405.58,-118.56 411.79,-114.05 411.79,-114.05\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"294,-155.28 294,-174.28 342,-174.28 342,-155.28 294,-155.28\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-161.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-161.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"357,-155.28 357,-174.28 382,-174.28 382,-155.28 357,-155.28\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-161.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M402.06,-99.9C369.23,-104 296.86,-113.05 259.06,-117.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"251.98,-118.66 258.54,-114.66 255.45,-118.22 258.93,-117.79 258.93,-117.79 258.93,-117.79 255.45,-118.22 259.32,-120.92 251.98,-118.66 251.98,-118.66\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"296,-114.28 296,-133.28 344,-133.28 344,-114.28 296,-114.28\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-120.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"348\" y=\"-120.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"359,-114.28 359,-133.28 380,-133.28 380,-114.28 359,-114.28\"/>\n",
"<text text-anchor=\"start\" x=\"361\" y=\"-120.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M405.64,-86.35C399.48,-81.81 391.8,-77.11 384,-74.78 344.83,-63.06 330.55,-61.16 292,-74.78 276.48,-80.26 262.08,-91.96 251.64,-102.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"246.55,-107.36 249.22,-100.16 249.01,-104.86 251.46,-102.37 251.46,-102.37 251.46,-102.37 249.01,-104.86 253.71,-104.58 246.55,-107.36 246.55,-107.36\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"294,-76.28 294,-95.28 346,-95.28 346,-76.28 294,-76.28\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-82.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-82.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"361,-76.28 361,-95.28 382,-95.28 382,-76.28 361,-76.28\"/>\n",
"<text text-anchor=\"start\" x=\"363\" y=\"-82.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M412.79,-114.44C411.19,-124.41 413.59,-133.78 420,-133.78 424.8,-133.78 427.36,-128.51 427.66,-121.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"427.21,-114.44 430.79,-121.23 427.42,-117.94 427.64,-121.43 427.64,-121.43 427.64,-121.43 427.42,-117.94 424.5,-121.63 427.21,-114.44 427.21,-114.44\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"380,-135.28 380,-154.28 424,-154.28 424,-135.28 380,-135.28\"/>\n",
"<text text-anchor=\"start\" x=\"382\" y=\"-141.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"428\" y=\"-141.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"439,-135.28 439,-154.28 460,-154.28 460,-135.28 439,-135.28\"/>\n",
"<text text-anchor=\"start\" x=\"441\" y=\"-141.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M409.36,-112.52C400.52,-132.01 404.06,-156.78 420,-156.78 434.07,-156.78 438.48,-137.47 433.24,-119.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"430.64,-112.52 436.03,-117.99 431.86,-115.8 433.07,-119.08 433.07,-119.08 433.07,-119.08 431.86,-115.8 430.12,-120.18 430.64,-112.52 430.64,-112.52\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"378,-158.28 378,-177.28 426,-177.28 426,-158.28 378,-158.28\"/>\n",
"<text text-anchor=\"start\" x=\"380\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"430\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"441,-158.28 441,-177.28 462,-177.28 462,-158.28 441,-158.28\"/>\n",
"<text text-anchor=\"start\" x=\"443\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"472pt\" height=\"237pt\"\n",
" viewBox=\"0.00 0.00 472.00 236.78\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 232.78)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-232.78 468,-232.78 468,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-57.78\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-54.08\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-57.78C2.79,-57.78 17.15,-57.78 30.63,-57.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-57.78 30.94,-60.93 34.44,-57.78 30.94,-57.78 30.94,-57.78 30.94,-57.78 34.44,-57.78 30.94,-54.63 37.94,-57.78 37.94,-57.78\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"234\" cy=\"-120.78\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"234\" y=\"-117.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.09,-73.08C72.25,-82.04 81.22,-92.76 92,-98.78 128.89,-119.39 179.2,-122.3 208.69,-121.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"215.71,-121.8 208.78,-125.1 212.21,-121.88 208.71,-121.95 208.71,-121.95 208.71,-121.95 212.21,-121.88 208.65,-118.8 215.71,-121.8 215.71,-121.8\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-121.28 94,-140.28 146,-140.28 146,-121.28 94,-121.28\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-127.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-127.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-121.28 161,-140.28 174,-140.28 174,-121.28 161,-121.28\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-127.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.37,-56.73C98.3,-55.95 142.28,-56.98 176,-71.78 191.81,-78.72 206.51,-91.58 217.02,-102.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"221.83,-107.49 214.74,-104.55 219.43,-104.94 217.03,-102.39 217.03,-102.39 217.03,-102.39 219.43,-104.94 219.32,-100.23 221.83,-107.49 221.83,-107.49\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-73.28 96,-92.28 144,-92.28 144,-73.28 96,-73.28\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-79.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-79.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"159,-73.28 159,-92.28 172,-92.28 172,-73.28 159,-73.28\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-79.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"420\" cy=\"-97.78\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"420\" y=\"-94.08\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.61,-53.51C123.38,-41.62 274.55,-12.09 384,-60.78 392.21,-64.43 399.41,-71.01 405.11,-77.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"409.54,-83.11 402.7,-79.64 407.35,-80.38 405.15,-77.66 405.15,-77.66 405.15,-77.66 407.35,-80.38 407.6,-75.68 409.54,-83.11 409.54,-83.11\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"196,-36.28 196,-55.28 244,-55.28 244,-36.28 196,-36.28\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-42.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-42.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"259,-36.28 259,-55.28 272,-55.28 272,-36.28 259,-36.28\"/>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-42.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.17,-46.08C76.42,-41.05 84.21,-35.49 92,-31.78 165.78,3.34 192.88,4.03 274,-5.78 323.98,-11.82 344.19,-1.96 384,-32.78 397.33,-43.1 406.2,-59.96 411.67,-73.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"414.09,-80.51 408.72,-75.03 412.88,-77.23 411.68,-73.94 411.68,-73.94 411.68,-73.94 412.88,-77.23 414.63,-72.85 414.09,-80.51 414.09,-80.51\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"198,-7.28 198,-26.28 242,-26.28 242,-7.28 198,-7.28\"/>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-13.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-13.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"257,-7.28 257,-26.28 270,-26.28 270,-7.28 257,-7.28\"/>\n",
"<text text-anchor=\"start\" x=\"259\" y=\"-13.08\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M225.37,-136.7C223.11,-146.93 225.99,-156.78 234,-156.78 240.13,-156.78 243.25,-151.01 243.37,-143.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"242.63,-136.7 246.5,-143.33 243,-140.18 243.37,-143.66 243.37,-143.66 243.37,-143.66 243,-140.18 240.23,-143.99 242.63,-136.7 242.63,-136.7\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"190,-158.28 190,-177.28 238,-177.28 238,-158.28 190,-158.28\"/>\n",
"<text text-anchor=\"start\" x=\"192\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"253,-158.28 253,-177.28 278,-177.28 278,-158.28 253,-158.28\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M221.69,-134.35C210.07,-154 214.18,-179.78 234,-179.78 251.66,-179.78 256.84,-159.33 249.56,-140.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"246.31,-134.35 252.22,-139.25 247.85,-137.49 249.39,-140.64 249.39,-140.64 249.39,-140.64 247.85,-137.49 246.56,-142.02 246.31,-134.35 246.31,-134.35\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"188,-181.28 188,-200.28 240,-200.28 240,-181.28 188,-181.28\"/>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-187.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"244\" y=\"-187.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"255,-181.28 255,-200.28 280,-200.28 280,-181.28 255,-181.28\"/>\n",
"<text text-anchor=\"start\" x=\"257\" y=\"-187.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.63,-136.82C251.72,-153.81 268.64,-179.68 292,-190.78 328.93,-208.33 350.38,-214.05 384,-190.78 405.92,-175.61 414.13,-144.87 417.19,-122.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"418.05,-115.79 420.34,-123.12 417.63,-119.27 417.21,-122.74 417.21,-122.74 417.21,-122.74 417.63,-119.27 414.08,-122.37 418.05,-115.79 418.05,-115.79\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"296,-207.28 296,-226.28 340,-226.28 340,-207.28 296,-207.28\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-213.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-213.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"355,-207.28 355,-226.28 380,-226.28 380,-207.28 355,-207.28\"/>\n",
"<text text-anchor=\"start\" x=\"357\" y=\"-213.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.29,-128.98C278.35,-142.82 339.28,-167.24 384,-144.78 394.34,-139.59 402.4,-129.73 408.17,-120.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"411.79,-114.05 411.05,-121.69 410.05,-117.09 408.32,-120.12 408.32,-120.12 408.32,-120.12 410.05,-117.09 405.58,-118.56 411.79,-114.05 411.79,-114.05\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"294,-155.28 294,-174.28 342,-174.28 342,-155.28 294,-155.28\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-161.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-161.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"357,-155.28 357,-174.28 382,-174.28 382,-155.28 357,-155.28\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-161.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M402.06,-99.9C369.23,-104 296.86,-113.05 259.06,-117.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"251.98,-118.66 258.54,-114.66 255.45,-118.22 258.93,-117.79 258.93,-117.79 258.93,-117.79 255.45,-118.22 259.32,-120.92 251.98,-118.66 251.98,-118.66\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"296,-114.28 296,-133.28 344,-133.28 344,-114.28 296,-114.28\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-120.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"348\" y=\"-120.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"359,-114.28 359,-133.28 380,-133.28 380,-114.28 359,-114.28\"/>\n",
"<text text-anchor=\"start\" x=\"361\" y=\"-120.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M405.64,-86.35C399.48,-81.81 391.8,-77.11 384,-74.78 344.83,-63.06 330.55,-61.16 292,-74.78 276.48,-80.26 262.08,-91.96 251.64,-102.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"246.55,-107.36 249.22,-100.16 249.01,-104.86 251.46,-102.37 251.46,-102.37 251.46,-102.37 249.01,-104.86 253.71,-104.58 246.55,-107.36 246.55,-107.36\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"294,-76.28 294,-95.28 346,-95.28 346,-76.28 294,-76.28\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-82.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-82.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"361,-76.28 361,-95.28 382,-95.28 382,-76.28 361,-76.28\"/>\n",
"<text text-anchor=\"start\" x=\"363\" y=\"-82.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M412.79,-114.44C411.19,-124.41 413.59,-133.78 420,-133.78 424.8,-133.78 427.36,-128.51 427.66,-121.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"427.21,-114.44 430.79,-121.23 427.42,-117.94 427.64,-121.43 427.64,-121.43 427.64,-121.43 427.42,-117.94 424.5,-121.63 427.21,-114.44 427.21,-114.44\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"380,-135.28 380,-154.28 424,-154.28 424,-135.28 380,-135.28\"/>\n",
"<text text-anchor=\"start\" x=\"382\" y=\"-141.08\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"428\" y=\"-141.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"439,-135.28 439,-154.28 460,-154.28 460,-135.28 439,-135.28\"/>\n",
"<text text-anchor=\"start\" x=\"441\" y=\"-141.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M409.36,-112.52C400.52,-132.01 404.06,-156.78 420,-156.78 434.07,-156.78 438.48,-137.47 433.24,-119.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"430.64,-112.52 436.03,-117.99 431.86,-115.8 433.07,-119.08 433.07,-119.08 433.07,-119.08 431.86,-115.8 430.12,-120.18 430.64,-112.52 430.64,-112.52\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"378,-158.28 378,-177.28 426,-177.28 426,-158.28 378,-158.28\"/>\n",
"<text text-anchor=\"start\" x=\"380\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"430\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"441,-158.28 441,-177.28 462,-177.28 462,-158.28 441,-158.28\"/>\n",
"<text text-anchor=\"start\" x=\"443\" y=\"-164.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb3b40> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"simplification lvl 2 : bisimulation-based reduction with output assignement\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"276pt\" height=\"181pt\"\n",
" viewBox=\"0.00 0.00 276.00 181.08\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 177.08)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-177.08 272,-177.08 272,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-73.08\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-69.38\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-73.08C2.79,-73.08 17.15,-73.08 30.63,-73.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-73.08 30.94,-76.23 34.44,-73.08 30.94,-73.08 30.94,-73.08 30.94,-73.08 34.44,-73.08 30.94,-69.93 37.94,-73.08 37.94,-73.08\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-90.86C52.21,-100.39 53.29,-109.08 56,-109.08 57.99,-109.08 59.1,-104.39 59.33,-98.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-90.86 62.48,-97.82 59.28,-94.36 59.33,-97.86 59.33,-97.86 59.33,-97.86 59.28,-94.36 56.18,-97.9 59.24,-90.86 59.24,-90.86\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"16,-110.58 16,-129.58 60,-129.58 60,-110.58 16,-110.58\"/>\n",
"<text text-anchor=\"start\" x=\"18\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"64\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"75,-110.58 75,-129.58 96,-129.58 96,-110.58 75,-110.58\"/>\n",
"<text text-anchor=\"start\" x=\"77\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.83,-90.49C47.6,-109.49 49.32,-132.08 56,-132.08 61.84,-132.08 63.89,-114.78 62.15,-97.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.17,-90.49 65.23,-97 61.64,-93.96 62.11,-97.42 62.11,-97.42 62.11,-97.42 61.64,-93.96 58.98,-97.85 61.17,-90.49 61.17,-90.49\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"14,-133.58 14,-152.58 62,-152.58 62,-133.58 14,-133.58\"/>\n",
"<text text-anchor=\"start\" x=\"16\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"66\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"77,-133.58 77,-152.58 98,-152.58 98,-133.58 77,-133.58\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"220\" cy=\"-73.08\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"220\" y=\"-69.38\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.21,-89.34C70,-100.23 79.27,-113.68 92,-120.08 128.54,-138.42 147.46,-138.42 184,-120.08 194.34,-114.88 202.4,-105.03 208.17,-95.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.79,-89.34 211.05,-96.98 210.05,-92.38 208.32,-95.42 208.32,-95.42 208.32,-95.42 210.05,-92.38 205.58,-93.85 211.79,-89.34 211.79,-89.34\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-134.58 96,-153.58 144,-153.58 144,-134.58 96,-134.58\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-140.38\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-140.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"159,-134.58 159,-153.58 180,-153.58 180,-134.58 159,-134.58\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-140.38\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-73.66C79.78,-73.83 86.16,-73.99 92,-74.08 132.88,-74.66 143.12,-74.66 184,-74.08 187.46,-74.03 191.12,-73.95 194.71,-73.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"201.91,-73.66 195,-77 198.41,-73.76 194.91,-73.85 194.91,-73.85 194.91,-73.85 198.41,-73.76 194.83,-70.71 201.91,-73.66 201.91,-73.66\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-75.58 94,-94.58 146,-94.58 146,-75.58 94,-75.58\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-81.38\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-81.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-75.58 161,-94.58 182,-94.58 182,-75.58 161,-75.58\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-81.38\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M205.57,-62.14C199.39,-57.79 191.72,-53.3 184,-51.08 144.71,-39.75 131.29,-39.75 92,-51.08 86.57,-52.64 81.17,-55.32 76.29,-58.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"70.43,-62.14 74.56,-55.66 73.36,-60.22 76.28,-58.3 76.28,-58.3 76.28,-58.3 73.36,-60.22 78.01,-60.93 70.43,-62.14 70.43,-62.14\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-52.58 96,-71.58 140,-71.58 140,-52.58 96,-52.58\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-58.38\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-58.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"155,-52.58 155,-71.58 180,-71.58 180,-52.58 155,-52.58\"/>\n",
"<text text-anchor=\"start\" x=\"157\" y=\"-58.38\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M213.87,-55.94C208.74,-42.17 199.36,-23.75 184,-15.08 148.39,5.03 127.61,5.03 92,-15.08 79.04,-22.39 70.34,-36.65 64.85,-49.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.13,-55.94 61.83,-48.27 63.44,-52.69 64.75,-49.45 64.75,-49.45 64.75,-49.45 63.44,-52.69 67.67,-50.63 62.13,-55.94 62.13,-55.94\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-16.58 94,-35.58 142,-35.58 142,-16.58 94,-16.58\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-22.38\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"146\" y=\"-22.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"157,-16.58 157,-35.58 182,-35.58 182,-16.58 157,-16.58\"/>\n",
"<text text-anchor=\"start\" x=\"159\" y=\"-22.38\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M212.79,-89.74C211.19,-99.7 213.59,-109.08 220,-109.08 224.8,-109.08 227.36,-103.8 227.66,-96.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"227.21,-89.74 230.79,-96.53 227.42,-93.23 227.64,-96.73 227.64,-96.73 227.64,-96.73 227.42,-93.23 224.5,-96.92 227.21,-89.74 227.21,-89.74\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"176,-110.58 176,-129.58 224,-129.58 224,-110.58 176,-110.58\"/>\n",
"<text text-anchor=\"start\" x=\"178\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"239,-110.58 239,-129.58 264,-129.58 264,-110.58 239,-110.58\"/>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.36,-87.81C200.52,-107.3 204.06,-132.08 220,-132.08 234.07,-132.08 238.48,-112.77 233.24,-94.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"230.64,-87.81 236.03,-93.29 231.86,-91.1 233.07,-94.38 233.07,-94.38 233.07,-94.38 231.86,-91.1 230.12,-95.47 230.64,-87.81 230.64,-87.81\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"174,-133.58 174,-152.58 226,-152.58 226,-133.58 174,-133.58\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"241,-133.58 241,-152.58 266,-152.58 266,-133.58 241,-133.58\"/>\n",
"<text text-anchor=\"start\" x=\"243\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"276pt\" height=\"181pt\"\n",
" viewBox=\"0.00 0.00 276.00 181.08\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 177.08)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-177.08 272,-177.08 272,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-73.08\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-69.38\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-73.08C2.79,-73.08 17.15,-73.08 30.63,-73.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-73.08 30.94,-76.23 34.44,-73.08 30.94,-73.08 30.94,-73.08 30.94,-73.08 34.44,-73.08 30.94,-69.93 37.94,-73.08 37.94,-73.08\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-90.86C52.21,-100.39 53.29,-109.08 56,-109.08 57.99,-109.08 59.1,-104.39 59.33,-98.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-90.86 62.48,-97.82 59.28,-94.36 59.33,-97.86 59.33,-97.86 59.33,-97.86 59.28,-94.36 56.18,-97.9 59.24,-90.86 59.24,-90.86\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"16,-110.58 16,-129.58 60,-129.58 60,-110.58 16,-110.58\"/>\n",
"<text text-anchor=\"start\" x=\"18\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"64\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"75,-110.58 75,-129.58 96,-129.58 96,-110.58 75,-110.58\"/>\n",
"<text text-anchor=\"start\" x=\"77\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.83,-90.49C47.6,-109.49 49.32,-132.08 56,-132.08 61.84,-132.08 63.89,-114.78 62.15,-97.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.17,-90.49 65.23,-97 61.64,-93.96 62.11,-97.42 62.11,-97.42 62.11,-97.42 61.64,-93.96 58.98,-97.85 61.17,-90.49 61.17,-90.49\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"14,-133.58 14,-152.58 62,-152.58 62,-133.58 14,-133.58\"/>\n",
"<text text-anchor=\"start\" x=\"16\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"66\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"77,-133.58 77,-152.58 98,-152.58 98,-133.58 77,-133.58\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"220\" cy=\"-73.08\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"220\" y=\"-69.38\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.21,-89.34C70,-100.23 79.27,-113.68 92,-120.08 128.54,-138.42 147.46,-138.42 184,-120.08 194.34,-114.88 202.4,-105.03 208.17,-95.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.79,-89.34 211.05,-96.98 210.05,-92.38 208.32,-95.42 208.32,-95.42 208.32,-95.42 210.05,-92.38 205.58,-93.85 211.79,-89.34 211.79,-89.34\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-134.58 96,-153.58 144,-153.58 144,-134.58 96,-134.58\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-140.38\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-140.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"159,-134.58 159,-153.58 180,-153.58 180,-134.58 159,-134.58\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-140.38\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-73.66C79.78,-73.83 86.16,-73.99 92,-74.08 132.88,-74.66 143.12,-74.66 184,-74.08 187.46,-74.03 191.12,-73.95 194.71,-73.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"201.91,-73.66 195,-77 198.41,-73.76 194.91,-73.85 194.91,-73.85 194.91,-73.85 198.41,-73.76 194.83,-70.71 201.91,-73.66 201.91,-73.66\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-75.58 94,-94.58 146,-94.58 146,-75.58 94,-75.58\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-81.38\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-81.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-75.58 161,-94.58 182,-94.58 182,-75.58 161,-75.58\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-81.38\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M205.57,-62.14C199.39,-57.79 191.72,-53.3 184,-51.08 144.71,-39.75 131.29,-39.75 92,-51.08 86.57,-52.64 81.17,-55.32 76.29,-58.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"70.43,-62.14 74.56,-55.66 73.36,-60.22 76.28,-58.3 76.28,-58.3 76.28,-58.3 73.36,-60.22 78.01,-60.93 70.43,-62.14 70.43,-62.14\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-52.58 96,-71.58 140,-71.58 140,-52.58 96,-52.58\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-58.38\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-58.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"155,-52.58 155,-71.58 180,-71.58 180,-52.58 155,-52.58\"/>\n",
"<text text-anchor=\"start\" x=\"157\" y=\"-58.38\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M213.87,-55.94C208.74,-42.17 199.36,-23.75 184,-15.08 148.39,5.03 127.61,5.03 92,-15.08 79.04,-22.39 70.34,-36.65 64.85,-49.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.13,-55.94 61.83,-48.27 63.44,-52.69 64.75,-49.45 64.75,-49.45 64.75,-49.45 63.44,-52.69 67.67,-50.63 62.13,-55.94 62.13,-55.94\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-16.58 94,-35.58 142,-35.58 142,-16.58 94,-16.58\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-22.38\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"146\" y=\"-22.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"157,-16.58 157,-35.58 182,-35.58 182,-16.58 157,-16.58\"/>\n",
"<text text-anchor=\"start\" x=\"159\" y=\"-22.38\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M212.79,-89.74C211.19,-99.7 213.59,-109.08 220,-109.08 224.8,-109.08 227.36,-103.8 227.66,-96.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"227.21,-89.74 230.79,-96.53 227.42,-93.23 227.64,-96.73 227.64,-96.73 227.64,-96.73 227.42,-93.23 224.5,-96.92 227.21,-89.74 227.21,-89.74\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"176,-110.58 176,-129.58 224,-129.58 224,-110.58 176,-110.58\"/>\n",
"<text text-anchor=\"start\" x=\"178\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"239,-110.58 239,-129.58 264,-129.58 264,-110.58 239,-110.58\"/>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-116.38\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.36,-87.81C200.52,-107.3 204.06,-132.08 220,-132.08 234.07,-132.08 238.48,-112.77 233.24,-94.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"230.64,-87.81 236.03,-93.29 231.86,-91.1 233.07,-94.38 233.07,-94.38 233.07,-94.38 231.86,-91.1 230.12,-95.47 230.64,-87.81 230.64,-87.81\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"174,-133.58 174,-152.58 226,-152.58 226,-133.58 174,-133.58\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"241,-133.58 241,-152.58 266,-152.58 266,-133.58 241,-133.58\"/>\n",
"<text text-anchor=\"start\" x=\"243\" y=\"-139.38\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb3480> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"simplification lvl 3 : SAT-based exact minimization\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"228pt\" height=\"99pt\"\n",
" viewBox=\"0.00 0.00 228.00 99.28\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 95.28)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-95.28 224,-95.28 224,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-32.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-28.58\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-32.28C2.79,-32.28 17.15,-32.28 30.63,-32.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-32.28 30.94,-35.43 34.44,-32.28 30.94,-32.28 30.94,-32.28 30.94,-32.28 34.44,-32.28 30.94,-29.13 37.94,-32.28 37.94,-32.28\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-49.32C48.32,-59.14 50.45,-68.28 56,-68.28 60.17,-68.28 62.4,-63.14 62.71,-56.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-49.32 65.85,-56.16 62.54,-52.81 62.71,-56.31 62.71,-56.31 62.71,-56.31 62.54,-52.81 59.56,-56.46 62.38,-49.32 62.38,-49.32\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"30,-69.78 30,-88.78 46,-88.78 46,-69.78 30,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"32\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"50\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"61,-69.78 61,-88.78 82,-88.78 82,-69.78 61,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"63\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-32.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-28.58\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-32.87C79.78,-33.04 86.16,-33.2 92,-33.28 118.66,-33.66 125.34,-33.66 152,-33.28 155.46,-33.23 159.12,-33.15 162.71,-33.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.91,-32.87 163,-36.21 166.41,-32.96 162.91,-33.06 162.91,-33.06 162.91,-33.06 166.41,-32.96 162.83,-29.91 169.91,-32.87 169.91,-32.87\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-34.78 94,-53.78 114,-53.78 114,-34.78 94,-34.78\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"118\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"129,-34.78 129,-53.78 150,-53.78 150,-34.78 129,-34.78\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.53,-19.93C168.3,-14.64 160.34,-9.04 152,-6.28 126.68,2.09 117.32,2.09 92,-6.28 86.01,-8.26 80.21,-11.71 75.11,-15.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.47,-19.93 73,-13.11 72.22,-17.76 74.96,-15.58 74.96,-15.58 74.96,-15.58 72.22,-17.76 76.92,-18.05 69.47,-19.93 69.47,-19.93\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-7.78 94,-26.78 110,-26.78 110,-7.78 94,-7.78\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"114\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"125,-7.78 125,-26.78 150,-26.78 150,-7.78 125,-7.78\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.09,-46.7C173.28,-57.45 176.91,-68.28 188,-68.28 196.66,-68.28 200.78,-61.67 200.34,-53.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-46.7 203.41,-52.92 199.62,-50.13 200.32,-53.55 200.32,-53.55 200.32,-53.55 199.62,-50.13 197.24,-54.19 198.91,-46.7 198.91,-46.7\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"158,-69.78 158,-88.78 178,-88.78 178,-69.78 158,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"182\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"193,-69.78 193,-88.78 218,-88.78 218,-69.78 193,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"195\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"228pt\" height=\"99pt\"\n",
" viewBox=\"0.00 0.00 228.00 99.28\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 95.28)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-95.28 224,-95.28 224,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-32.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-28.58\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-32.28C2.79,-32.28 17.15,-32.28 30.63,-32.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-32.28 30.94,-35.43 34.44,-32.28 30.94,-32.28 30.94,-32.28 30.94,-32.28 34.44,-32.28 30.94,-29.13 37.94,-32.28 37.94,-32.28\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-49.32C48.32,-59.14 50.45,-68.28 56,-68.28 60.17,-68.28 62.4,-63.14 62.71,-56.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-49.32 65.85,-56.16 62.54,-52.81 62.71,-56.31 62.71,-56.31 62.71,-56.31 62.54,-52.81 59.56,-56.46 62.38,-49.32 62.38,-49.32\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"30,-69.78 30,-88.78 46,-88.78 46,-69.78 30,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"32\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"50\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"61,-69.78 61,-88.78 82,-88.78 82,-69.78 61,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"63\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-32.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-28.58\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-32.87C79.78,-33.04 86.16,-33.2 92,-33.28 118.66,-33.66 125.34,-33.66 152,-33.28 155.46,-33.23 159.12,-33.15 162.71,-33.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.91,-32.87 163,-36.21 166.41,-32.96 162.91,-33.06 162.91,-33.06 162.91,-33.06 166.41,-32.96 162.83,-29.91 169.91,-32.87 169.91,-32.87\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-34.78 94,-53.78 114,-53.78 114,-34.78 94,-34.78\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"118\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"129,-34.78 129,-53.78 150,-53.78 150,-34.78 129,-34.78\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.53,-19.93C168.3,-14.64 160.34,-9.04 152,-6.28 126.68,2.09 117.32,2.09 92,-6.28 86.01,-8.26 80.21,-11.71 75.11,-15.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.47,-19.93 73,-13.11 72.22,-17.76 74.96,-15.58 74.96,-15.58 74.96,-15.58 72.22,-17.76 76.92,-18.05 69.47,-19.93 69.47,-19.93\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-7.78 94,-26.78 110,-26.78 110,-7.78 94,-7.78\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"114\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"125,-7.78 125,-26.78 150,-26.78 150,-7.78 125,-7.78\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.09,-46.7C173.28,-57.45 176.91,-68.28 188,-68.28 196.66,-68.28 200.78,-61.67 200.34,-53.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-46.7 203.41,-52.92 199.62,-50.13 200.32,-53.55 200.32,-53.55 200.32,-53.55 199.62,-50.13 197.24,-54.19 198.91,-46.7 198.91,-46.7\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"158,-69.78 158,-88.78 178,-88.78 178,-69.78 158,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"182\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"193,-69.78 193,-88.78 218,-88.78 218,-69.78 193,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"195\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb2dc0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"simplification lvl 4 : First 1 then 3 (exact)\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"224pt\" height=\"99pt\"\n",
" viewBox=\"0.00 0.00 224.00 99.28\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 95.28)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-95.28 220,-95.28 220,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-32.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-28.58\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-32.28C2.79,-32.28 17.15,-32.28 30.63,-32.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-32.28 30.94,-35.43 34.44,-32.28 30.94,-32.28 30.94,-32.28 30.94,-32.28 34.44,-32.28 30.94,-29.13 37.94,-32.28 37.94,-32.28\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-49.32C48.32,-59.14 50.45,-68.28 56,-68.28 60.17,-68.28 62.4,-63.14 62.71,-56.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-49.32 65.85,-56.16 62.54,-52.81 62.71,-56.31 62.71,-56.31 62.71,-56.31 62.54,-52.81 59.56,-56.46 62.38,-49.32 62.38,-49.32\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"26,-69.78 26,-88.78 46,-88.78 46,-69.78 26,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"28\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"50\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"61,-69.78 61,-88.78 86,-88.78 86,-69.78 61,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"63\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-32.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-28.58\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-32.87C79.78,-33.04 86.16,-33.2 92,-33.28 118.66,-33.66 125.34,-33.66 152,-33.28 155.46,-33.23 159.12,-33.15 162.71,-33.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.91,-32.87 163,-36.21 166.41,-32.96 162.91,-33.06 162.91,-33.06 162.91,-33.06 166.41,-32.96 162.83,-29.91 169.91,-32.87 169.91,-32.87\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-34.78 94,-53.78 110,-53.78 110,-34.78 94,-34.78\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"114\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"125,-34.78 125,-53.78 150,-53.78 150,-34.78 125,-34.78\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.53,-19.93C168.3,-14.64 160.34,-9.04 152,-6.28 126.68,2.09 117.32,2.09 92,-6.28 86.01,-8.26 80.21,-11.71 75.11,-15.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.47,-19.93 73,-13.11 72.22,-17.76 74.96,-15.58 74.96,-15.58 74.96,-15.58 72.22,-17.76 76.92,-18.05 69.47,-19.93 69.47,-19.93\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-7.78 94,-26.78 114,-26.78 114,-7.78 94,-7.78\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"118\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"129,-7.78 129,-26.78 150,-26.78 150,-7.78 129,-7.78\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.09,-46.7C173.28,-57.45 176.91,-68.28 188,-68.28 196.66,-68.28 200.78,-61.67 200.34,-53.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-46.7 203.41,-52.92 199.62,-50.13 200.32,-53.55 200.32,-53.55 200.32,-53.55 199.62,-50.13 197.24,-54.19 198.91,-46.7 198.91,-46.7\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"162,-69.78 162,-88.78 178,-88.78 178,-69.78 162,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"164\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"182\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"193,-69.78 193,-88.78 214,-88.78 214,-69.78 193,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"195\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"224pt\" height=\"99pt\"\n",
" viewBox=\"0.00 0.00 224.00 99.28\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 95.28)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-95.28 220,-95.28 220,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-32.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-28.58\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-32.28C2.79,-32.28 17.15,-32.28 30.63,-32.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-32.28 30.94,-35.43 34.44,-32.28 30.94,-32.28 30.94,-32.28 30.94,-32.28 34.44,-32.28 30.94,-29.13 37.94,-32.28 37.94,-32.28\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-49.32C48.32,-59.14 50.45,-68.28 56,-68.28 60.17,-68.28 62.4,-63.14 62.71,-56.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-49.32 65.85,-56.16 62.54,-52.81 62.71,-56.31 62.71,-56.31 62.71,-56.31 62.54,-52.81 59.56,-56.46 62.38,-49.32 62.38,-49.32\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"26,-69.78 26,-88.78 46,-88.78 46,-69.78 26,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"28\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"50\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"61,-69.78 61,-88.78 86,-88.78 86,-69.78 61,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"63\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-32.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-28.58\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-32.87C79.78,-33.04 86.16,-33.2 92,-33.28 118.66,-33.66 125.34,-33.66 152,-33.28 155.46,-33.23 159.12,-33.15 162.71,-33.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.91,-32.87 163,-36.21 166.41,-32.96 162.91,-33.06 162.91,-33.06 162.91,-33.06 166.41,-32.96 162.83,-29.91 169.91,-32.87 169.91,-32.87\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-34.78 94,-53.78 110,-53.78 110,-34.78 94,-34.78\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"114\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"125,-34.78 125,-53.78 150,-53.78 150,-34.78 125,-34.78\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-40.58\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.53,-19.93C168.3,-14.64 160.34,-9.04 152,-6.28 126.68,2.09 117.32,2.09 92,-6.28 86.01,-8.26 80.21,-11.71 75.11,-15.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.47,-19.93 73,-13.11 72.22,-17.76 74.96,-15.58 74.96,-15.58 74.96,-15.58 72.22,-17.76 76.92,-18.05 69.47,-19.93 69.47,-19.93\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-7.78 94,-26.78 114,-26.78 114,-7.78 94,-7.78\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
"<text text-anchor=\"start\" x=\"118\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"129,-7.78 129,-26.78 150,-26.78 150,-7.78 129,-7.78\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-13.58\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.09,-46.7C173.28,-57.45 176.91,-68.28 188,-68.28 196.66,-68.28 200.78,-61.67 200.34,-53.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-46.7 203.41,-52.92 199.62,-50.13 200.32,-53.55 200.32,-53.55 200.32,-53.55 199.62,-50.13 197.24,-54.19 198.91,-46.7 198.91,-46.7\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"162,-69.78 162,-88.78 178,-88.78 178,-69.78 162,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"164\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
"<text text-anchor=\"start\" x=\"182\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"193,-69.78 193,-88.78 214,-88.78 214,-69.78 193,-69.78\"/>\n",
"<text text-anchor=\"start\" x=\"195\" y=\"-75.58\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb3e40> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"simplification lvl 5 : First 2 then 3 (not exact)\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"276pt\" height=\"187pt\"\n",
" viewBox=\"0.00 0.00 276.00 186.55\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 182.55)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-182.55 272,-182.55 272,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-78.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-74.85\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-78.55C2.79,-78.55 17.15,-78.55 30.63,-78.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-78.55 30.94,-81.7 34.44,-78.55 30.94,-78.55 30.94,-78.55 30.94,-78.55 34.44,-78.55 30.94,-75.4 37.94,-78.55 37.94,-78.55\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-96.33C52.21,-105.87 53.29,-114.55 56,-114.55 57.99,-114.55 59.1,-109.87 59.33,-103.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-96.33 62.48,-103.29 59.28,-99.83 59.33,-103.33 59.33,-103.33 59.33,-103.33 59.28,-99.83 56.18,-103.37 59.24,-96.33 59.24,-96.33\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"16,-116.05 16,-135.05 60,-135.05 60,-116.05 16,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"18\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"64\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"75,-116.05 75,-135.05 96,-135.05 96,-116.05 75,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"77\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.83,-95.96C47.6,-114.97 49.32,-137.55 56,-137.55 61.84,-137.55 63.89,-120.26 62.15,-103.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.17,-95.96 65.23,-102.48 61.64,-99.43 62.11,-102.9 62.11,-102.9 62.11,-102.9 61.64,-99.43 58.98,-103.32 61.17,-95.96 61.17,-95.96\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"14,-139.05 14,-158.05 62,-158.05 62,-139.05 14,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"16\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"66\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"77,-139.05 77,-158.05 98,-158.05 98,-139.05 77,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"220\" cy=\"-78.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"220\" y=\"-74.85\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.21,-94.82C70,-105.7 79.27,-119.16 92,-125.55 128.54,-143.9 147.46,-143.9 184,-125.55 194.34,-120.36 202.4,-110.5 208.17,-101.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.79,-94.82 211.05,-102.46 210.05,-97.86 208.32,-100.89 208.32,-100.89 208.32,-100.89 210.05,-97.86 205.58,-99.33 211.79,-94.82 211.79,-94.82\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-140.05 96,-159.05 144,-159.05 144,-140.05 96,-140.05\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"159,-140.05 159,-159.05 180,-159.05 180,-140.05 159,-140.05\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-79.14C79.78,-79.31 86.16,-79.47 92,-79.55 132.88,-80.14 143.12,-80.14 184,-79.55 187.46,-79.5 191.12,-79.43 194.71,-79.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"201.91,-79.14 195,-82.48 198.41,-79.23 194.91,-79.33 194.91,-79.33 194.91,-79.33 198.41,-79.23 194.83,-76.18 201.91,-79.14 201.91,-79.14\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-81.05 94,-100.05 146,-100.05 146,-81.05 94,-81.05\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-81.05 161,-100.05 182,-100.05 182,-81.05 161,-81.05\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.53,-66.2C200.3,-60.91 192.34,-55.31 184,-52.55 145.18,-39.71 130.82,-39.71 92,-52.55 86.01,-54.53 80.21,-57.98 75.11,-61.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.47,-66.2 73,-59.38 72.22,-64.03 74.96,-61.85 74.96,-61.85 74.96,-61.85 72.22,-64.03 76.92,-64.32 69.47,-66.2 69.47,-66.2\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-54.05 96,-73.05 140,-73.05 140,-54.05 96,-54.05\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"155,-54.05 155,-73.05 180,-73.05 180,-54.05 155,-54.05\"/>\n",
"<text text-anchor=\"start\" x=\"157\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M214.67,-61.17C209.9,-46.14 200.61,-25.32 184,-15.55 148.76,5.18 127.24,5.18 92,-15.55 77.73,-23.95 68.86,-40.5 63.62,-54.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.33,-61.17 60.63,-53.53 62.47,-57.86 63.61,-54.55 63.61,-54.55 63.61,-54.55 62.47,-57.86 66.59,-55.58 61.33,-61.17 61.33,-61.17\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-17.05 94,-36.05 142,-36.05 142,-17.05 94,-17.05\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"146\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"157,-17.05 157,-36.05 182,-36.05 182,-17.05 157,-17.05\"/>\n",
"<text text-anchor=\"start\" x=\"159\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M212.79,-95.22C211.19,-105.18 213.59,-114.55 220,-114.55 224.8,-114.55 227.36,-109.28 227.66,-102.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"227.21,-95.22 230.79,-102.01 227.42,-98.71 227.64,-102.2 227.64,-102.2 227.64,-102.2 227.42,-98.71 224.5,-102.4 227.21,-95.22 227.21,-95.22\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"176,-116.05 176,-135.05 224,-135.05 224,-116.05 176,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"178\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"239,-116.05 239,-135.05 264,-135.05 264,-116.05 239,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.36,-93.29C200.52,-112.78 204.06,-137.55 220,-137.55 234.07,-137.55 238.48,-118.24 233.24,-100.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"230.64,-93.29 236.03,-98.76 231.86,-96.57 233.07,-99.85 233.07,-99.85 233.07,-99.85 231.86,-96.57 230.12,-100.95 230.64,-93.29 230.64,-93.29\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"174,-139.05 174,-158.05 226,-158.05 226,-139.05 174,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"241,-139.05 241,-158.05 266,-158.05 266,-139.05 241,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"243\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"276pt\" height=\"187pt\"\n",
" viewBox=\"0.00 0.00 276.00 186.55\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 182.55)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-182.55 272,-182.55 272,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-78.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-74.85\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-78.55C2.79,-78.55 17.15,-78.55 30.63,-78.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-78.55 30.94,-81.7 34.44,-78.55 30.94,-78.55 30.94,-78.55 30.94,-78.55 34.44,-78.55 30.94,-75.4 37.94,-78.55 37.94,-78.55\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-96.33C52.21,-105.87 53.29,-114.55 56,-114.55 57.99,-114.55 59.1,-109.87 59.33,-103.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-96.33 62.48,-103.29 59.28,-99.83 59.33,-103.33 59.33,-103.33 59.33,-103.33 59.28,-99.83 56.18,-103.37 59.24,-96.33 59.24,-96.33\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"16,-116.05 16,-135.05 60,-135.05 60,-116.05 16,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"18\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"64\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"75,-116.05 75,-135.05 96,-135.05 96,-116.05 75,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"77\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.83,-95.96C47.6,-114.97 49.32,-137.55 56,-137.55 61.84,-137.55 63.89,-120.26 62.15,-103.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.17,-95.96 65.23,-102.48 61.64,-99.43 62.11,-102.9 62.11,-102.9 62.11,-102.9 61.64,-99.43 58.98,-103.32 61.17,-95.96 61.17,-95.96\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"14,-139.05 14,-158.05 62,-158.05 62,-139.05 14,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"16\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"66\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"77,-139.05 77,-158.05 98,-158.05 98,-139.05 77,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"220\" cy=\"-78.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"220\" y=\"-74.85\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.21,-94.82C70,-105.7 79.27,-119.16 92,-125.55 128.54,-143.9 147.46,-143.9 184,-125.55 194.34,-120.36 202.4,-110.5 208.17,-101.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.79,-94.82 211.05,-102.46 210.05,-97.86 208.32,-100.89 208.32,-100.89 208.32,-100.89 210.05,-97.86 205.58,-99.33 211.79,-94.82 211.79,-94.82\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-140.05 96,-159.05 144,-159.05 144,-140.05 96,-140.05\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"159,-140.05 159,-159.05 180,-159.05 180,-140.05 159,-140.05\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-79.14C79.78,-79.31 86.16,-79.47 92,-79.55 132.88,-80.14 143.12,-80.14 184,-79.55 187.46,-79.5 191.12,-79.43 194.71,-79.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"201.91,-79.14 195,-82.48 198.41,-79.23 194.91,-79.33 194.91,-79.33 194.91,-79.33 198.41,-79.23 194.83,-76.18 201.91,-79.14 201.91,-79.14\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-81.05 94,-100.05 146,-100.05 146,-81.05 94,-81.05\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-81.05 161,-100.05 182,-100.05 182,-81.05 161,-81.05\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.53,-66.2C200.3,-60.91 192.34,-55.31 184,-52.55 145.18,-39.71 130.82,-39.71 92,-52.55 86.01,-54.53 80.21,-57.98 75.11,-61.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.47,-66.2 73,-59.38 72.22,-64.03 74.96,-61.85 74.96,-61.85 74.96,-61.85 72.22,-64.03 76.92,-64.32 69.47,-66.2 69.47,-66.2\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-54.05 96,-73.05 140,-73.05 140,-54.05 96,-54.05\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"155,-54.05 155,-73.05 180,-73.05 180,-54.05 155,-54.05\"/>\n",
"<text text-anchor=\"start\" x=\"157\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M214.67,-61.17C209.9,-46.14 200.61,-25.32 184,-15.55 148.76,5.18 127.24,5.18 92,-15.55 77.73,-23.95 68.86,-40.5 63.62,-54.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.33,-61.17 60.63,-53.53 62.47,-57.86 63.61,-54.55 63.61,-54.55 63.61,-54.55 62.47,-57.86 66.59,-55.58 61.33,-61.17 61.33,-61.17\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-17.05 94,-36.05 142,-36.05 142,-17.05 94,-17.05\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"146\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"157,-17.05 157,-36.05 182,-36.05 182,-17.05 157,-17.05\"/>\n",
"<text text-anchor=\"start\" x=\"159\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M212.79,-95.22C211.19,-105.18 213.59,-114.55 220,-114.55 224.8,-114.55 227.36,-109.28 227.66,-102.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"227.21,-95.22 230.79,-102.01 227.42,-98.71 227.64,-102.2 227.64,-102.2 227.64,-102.2 227.42,-98.71 224.5,-102.4 227.21,-95.22 227.21,-95.22\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"176,-116.05 176,-135.05 224,-135.05 224,-116.05 176,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"178\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"239,-116.05 239,-135.05 264,-135.05 264,-116.05 239,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.36,-93.29C200.52,-112.78 204.06,-137.55 220,-137.55 234.07,-137.55 238.48,-118.24 233.24,-100.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"230.64,-93.29 236.03,-98.76 231.86,-96.57 233.07,-99.85 233.07,-99.85 233.07,-99.85 231.86,-96.57 230.12,-100.95 230.64,-93.29 230.64,-93.29\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"174,-139.05 174,-158.05 226,-158.05 226,-139.05 174,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"241,-139.05 241,-158.05 266,-158.05 266,-139.05 241,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"243\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb2ca0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# We have different levels of simplification:\n",
"# 0 : No simplification\n",
"# 1 : bisimulation-based reduction\n",
"# 2 : bisimulation-based reduction with output assignement\n",
"# 3 : SAT-based exact minimization\n",
"# 4 : First 1 then 3 (exact)\n",
"# 5 : First 2 then 3 (not exact)\n",
"\n",
"descr = [\"0 : No simplification\", \n",
" \"1 : bisimulation-based reduction\", \n",
" \"2 : bisimulation-based reduction with output assignement\",\n",
" \"3 : SAT-based exact minimization\",\n",
" \"4 : First 1 then 3 (exact)\",\n",
" \"5 : First 2 then 3 (not exact)\"]\n",
"\n",
"\n",
"for i in range(6):\n",
" print(\"simplification lvl \", descr[i])\n",
" si.minimize_lvl = i\n",
" mealy = spot.solved_game_to_mealy(game, si)\n",
" spot.simplify_mealy_here(mealy, si.minimize_lvl, False)\n",
" display(mealy)"
]
},
{
"cell_type": "markdown",
"id": "9d8d52f6",
"metadata": {},
"source": [
"If needed, a separated Mealy machine can be turned into game shape using `split_separated_mealy()`, which is more efficient than `split_2step()`."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "707f4cf6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"276pt\" height=\"187pt\"\n",
" viewBox=\"0.00 0.00 276.00 186.55\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 182.55)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-182.55 272,-182.55 272,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-78.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-74.85\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-78.55C2.79,-78.55 17.15,-78.55 30.63,-78.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-78.55 30.94,-81.7 34.44,-78.55 30.94,-78.55 30.94,-78.55 30.94,-78.55 34.44,-78.55 30.94,-75.4 37.94,-78.55 37.94,-78.55\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-96.33C52.21,-105.87 53.29,-114.55 56,-114.55 57.99,-114.55 59.1,-109.87 59.33,-103.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-96.33 62.48,-103.29 59.28,-99.83 59.33,-103.33 59.33,-103.33 59.33,-103.33 59.28,-99.83 56.18,-103.37 59.24,-96.33 59.24,-96.33\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"16,-116.05 16,-135.05 60,-135.05 60,-116.05 16,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"18\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"64\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"75,-116.05 75,-135.05 96,-135.05 96,-116.05 75,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"77\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.83,-95.96C47.6,-114.97 49.32,-137.55 56,-137.55 61.84,-137.55 63.89,-120.26 62.15,-103.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.17,-95.96 65.23,-102.48 61.64,-99.43 62.11,-102.9 62.11,-102.9 62.11,-102.9 61.64,-99.43 58.98,-103.32 61.17,-95.96 61.17,-95.96\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"14,-139.05 14,-158.05 62,-158.05 62,-139.05 14,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"16\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"66\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"77,-139.05 77,-158.05 98,-158.05 98,-139.05 77,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"220\" cy=\"-78.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"220\" y=\"-74.85\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.21,-94.82C70,-105.7 79.27,-119.16 92,-125.55 128.54,-143.9 147.46,-143.9 184,-125.55 194.34,-120.36 202.4,-110.5 208.17,-101.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.79,-94.82 211.05,-102.46 210.05,-97.86 208.32,-100.89 208.32,-100.89 208.32,-100.89 210.05,-97.86 205.58,-99.33 211.79,-94.82 211.79,-94.82\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-140.05 96,-159.05 144,-159.05 144,-140.05 96,-140.05\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"159,-140.05 159,-159.05 180,-159.05 180,-140.05 159,-140.05\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-145.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-79.14C79.78,-79.31 86.16,-79.47 92,-79.55 132.88,-80.14 143.12,-80.14 184,-79.55 187.46,-79.5 191.12,-79.43 194.71,-79.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"201.91,-79.14 195,-82.48 198.41,-79.23 194.91,-79.33 194.91,-79.33 194.91,-79.33 198.41,-79.23 194.83,-76.18 201.91,-79.14 201.91,-79.14\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-81.05 94,-100.05 146,-100.05 146,-81.05 94,-81.05\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"161,-81.05 161,-100.05 182,-100.05 182,-81.05 161,-81.05\"/>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-86.85\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.53,-66.2C200.3,-60.91 192.34,-55.31 184,-52.55 145.18,-39.71 130.82,-39.71 92,-52.55 86.01,-54.53 80.21,-57.98 75.11,-61.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.47,-66.2 73,-59.38 72.22,-64.03 74.96,-61.85 74.96,-61.85 74.96,-61.85 72.22,-64.03 76.92,-64.32 69.47,-66.2 69.47,-66.2\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"96,-54.05 96,-73.05 140,-73.05 140,-54.05 96,-54.05\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"155,-54.05 155,-73.05 180,-73.05 180,-54.05 155,-54.05\"/>\n",
"<text text-anchor=\"start\" x=\"157\" y=\"-59.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M214.67,-61.17C209.9,-46.14 200.61,-25.32 184,-15.55 148.76,5.18 127.24,5.18 92,-15.55 77.73,-23.95 68.86,-40.5 63.62,-54.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.33,-61.17 60.63,-53.53 62.47,-57.86 63.61,-54.55 63.61,-54.55 63.61,-54.55 62.47,-57.86 66.59,-55.58 61.33,-61.17 61.33,-61.17\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-17.05 94,-36.05 142,-36.05 142,-17.05 94,-17.05\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"<text text-anchor=\"start\" x=\"146\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"157,-17.05 157,-36.05 182,-36.05 182,-17.05 157,-17.05\"/>\n",
"<text text-anchor=\"start\" x=\"159\" y=\"-22.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M212.79,-95.22C211.19,-105.18 213.59,-114.55 220,-114.55 224.8,-114.55 227.36,-109.28 227.66,-102.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"227.21,-95.22 230.79,-102.01 227.42,-98.71 227.64,-102.2 227.64,-102.2 227.64,-102.2 227.42,-98.71 224.5,-102.4 227.21,-95.22 227.21,-95.22\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"176,-116.05 176,-135.05 224,-135.05 224,-116.05 176,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"178\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"239,-116.05 239,-135.05 264,-135.05 264,-116.05 239,-116.05\"/>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-121.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.36,-93.29C200.52,-112.78 204.06,-137.55 220,-137.55 234.07,-137.55 238.48,-118.24 233.24,-100.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"230.64,-93.29 236.03,-98.76 231.86,-96.57 233.07,-99.85 233.07,-99.85 233.07,-99.85 231.86,-96.57 230.12,-100.95 230.64,-93.29 230.64,-93.29\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"174,-139.05 174,-158.05 226,-158.05 226,-139.05 174,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"241,-139.05 241,-158.05 266,-158.05 266,-139.05 241,-139.05\"/>\n",
"<text text-anchor=\"start\" x=\"243\" y=\"-144.85\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"451pt\" height=\"233pt\"\n",
" viewBox=\"0.00 0.00 451.00 232.86\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 228.86)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-228.86 447,-228.86 447,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"218.5\" y=\"-209.66\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"210.5\" y=\"-194.66\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-97.86\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-94.16\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-97.86C2.79,-97.86 17.15,-97.86 30.63,-97.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-97.86 30.94,-101.01 34.44,-97.86 30.94,-97.86 30.94,-97.86 30.94,-97.86 34.44,-97.86 30.94,-94.71 37.94,-97.86 37.94,-97.86\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"185,-58.86 158,-40.86 185,-22.86 212,-40.86 185,-58.86\"/>\n",
"<text text-anchor=\"middle\" x=\"185\" y=\"-37.16\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.75,-82.63C71.88,-73.38 80.96,-62.17 92,-55.86 109.99,-45.59 132.99,-41.84 151.49,-40.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"158.6,-40.31 151.76,-43.8 155.11,-40.48 151.61,-40.65 151.61,-40.65 151.61,-40.65 155.11,-40.48 151.46,-37.5 158.6,-40.31 158.6,-40.31\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-59.66\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M59.75,-80.01C63.57,-62.08 72.37,-35.36 92,-22.86 113.95,-8.88 144.38,-19.39 164.13,-29.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"170.39,-32.53 162.73,-32.07 167.29,-30.9 164.19,-29.28 164.19,-29.28 164.19,-29.28 167.29,-30.9 165.65,-26.49 170.39,-32.53 170.39,-32.53\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-26.66\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"185,-134.86 158,-116.86 185,-98.86 212,-116.86 185,-134.86\"/>\n",
"<text text-anchor=\"middle\" x=\"185\" y=\"-113.16\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.72,-88.32C77.75,-84.94 84.96,-81.56 92,-79.86 112.73,-74.84 119.96,-72.55 140,-79.86 151.28,-83.97 161.67,-92.38 169.52,-100.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.52,-105.36 167.4,-102.5 172.1,-102.84 169.67,-100.31 169.67,-100.31 169.67,-100.31 172.1,-102.84 171.95,-98.13 174.52,-105.36 174.52,-105.36\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-83.66\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.88,-112.2C73.09,-119.9 81.84,-128.65 92,-132.86 114.94,-142.36 143.37,-134.76 162.5,-127.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.11,-124.34 163.88,-129.97 165.88,-125.7 162.66,-127.06 162.66,-127.06 162.66,-127.06 165.88,-125.7 161.43,-124.16 169.11,-124.34 169.11,-124.34\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-140.66\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"287\" cy=\"-50.86\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"287\" y=\"-47.16\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M208.69,-43.13C224.58,-44.72 245.78,-46.84 261.96,-48.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"269.01,-49.16 261.73,-51.6 265.52,-48.81 262.04,-48.46 262.04,-48.46 262.04,-48.46 265.52,-48.81 262.35,-45.33 269.01,-49.16 269.01,-49.16\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-51.66\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M162.39,-113.63C139.81,-110.25 104.47,-104.96 81.03,-101.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.86,-100.38 81.25,-98.3 77.33,-100.9 80.79,-101.42 80.79,-101.42 80.79,-101.42 77.33,-100.9 80.32,-104.53 73.86,-100.38 73.86,-100.38\"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-113.66\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"416,-163.86 389,-145.86 416,-127.86 443,-145.86 416,-163.86\"/>\n",
"<text text-anchor=\"middle\" x=\"416\" y=\"-142.16\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M291.78,-68.31C296.32,-85.06 305.61,-109.82 323,-123.86 339.66,-137.31 363.2,-142.76 382.3,-144.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"389.38,-145.54 382.12,-148.03 385.9,-145.21 382.41,-144.89 382.41,-144.89 382.41,-144.89 385.9,-145.21 382.7,-141.75 389.38,-145.54 389.38,-145.54\"/>\n",
"<text text-anchor=\"start\" x=\"327\" y=\"-146.66\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M302.72,-60C323.13,-72.76 358.88,-95.38 371,-104.86 380.89,-112.59 391.2,-122.11 399.35,-130.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"404.61,-135.21 397.42,-132.54 402.12,-132.75 399.63,-130.29 399.63,-130.29 399.63,-130.29 402.12,-132.75 401.84,-128.05 404.61,-135.21 404.61,-135.21\"/>\n",
"<text text-anchor=\"start\" x=\"325\" y=\"-108.66\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; i1</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"416,-49.86 389,-31.86 416,-13.86 443,-31.86 416,-49.86\"/>\n",
"<text text-anchor=\"middle\" x=\"416\" y=\"-28.16\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M305.03,-51.78C321.93,-52.34 348.5,-52.24 371,-47.86 378.3,-46.44 386,-43.99 392.89,-41.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"399.45,-38.86 394.08,-44.34 396.19,-40.13 392.93,-41.41 392.93,-41.41 392.93,-41.41 396.19,-40.13 391.79,-38.47 399.45,-38.86 399.45,-38.86\"/>\n",
"<text text-anchor=\"start\" x=\"325\" y=\"-56.66\" font-family=\"Lato\" font-size=\"14.00\">i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M301.43,-39.92C307.61,-35.57 315.28,-31.08 323,-28.86 344.15,-22.76 369.17,-24.1 387.77,-26.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"394.82,-27.68 387.43,-29.76 391.36,-27.16 387.9,-26.64 387.9,-26.64 387.9,-26.64 391.36,-27.16 388.36,-23.53 394.82,-27.68 394.82,-27.68\"/>\n",
"<text text-anchor=\"start\" x=\"323\" y=\"-32.66\" font-family=\"Lato\" font-size=\"14.00\">!i0 &amp; !i1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M399.48,-153.01C391.22,-156.42 380.77,-160.14 371,-161.86 349.99,-165.56 344.33,-162.14 323,-161.86 220.31,-160.53 180.77,-207.5 92,-155.86 79.13,-148.37 70.44,-134.11 64.93,-121.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.19,-114.89 67.75,-120.19 63.51,-118.13 64.83,-121.37 64.83,-121.37 64.83,-121.37 63.51,-118.13 61.92,-122.56 62.19,-114.89 62.19,-114.89\"/>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-175.66\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>5&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M403.1,-22.44C394.67,-16.39 382.81,-9.09 371,-5.86 350.42,-0.23 342.16,3.51 323,-5.86 313.03,-10.73 305.08,-19.97 299.29,-28.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"295.63,-34.81 296.59,-27.2 297.46,-31.83 299.28,-28.84 299.28,-28.84 299.28,-28.84 297.46,-31.83 301.97,-30.48 295.63,-34.81 295.63,-34.81\"/>\n",
"<text text-anchor=\"start\" x=\"336.5\" y=\"-9.66\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display_inline(mealy, spot.split_separated_mealy(mealy), per_row=2)"
]
},
{
"cell_type": "markdown",
"id": "b9e4412e",
"metadata": {},
"source": [
"# Converting the separated Mealy machine to AIG\n",
"\n",
"A separated Mealy machine can be converted to a circuit in the [AIGER format](http://fmv.jku.at/aiger/FORMAT.aiger) using `mealy_machine_to_aig()`. This takes a second argument specifying what type of encoding to use (exactly like `ltlsynt`'s `--aiger=...` option). \n",
"\n",
"In this case, the circuit is quite simple: `o0` should be the negation of previous value of `i1`. This is done by storing the value of `i1` in a latch. And the value if `i0` can be ignored."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9f344931",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"265pt\" height=\"208pt\"\n",
" viewBox=\"0.00 0.00 265.19 208.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 204)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-204 261.19,-204 261.19,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"76.7,-118 11.7,-118 11.7,-82 76.7,-82 76.7,-118\"/>\n",
"<text text-anchor=\"middle\" x=\"44.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_out</text>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"44.2,-154 88.59,-188.5 -0.2,-188.5 44.2,-154\"/>\n",
"<text text-anchor=\"middle\" x=\"44.2\" y=\"-173.3\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>6&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M44.2,-118.19C44.2,-126.29 44.2,-136.29 44.2,-145.98\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"44.2\" cy=\"-150\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- L0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>L0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"149.7,-118 94.7,-118 94.7,-82 149.7,-82 149.7,-118\"/>\n",
"<text text-anchor=\"middle\" x=\"122.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_in</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"122.2,-46 83.2,-11.5 161.19,-11.5 122.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"122.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;L0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>2&#45;&gt;L0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M122.2,-46.1C122.2,-54.74 122.2,-64.71 122.2,-73.64\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"122.2\" cy=\"-77.82\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"218.2,-46 179.2,-11.5 257.19,-11.5 218.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"218.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"265pt\" height=\"208pt\"\n",
" viewBox=\"0.00 0.00 265.19 208.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 204)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-204 261.19,-204 261.19,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"76.7,-118 11.7,-118 11.7,-82 76.7,-82 76.7,-118\"/>\n",
"<text text-anchor=\"middle\" x=\"44.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_out</text>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"44.2,-154 88.59,-188.5 -0.2,-188.5 44.2,-154\"/>\n",
"<text text-anchor=\"middle\" x=\"44.2\" y=\"-173.3\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>6&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M44.2,-118.19C44.2,-126.29 44.2,-136.29 44.2,-145.98\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"44.2\" cy=\"-150\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- L0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>L0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"149.7,-118 94.7,-118 94.7,-82 149.7,-82 149.7,-118\"/>\n",
"<text text-anchor=\"middle\" x=\"122.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_in</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"122.2,-46 83.2,-11.5 161.19,-11.5 122.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"122.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;L0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>2&#45;&gt;L0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M122.2,-46.1C122.2,-54.74 122.2,-64.71 122.2,-73.64\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"122.2\" cy=\"-77.82\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"218.2,-46 179.2,-11.5 257.19,-11.5 218.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"218.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.aig; proxy of <Swig Object of type 'std::shared_ptr< spot::aig > *' at 0x7f654cfb21f0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"aig = spot.mealy_machine_to_aig(mealy, \"isop\")\n",
"display(aig)"
]
},
{
"cell_type": "markdown",
"id": "92bbe8d0",
"metadata": {},
"source": [
"While we are at it, let us mention that you can render those circuits horizontally as follows:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "3ae7ce32",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"311pt\" height=\"172pt\"\n",
" viewBox=\"0.00 0.00 311.39 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 307.39,-168 307.39,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"178.99,-41 113.99,-41 113.99,-5 178.99,-5 178.99,-41\"/>\n",
"<text text-anchor=\"middle\" x=\"146.49\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_out</text>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"214.8,-23 281.39,0 281.39,-46 214.8,-23\"/>\n",
"<text text-anchor=\"middle\" x=\"259.19\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>6&#45;&gt;o0:w</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.09,-23C187.85,-23 197.52,-23 206.88,-23\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"210.99\" cy=\"-23\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- L0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>L0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"173.99,-95 118.99,-95 118.99,-59 173.99,-59 173.99,-95\"/>\n",
"<text text-anchor=\"middle\" x=\"146.49\" y=\"-73.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_in</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"77.99,-77 19.5,-100 19.5,-54 77.99,-77\"/>\n",
"<text text-anchor=\"middle\" x=\"39\" y=\"-73.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;L0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>2&#45;&gt;L0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M78.08,-77C88.7,-77 100.18,-77 110.6,-77\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"114.7\" cy=\"-77\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"77.99,-141 19.5,-164 19.5,-118 77.99,-141\"/>\n",
"<text text-anchor=\"middle\" x=\"39\" y=\"-137.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aig.show('h')"
]
},
{
"cell_type": "markdown",
"id": "44fbc0ac",
"metadata": {},
"source": [
"To encode the circuit in the AIGER format (ASCII version) use:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "566715d5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"aag 3 2 1 1 0\n",
"2\n",
"4\n",
"6 3\n",
"7\n",
"i0 i1\n",
"i1 i0\n",
"o0 o0\n"
]
}
],
"source": [
"print(aig.to_str())"
]
},
{
"cell_type": "markdown",
"id": "ef304f36",
"metadata": {},
"source": [
"# Adding more inputs and outputs by force"
]
},
{
"cell_type": "markdown",
"id": "5c2b0b78",
"metadata": {},
"source": [
"It can happen that propositions declared as output are omitted in the aig circuit (either because they are not part of the specification, or because they do not appear in the winning strategy). In that case those \n",
"values can take arbitrary values.\n",
"\n",
"For instance so following constraint mention `o1` and `i1`, but those atomic proposition are actually unconstrained (`F(... U x)` can be simplified to `Fx`). Without any indication, the circuit built will ignore those variables:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "874c7df1",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"392pt\" height=\"224pt\"\n",
" viewBox=\"0.00 0.00 392.00 223.92\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 219.92)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-219.92 388,-219.92 388,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"171.5\" y=\"-201.72\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"192.5\" y=\"-201.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"208.5\" y=\"-201.72\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-187.72\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 3 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-90.92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-87.22\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- I&#45;&gt;3 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-90.92C2.79,-90.92 17.15,-90.92 30.63,-90.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-90.92 30.94,-94.07 34.44,-90.92 30.94,-90.92 30.94,-90.92 30.94,-90.92 34.44,-90.92 30.94,-87.77 37.94,-90.92 37.94,-90.92\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"153,-140.92 126,-122.92 153,-104.92 180,-122.92 153,-140.92\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-119.22\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.55,-96.49C88.53,-101.54 110.78,-109.03 127.76,-114.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"134.68,-117.08 127.04,-117.83 131.36,-115.96 128.05,-114.85 128.05,-114.85 128.05,-114.85 131.36,-115.96 129.05,-111.86 134.68,-117.08 134.68,-117.08\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-110.72\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"153,-81.92 126,-63.92 153,-45.92 180,-63.92 153,-81.92\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-60.22\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.83,-83.93C78.76,-81.49 85.62,-78.87 92,-76.92 102.33,-73.75 113.89,-71.06 124.09,-68.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"131.23,-67.53 124.98,-71.99 127.8,-68.21 124.37,-68.9 124.37,-68.9 124.37,-68.9 127.8,-68.21 123.75,-65.81 131.23,-67.53 131.23,-67.53\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-80.72\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"255\" cy=\"-98.92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-95.22\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"357,-129.92 330,-111.92 357,-93.92 384,-111.92 357,-129.92\"/>\n",
"<text text-anchor=\"middle\" x=\"357\" y=\"-108.22\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M267.12,-112.62C273.36,-119.2 281.74,-126.41 291,-129.92 305.82,-135.54 323.15,-130.18 336.18,-123.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"342.57,-120.55 337.82,-126.58 339.47,-122.17 336.36,-123.79 336.36,-123.79 336.36,-123.79 339.47,-122.17 334.91,-120.99 342.57,-120.55 342.57,-120.55\"/>\n",
"<text text-anchor=\"start\" x=\"297\" y=\"-150.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-135.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M340.48,-104.77C332.22,-101.35 321.77,-97.64 312,-95.92 301.61,-94.09 289.98,-94.34 280.02,-95.25\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"272.78,-96.04 279.4,-92.15 276.21,-95.16 279.69,-94.78 279.74,-95.28 279.8,-95.78 276.32,-96.16 280.08,-98.41 272.78,-96.04 272.78,-96.04\"/>\n",
"<text text-anchor=\"start\" x=\"297\" y=\"-114.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-99.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"255\" cy=\"-44.92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-41.22\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"357,-49.92 330,-31.92 357,-13.92 384,-31.92 357,-49.92\"/>\n",
"<text text-anchor=\"middle\" x=\"357\" y=\"-28.22\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M272.96,-42.71C287.69,-40.8 309.33,-37.98 326.83,-35.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"334.04,-34.77 327.51,-38.8 330.57,-35.22 327.1,-35.67 327.1,-35.67 327.1,-35.67 330.57,-35.22 326.7,-32.55 334.04,-34.77 334.04,-34.77\"/>\n",
"<text text-anchor=\"start\" x=\"297\" y=\"-58.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-43.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>5&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M345.36,-21.28C332.45,-9.72 310.02,5.99 291,-2.92 281.82,-7.22 274.21,-15.24 268.46,-23.12\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"264.42,-29.07 265.75,-21.51 265.97,-25.89 267.94,-22.99 268.35,-23.28 268.77,-23.56 266.8,-26.45 270.96,-25.04 264.42,-29.07 264.42,-29.07\"/>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-21.72\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-6.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"255\" cy=\"-161.92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-158.22\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M241.76,-149.55C235.47,-143.91 227.38,-137.67 219,-133.92 208.55,-129.23 196.33,-126.53 185.33,-124.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"178.31,-124.11 185.64,-121.84 181.78,-124.54 185.26,-124.97 185.26,-124.97 185.26,-124.97 181.78,-124.54 184.87,-128.09 178.31,-124.11 178.31,-124.11\"/>\n",
"<text text-anchor=\"middle\" x=\"208.5\" y=\"-137.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M165.84,-113.14C174.24,-106.86 186.1,-99.28 198,-95.92 208.25,-93.02 219.98,-93.15 230.03,-94.25\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"237.02,-95.18 229.66,-97.37 233.49,-95.21 230.02,-94.75 230.08,-94.25 230.15,-93.76 233.62,-94.22 230.5,-91.13 237.02,-95.18 237.02,-95.18\"/>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-99.72\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M166.93,-131.99C175.42,-137.58 186.96,-144.5 198,-148.92 208.14,-152.98 219.84,-155.94 229.92,-158\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.93,-159.35 229.46,-161.12 233.49,-158.69 230.05,-158.03 230.05,-158.03 230.05,-158.03 233.49,-158.69 230.65,-154.94 236.93,-159.35 236.93,-159.35\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-158.72\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M174.24,-60.07C190.42,-57 213.13,-52.68 230.19,-49.44\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"237.11,-48.12 230.83,-52.53 233.77,-49.27 230.33,-49.92 230.24,-49.43 230.14,-48.94 233.58,-48.29 229.65,-46.34 237.11,-48.12 237.11,-48.12\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-58.72\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"392pt\" height=\"224pt\"\n",
" viewBox=\"0.00 0.00 392.00 223.92\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 219.92)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-219.92 388,-219.92 388,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"171.5\" y=\"-201.72\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"192.5\" y=\"-201.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"208.5\" y=\"-201.72\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-187.72\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 3 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-90.92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-87.22\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- I&#45;&gt;3 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-90.92C2.79,-90.92 17.15,-90.92 30.63,-90.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-90.92 30.94,-94.07 34.44,-90.92 30.94,-90.92 30.94,-90.92 30.94,-90.92 34.44,-90.92 30.94,-87.77 37.94,-90.92 37.94,-90.92\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"153,-140.92 126,-122.92 153,-104.92 180,-122.92 153,-140.92\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-119.22\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.55,-96.49C88.53,-101.54 110.78,-109.03 127.76,-114.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"134.68,-117.08 127.04,-117.83 131.36,-115.96 128.05,-114.85 128.05,-114.85 128.05,-114.85 131.36,-115.96 129.05,-111.86 134.68,-117.08 134.68,-117.08\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-110.72\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"153,-81.92 126,-63.92 153,-45.92 180,-63.92 153,-81.92\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-60.22\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.83,-83.93C78.76,-81.49 85.62,-78.87 92,-76.92 102.33,-73.75 113.89,-71.06 124.09,-68.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"131.23,-67.53 124.98,-71.99 127.8,-68.21 124.37,-68.9 124.37,-68.9 124.37,-68.9 127.8,-68.21 123.75,-65.81 131.23,-67.53 131.23,-67.53\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-80.72\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"255\" cy=\"-98.92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-95.22\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"357,-129.92 330,-111.92 357,-93.92 384,-111.92 357,-129.92\"/>\n",
"<text text-anchor=\"middle\" x=\"357\" y=\"-108.22\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M267.12,-112.62C273.36,-119.2 281.74,-126.41 291,-129.92 305.82,-135.54 323.15,-130.18 336.18,-123.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"342.57,-120.55 337.82,-126.58 339.47,-122.17 336.36,-123.79 336.36,-123.79 336.36,-123.79 339.47,-122.17 334.91,-120.99 342.57,-120.55 342.57,-120.55\"/>\n",
"<text text-anchor=\"start\" x=\"297\" y=\"-150.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-135.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M340.48,-104.77C332.22,-101.35 321.77,-97.64 312,-95.92 301.61,-94.09 289.98,-94.34 280.02,-95.25\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"272.78,-96.04 279.4,-92.15 276.21,-95.16 279.69,-94.78 279.74,-95.28 279.8,-95.78 276.32,-96.16 280.08,-98.41 272.78,-96.04 272.78,-96.04\"/>\n",
"<text text-anchor=\"start\" x=\"297\" y=\"-114.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-99.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"255\" cy=\"-44.92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-41.22\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"357,-49.92 330,-31.92 357,-13.92 384,-31.92 357,-49.92\"/>\n",
"<text text-anchor=\"middle\" x=\"357\" y=\"-28.22\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M272.96,-42.71C287.69,-40.8 309.33,-37.98 326.83,-35.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"334.04,-34.77 327.51,-38.8 330.57,-35.22 327.1,-35.67 327.1,-35.67 327.1,-35.67 330.57,-35.22 326.7,-32.55 334.04,-34.77 334.04,-34.77\"/>\n",
"<text text-anchor=\"start\" x=\"297\" y=\"-58.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-43.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>5&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M345.36,-21.28C332.45,-9.72 310.02,5.99 291,-2.92 281.82,-7.22 274.21,-15.24 268.46,-23.12\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"264.42,-29.07 265.75,-21.51 265.97,-25.89 267.94,-22.99 268.35,-23.28 268.77,-23.56 266.8,-26.45 270.96,-25.04 264.42,-29.07 264.42,-29.07\"/>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-21.72\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-6.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"255\" cy=\"-161.92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-158.22\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M241.76,-149.55C235.47,-143.91 227.38,-137.67 219,-133.92 208.55,-129.23 196.33,-126.53 185.33,-124.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"178.31,-124.11 185.64,-121.84 181.78,-124.54 185.26,-124.97 185.26,-124.97 185.26,-124.97 181.78,-124.54 184.87,-128.09 178.31,-124.11 178.31,-124.11\"/>\n",
"<text text-anchor=\"middle\" x=\"208.5\" y=\"-137.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M165.84,-113.14C174.24,-106.86 186.1,-99.28 198,-95.92 208.25,-93.02 219.98,-93.15 230.03,-94.25\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"237.02,-95.18 229.66,-97.37 233.49,-95.21 230.02,-94.75 230.08,-94.25 230.15,-93.76 233.62,-94.22 230.5,-91.13 237.02,-95.18 237.02,-95.18\"/>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-99.72\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M166.93,-131.99C175.42,-137.58 186.96,-144.5 198,-148.92 208.14,-152.98 219.84,-155.94 229.92,-158\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.93,-159.35 229.46,-161.12 233.49,-158.69 230.05,-158.03 230.05,-158.03 230.05,-158.03 233.49,-158.69 230.65,-154.94 236.93,-159.35 236.93,-159.35\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-158.72\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M174.24,-60.07C190.42,-57 213.13,-52.68 230.19,-49.44\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"237.11,-48.12 230.83,-52.53 233.77,-49.27 230.33,-49.92 230.24,-49.43 230.14,-48.94 233.58,-48.29 229.65,-46.34 237.11,-48.12 237.11,-48.12\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-58.72\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfc9920> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"380pt\" height=\"151pt\"\n",
" viewBox=\"0.00 0.00 380.00 151.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 147)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-147 376,-147 376,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"183\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-60\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-56.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-60C2.79,-60 17.15,-60 30.63,-60\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-60 30.94,-63.15 34.44,-60 30.94,-60 30.94,-60 30.94,-60 34.44,-60 30.94,-56.85 37.94,-60 37.94,-60\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"153,-105 126,-87 153,-69 180,-87 153,-105\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-83.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.55,-64.7C88.25,-68.88 109.95,-75.05 126.8,-79.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"133.7,-81.8 126.1,-82.91 130.33,-80.84 126.96,-79.88 126.96,-79.88 126.96,-79.88 130.33,-80.84 127.82,-76.85 133.7,-81.8 133.7,-81.8\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"153,-51 126,-33 153,-15 180,-33 153,-51\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-29.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.55,-55.3C88.25,-51.12 109.95,-44.95 126.8,-40.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"133.7,-38.2 127.82,-43.15 130.33,-39.16 126.96,-40.12 126.96,-40.12 126.96,-40.12 130.33,-39.16 126.1,-37.09 133.7,-38.2 133.7,-38.2\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"255\" cy=\"-87\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-83.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M180.01,-87C195.43,-87 214.83,-87 229.9,-87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.92,-87 229.92,-90.15 233.42,-87 229.92,-87 229.92,-87 229.92,-87 233.42,-87 229.91,-83.85 236.92,-87 236.92,-87\"/>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"255\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M175.7,-29.75C191.64,-27.35 213.3,-24.1 229.8,-21.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.98,-20.55 230.52,-24.71 233.52,-21.07 230.06,-21.59 230.06,-21.59 230.06,-21.59 233.52,-21.07 229.59,-18.48 236.98,-20.55 236.98,-20.55\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-29.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"345,-105 318,-87 345,-69 372,-87 345,-105\"/>\n",
"<text text-anchor=\"middle\" x=\"345\" y=\"-83.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M273.39,-87C284.02,-87 297.98,-87 310.68,-87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"317.97,-87 310.97,-90.15 314.47,-87 310.97,-87 310.97,-87 310.97,-87 314.47,-87 310.97,-83.85 317.97,-87 317.97,-87\"/>\n",
"<text text-anchor=\"middle\" x=\"295.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>5&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M331.15,-77.81C320.54,-71.35 305.02,-64.44 291,-68 286.14,-69.23 281.22,-71.3 276.67,-73.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"270.31,-77.13 274.91,-70.99 273.37,-75.44 276.44,-73.74 276.44,-73.74 276.44,-73.74 273.37,-75.44 277.96,-76.5 270.31,-77.13 270.31,-77.13\"/>\n",
"<text text-anchor=\"middle\" x=\"295.5\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.68,-9.71C227.37,-4.67 211.63,0.09 198,-4 188.42,-6.87 178.99,-12.59 171.34,-18.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"165.36,-22.8 168.98,-16.03 168.13,-20.66 170.9,-18.52 170.9,-18.52 170.9,-18.52 168.13,-20.66 172.82,-21.02 165.36,-22.8 165.36,-22.8\"/>\n",
"<text text-anchor=\"middle\" x=\"208.5\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"380pt\" height=\"151pt\"\n",
" viewBox=\"0.00 0.00 380.00 151.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 147)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-147 376,-147 376,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"183\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-60\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-56.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-60C2.79,-60 17.15,-60 30.63,-60\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-60 30.94,-63.15 34.44,-60 30.94,-60 30.94,-60 30.94,-60 34.44,-60 30.94,-56.85 37.94,-60 37.94,-60\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"153,-105 126,-87 153,-69 180,-87 153,-105\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-83.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.55,-64.7C88.25,-68.88 109.95,-75.05 126.8,-79.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"133.7,-81.8 126.1,-82.91 130.33,-80.84 126.96,-79.88 126.96,-79.88 126.96,-79.88 130.33,-80.84 127.82,-76.85 133.7,-81.8 133.7,-81.8\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"153,-51 126,-33 153,-15 180,-33 153,-51\"/>\n",
"<text text-anchor=\"middle\" x=\"153\" y=\"-29.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.55,-55.3C88.25,-51.12 109.95,-44.95 126.8,-40.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"133.7,-38.2 127.82,-43.15 130.33,-39.16 126.96,-40.12 126.96,-40.12 126.96,-40.12 130.33,-39.16 126.1,-37.09 133.7,-38.2 133.7,-38.2\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"255\" cy=\"-87\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-83.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M180.01,-87C195.43,-87 214.83,-87 229.9,-87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.92,-87 229.92,-90.15 233.42,-87 229.92,-87 229.92,-87 229.92,-87 233.42,-87 229.91,-83.85 236.92,-87 236.92,-87\"/>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"255\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"255\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M175.7,-29.75C191.64,-27.35 213.3,-24.1 229.8,-21.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.98,-20.55 230.52,-24.71 233.52,-21.07 230.06,-21.59 230.06,-21.59 230.06,-21.59 233.52,-21.07 229.59,-18.48 236.98,-20.55 236.98,-20.55\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-29.8\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"345,-105 318,-87 345,-69 372,-87 345,-105\"/>\n",
"<text text-anchor=\"middle\" x=\"345\" y=\"-83.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M273.39,-87C284.02,-87 297.98,-87 310.68,-87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"317.97,-87 310.97,-90.15 314.47,-87 310.97,-87 310.97,-87 310.97,-87 314.47,-87 310.97,-83.85 317.97,-87 317.97,-87\"/>\n",
"<text text-anchor=\"middle\" x=\"295.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>5&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M331.15,-77.81C320.54,-71.35 305.02,-64.44 291,-68 286.14,-69.23 281.22,-71.3 276.67,-73.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"270.31,-77.13 274.91,-70.99 273.37,-75.44 276.44,-73.74 276.44,-73.74 276.44,-73.74 273.37,-75.44 277.96,-76.5 270.31,-77.13 270.31,-77.13\"/>\n",
"<text text-anchor=\"middle\" x=\"295.5\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.68,-9.71C227.37,-4.67 211.63,0.09 198,-4 188.42,-6.87 178.99,-12.59 171.34,-18.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"165.36,-22.8 168.98,-16.03 168.13,-20.66 170.9,-18.52 170.9,-18.52 170.9,-18.52 168.13,-20.66 172.82,-21.02 165.36,-22.8 165.36,-22.8\"/>\n",
"<text text-anchor=\"middle\" x=\"208.5\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb3480> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"282pt\" height=\"149pt\"\n",
" viewBox=\"0.00 0.00 282.00 148.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 144.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-144.8 278,-144.8 278,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"134\" y=\"-125.6\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"126\" y=\"-110.6\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-57.8\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-54.1\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-57.8C2.79,-57.8 17.15,-57.8 30.63,-57.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-57.8 30.94,-60.95 34.44,-57.8 30.94,-57.8 30.94,-57.8 30.94,-57.8 34.44,-57.8 30.94,-54.65 37.94,-57.8 37.94,-57.8\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"154,-102.8 127,-84.8 154,-66.8 181,-84.8 154,-102.8\"/>\n",
"<text text-anchor=\"middle\" x=\"154\" y=\"-81.1\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.35,-65.83C78.35,-68.69 85.37,-71.72 92,-73.8 102.08,-76.96 113.4,-79.31 123.53,-81.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"130.65,-82.14 123.25,-84.16 127.2,-81.59 123.74,-81.05 123.74,-81.05 123.74,-81.05 127.2,-81.59 124.23,-77.94 130.65,-82.14 130.65,-82.14\"/>\n",
"<text text-anchor=\"start\" x=\"94.5\" y=\"-81.6\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"154,-37.8 127,-19.8 154,-1.8 181,-19.8 154,-37.8\"/>\n",
"<text text-anchor=\"middle\" x=\"154\" y=\"-16.1\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.17,-46.43C76.42,-41.57 84.21,-36.23 92,-32.8 101.9,-28.44 113.37,-25.5 123.67,-23.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"130.58,-22.33 124.23,-26.64 127.13,-22.93 123.69,-23.54 123.69,-23.54 123.69,-23.54 127.13,-22.93 123.15,-20.43 130.58,-22.33 130.58,-22.33\"/>\n",
"<text text-anchor=\"start\" x=\"92.5\" y=\"-36.6\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M142.06,-74.55C133.71,-67.48 121.55,-58.67 109,-54.8 100.09,-52.05 89.92,-52.01 80.95,-52.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.75,-53.9 80.27,-49.84 77.22,-53.43 80.69,-52.96 80.69,-52.96 80.69,-52.96 77.22,-53.43 81.11,-56.09 73.75,-53.9 73.75,-53.9\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-58.6\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"256\" cy=\"-19.8\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"256\" y=\"-16.1\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M181.01,-19.8C196.43,-19.8 215.83,-19.8 230.9,-19.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"237.92,-19.8 230.92,-22.95 234.42,-19.8 230.92,-19.8 230.92,-19.8 230.92,-19.8 234.42,-19.8 230.91,-16.65 237.92,-19.8 237.92,-19.8\"/>\n",
"<text text-anchor=\"start\" x=\"199\" y=\"-23.6\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M240.28,-10.26C234.25,-6.88 227.04,-3.51 220,-1.8 205.12,1.8 188.48,-2.97 175.76,-8.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.13,-11.61 174.13,-5.79 172.3,-10.13 175.47,-8.64 175.47,-8.64 175.47,-8.64 172.3,-10.13 176.81,-11.5 169.13,-11.61 169.13,-11.61\"/>\n",
"<text text-anchor=\"middle\" x=\"209.5\" y=\"-5.6\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"229pt\" height=\"85pt\"\n",
" viewBox=\"0.00 0.00 228.50 85.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 81)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-81 224.5,-81 224.5,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-35.04C48.32,-44.86 50.45,-54 56,-54 60.17,-54 62.4,-48.86 62.71,-42.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-35.04 65.85,-41.88 62.54,-38.53 62.71,-42.03 62.71,-42.03 62.71,-42.03 62.54,-38.53 59.56,-42.18 62.38,-35.04 62.38,-35.04\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"30,-55.5 30,-74.5 46,-74.5 46,-55.5 30,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"32\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
"<text text-anchor=\"start\" x=\"50\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"61,-55.5 61,-74.5 82,-74.5 82,-55.5 61,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"63\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"192\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.24,-18C97.76,-18 140.02,-18 166.73,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.82,-18 166.82,-21.15 170.32,-18 166.82,-18 166.82,-18 166.82,-18 170.32,-18 166.82,-14.85 173.82,-18 173.82,-18\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"94,-19.5 94,-38.5 114,-38.5 114,-19.5 94,-19.5\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-25.3\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
"<text text-anchor=\"start\" x=\"118\" y=\"-25.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"129,-19.5 129,-38.5 154,-38.5 154,-19.5 129,-19.5\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-25.3\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M180.76,-32.42C176.83,-43.17 180.58,-54 192,-54 200.92,-54 205.16,-47.39 204.72,-39.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"203.24,-32.42 207.78,-38.61 203.97,-35.84 204.7,-39.26 204.7,-39.26 204.7,-39.26 203.97,-35.84 201.61,-39.92 203.24,-32.42 203.24,-32.42\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"166,-55.5 166,-74.5 179,-74.5 179,-55.5 166,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"168\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"183\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"194,-55.5 194,-74.5 219,-74.5 219,-55.5 194,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"143pt\" height=\"352pt\"\n",
" viewBox=\"0.00 0.00 142.70 352.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 348)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-348 138.7,-348 138.7,4 -4,4\"/>\n",
"<!-- 4 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"65,-118 0,-118 0,-82 65,-82 65,-118\"/>\n",
"<text text-anchor=\"middle\" x=\"32.5\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_out</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"62.5\" cy=\"-172\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"62.5\" y=\"-168.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M39.92,-118.3C43.66,-127.03 48.25,-137.76 52.32,-147.25\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"54.01\" cy=\"-151.18\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- L0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>L0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"62,-262 7,-262 7,-226 62,-226 62,-262\"/>\n",
"<text text-anchor=\"middle\" x=\"34.5\" y=\"-240.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_in</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;L0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>6&#45;&gt;L0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.15,-188.88C52.68,-197.54 48.32,-208.45 44.42,-218.2\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"42.9\" cy=\"-221.99\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"90.5,-298 134.89,-332.5 46.11,-332.5 90.5,-298\"/>\n",
"<text text-anchor=\"middle\" x=\"90.5\" y=\"-317.3\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>6&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.58,-189.32C76.1,-210.91 88.19,-250.57 90.21,-287.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"86.72,-288.1 90.5,-298 93.72,-287.91 86.72,-288.1\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"93.5,-46 54.51,-11.5 132.49,-11.5 93.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"93.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M89.77,-43.11C86.03,-62.12 80.05,-92.11 74.5,-118 72.67,-126.56 70.58,-135.88 68.68,-144.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"65.2,-143.78 66.38,-154.31 72.02,-145.34 65.2,-143.78\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"143pt\" height=\"352pt\"\n",
" viewBox=\"0.00 0.00 142.70 352.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 348)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-348 138.7,-348 138.7,4 -4,4\"/>\n",
"<!-- 4 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"65,-118 0,-118 0,-82 65,-82 65,-118\"/>\n",
"<text text-anchor=\"middle\" x=\"32.5\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_out</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"62.5\" cy=\"-172\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"62.5\" y=\"-168.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M39.92,-118.3C43.66,-127.03 48.25,-137.76 52.32,-147.25\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"54.01\" cy=\"-151.18\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- L0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>L0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"62,-262 7,-262 7,-226 62,-226 62,-262\"/>\n",
"<text text-anchor=\"middle\" x=\"34.5\" y=\"-240.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_in</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;L0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>6&#45;&gt;L0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.15,-188.88C52.68,-197.54 48.32,-208.45 44.42,-218.2\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"42.9\" cy=\"-221.99\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"90.5,-298 134.89,-332.5 46.11,-332.5 90.5,-298\"/>\n",
"<text text-anchor=\"middle\" x=\"90.5\" y=\"-317.3\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>6&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.58,-189.32C76.1,-210.91 88.19,-250.57 90.21,-287.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"86.72,-288.1 90.5,-298 93.72,-287.91 86.72,-288.1\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"93.5,-46 54.51,-11.5 132.49,-11.5 93.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"93.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M89.77,-43.11C86.03,-62.12 80.05,-92.11 74.5,-118 72.67,-126.56 70.58,-135.88 68.68,-144.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"65.2,-143.78 66.38,-154.31 72.02,-145.34 65.2,-143.78\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.aig; proxy of <Swig Object of type 'std::shared_ptr< spot::aig > *' at 0x7f654cfb2ca0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"game = spot.ltl_to_game(\"i0 <-> F((Go1 -> Fi1) U o0)\", [\"o0\", \"o1\"])\n",
"spot.solve_game(game)\n",
"spot.highlight_strategy(game)\n",
"display(game)\n",
"mealy = spot.solved_game_to_mealy(game)\n",
"display(mealy)\n",
"spot.simplify_mealy_here(mealy, 2, True)\n",
"display_inline(mealy, spot.unsplit_mealy(mealy))\n",
"aig = spot.mealy_machine_to_aig(mealy, \"isop\")\n",
"display(aig)"
]
},
{
"cell_type": "markdown",
"id": "c564dba3",
"metadata": {},
"source": [
"To force the presence of extra variables in the circuit, they can be passed to `mealy_machine_to_aig()`."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "c31a3b38",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"332pt\" height=\"352pt\"\n",
" viewBox=\"0.00 0.00 332.50 352.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 348)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-348 328.5,-348 328.5,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"65,-118 0,-118 0,-82 65,-82 65,-118\"/>\n",
"<text text-anchor=\"middle\" x=\"32.5\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_out</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"62.5\" cy=\"-172\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"62.5\" y=\"-168.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M39.92,-118.3C43.66,-127.03 48.25,-137.76 52.32,-147.25\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"54.01\" cy=\"-151.18\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- L0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>L0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"67,-262 12,-262 12,-226 67,-226 67,-262\"/>\n",
"<text text-anchor=\"middle\" x=\"39.5\" y=\"-240.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_in</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;L0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>8&#45;&gt;L0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.17,-189.24C54.35,-197.82 50.82,-208.54 47.67,-218.14\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"46.38\" cy=\"-222.08\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"95.5,-298 139.89,-332.5 51.11,-332.5 95.5,-298\"/>\n",
"<text text-anchor=\"middle\" x=\"95.5\" y=\"-317.3\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>8&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M69.5,-188.83C78.39,-210.3 92.87,-250.3 95.18,-287.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"91.69,-288.12 95.5,-298 98.68,-287.89 91.69,-288.12\"/>\n",
"</g>\n",
"<!-- o1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>o1</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"201.5,-298 245.89,-332.5 157.11,-332.5 201.5,-298\"/>\n",
"<text text-anchor=\"middle\" x=\"201.5\" y=\"-317.3\" font-family=\"Times,serif\" font-size=\"14.00\">o1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"93.5,-46 54.51,-11.5 132.49,-11.5 93.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"93.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M89.57,-42.62C84.15,-68.35 74.32,-114.94 68.12,-144.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"64.65,-143.84 66.01,-154.35 71.5,-145.28 64.65,-143.84\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"285.5,-46 246.51,-11.5 324.49,-11.5 285.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"285.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"228.5,-41 174.5,-41 174.5,-5 228.5,-5 228.5,-41\"/>\n",
"<text text-anchor=\"middle\" x=\"201.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">False</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;o1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;o1:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M201.5,-41.31C201.5,-83.11 201.5,-193.09 201.5,-287.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198,-288 201.5,-298 205,-288 198,-288\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"332pt\" height=\"352pt\"\n",
" viewBox=\"0.00 0.00 332.50 352.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 348)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-348 328.5,-348 328.5,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"65,-118 0,-118 0,-82 65,-82 65,-118\"/>\n",
"<text text-anchor=\"middle\" x=\"32.5\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_out</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"62.5\" cy=\"-172\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"62.5\" y=\"-168.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M39.92,-118.3C43.66,-127.03 48.25,-137.76 52.32,-147.25\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"54.01\" cy=\"-151.18\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- L0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>L0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"67,-262 12,-262 12,-226 67,-226 67,-262\"/>\n",
"<text text-anchor=\"middle\" x=\"39.5\" y=\"-240.3\" font-family=\"Times,serif\" font-size=\"14.00\">L0_in</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;L0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>8&#45;&gt;L0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.17,-189.24C54.35,-197.82 50.82,-208.54 47.67,-218.14\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"46.38\" cy=\"-222.08\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"95.5,-298 139.89,-332.5 51.11,-332.5 95.5,-298\"/>\n",
"<text text-anchor=\"middle\" x=\"95.5\" y=\"-317.3\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>8&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M69.5,-188.83C78.39,-210.3 92.87,-250.3 95.18,-287.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"91.69,-288.12 95.5,-298 98.68,-287.89 91.69,-288.12\"/>\n",
"</g>\n",
"<!-- o1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>o1</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"201.5,-298 245.89,-332.5 157.11,-332.5 201.5,-298\"/>\n",
"<text text-anchor=\"middle\" x=\"201.5\" y=\"-317.3\" font-family=\"Times,serif\" font-size=\"14.00\">o1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"93.5,-46 54.51,-11.5 132.49,-11.5 93.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"93.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M89.57,-42.62C84.15,-68.35 74.32,-114.94 68.12,-144.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"64.65,-143.84 66.01,-154.35 71.5,-145.28 64.65,-143.84\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"285.5,-46 246.51,-11.5 324.49,-11.5 285.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"285.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"#ffe6cc\" stroke=\"black\" points=\"228.5,-41 174.5,-41 174.5,-5 228.5,-5 228.5,-41\"/>\n",
"<text text-anchor=\"middle\" x=\"201.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">False</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;o1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;o1:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M201.5,-41.31C201.5,-83.11 201.5,-193.09 201.5,-287.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198,-288 201.5,-298 205,-288 198,-288\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.aig; proxy of <Swig Object of type 'std::shared_ptr< spot::aig > *' at 0x7f654cfb3bd0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(spot.mealy_machine_to_aig(mealy, \"isop\", [\"i0\", \"i1\"], [\"o0\", \"o1\"]))"
]
},
{
"cell_type": "markdown",
"id": "3323fc84",
"metadata": {},
"source": [
"# Combining Mealy machines\n",
"\n",
"It can happen that the complete specification of the controller can be separated into sub-specifications with DISJOINT output propositions, see Finkbeiner et al. Specification Decomposition for Reactive Synthesis.\n",
"This results in multiple Mealy machines which have to be converted into one single AIG circuit.\n",
"\n",
"This can be done in two ways:\n",
"\n",
"1. Using the function `mealy_machines_to_aig()`, which takes a vector of separated Mealy machines as argument.\n",
"2. Combine the mealy machines into one before passing it to `mealy_machine_to aig(). This currently only supports input complete machines of the same type (mealy/separated mealy/split mealy)\n",
"\n",
"Note that the method version is usually preferable as it is faster.\n",
"Also note that in order for this to work, all mealy machines need to share the same `bdd_dict`. This can be ensured by passing a common options structure."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "5d8e4cdb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Solved games:\n"
]
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"286pt\" height=\"174pt\"\n",
" viewBox=\"0.00 0.00 286.00 173.85\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 169.85)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-169.85 282,-169.85 282,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-150.65\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-135.65\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-66.85\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-63.15\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-66.85C2.79,-66.85 17.15,-66.85 30.63,-66.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-66.85 30.94,-70 34.44,-66.85 30.94,-66.85 30.94,-66.85 30.94,-66.85 34.44,-66.85 30.94,-63.7 37.94,-66.85 37.94,-66.85\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"251,-116.85 224,-98.85 251,-80.85 278,-98.85 251,-116.85\"/>\n",
"<text text-anchor=\"middle\" x=\"251\" y=\"-95.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.88,-81.2C73.09,-88.89 81.84,-97.64 92,-101.85 135.6,-119.91 191.93,-112.35 224.21,-105.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"231.1,-103.9 224.96,-108.5 227.69,-104.67 224.27,-105.43 224.27,-105.43 224.27,-105.43 227.69,-104.67 223.58,-102.36 231.1,-103.9 231.1,-103.9\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-116.65\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; !i1) | (i0 &amp; i1)</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"251,-51.85 224,-33.85 251,-15.85 278,-33.85 251,-51.85\"/>\n",
"<text text-anchor=\"middle\" x=\"251\" y=\"-30.15\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.81,-57.65C77.85,-54.33 85.05,-50.89 92,-48.85 134.16,-36.51 185.09,-33.72 217.52,-33.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"224.54,-33.34 217.56,-36.53 221.04,-33.36 217.54,-33.38 217.54,-33.38 217.54,-33.38 221.04,-33.36 217.53,-30.23 224.54,-33.34 224.54,-33.34\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.65\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; i1) | (i0 &amp; !i1)</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M233.99,-91.97C225.76,-88.71 215.5,-85.06 206,-82.85 162.78,-72.83 111.01,-69.06 81.27,-67.66\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"74.21,-67.35 81.34,-64.51 77.72,-67.01 81.22,-67.16 81.2,-67.66 81.18,-68.16 77.68,-68.01 81.06,-70.81 74.21,-67.35 74.21,-67.35\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-86.65\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M235.87,-25.56C227.5,-21.13 216.5,-16.13 206,-13.85 156.48,-3.13 136.62,10.15 92,-13.85 80.15,-20.23 71.64,-32.57 65.99,-43.74\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"62.98,-50.13 63.11,-42.46 64.02,-46.75 65.51,-43.58 65.96,-43.8 66.41,-44.01 64.92,-47.18 68.81,-45.14 62.98,-50.13 62.98,-50.13\"/>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-17.65\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"286pt\" height=\"174pt\"\n",
" viewBox=\"0.00 0.00 286.00 173.85\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 169.85)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-169.85 282,-169.85 282,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-150.65\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-135.65\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-66.85\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-63.15\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-66.85C2.79,-66.85 17.15,-66.85 30.63,-66.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-66.85 30.94,-70 34.44,-66.85 30.94,-66.85 30.94,-66.85 30.94,-66.85 34.44,-66.85 30.94,-63.7 37.94,-66.85 37.94,-66.85\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"251,-116.85 224,-98.85 251,-80.85 278,-98.85 251,-116.85\"/>\n",
"<text text-anchor=\"middle\" x=\"251\" y=\"-95.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.88,-81.2C73.09,-88.89 81.84,-97.64 92,-101.85 135.6,-119.91 191.93,-112.35 224.21,-105.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"231.1,-103.9 224.96,-108.5 227.69,-104.67 224.27,-105.43 224.27,-105.43 224.27,-105.43 227.69,-104.67 223.58,-102.36 231.1,-103.9 231.1,-103.9\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-116.65\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; !i1) | (i0 &amp; i1)</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"251,-51.85 224,-33.85 251,-15.85 278,-33.85 251,-51.85\"/>\n",
"<text text-anchor=\"middle\" x=\"251\" y=\"-30.15\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.81,-57.65C77.85,-54.33 85.05,-50.89 92,-48.85 134.16,-36.51 185.09,-33.72 217.52,-33.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"224.54,-33.34 217.56,-36.53 221.04,-33.36 217.54,-33.38 217.54,-33.38 217.54,-33.38 221.04,-33.36 217.53,-30.23 224.54,-33.34 224.54,-33.34\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.65\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; i1) | (i0 &amp; !i1)</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M233.99,-91.97C225.76,-88.71 215.5,-85.06 206,-82.85 162.78,-72.83 111.01,-69.06 81.27,-67.66\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"74.21,-67.35 81.34,-64.51 77.72,-67.01 81.22,-67.16 81.2,-67.66 81.18,-68.16 77.68,-68.01 81.06,-70.81 74.21,-67.35 74.21,-67.35\"/>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-86.65\" font-family=\"Lato\" font-size=\"14.00\">o1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M235.87,-25.56C227.5,-21.13 216.5,-16.13 206,-13.85 156.48,-3.13 136.62,10.15 92,-13.85 80.15,-20.23 71.64,-32.57 65.99,-43.74\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"62.98,-50.13 63.11,-42.46 64.02,-46.75 65.51,-43.58 65.96,-43.8 66.41,-44.01 64.92,-47.18 68.81,-45.14 62.98,-50.13 62.98,-50.13\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-17.65\" font-family=\"Lato\" font-size=\"14.00\">!o1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reduced strategies:\n"
]
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"126pt\"\n",
" viewBox=\"0.00 0.00 170.00 126.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 122)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-122 166,-122 166,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"81\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"81\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M26.15,-18C27.79,-18 42.15,-18 55.63,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.94,-18 55.94,-21.15 59.44,-18 55.94,-18 55.94,-18 55.94,-18 59.44,-18 55.94,-14.85 62.94,-18 62.94,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M77.76,-35.78C77.21,-45.31 78.29,-54 81,-54 82.99,-54 84.1,-49.32 84.33,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"84.24,-35.78 87.48,-42.74 84.28,-39.28 84.33,-42.78 84.33,-42.78 84.33,-42.78 84.28,-39.28 81.18,-42.82 84.24,-35.78 84.24,-35.78\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-55.5 2,-74.5 120,-74.5 120,-55.5 2,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; !i1) | (i0 &amp; i1)</text>\n",
"<text text-anchor=\"start\" x=\"124\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"135,-55.5 135,-74.5 160,-74.5 160,-55.5 135,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M75.83,-35.41C72.6,-54.42 74.32,-77 81,-77 86.84,-77 88.89,-59.71 87.15,-42.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"86.17,-35.41 90.23,-41.93 86.64,-38.88 87.11,-42.35 87.11,-42.35 87.11,-42.35 86.64,-38.88 83.98,-42.77 86.17,-35.41 86.17,-35.41\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"4,-78.5 4,-97.5 122,-97.5 122,-78.5 4,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"6\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; i1) | (i0 &amp; !i1)</text>\n",
"<text text-anchor=\"start\" x=\"126\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"137,-78.5 137,-97.5 158,-97.5 158,-78.5 137,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"139\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"126pt\"\n",
" viewBox=\"0.00 0.00 170.00 126.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 122)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-122 166,-122 166,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"81\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"81\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M26.15,-18C27.79,-18 42.15,-18 55.63,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.94,-18 55.94,-21.15 59.44,-18 55.94,-18 55.94,-18 55.94,-18 59.44,-18 55.94,-14.85 62.94,-18 62.94,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M77.76,-35.78C77.21,-45.31 78.29,-54 81,-54 82.99,-54 84.1,-49.32 84.33,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"84.24,-35.78 87.48,-42.74 84.28,-39.28 84.33,-42.78 84.33,-42.78 84.33,-42.78 84.28,-39.28 81.18,-42.82 84.24,-35.78 84.24,-35.78\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"4,-55.5 4,-74.5 122,-74.5 122,-55.5 4,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"6\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; !i1) | (i0 &amp; i1)</text>\n",
"<text text-anchor=\"start\" x=\"126\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"137,-55.5 137,-74.5 158,-74.5 158,-55.5 137,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"139\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">o1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M75.83,-35.41C72.6,-54.42 74.32,-77 81,-77 86.84,-77 88.89,-59.71 87.15,-42.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"86.17,-35.41 90.23,-41.93 86.64,-38.88 87.11,-42.35 87.11,-42.35 87.11,-42.35 86.64,-38.88 83.98,-42.77 86.17,-35.41 86.17,-35.41\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-78.5 2,-97.5 120,-97.5 120,-78.5 2,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; i1) | (i0 &amp; !i1)</text>\n",
"<text text-anchor=\"start\" x=\"124\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"135,-78.5 135,-97.5 160,-97.5 160,-78.5 135,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">!o1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Circuit implementing both machines from a vector of machines:\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"202pt\" height=\"289pt\"\n",
" viewBox=\"0.00 0.00 202.39 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.5)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-285.5 198.39,-285.5 198.39,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"70.2\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"70.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"97.2\" cy=\"-176.75\" rx=\"23\" ry=\"23\"/>\n",
"<text text-anchor=\"middle\" x=\"97.2\" y=\"-173.05\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M76.05,-117.22C79.24,-126.05 83.28,-137.22 86.97,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"88.34\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"124.2\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"124.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M118.34,-117.22C115.15,-126.05 111.11,-137.22 107.42,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"106.05\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"44.2,-235.5 88.59,-270 -0.2,-270 44.2,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"44.2\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>10&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M77.46,-188.75C64.51,-197.36 49.25,-210.62 45.22,-227.13\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"44.68\" cy=\"-231.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>o1</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"150.2,-235.5 194.59,-270 105.8,-270 150.2,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"150.2\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>10&#45;&gt;o1:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M116.93,-188.75C129.41,-197.04 144.03,-209.66 148.69,-225.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"145.27,-226.12 150.2,-235.5 152.19,-225.09 145.27,-226.12\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"49.2,-46 10.2,-11.5 88.19,-11.5 49.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"49.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.17,-41.77C56.92,-51.58 60.37,-63.89 63.36,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"64.46\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.91,-35.72C72.59,-47.4 90.74,-65.55 104.61,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.27,-82.02 111.81,-86.62 107.22,-77.07 102.27,-82.02\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"145.2,-46 106.2,-11.5 184.19,-11.5 145.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"145.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.48,-35.72C121.8,-47.4 103.65,-65.55 89.78,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"87.18,-77.07 82.58,-86.62 92.13,-82.02 87.18,-77.07\"/>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.22,-41.77C137.47,-51.58 134.03,-63.89 131.03,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"129.93\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"202pt\" height=\"289pt\"\n",
" viewBox=\"0.00 0.00 202.39 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.5)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-285.5 198.39,-285.5 198.39,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"70.2\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"70.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"97.2\" cy=\"-176.75\" rx=\"23\" ry=\"23\"/>\n",
"<text text-anchor=\"middle\" x=\"97.2\" y=\"-173.05\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M76.05,-117.22C79.24,-126.05 83.28,-137.22 86.97,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"88.34\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"124.2\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"124.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M118.34,-117.22C115.15,-126.05 111.11,-137.22 107.42,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"106.05\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"44.2,-235.5 88.59,-270 -0.2,-270 44.2,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"44.2\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>10&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M77.46,-188.75C64.51,-197.36 49.25,-210.62 45.22,-227.13\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"44.68\" cy=\"-231.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>o1</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"150.2,-235.5 194.59,-270 105.8,-270 150.2,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"150.2\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>10&#45;&gt;o1:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M116.93,-188.75C129.41,-197.04 144.03,-209.66 148.69,-225.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"145.27,-226.12 150.2,-235.5 152.19,-225.09 145.27,-226.12\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"49.2,-46 10.2,-11.5 88.19,-11.5 49.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"49.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.17,-41.77C56.92,-51.58 60.37,-63.89 63.36,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"64.46\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.91,-35.72C72.59,-47.4 90.74,-65.55 104.61,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.27,-82.02 111.81,-86.62 107.22,-77.07 102.27,-82.02\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"145.2,-46 106.2,-11.5 184.19,-11.5 145.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"145.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.48,-35.72C121.8,-47.4 103.65,-65.55 89.78,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"87.18,-77.07 82.58,-86.62 92.13,-82.02 87.18,-77.07\"/>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.22,-41.77C137.47,-51.58 134.03,-63.89 131.03,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"129.93\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.aig; proxy of <Swig Object of type 'std::shared_ptr< spot::aig > *' at 0x7f655e8c5200> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Combining the two machines into one.\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"204pt\" height=\"126pt\"\n",
" viewBox=\"0.00 0.00 204.00 126.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 122)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-122 200,-122 200,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"98\" cy=\"-18\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"88\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0,0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M37.77,-18C39.45,-18 53.29,-18 67.17,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.36,-18 67.36,-21.15 70.86,-18 67.36,-18 67.36,-18 67.36,-18 70.86,-18 67.36,-14.85 74.36,-18 74.36,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M94.38,-36.15C93.83,-45.54 95.03,-54 98,-54 100.18,-54 101.41,-49.44 101.69,-43.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"101.62,-36.15 104.84,-43.12 101.65,-39.65 101.69,-43.15 101.69,-43.15 101.69,-43.15 101.65,-39.65 98.54,-43.18 101.62,-36.15 101.62,-36.15\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-55.5 2,-74.5 120,-74.5 120,-55.5 2,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; !i1) | (i0 &amp; i1)</text>\n",
"<text text-anchor=\"start\" x=\"124\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"135,-55.5 135,-74.5 194,-74.5 194,-55.5 135,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">!o0 &amp; o1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M92.2,-35.71C88.68,-54.65 90.62,-77 98,-77 104.46,-77 106.75,-59.89 104.86,-42.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"103.8,-35.71 107.93,-42.18 104.31,-39.17 104.82,-42.64 104.82,-42.64 104.82,-42.64 104.31,-39.17 101.7,-43.1 103.8,-35.71 103.8,-35.71\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-78.5 2,-97.5 120,-97.5 120,-78.5 2,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; i1) | (i0 &amp; !i1)</text>\n",
"<text text-anchor=\"start\" x=\"124\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"135,-78.5 135,-97.5 194,-97.5 194,-78.5 135,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">o0 &amp; !o1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"204pt\" height=\"126pt\"\n",
" viewBox=\"0.00 0.00 204.00 126.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 122)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-122 200,-122 200,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"98\" cy=\"-18\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"88\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0,0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M37.77,-18C39.45,-18 53.29,-18 67.17,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.36,-18 67.36,-21.15 70.86,-18 67.36,-18 67.36,-18 67.36,-18 70.86,-18 67.36,-14.85 74.36,-18 74.36,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M94.38,-36.15C93.83,-45.54 95.03,-54 98,-54 100.18,-54 101.41,-49.44 101.69,-43.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"101.62,-36.15 104.84,-43.12 101.65,-39.65 101.69,-43.15 101.69,-43.15 101.69,-43.15 101.65,-39.65 98.54,-43.18 101.62,-36.15 101.62,-36.15\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-55.5 2,-74.5 120,-74.5 120,-55.5 2,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; !i1) | (i0 &amp; i1)</text>\n",
"<text text-anchor=\"start\" x=\"124\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"135,-55.5 135,-74.5 194,-74.5 194,-55.5 135,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">!o0 &amp; o1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M92.2,-35.71C88.68,-54.65 90.62,-77 98,-77 104.46,-77 106.75,-59.89 104.86,-42.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"103.8,-35.71 107.93,-42.18 104.31,-39.17 104.82,-42.64 104.82,-42.64 104.82,-42.64 104.31,-39.17 101.7,-43.1 103.8,-35.71 103.8,-35.71\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-78.5 2,-97.5 120,-97.5 120,-78.5 2,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; i1) | (i0 &amp; !i1)</text>\n",
"<text text-anchor=\"start\" x=\"124\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"135,-78.5 135,-97.5 194,-97.5 194,-78.5 135,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">o0 &amp; !o1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfb2ca0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"202pt\" height=\"289pt\"\n",
" viewBox=\"0.00 0.00 202.39 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.5)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-285.5 198.39,-285.5 198.39,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"70.2\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"70.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"97.2\" cy=\"-176.75\" rx=\"23\" ry=\"23\"/>\n",
"<text text-anchor=\"middle\" x=\"97.2\" y=\"-173.05\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M76.05,-117.22C79.24,-126.05 83.28,-137.22 86.97,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"88.34\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"124.2\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"124.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M118.34,-117.22C115.15,-126.05 111.11,-137.22 107.42,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"106.05\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"44.2,-235.5 88.59,-270 -0.2,-270 44.2,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"44.2\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>10&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M77.46,-188.75C64.51,-197.36 49.25,-210.62 45.22,-227.13\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"44.68\" cy=\"-231.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>o1</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"150.2,-235.5 194.59,-270 105.8,-270 150.2,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"150.2\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>10&#45;&gt;o1:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M116.93,-188.75C129.41,-197.04 144.03,-209.66 148.69,-225.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"145.27,-226.12 150.2,-235.5 152.19,-225.09 145.27,-226.12\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"49.2,-46 10.2,-11.5 88.19,-11.5 49.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"49.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.17,-41.77C56.92,-51.58 60.37,-63.89 63.36,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"64.46\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.91,-35.72C72.59,-47.4 90.74,-65.55 104.61,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.27,-82.02 111.81,-86.62 107.22,-77.07 102.27,-82.02\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"145.2,-46 106.2,-11.5 184.19,-11.5 145.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"145.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.48,-35.72C121.8,-47.4 103.65,-65.55 89.78,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"87.18,-77.07 82.58,-86.62 92.13,-82.02 87.18,-77.07\"/>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.22,-41.77C137.47,-51.58 134.03,-63.89 131.03,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"129.93\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"202pt\" height=\"289pt\"\n",
" viewBox=\"0.00 0.00 202.39 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.5)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-285.5 198.39,-285.5 198.39,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"70.2\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"70.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"97.2\" cy=\"-176.75\" rx=\"23\" ry=\"23\"/>\n",
"<text text-anchor=\"middle\" x=\"97.2\" y=\"-173.05\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M76.05,-117.22C79.24,-126.05 83.28,-137.22 86.97,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"88.34\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"124.2\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"124.2\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M118.34,-117.22C115.15,-126.05 111.11,-137.22 107.42,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"106.05\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"44.2,-235.5 88.59,-270 -0.2,-270 44.2,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"44.2\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>10&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M77.46,-188.75C64.51,-197.36 49.25,-210.62 45.22,-227.13\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"44.68\" cy=\"-231.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>o1</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"150.2,-235.5 194.59,-270 105.8,-270 150.2,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"150.2\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>10&#45;&gt;o1:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M116.93,-188.75C129.41,-197.04 144.03,-209.66 148.69,-225.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"145.27,-226.12 150.2,-235.5 152.19,-225.09 145.27,-226.12\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"49.2,-46 10.2,-11.5 88.19,-11.5 49.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"49.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.17,-41.77C56.92,-51.58 60.37,-63.89 63.36,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"64.46\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.91,-35.72C72.59,-47.4 90.74,-65.55 104.61,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.27,-82.02 111.81,-86.62 107.22,-77.07 102.27,-82.02\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"145.2,-46 106.2,-11.5 184.19,-11.5 145.2,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"145.2\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.48,-35.72C121.8,-47.4 103.65,-65.55 89.78,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"87.18,-77.07 82.58,-86.62 92.13,-82.02 87.18,-77.07\"/>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.22,-41.77C137.47,-51.58 134.03,-63.89 131.03,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"129.93\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.aig; proxy of <Swig Object of type 'std::shared_ptr< spot::aig > *' at 0x7f654cfb2700> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g1 = spot.ltl_to_game(\"G((i0 xor i1) <-> o0)\", [\"o0\"], si)\n",
"g2 = spot.ltl_to_game(\"G((i0 xor i1) <-> (!o1))\", [\"o1\"], si)\n",
"spot.solve_game(g1)\n",
"spot.highlight_strategy(g1)\n",
"spot.solve_game(g2)\n",
"spot.highlight_strategy(g2)\n",
"print(\"Solved games:\")\n",
"display_inline(g1, g2)\n",
"strat1 = spot.solved_game_to_separated_mealy(g1)\n",
"strat2 = spot.solved_game_to_separated_mealy(g2)\n",
"print(\"Reduced strategies:\")\n",
"display_inline(strat1, strat2)\n",
"#Method 1\n",
"print(\"Circuit implementing both machines from a vector of machines:\")\n",
"aig = spot.mealy_machines_to_aig([strat1, strat2], \"isop\")\n",
"display(aig)\n",
"#Method 2\n",
"strat_comb = spot.mealy_product(strat1, strat2)\n",
"print(\"Combining the two machines into one.\")\n",
"display(strat_comb)\n",
"aig_comb = spot.mealy_machine_to_aig(strat_comb, \"isop\")\n",
"display(aig_comb)"
]
},
{
"cell_type": "markdown",
"id": "c7a1986f",
"metadata": {},
"source": [
"# Reading an AIGER-file\n",
"\n",
"Note that we do not support the full [AIGER syntax](http://fmv.jku.at/aiger/FORMAT.aiger). Our restrictions corresponds to the conventions used in the type of AIGER file we output:\n",
"- Input variables start at index 2 and are consecutively numbered.\n",
"- Latch variables start at index (1 + #inputs)×2 and are consecutively numbered.\n",
"- If some inputs or outputs are named in comments, all of them have to be named.\n",
"- Gate number $n$ can only connect to latches, inputs, or previously defined gates ($<n$)."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "a10d7e3b",
"metadata": {},
"outputs": [],
"source": [
"aag_txt = \"\"\"aag 5 2 0 2 3\n",
"2\n",
"4\n",
"10\n",
"6\n",
"6 2 4\n",
"8 3 5\n",
"10 7 9\n",
"i0 a\n",
"i1 b\n",
"o0 c\n",
"o1 d\"\"\""
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "2c40e19b",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"161pt\" height=\"289pt\"\n",
" viewBox=\"0.00 0.00 161.29 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.5)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-285.5 157.29,-285.5 157.29,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"108.5\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"108.5\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"47.5\" cy=\"-176.75\" rx=\"23\" ry=\"23\"/>\n",
"<text text-anchor=\"middle\" x=\"47.5\" y=\"-173.05\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M97.59,-114.36C89.01,-124.88 76.85,-139.79 66.65,-152.28\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"64.06\" cy=\"-155.45\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>o1</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"119.5,-235.5 153.09,-270 85.9,-270 119.5,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;o1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>6&#45;&gt;o1:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M110.78,-117.95C113.75,-141.43 118.65,-185.48 119.4,-225.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"115.9,-225.53 119.5,-235.5 122.9,-225.46 115.9,-225.53\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"47.5\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"47.5\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M47.5,-118.34C47.5,-126.54 47.5,-136.58 47.5,-145.95\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"47.5\" cy=\"-149.95\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"36.5,-235.5 67.89,-270 5.1,-270 36.5,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"36.5\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>10&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.48,-198.96C39.62,-206.83 37.83,-216.09 36.99,-225.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"33.48,-225.34 36.5,-235.5 40.48,-225.68 33.48,-225.34\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"32.5,-46 0,-11.5 64.99,-11.5 32.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"32.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M43.39,-34.75C55.16,-46.37 74.18,-65.14 88.63,-79.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"86.54,-82.25 96.11,-86.78 91.46,-77.27 86.54,-82.25\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M36.13,-42.16C38.06,-51.8 40.46,-63.8 42.55,-74.28\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"43.37\" cy=\"-78.37\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"116.5,-46 82.9,-11.5 150.09,-11.5 116.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.35,-44.1C113.45,-52.58 112.38,-62.59 111.41,-71.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"107.9,-71.58 110.32,-81.9 114.86,-72.33 107.9,-71.58\"/>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M106.02,-35.39C95.1,-47.26 77.81,-66.06 64.84,-80.14\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"61.94\" cy=\"-83.3\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"161pt\" height=\"289pt\"\n",
" viewBox=\"0.00 0.00 161.29 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.5)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-285.5 157.29,-285.5 157.29,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"108.5\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"108.5\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"47.5\" cy=\"-176.75\" rx=\"23\" ry=\"23\"/>\n",
"<text text-anchor=\"middle\" x=\"47.5\" y=\"-173.05\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M97.59,-114.36C89.01,-124.88 76.85,-139.79 66.65,-152.28\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"64.06\" cy=\"-155.45\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>o1</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"119.5,-235.5 153.09,-270 85.9,-270 119.5,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;o1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>6&#45;&gt;o1:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M110.78,-117.95C113.75,-141.43 118.65,-185.48 119.4,-225.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"115.9,-225.53 119.5,-235.5 122.9,-225.46 115.9,-225.53\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"47.5\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"47.5\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M47.5,-118.34C47.5,-126.54 47.5,-136.58 47.5,-145.95\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"47.5\" cy=\"-149.95\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"36.5,-235.5 67.89,-270 5.1,-270 36.5,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"36.5\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>10&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.48,-198.96C39.62,-206.83 37.83,-216.09 36.99,-225.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"33.48,-225.34 36.5,-235.5 40.48,-225.68 33.48,-225.34\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"32.5,-46 0,-11.5 64.99,-11.5 32.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"32.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M43.39,-34.75C55.16,-46.37 74.18,-65.14 88.63,-79.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"86.54,-82.25 96.11,-86.78 91.46,-77.27 86.54,-82.25\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M36.13,-42.16C38.06,-51.8 40.46,-63.8 42.55,-74.28\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"43.37\" cy=\"-78.37\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"116.5,-46 82.9,-11.5 150.09,-11.5 116.5,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.35,-44.1C113.45,-52.58 112.38,-62.59 111.41,-71.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"107.9,-71.58 110.32,-81.9 114.86,-72.33 107.9,-71.58\"/>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M106.02,-35.39C95.1,-47.26 77.81,-66.06 64.84,-80.14\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"61.94\" cy=\"-83.3\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.aig; proxy of <Swig Object of type 'std::shared_ptr< spot::aig > *' at 0x7f654cfc9230> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"this_aig = spot.aiger_circuit(aag_txt)\n",
"display(this_aig)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "0ad6c566",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"aag 5 2 0 2 3\n",
"2\n",
"4\n",
"10\n",
"6\n",
"6 2 4\n",
"8 3 5\n",
"10 7 9\n",
"i0 a\n",
"i1 b\n",
"o0 c\n",
"o1 d\n"
]
}
],
"source": [
"print(this_aig.to_str())"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "2e1996c1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"((2, 4), (3, 5), (7, 9))\n"
]
}
],
"source": [
"print(this_aig.gates())"
]
},
{
"cell_type": "markdown",
"id": "41a8e042",
"metadata": {},
"source": [
"An AIG circuit can be transformed into a monitor/Mealy machine. This can be used for instance to check that it does not intersect the negation of the specification."
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "7399ea38",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"172pt\" height=\"127pt\"\n",
" viewBox=\"0.00 0.00 172.00 127.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 123)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-123 168,-123 168,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"82\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"82\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M12.55,-18C13.78,-18 37.57,-18 56.76,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"63.83,-18 56.83,-21.15 60.33,-18 56.83,-18 56.83,-18 56.83,-18 60.33,-18 56.83,-14.85 63.83,-18 63.83,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.37,-33.92C71.11,-44.15 73.99,-54 82,-54 88.13,-54 91.25,-48.23 91.37,-40.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"90.63,-33.92 94.5,-40.55 91,-37.4 91.37,-40.88 91.37,-40.88 91.37,-40.88 91,-37.4 88.23,-41.21 90.63,-33.92 90.63,-33.92\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-97.5 2,-116.5 103,-116.5 103,-97.5 2,-97.5\"/>\n",
"<text text-anchor=\"start\" x=\"61\" y=\"-103.3\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-103.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"118,-97.5 118,-116.5 162,-116.5 162,-97.5 118,-97.5\"/>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-103.3\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; !d</text>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-76.5 2,-95.5 103,-95.5 103,-76.5 2,-76.5\"/>\n",
"<text text-anchor=\"start\" x=\"69\" y=\"-82.3\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-82.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"118,-76.5 118,-95.5 162,-95.5 162,-76.5 118,-76.5\"/>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-82.3\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; d</text>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-55.5 2,-74.5 103,-74.5 103,-55.5 2,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">(!a &amp; b) | (a &amp; !b)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"118,-55.5 118,-74.5 162,-74.5 162,-55.5 118,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">c &amp; !d</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"172pt\" height=\"127pt\"\n",
" viewBox=\"0.00 0.00 172.00 127.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 123)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-123 168,-123 168,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"82\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"82\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M12.55,-18C13.78,-18 37.57,-18 56.76,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"63.83,-18 56.83,-21.15 60.33,-18 56.83,-18 56.83,-18 56.83,-18 60.33,-18 56.83,-14.85 63.83,-18 63.83,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.37,-33.92C71.11,-44.15 73.99,-54 82,-54 88.13,-54 91.25,-48.23 91.37,-40.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"90.63,-33.92 94.5,-40.55 91,-37.4 91.37,-40.88 91.37,-40.88 91.37,-40.88 91,-37.4 88.23,-41.21 90.63,-33.92 90.63,-33.92\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-97.5 2,-116.5 103,-116.5 103,-97.5 2,-97.5\"/>\n",
"<text text-anchor=\"start\" x=\"61\" y=\"-103.3\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-103.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"118,-97.5 118,-116.5 162,-116.5 162,-97.5 118,-97.5\"/>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-103.3\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; !d</text>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-76.5 2,-95.5 103,-95.5 103,-76.5 2,-76.5\"/>\n",
"<text text-anchor=\"start\" x=\"69\" y=\"-82.3\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-82.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"118,-76.5 118,-95.5 162,-95.5 162,-76.5 118,-76.5\"/>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-82.3\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; d</text>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-55.5 2,-74.5 103,-74.5 103,-55.5 2,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">(!a &amp; b) | (a &amp; !b)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"118,-55.5 118,-74.5 162,-74.5 162,-55.5 118,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">c &amp; !d</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f654cfcb720> >"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"this_aig.as_automaton()"
]
},
{
"cell_type": "markdown",
"id": "7ac06afc",
"metadata": {},
"source": [
"Note that the generation of aiger circuits from Mealy machines is flexible and accepts separated Mealy machines\n",
"as well as split Mealy machines."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "bac68923",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"126pt\"\n",
" viewBox=\"0.00 0.00 170.00 126.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 122)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-122 166,-122 166,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"81\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"81\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M26.15,-18C27.79,-18 42.15,-18 55.63,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.94,-18 55.94,-21.15 59.44,-18 55.94,-18 55.94,-18 55.94,-18 59.44,-18 55.94,-14.85 62.94,-18 62.94,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M77.76,-35.78C77.21,-45.31 78.29,-54 81,-54 82.99,-54 84.1,-49.32 84.33,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"84.24,-35.78 87.48,-42.74 84.28,-39.28 84.33,-42.78 84.33,-42.78 84.33,-42.78 84.28,-39.28 81.18,-42.82 84.24,-35.78 84.24,-35.78\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"2,-55.5 2,-74.5 120,-74.5 120,-55.5 2,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"4\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; !i1) | (i0 &amp; i1)</text>\n",
"<text text-anchor=\"start\" x=\"124\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"135,-55.5 135,-74.5 160,-74.5 160,-55.5 135,-55.5\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M75.83,-35.41C72.6,-54.42 74.32,-77 81,-77 86.84,-77 88.89,-59.71 87.15,-42.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"86.17,-35.41 90.23,-41.93 86.64,-38.88 87.11,-42.35 87.11,-42.35 87.11,-42.35 86.64,-38.88 83.98,-42.77 86.17,-35.41 86.17,-35.41\"/>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"transparent\" points=\"4,-78.5 4,-97.5 122,-97.5 122,-78.5 4,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"6\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; i1) | (i0 &amp; !i1)</text>\n",
"<text text-anchor=\"start\" x=\"126\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">/</text>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"transparent\" points=\"137,-78.5 137,-97.5 158,-97.5 158,-78.5 137,-78.5\"/>\n",
"<text text-anchor=\"start\" x=\"139\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"286pt\" height=\"174pt\"\n",
" viewBox=\"0.00 0.00 286.00 173.85\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 169.85)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-169.85 282,-169.85 282,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-150.65\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-135.65\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-66.85\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-63.15\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-66.85C2.79,-66.85 17.15,-66.85 30.63,-66.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-66.85 30.94,-70 34.44,-66.85 30.94,-66.85 30.94,-66.85 30.94,-66.85 34.44,-66.85 30.94,-63.7 37.94,-66.85 37.94,-66.85\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"251,-116.85 224,-98.85 251,-80.85 278,-98.85 251,-116.85\"/>\n",
"<text text-anchor=\"middle\" x=\"251\" y=\"-95.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.88,-81.2C73.09,-88.89 81.84,-97.64 92,-101.85 135.6,-119.91 191.93,-112.35 224.21,-105.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"231.1,-103.9 224.96,-108.5 227.69,-104.67 224.27,-105.43 224.27,-105.43 224.27,-105.43 227.69,-104.67 223.58,-102.36 231.1,-103.9 231.1,-103.9\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-116.65\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; !i1) | (i0 &amp; i1)</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"251,-51.85 224,-33.85 251,-15.85 278,-33.85 251,-51.85\"/>\n",
"<text text-anchor=\"middle\" x=\"251\" y=\"-30.15\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.81,-57.65C77.85,-54.33 85.05,-50.89 92,-48.85 134.16,-36.51 185.09,-33.72 217.52,-33.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"224.54,-33.34 217.56,-36.53 221.04,-33.36 217.54,-33.38 217.54,-33.38 217.54,-33.38 221.04,-33.36 217.53,-30.23 224.54,-33.34 224.54,-33.34\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.65\" font-family=\"Lato\" font-size=\"14.00\">(!i0 &amp; i1) | (i0 &amp; !i1)</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M233.99,-91.97C225.76,-88.71 215.5,-85.06 206,-82.85 162.78,-72.83 111.01,-69.06 81.27,-67.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.21,-67.35 81.34,-64.51 77.7,-67.51 81.2,-67.66 81.2,-67.66 81.2,-67.66 77.7,-67.51 81.06,-70.81 74.21,-67.35 74.21,-67.35\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-86.65\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M235.87,-25.56C227.5,-21.13 216.5,-16.13 206,-13.85 156.48,-3.13 136.62,10.15 92,-13.85 80.15,-20.23 71.64,-32.57 65.99,-43.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.98,-50.13 63.11,-42.46 64.47,-46.96 65.96,-43.8 65.96,-43.8 65.96,-43.8 64.47,-46.96 68.81,-45.14 62.98,-50.13 62.98,-50.13\"/>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-17.65\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"('o0',)\n",
"('o0',)\n"
]
}
],
"source": [
"strat1_s = spot.split_separated_mealy(strat1)\n",
"display_inline(strat1, strat1_s)\n",
"print(spot.get_synthesis_output_aps(strat1))\n",
"print(spot.get_synthesis_output_aps(strat1_s))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "03ceb2a8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"182pt\" height=\"289pt\"\n",
" viewBox=\"0.00 0.00 181.99 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.5)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-285.5 177.99,-285.5 177.99,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"60\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"60\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"87\" cy=\"-176.75\" rx=\"23\" ry=\"23\"/>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-173.05\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.86,-117.22C69.04,-126.05 73.08,-137.22 76.77,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"78.15\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"114\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"114\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M108.14,-117.22C104.95,-126.05 100.91,-137.22 97.22,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"95.85\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"87,-235.5 131.39,-270 42.6,-270 87,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>10&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M87,-199.69C87,-208.03 87,-217.81 87,-227.29\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"87\" cy=\"-231.5\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"39,-46 0,-11.5 77.99,-11.5 39,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"39\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M43.97,-41.77C46.72,-51.58 50.17,-63.89 53.16,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"54.26\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.72,-35.72C62.4,-47.4 80.54,-65.55 94.41,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"92.07,-82.02 101.61,-86.62 97.02,-77.07 92.07,-82.02\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"135,-46 96,-11.5 173.99,-11.5 135,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"135\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M123.28,-35.72C111.6,-47.4 93.45,-65.55 79.58,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"76.98,-77.07 72.38,-86.62 81.93,-82.02 76.98,-77.07\"/>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M130.02,-41.77C127.27,-51.58 123.83,-63.89 120.83,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"119.73\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"182pt\" height=\"289pt\"\n",
" viewBox=\"0.00 0.00 181.99 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.5)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-285.5 177.99,-285.5 177.99,4 -4,4\"/>\n",
"<!-- 6 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"60\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"60\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"87\" cy=\"-176.75\" rx=\"23\" ry=\"23\"/>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-173.05\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.86,-117.22C69.04,-126.05 73.08,-137.22 76.77,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"78.15\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"114\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"114\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M108.14,-117.22C104.95,-126.05 100.91,-137.22 97.22,-147.44\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"95.85\" cy=\"-151.24\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- o0 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>o0</title>\n",
"<polygon fill=\"#ffe5f1\" stroke=\"black\" points=\"87,-235.5 131.39,-270 42.6,-270 87,-235.5\"/>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-254.8\" font-family=\"Times,serif\" font-size=\"14.00\">o0</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;o0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>10&#45;&gt;o0:s</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M87,-199.69C87,-208.03 87,-217.81 87,-227.29\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"87\" cy=\"-231.5\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"39,-46 0,-11.5 77.99,-11.5 39,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"39\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M43.97,-41.77C46.72,-51.58 50.17,-63.89 53.16,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"54.26\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.72,-35.72C62.4,-47.4 80.54,-65.55 94.41,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"92.07,-82.02 101.61,-86.62 97.02,-77.07 92.07,-82.02\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"#e9f4fb\" stroke=\"black\" points=\"135,-46 96,-11.5 173.99,-11.5 135,-46\"/>\n",
"<text text-anchor=\"middle\" x=\"135\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\">i1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M123.28,-35.72C111.6,-47.4 93.45,-65.55 79.58,-79.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"76.98,-77.07 72.38,-86.62 81.93,-82.02 76.98,-77.07\"/>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M130.02,-41.77C127.27,-51.58 123.83,-63.89 120.83,-74.59\"/>\n",
"<ellipse fill=\"black\" stroke=\"black\" cx=\"119.73\" cy=\"-78.53\" rx=\"4\" ry=\"4\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display_inline(spot.mealy_machine_to_aig(strat1, \"isop\"), spot.mealy_machine_to_aig(strat1_s, \"isop\"))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}