* spot/twaalgos/aiger.hh, spot/twaalgos/aiger.cc: Fix prototypes, as well as several error messages. * python/spot/impl.i: Implement an ad-hoc conversion for std::vector<const_twa_graph_ptr>. * tests/python/synthesis.ipynb: Use it to simplify the example. Adjust some comments.
4087 lines
290 KiB
Text
4087 lines
290 KiB
Text
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "452c00ae",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import spot\n",
|
||
"spot.setup()\n",
|
||
"from spot.jupyter import display_inline"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7545ab74",
|
||
"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 represent 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 controlable, 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 winnning strategy\n",
|
||
"- Building the circuit from the strategy\n",
|
||
"\n",
|
||
"Each of these steps is parametrized 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 controlable 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": "fb49e681",
|
||
"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=\"535pt\" height=\"360pt\"\n",
|
||
" viewBox=\"0.00 0.00 535.26 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.36101083032490977 0.36101083032490977) rotate(0) translate(4 993.33)\">\n",
|
||
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-993.33 1478.88,-993.33 1478.88,4 -4,4\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"625.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"646.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"<text text-anchor=\"start\" x=\"662.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"704.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||
"<text text-anchor=\"start\" x=\"720.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"766.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"<text text-anchor=\"start\" x=\"782.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"820.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||
"<text text-anchor=\"start\" x=\"836.94\" y=\"-975.13\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
|
||
"<text text-anchor=\"start\" x=\"681.94\" y=\"-961.13\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n",
|
||
"<!-- I -->\n",
|
||
"<!-- 9 -->\n",
|
||
"<g id=\"node2\" class=\"node\">\n",
|
||
"<title>9</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-799.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"56\" y=\"-795.63\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
|
||
"</g>\n",
|
||
"<!-- I->9 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->9</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-799.33C2.79,-799.33 17.15,-799.33 30.63,-799.33\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-799.33 30.94,-802.48 34.44,-799.33 30.94,-799.33 30.94,-799.33 30.94,-799.33 34.44,-799.33 30.94,-796.18 37.94,-799.33 37.94,-799.33\"/>\n",
|
||
"</g>\n",
|
||
"<!-- 25 -->\n",
|
||
"<g id=\"node26\" class=\"node\">\n",
|
||
"<title>25</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"188.33,-727.33 158.17,-709.33 188.33,-691.33 218.5,-709.33 188.33,-727.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"188.33\" y=\"-705.63\" font-family=\"Lato\" font-size=\"14.00\">25</text>\n",
|
||
"</g>\n",
|
||
"<!-- 9->25 -->\n",
|
||
"<g id=\"edge28\" class=\"edge\">\n",
|
||
"<title>9->25</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M71.2,-789.53C94.53,-773.42 141.04,-741.3 167.57,-722.98\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"173.55,-718.85 169.58,-725.42 170.67,-720.84 167.79,-722.83 167.79,-722.83 167.79,-722.83 170.67,-720.84 166,-720.24 173.55,-718.85 173.55,-718.85\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-791.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"108\" y=\"-776.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 26 -->\n",
|
||
"<g id=\"node27\" class=\"node\">\n",
|
||
"<title>26</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"267,-882.33 236.83,-864.33 267,-846.33 297.16,-864.33 267,-882.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"267\" y=\"-860.63\" font-family=\"Lato\" font-size=\"14.00\">26</text>\n",
|
||
"</g>\n",
|
||
"<!-- 9->26 -->\n",
|
||
"<g id=\"edge29\" class=\"edge\">\n",
|
||
"<title>9->26</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M73.4,-804.43C109.5,-815.66 196.08,-842.59 239.8,-856.18\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"246.69,-858.33 239.07,-859.25 243.34,-857.29 240,-856.25 240,-856.25 240,-856.25 243.34,-857.29 240.94,-853.24 246.69,-858.33 246.69,-858.33\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"94\" y=\"-843.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"108\" y=\"-828.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 27 -->\n",
|
||
"<g id=\"node28\" class=\"node\">\n",
|
||
"<title>27</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"399.66,-542.33 369.5,-524.33 399.66,-506.33 429.83,-524.33 399.66,-542.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"399.66\" y=\"-520.63\" font-family=\"Lato\" font-size=\"14.00\">27</text>\n",
|
||
"</g>\n",
|
||
"<!-- 9->27 -->\n",
|
||
"<g id=\"edge30\" class=\"edge\">\n",
|
||
"<title>9->27</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M64.52,-783.13C78.91,-753.63 112.97,-690.67 158,-652.33 226.89,-593.68 327.11,-551.24 373.44,-533.51\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"380.14,-530.98 374.71,-536.4 376.86,-532.22 373.59,-533.46 373.59,-533.46 373.59,-533.46 376.86,-532.22 372.48,-530.51 380.14,-530.98 380.14,-530.98\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"166.33\" y=\"-671.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"180.33\" y=\"-656.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 28 -->\n",
|
||
"<g id=\"node29\" class=\"node\">\n",
|
||
"<title>28</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"556.99,-949.33 526.82,-931.33 556.99,-913.33 587.16,-931.33 556.99,-949.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"556.99\" y=\"-927.63\" font-family=\"Lato\" font-size=\"14.00\">28</text>\n",
|
||
"</g>\n",
|
||
"<!-- 9->28 -->\n",
|
||
"<g id=\"edge31\" class=\"edge\">\n",
|
||
"<title>9->28</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M63.96,-815.52C70.02,-828.24 79.74,-845.84 92,-858.33 126.9,-893.89 137.5,-917.33 187.33,-917.33 187.33,-917.33 187.33,-917.33 400.66,-917.33 444.03,-917.33 493.93,-922.81 525.21,-926.91\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"532.37,-927.87 525.01,-930.06 528.9,-927.41 525.43,-926.94 525.43,-926.94 525.43,-926.94 528.9,-927.41 525.84,-923.82 532.37,-927.87 532.37,-927.87\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"247\" y=\"-936.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"259\" y=\"-921.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0 -->\n",
|
||
"<g id=\"node3\" class=\"node\">\n",
|
||
"<title>0</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-757.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-753.63\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
||
"</g>\n",
|
||
"<!-- 10 -->\n",
|
||
"<g id=\"node4\" class=\"node\">\n",
|
||
"<title>10</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-598.33 1200.82,-580.33 1230.98,-562.33 1261.15,-580.33 1230.98,-598.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-576.63\" font-family=\"Lato\" font-size=\"14.00\">10</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->10 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->10</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1111.68,-744.74C1128.54,-726.78 1159.7,-692.42 1182.65,-660.33 1196.74,-640.63 1210.58,-616.54 1219.62,-599.97\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1222.95,-593.8 1222.4,-601.45 1221.29,-596.88 1219.62,-599.96 1219.62,-599.96 1219.62,-599.96 1221.29,-596.88 1216.85,-598.46 1222.95,-593.8 1222.95,-593.8\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-737.13\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-722.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 11 -->\n",
|
||
"<g id=\"node5\" class=\"node\">\n",
|
||
"<title>11</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-775.33 1200.82,-757.33 1230.98,-739.33 1261.15,-757.33 1230.98,-775.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-753.63\" font-family=\"Lato\" font-size=\"14.00\">11</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->11 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->11</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1116.69,-757.33C1136.09,-757.33 1168.36,-757.33 1193.51,-757.33\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1200.73,-757.33 1193.73,-760.48 1197.23,-757.33 1193.73,-757.33 1193.73,-757.33 1193.73,-757.33 1197.23,-757.33 1193.73,-754.18 1200.73,-757.33 1200.73,-757.33\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-776.13\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-761.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1 -->\n",
|
||
"<g id=\"node6\" class=\"node\">\n",
|
||
"<title>1</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1335.76\" cy=\"-626.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1335.76\" y=\"-622.63\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 10->1 -->\n",
|
||
"<g id=\"edge32\" class=\"edge\">\n",
|
||
"<title>10->1</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1255.36,-576.67C1268.05,-575.74 1283.69,-576.36 1296.32,-582.33 1306.6,-587.2 1315.25,-596.24 1321.72,-604.87\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1325.85,-610.72 1319.24,-606.82 1323.84,-607.86 1321.82,-605 1321.82,-605 1321.82,-605 1323.84,-607.86 1324.39,-603.18 1325.85,-610.72 1325.85,-610.72\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1279.32\" y=\"-601.13\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1279.82\" y=\"-586.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 11->0 -->\n",
|
||
"<g id=\"edge33\" class=\"edge\">\n",
|
||
"<title>11->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1218.14,-767.93C1209.12,-775.24 1196.02,-784.34 1182.65,-788.33 1162.21,-794.43 1154.6,-795.9 1134.65,-788.33 1127.71,-785.7 1121.25,-780.99 1115.83,-776.02\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1110.77,-771.03 1117.97,-773.7 1113.26,-773.49 1115.76,-775.95 1115.76,-775.95 1115.76,-775.95 1113.26,-773.49 1113.55,-778.19 1110.77,-771.03 1110.77,-771.03\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.15\" y=\"-812.13\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-797.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 12 -->\n",
|
||
"<g id=\"node7\" class=\"node\">\n",
|
||
"<title>12</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1444.54,-697.33 1414.38,-679.33 1444.54,-661.33 1474.71,-679.33 1444.54,-697.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1444.54\" y=\"-675.63\" font-family=\"Lato\" font-size=\"14.00\">12</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1->12 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>1->12</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1349.43,-638.53C1356.54,-644.85 1365.86,-652.28 1375.21,-657.33 1387.7,-664.08 1402.61,-669.17 1415.3,-672.76\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1422.1,-674.59 1414.52,-675.81 1418.72,-673.68 1415.34,-672.77 1415.34,-672.77 1415.34,-672.77 1418.72,-673.68 1416.16,-669.72 1422.1,-674.59 1422.1,-674.59\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1377.71\" y=\"-684.13\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1377.71\" y=\"-669.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 13 -->\n",
|
||
"<g id=\"node8\" class=\"node\">\n",
|
||
"<title>13</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"993.32,-745.33 963.15,-727.33 993.32,-709.33 1023.48,-727.33 993.32,-745.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"993.32\" y=\"-723.63\" font-family=\"Lato\" font-size=\"14.00\">13</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1->13 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>1->13</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1317.89,-622.94C1282.75,-616.59 1199.62,-605.38 1134.65,-626.33 1082.86,-643.03 1034.05,-686.73 1009.97,-710.81\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1004.94,-715.92 1007.6,-708.72 1007.39,-713.43 1009.85,-710.93 1009.85,-710.93 1009.85,-710.93 1007.39,-713.43 1012.09,-713.14 1004.94,-715.92 1004.94,-715.92\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-645.13\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-630.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 12->1 -->\n",
|
||
"<g id=\"edge34\" class=\"edge\">\n",
|
||
"<title>12->1</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1436.65,-665.74C1428.9,-652.13 1414.92,-632.01 1396.21,-623.33 1385.14,-618.19 1371.63,-618.43 1360.28,-620.19\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1353.19,-621.51 1359.49,-617.13 1356.63,-620.87 1360.07,-620.23 1360.07,-620.23 1360.07,-620.23 1356.63,-620.87 1360.65,-623.32 1353.19,-621.51 1353.19,-621.51\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1375.21\" y=\"-642.13\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1377.71\" y=\"-627.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 13->0 -->\n",
|
||
"<g id=\"edge35\" class=\"edge\">\n",
|
||
"<title>13->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1014.24,-733.12C1031.43,-738.11 1056.27,-745.32 1074.37,-750.57\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1081.19,-752.55 1073.59,-753.63 1077.83,-751.58 1074.47,-750.6 1074.47,-750.6 1074.47,-750.6 1077.83,-751.58 1075.35,-747.58 1081.19,-752.55 1081.19,-752.55\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1041.65\" y=\"-765.13\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1044.15\" y=\"-750.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2 -->\n",
|
||
"<g id=\"node9\" class=\"node\">\n",
|
||
"<title>2</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-509.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-505.63\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
||
"</g>\n",
|
||
"<!-- 14 -->\n",
|
||
"<g id=\"node10\" class=\"node\">\n",
|
||
"<title>14</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-184.33 1200.82,-166.33 1230.98,-148.33 1261.15,-166.33 1230.98,-184.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-162.63\" font-family=\"Lato\" font-size=\"14.00\">14</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2->14 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>2->14</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1105.52,-492.52C1111.26,-477.81 1121.12,-456.48 1134.65,-441.33 1151.73,-422.21 1169.34,-431.24 1182.65,-409.33 1220.73,-346.67 1183.76,-316.69 1200.65,-245.33 1205.47,-224.96 1214.07,-202.68 1220.71,-186.99\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1223.61,-180.28 1223.73,-187.95 1222.22,-183.49 1220.84,-186.7 1220.84,-186.7 1220.84,-186.7 1222.22,-183.49 1217.94,-185.46 1223.61,-180.28 1223.61,-180.28\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-460.13\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-445.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 16 -->\n",
|
||
"<g id=\"node11\" class=\"node\">\n",
|
||
"<title>16</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-502.33 1200.82,-484.33 1230.98,-466.33 1261.15,-484.33 1230.98,-502.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-480.63\" font-family=\"Lato\" font-size=\"14.00\">16</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2->16 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>2->16</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1116.25,-513.94C1133.28,-517.89 1160.36,-521.98 1182.65,-515.33 1193.3,-512.15 1203.78,-505.73 1212.17,-499.55\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1218.14,-494.93 1214.53,-501.7 1215.37,-497.07 1212.6,-499.21 1212.6,-499.21 1212.6,-499.21 1215.37,-497.07 1210.67,-496.72 1218.14,-494.93 1218.14,-494.93\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-537.13\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-522.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</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=\"-166.33\" rx=\"21.4\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1335.76\" y=\"-162.63\" font-family=\"Lato\" font-size=\"14.00\">15</text>\n",
|
||
"</g>\n",
|
||
"<!-- 14->15 -->\n",
|
||
"<g id=\"edge36\" class=\"edge\">\n",
|
||
"<title>14->15</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1244.58,-156.12C1257.4,-147.01 1277.93,-135.88 1296.32,-141.33 1302.46,-143.15 1308.54,-146.3 1313.99,-149.76\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1320.07,-153.91 1312.51,-152.56 1317.18,-151.93 1314.29,-149.96 1314.29,-149.96 1314.29,-149.96 1317.18,-151.93 1316.06,-147.36 1320.07,-153.91 1320.07,-153.91\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1283.32\" y=\"-160.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1279.82\" y=\"-145.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||
"</g>\n",
|
||
"<!-- 16->2 -->\n",
|
||
"<g id=\"edge38\" class=\"edge\">\n",
|
||
"<title>16->2</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1208.87,-479.4C1189.09,-475.77 1159.03,-472.78 1134.65,-481.33 1128.29,-483.56 1122.22,-487.49 1116.98,-491.71\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1111.64,-496.34 1114.87,-489.38 1114.29,-494.05 1116.93,-491.76 1116.93,-491.76 1116.93,-491.76 1114.29,-494.05 1119,-494.14 1111.64,-496.34 1111.64,-496.34\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1154.15\" y=\"-500.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-485.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 3 -->\n",
|
||
"<g id=\"node12\" class=\"node\">\n",
|
||
"<title>3</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.99\" cy=\"-825.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"860.99\" y=\"-821.63\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
||
"</g>\n",
|
||
"<!-- 3->13 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>3->13</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M878.68,-821.91C896.52,-817.6 924.95,-808.83 944.99,-793.33 960.95,-780.99 973.85,-761.82 982.13,-747.32\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"985.6,-741.03 984.98,-748.68 983.91,-744.09 982.22,-747.15 982.22,-747.15 982.22,-747.15 983.91,-744.09 979.46,-745.63 985.6,-741.03 985.6,-741.03\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"914.99\" y=\"-835.13\" font-family=\"Lato\" font-size=\"14.00\">i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-820.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 17 -->\n",
|
||
"<g id=\"node13\" class=\"node\">\n",
|
||
"<title>17</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-795.33 725.49,-777.33 755.65,-759.33 785.82,-777.33 755.65,-795.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-773.63\" font-family=\"Lato\" font-size=\"14.00\">17</text>\n",
|
||
"</g>\n",
|
||
"<!-- 3->17 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>3->17</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M842.76,-822.76C831.38,-820.65 816.35,-817.06 803.99,-811.33 793.39,-806.42 782.74,-799.03 774.22,-792.4\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"768.7,-787.96 776.13,-789.89 771.43,-790.15 774.16,-792.34 774.16,-792.34 774.16,-792.34 771.43,-790.15 772.18,-794.8 768.7,-787.96 768.7,-787.96\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"806.49\" y=\"-837.13\" font-family=\"Lato\" font-size=\"14.00\">!i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"806.49\" y=\"-822.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 17->2 -->\n",
|
||
"<g id=\"edge39\" class=\"edge\">\n",
|
||
"<title>17->2</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M777.68,-772.38C820.81,-761.95 917.54,-737.05 944.99,-717.33 963.56,-703.98 1049.69,-579.51 1083.74,-529.75\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1087.82,-523.79 1086.47,-531.34 1085.84,-526.68 1083.87,-529.57 1083.87,-529.57 1083.87,-529.57 1085.84,-526.68 1081.27,-527.79 1087.82,-523.79 1087.82,-523.79\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"912.49\" y=\"-757.13\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-742.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 17->3 -->\n",
|
||
"<g id=\"edge40\" class=\"edge\">\n",
|
||
"<title>17->3</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M777.83,-772.56C791.95,-770.48 810.5,-769.97 824.99,-777.33 835.54,-782.7 843.67,-792.91 849.43,-802.54\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"852.87,-808.73 846.71,-804.14 851.17,-805.67 849.47,-802.61 849.47,-802.61 849.47,-802.61 851.17,-805.67 852.22,-801.08 852.87,-808.73 852.87,-808.73\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"803.99\" y=\"-796.13\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"806.49\" y=\"-781.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 4 -->\n",
|
||
"<g id=\"node14\" class=\"node\">\n",
|
||
"<title>4</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-330.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-326.63\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
||
"</g>\n",
|
||
"<!-- 4->14 -->\n",
|
||
"<g id=\"edge10\" class=\"edge\">\n",
|
||
"<title>4->14</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1100.66,-312.24C1103.27,-272.97 1111.71,-181.96 1134.65,-163.33 1154.17,-147.48 1184.07,-151.49 1205.17,-157.37\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1211.96,-159.41 1204.35,-160.42 1208.61,-158.41 1205.26,-157.4 1205.26,-157.4 1205.26,-157.4 1208.61,-158.41 1206.17,-154.38 1211.96,-159.41 1211.96,-159.41\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1152.65\" y=\"-182.13\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-167.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 18 -->\n",
|
||
"<g id=\"node15\" class=\"node\">\n",
|
||
"<title>18</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-290.33 1200.82,-272.33 1230.98,-254.33 1261.15,-272.33 1230.98,-290.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-268.63\" font-family=\"Lato\" font-size=\"14.00\">18</text>\n",
|
||
"</g>\n",
|
||
"<!-- 4->18 -->\n",
|
||
"<g id=\"edge11\" class=\"edge\">\n",
|
||
"<title>4->18</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1104.99,-313.25C1110.21,-299.77 1119.59,-281.86 1134.65,-273.33 1155.05,-261.78 1182.05,-262.7 1202.11,-265.83\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1209.16,-267.07 1201.72,-268.96 1205.71,-266.46 1202.26,-265.86 1202.26,-265.86 1202.26,-265.86 1205.71,-266.46 1202.81,-262.76 1209.16,-267.07 1209.16,-267.07\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-292.13\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-277.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 18->4 -->\n",
|
||
"<g id=\"edge41\" class=\"edge\">\n",
|
||
"<title>18->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1216.88,-282.28C1207.67,-288.92 1194.87,-297.47 1182.65,-303.33 1163.4,-312.56 1140.2,-319.81 1123.23,-324.46\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1116.37,-326.29 1122.32,-321.45 1119.75,-325.39 1123.13,-324.49 1123.13,-324.49 1123.13,-324.49 1119.75,-325.39 1123.95,-327.53 1116.37,-326.29 1116.37,-326.29\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1154.15\" y=\"-339.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-324.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5 -->\n",
|
||
"<g id=\"node16\" class=\"node\">\n",
|
||
"<title>5</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1098.65\" cy=\"-166.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1098.65\" y=\"-162.63\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->14 -->\n",
|
||
"<g id=\"edge12\" class=\"edge\">\n",
|
||
"<title>5->14</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1105.83,-149.66C1111.34,-137.44 1120.72,-121.75 1134.65,-114.33 1153.48,-104.31 1163.14,-105.71 1182.65,-114.33 1197.86,-121.06 1210.29,-135.35 1218.59,-147.26\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1222.54,-153.21 1216.05,-149.12 1220.61,-150.29 1218.67,-147.38 1218.67,-147.38 1218.67,-147.38 1220.61,-150.29 1221.29,-145.64 1222.54,-153.21 1222.54,-153.21\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1138.65\" y=\"-133.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-118.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->16 -->\n",
|
||
"<g id=\"edge13\" class=\"edge\">\n",
|
||
"<title>5->16</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1101,-184.3C1104.44,-225.91 1114.7,-327.38 1134.65,-354.33 1148.96,-373.66 1166.13,-361.85 1182.65,-379.33 1204.96,-402.94 1218.01,-438.86 1224.57,-461.96\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1226.48,-468.98 1221.61,-463.05 1225.56,-465.6 1224.65,-462.23 1224.65,-462.23 1224.65,-462.23 1225.56,-465.6 1227.69,-461.4 1226.48,-468.98 1226.48,-468.98\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-398.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-383.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->18 -->\n",
|
||
"<g id=\"edge14\" class=\"edge\">\n",
|
||
"<title>5->18</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1112.29,-178.2C1118.81,-184.15 1126.98,-191.33 1134.65,-197.33 1155.05,-213.28 1162.26,-214.38 1182.65,-230.33 1193.25,-238.63 1204.55,-248.61 1213.45,-256.76\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1218.66,-261.56 1211.38,-259.13 1216.08,-259.19 1213.51,-256.81 1213.51,-256.81 1213.51,-256.81 1216.08,-259.19 1215.65,-254.5 1218.66,-261.56 1218.66,-261.56\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-249.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-234.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 19 -->\n",
|
||
"<g id=\"node17\" class=\"node\">\n",
|
||
"<title>19</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"1230.98,-52.33 1200.82,-34.33 1230.98,-16.33 1261.15,-34.33 1230.98,-52.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1230.98\" y=\"-30.63\" font-family=\"Lato\" font-size=\"14.00\">19</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->19 -->\n",
|
||
"<g id=\"edge15\" class=\"edge\">\n",
|
||
"<title>5->19</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1100.89,-148.36C1103.88,-110.74 1112.96,-25.74 1134.65,-8.33 1156.84,9.48 1190.29,-6.7 1211.1,-20.3\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1217.12,-24.4 1209.56,-23.07 1214.23,-22.43 1211.33,-20.46 1211.33,-20.46 1211.33,-20.46 1214.23,-22.43 1213.1,-17.86 1217.12,-24.4 1217.12,-24.4\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1134.65\" y=\"-27.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-12.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 19->5 -->\n",
|
||
"<g id=\"edge42\" class=\"edge\">\n",
|
||
"<title>19->5</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1207.02,-38.29C1185.64,-43.09 1154.22,-53.2 1134.65,-73.33 1116.58,-91.92 1107.66,-120.73 1103.38,-141.36\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1102.05,-148.29 1100.28,-140.82 1102.71,-144.85 1103.37,-141.41 1103.37,-141.41 1103.37,-141.41 1102.71,-144.85 1106.47,-142.01 1102.05,-148.29 1102.05,-148.29\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1154.15\" y=\"-92.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-77.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6 -->\n",
|
||
"<g id=\"node18\" class=\"node\">\n",
|
||
"<title>6</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"623.32\" cy=\"-501.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"623.32\" y=\"-497.63\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->10 -->\n",
|
||
"<g id=\"edge16\" class=\"edge\">\n",
|
||
"<title>6->10</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M636.73,-513.35C643.06,-518.91 651.13,-525.18 659.32,-529.33 718.72,-559.43 738.1,-558.66 803.99,-568.33 878.66,-579.29 1104.86,-580.4 1193.66,-580.4\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1200.81,-580.4 1193.81,-583.55 1197.31,-580.4 1193.81,-580.4 1193.81,-580.4 1193.81,-580.4 1197.31,-580.4 1193.81,-577.25 1200.81,-580.4 1200.81,-580.4\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"898.99\" y=\"-595.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-580.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->11 -->\n",
|
||
"<g id=\"edge17\" class=\"edge\">\n",
|
||
"<title>6->11</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M631.61,-517.57C637.54,-529.08 646.96,-544.06 659.32,-553.33 683.95,-571.79 695.66,-566.11 725.32,-574.33 775.71,-588.29 1139.98,-655.11 1182.65,-685.33 1200.7,-698.12 1213.69,-720.16 1221.45,-736.49\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1224.45,-743.1 1218.68,-738.03 1223,-739.91 1221.55,-736.73 1221.55,-736.73 1221.55,-736.73 1223,-739.91 1224.42,-735.42 1224.45,-743.1 1224.45,-743.1\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"900.99\" y=\"-639.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-624.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 20 -->\n",
|
||
"<g id=\"node19\" class=\"node\">\n",
|
||
"<title>20</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-499.33 725.49,-481.33 755.65,-463.33 785.82,-481.33 755.65,-499.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-477.63\" font-family=\"Lato\" font-size=\"14.00\">20</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->20 -->\n",
|
||
"<g id=\"edge18\" class=\"edge\">\n",
|
||
"<title>6->20</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M641.36,-498.72C662.43,-495.48 698.65,-489.93 724.47,-485.96\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"731.45,-484.89 725.01,-489.07 727.99,-485.42 724.53,-485.95 724.53,-485.95 724.53,-485.95 727.99,-485.42 724.06,-482.84 731.45,-484.89 731.45,-484.89\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"659.32\" y=\"-514.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"675.32\" y=\"-499.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 21 -->\n",
|
||
"<g id=\"node20\" class=\"node\">\n",
|
||
"<title>21</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"755.65,-413.33 725.49,-395.33 755.65,-377.33 785.82,-395.33 755.65,-413.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"755.65\" y=\"-391.63\" font-family=\"Lato\" font-size=\"14.00\">21</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->21 -->\n",
|
||
"<g id=\"edge19\" class=\"edge\">\n",
|
||
"<title>6->21</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M633.38,-486.11C639.77,-476.24 649.01,-463.55 659.32,-454.33 677.74,-437.87 686.32,-439.32 707.32,-426.33 716.38,-420.73 726.25,-414.32 734.62,-408.78\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"740.69,-404.75 736.6,-411.24 737.78,-406.68 734.86,-408.62 734.86,-408.62 734.86,-408.62 737.78,-406.68 733.12,-406 740.69,-404.75 740.69,-404.75\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"661.32\" y=\"-473.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"675.32\" y=\"-458.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 20->4 -->\n",
|
||
"<g id=\"edge43\" class=\"edge\">\n",
|
||
"<title>20->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M769.46,-471.21C793.3,-452.8 846.64,-413.6 896.99,-390.33 929.1,-375.49 1028.33,-348.54 1074.09,-336.47\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1080.96,-334.66 1074.99,-339.49 1077.58,-335.56 1074.19,-336.45 1074.19,-336.45 1074.19,-336.45 1077.58,-335.56 1073.39,-333.4 1080.96,-334.66 1080.96,-334.66\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"910.49\" y=\"-409.13\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-394.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7 -->\n",
|
||
"<g id=\"node21\" class=\"node\">\n",
|
||
"<title>7</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.99\" cy=\"-488.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"860.99\" y=\"-484.63\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
|
||
"</g>\n",
|
||
"<!-- 20->7 -->\n",
|
||
"<g id=\"edge44\" class=\"edge\">\n",
|
||
"<title>20->7</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M784.97,-480.76C797.28,-480.77 811.87,-481.12 824.99,-482.33 828.58,-482.66 832.36,-483.16 836.05,-483.72\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"842.97,-484.87 835.55,-486.83 839.51,-484.3 836.06,-483.72 836.06,-483.72 836.06,-483.72 839.51,-484.3 836.58,-480.62 842.97,-484.87 842.97,-484.87\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"805.99\" y=\"-501.13\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"806.49\" y=\"-486.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 21->4 -->\n",
|
||
"<g id=\"edge45\" class=\"edge\">\n",
|
||
"<title>21->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M770.65,-386.26C795.07,-371.07 847.61,-341.16 896.99,-331.33 959.61,-318.87 1035.42,-323.74 1073.43,-327.51\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1080.52,-328.25 1073.23,-330.66 1077.04,-327.88 1073.56,-327.52 1073.56,-327.52 1073.56,-327.52 1077.04,-327.88 1073.88,-324.39 1080.52,-328.25 1080.52,-328.25\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"910.49\" y=\"-350.13\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-335.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 21->6 -->\n",
|
||
"<g id=\"edge46\" class=\"edge\">\n",
|
||
"<title>21->6</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M736.57,-388.7C715.83,-382.36 681.8,-375.94 659.32,-392.33 633.3,-411.3 626.2,-449.92 624.49,-475.71\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"624.13,-482.95 621.33,-475.8 624.3,-479.45 624.48,-475.95 624.48,-475.95 624.48,-475.95 624.3,-479.45 627.62,-476.11 624.13,-482.95 624.13,-482.95\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"674.82\" y=\"-411.13\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"675.32\" y=\"-396.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->12 -->\n",
|
||
"<g id=\"edge20\" class=\"edge\">\n",
|
||
"<title>7->12</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M862.46,-506.73C864.46,-576.8 873.16,-824.31 896.99,-849.33 926.51,-880.35 949.49,-863.33 992.32,-863.33 992.32,-863.33 992.32,-863.33 1336.76,-863.33 1410.01,-863.33 1433.85,-752.91 1440.88,-703.15\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1441.83,-695.98 1444.03,-703.34 1441.37,-699.45 1440.91,-702.92 1440.91,-702.92 1440.91,-702.92 1441.37,-699.45 1437.79,-702.51 1441.83,-695.98 1441.83,-695.98\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1136.65\" y=\"-882.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1150.65\" y=\"-867.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->13 -->\n",
|
||
"<g id=\"edge21\" class=\"edge\">\n",
|
||
"<title>7->13</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M863.62,-506.26C867.48,-545.29 878.29,-636.36 896.99,-660.33 911.53,-678.99 925.43,-670.02 944.99,-683.33 956.51,-691.18 967.99,-701.77 976.76,-710.59\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"981.85,-715.82 974.71,-713 979.41,-713.31 976.97,-710.8 976.97,-710.8 976.97,-710.8 979.41,-713.31 979.22,-708.61 981.85,-715.82 981.85,-715.82\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"900.99\" y=\"-702.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-687.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 22 -->\n",
|
||
"<g id=\"node22\" class=\"node\">\n",
|
||
"<title>22</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"993.32,-454.33 963.15,-436.33 993.32,-418.33 1023.48,-436.33 993.32,-454.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"993.32\" y=\"-432.63\" font-family=\"Lato\" font-size=\"14.00\">22</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->22 -->\n",
|
||
"<g id=\"edge22\" class=\"edge\">\n",
|
||
"<title>7->22</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M879.06,-485.72C896.23,-482.71 923.21,-476.89 944.99,-467.33 955.02,-462.92 965.3,-456.47 973.7,-450.59\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"979.73,-446.25 975.89,-452.9 976.89,-448.3 974.05,-450.34 974.05,-450.34 974.05,-450.34 976.89,-448.3 972.21,-447.79 979.73,-446.25 979.73,-446.25\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"896.99\" y=\"-500.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-485.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 23 -->\n",
|
||
"<g id=\"node23\" class=\"node\">\n",
|
||
"<title>23</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"478.33,-623.33 448.16,-605.33 478.33,-587.33 508.49,-605.33 478.33,-623.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"478.33\" y=\"-601.63\" font-family=\"Lato\" font-size=\"14.00\">23</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->23 -->\n",
|
||
"<g id=\"edge23\" class=\"edge\">\n",
|
||
"<title>7->23</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M857.07,-506.19C853.12,-524.21 844.21,-551.32 824.99,-565.33 727.67,-636.24 572.35,-620.98 508.35,-610.75\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"501.36,-609.59 508.78,-607.62 504.81,-610.16 508.27,-610.73 508.27,-610.73 508.27,-610.73 504.81,-610.16 507.75,-613.84 501.36,-609.59 501.36,-609.59\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"661.32\" y=\"-636.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"675.32\" y=\"-621.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 22->4 -->\n",
|
||
"<g id=\"edge47\" class=\"edge\">\n",
|
||
"<title>22->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1012.15,-429.53C1027.14,-423.08 1048.34,-412.19 1062.65,-397.33 1074.62,-384.91 1083.53,-367.57 1089.36,-353.64\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1091.98,-347.12 1092.3,-354.79 1090.68,-350.37 1089.37,-353.62 1089.37,-353.62 1089.37,-353.62 1090.68,-350.37 1086.45,-352.44 1091.98,-347.12 1091.98,-347.12\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1043.65\" y=\"-432.13\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1044.15\" y=\"-417.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 22->7 -->\n",
|
||
"<g id=\"edge48\" class=\"edge\">\n",
|
||
"<title>22->7</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M973.08,-430.29C952.83,-425.11 920.65,-420.34 896.99,-433.33 884.71,-440.07 876.13,-453.14 870.53,-464.85\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"867.58,-471.53 867.53,-463.85 868.99,-468.33 870.41,-465.13 870.41,-465.13 870.41,-465.13 868.99,-468.33 873.29,-466.4 867.58,-471.53 867.58,-471.53\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"910.49\" y=\"-452.13\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"912.99\" y=\"-437.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 23->4 -->\n",
|
||
"<g id=\"edge49\" class=\"edge\">\n",
|
||
"<title>23->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M500.1,-600.17C551.41,-587.56 688.36,-554.73 803.99,-534.33 866.26,-523.35 885.14,-535.76 944.99,-515.33 1002.15,-495.82 1025.2,-494.72 1062.65,-447.33 1083.83,-420.53 1092.21,-381.13 1095.52,-355.6\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1096.36,-348.47 1098.67,-355.79 1095.95,-351.94 1095.54,-355.42 1095.54,-355.42 1095.54,-355.42 1095.95,-351.94 1092.41,-355.05 1096.36,-348.47 1096.36,-348.47\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"805.99\" y=\"-553.13\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"806.49\" y=\"-538.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 23->6 -->\n",
|
||
"<g id=\"edge50\" class=\"edge\">\n",
|
||
"<title>23->6</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M484.36,-590.63C491.17,-572.95 505.02,-543.62 526.66,-527.33 547.47,-511.66 577.13,-505.43 597.89,-502.96\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"605.1,-502.2 598.47,-506.06 601.62,-502.57 598.14,-502.93 598.14,-502.93 598.14,-502.93 601.62,-502.57 597.81,-499.8 605.1,-502.2 605.1,-502.2\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"546.49\" y=\"-546.13\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"548.99\" y=\"-531.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8 -->\n",
|
||
"<g id=\"node24\" class=\"node\">\n",
|
||
"<title>8</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"333.33\" cy=\"-688.33\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"333.33\" y=\"-684.63\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8->13 -->\n",
|
||
"<g id=\"edge24\" class=\"edge\">\n",
|
||
"<title>8->13</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M350.13,-695.42C356.06,-697.88 362.92,-700.48 369.33,-702.33 416.22,-715.91 428.51,-722.33 477.33,-722.33 477.33,-722.33 477.33,-722.33 815.49,-722.33 864.95,-722.33 922.16,-724.31 957.79,-725.78\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"965.06,-726.08 957.94,-728.94 961.56,-725.94 958.07,-725.79 958.07,-725.79 958.07,-725.79 961.56,-725.94 958.2,-722.64 965.06,-726.08 965.06,-726.08\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"663.32\" y=\"-741.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"675.32\" y=\"-726.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8->17 -->\n",
|
||
"<g id=\"edge25\" class=\"edge\">\n",
|
||
"<title>8->17</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M341.67,-704.52C347.53,-715.44 356.82,-729.11 369.33,-736.33 485.99,-803.65 655.85,-790.75 724.35,-781.93\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"731.42,-780.99 724.9,-785.03 727.95,-781.45 724.48,-781.91 724.48,-781.91 724.48,-781.91 727.95,-781.45 724.07,-778.79 731.42,-780.99 731.42,-780.99\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"534.99\" y=\"-807.13\" font-family=\"Lato\" font-size=\"14.00\">i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"548.99\" y=\"-792.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8->23 -->\n",
|
||
"<g id=\"edge26\" class=\"edge\">\n",
|
||
"<title>8->23</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M349.73,-680.16C368.77,-669.98 402.07,-651.9 429.99,-635.33 439.06,-629.95 448.93,-623.75 457.31,-618.39\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"463.38,-614.48 459.2,-620.92 460.43,-616.37 457.49,-618.27 457.49,-618.27 457.49,-618.27 460.43,-616.37 455.79,-615.62 463.38,-614.48 463.38,-614.48\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"377.66\" y=\"-687.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"391.66\" y=\"-672.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 24 -->\n",
|
||
"<g id=\"node25\" class=\"node\">\n",
|
||
"<title>24</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"478.33,-457.33 448.16,-439.33 478.33,-421.33 508.49,-439.33 478.33,-457.33\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"478.33\" y=\"-435.63\" font-family=\"Lato\" font-size=\"14.00\">24</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8->24 -->\n",
|
||
"<g id=\"edge27\" class=\"edge\">\n",
|
||
"<title>8->24</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M334.72,-670.07C336.13,-622.61 342.37,-497.03 369.33,-467.33 387.5,-447.32 417.95,-440.8 441.9,-439.02\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"449.1,-438.61 442.29,-442.15 445.61,-438.81 442.11,-439.01 442.11,-439.01 442.11,-439.01 445.61,-438.81 441.93,-435.86 449.1,-438.61 449.1,-438.61\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"375.66\" y=\"-486.13\" font-family=\"Lato\" font-size=\"14.00\">!i0 & !i1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"391.66\" y=\"-471.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 24->5 -->\n",
|
||
"<g id=\"edge51\" class=\"edge\">\n",
|
||
"<title>24->5</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M482.04,-423.32C491.46,-373.79 527.45,-226.33 622.32,-226.33 622.32,-226.33 622.32,-226.33 994.32,-226.33 1028.16,-226.33 1060.83,-201.97 1080.08,-184.29\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1085.61,-179.06 1082.69,-186.16 1083.07,-181.46 1080.53,-183.87 1080.53,-183.87 1080.53,-183.87 1083.07,-181.46 1078.36,-181.58 1085.61,-179.06 1085.61,-179.06\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"805.99\" y=\"-245.13\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"806.49\" y=\"-230.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 24->8 -->\n",
|
||
"<g id=\"edge52\" class=\"edge\">\n",
|
||
"<title>24->8</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M465.13,-449.76C459.11,-455.53 452.25,-463.18 447.99,-471.33 431.11,-503.63 449.09,-520.29 429.99,-551.33 411.69,-581.09 389.44,-572.76 369.33,-601.33 355.73,-620.64 360.27,-629.47 351.33,-651.33 349.42,-655.99 347.26,-660.92 345.14,-665.61\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"342.08,-672.25 342.14,-664.58 343.54,-669.07 345.01,-665.89 345.01,-665.89 345.01,-665.89 343.54,-669.07 347.87,-667.21 342.08,-672.25 342.08,-672.25\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"389.16\" y=\"-620.13\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"391.66\" y=\"-605.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 25->8 -->\n",
|
||
"<g id=\"edge53\" class=\"edge\">\n",
|
||
"<title>25->8</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M212.95,-705.86C239.34,-701.99 281.84,-695.75 308.37,-691.85\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"315.41,-690.82 308.94,-694.95 311.94,-691.33 308.48,-691.83 308.48,-691.83 308.48,-691.83 311.94,-691.33 308.02,-688.72 315.41,-690.82 315.41,-690.82\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"262.5\" y=\"-720.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"259\" y=\"-705.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 26->3 -->\n",
|
||
"<g id=\"edge54\" class=\"edge\">\n",
|
||
"<title>26->3</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M291.05,-868.31C317.09,-872.44 360.79,-878.33 398.66,-878.33 398.66,-878.33 398.66,-878.33 756.65,-878.33 789.18,-878.33 821.74,-857.29 841.38,-841.72\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"847.05,-837.09 843.62,-843.96 844.34,-839.31 841.63,-841.52 841.63,-841.52 841.63,-841.52 844.34,-839.31 839.63,-839.08 847.05,-837.09 847.05,-837.09\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"552.49\" y=\"-897.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"548.99\" y=\"-882.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 27->6 -->\n",
|
||
"<g id=\"edge55\" class=\"edge\">\n",
|
||
"<title>27->6</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M423.83,-520.7C449.06,-516.86 490.63,-510.89 526.66,-507.33 550.78,-504.95 578.42,-503.34 597.77,-502.39\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"605.01,-502.04 598.17,-505.52 601.51,-502.21 598.02,-502.38 598.02,-502.38 598.02,-502.38 601.51,-502.21 597.87,-499.23 605.01,-502.04 605.01,-502.04\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"473.83\" y=\"-535.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"470.33\" y=\"-520.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 28->0 -->\n",
|
||
"<g id=\"edge56\" class=\"edge\">\n",
|
||
"<title>28->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M583.2,-928.76C608.3,-926.42 647.93,-923.33 682.32,-923.33 682.32,-923.33 682.32,-923.33 994.32,-923.33 1060.05,-923.33 1085.47,-828.35 1093.95,-782.08\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1095.16,-775.1 1097.06,-782.53 1094.56,-778.54 1093.96,-781.99 1093.96,-781.99 1093.96,-781.99 1094.56,-778.54 1090.86,-781.45 1095.16,-775.1 1095.16,-775.1\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"809.99\" y=\"-942.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"806.49\" y=\"-927.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 15->14 -->\n",
|
||
"<g id=\"edge37\" class=\"edge\">\n",
|
||
"<title>15->14</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1314.46,-169.47C1308.62,-170.24 1302.23,-170.95 1296.32,-171.33 1285.32,-172.04 1273.29,-171.47 1262.63,-170.5\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1255.5,-169.77 1262.78,-167.35 1258.98,-170.12 1262.46,-170.48 1262.46,-170.48 1262.46,-170.48 1258.98,-170.12 1262.14,-173.61 1255.5,-169.77 1255.5,-169.77\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1283.32\" y=\"-191.13\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"1279.82\" y=\"-176.13\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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 0x7fe9bc79b6f0> >"
|
||
]
|
||
},
|
||
"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": "3797307f",
|
||
"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": "62fb169f",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Found a solution: True\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=\"650pt\" height=\"360pt\"\n",
|
||
" viewBox=\"0.00 0.00 650.45 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.4854368932038835 0.4854368932038835) rotate(0) translate(4 737.02)\">\n",
|
||
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-737.02 1334.88,-737.02 1334.88,4 -4,4\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"553.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"574.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"<text text-anchor=\"start\" x=\"590.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"632.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||
"<text text-anchor=\"start\" x=\"648.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"694.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"<text text-anchor=\"start\" x=\"710.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"748.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||
"<text text-anchor=\"start\" x=\"764.94\" y=\"-718.82\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
|
||
"<text text-anchor=\"start\" x=\"609.94\" y=\"-704.82\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n",
|
||
"<!-- I -->\n",
|
||
"<!-- 9 -->\n",
|
||
"<g id=\"node2\" class=\"node\">\n",
|
||
"<title>9</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-607.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"56\" y=\"-603.32\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
|
||
"</g>\n",
|
||
"<!-- I->9 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->9</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-607.02C2.79,-607.02 17.15,-607.02 30.63,-607.02\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-607.02 30.94,-610.17 34.44,-607.02 30.94,-607.02 30.94,-607.02 30.94,-607.02 34.44,-607.02 30.94,-603.87 37.94,-607.02 37.94,-607.02\"/>\n",
|
||
"</g>\n",
|
||
"<!-- 25 -->\n",
|
||
"<g id=\"node26\" class=\"node\">\n",
|
||
"<title>25</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"156.33,-523.02 126.17,-505.02 156.33,-487.02 186.5,-505.02 156.33,-523.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"156.33\" y=\"-501.32\" font-family=\"Lato\" font-size=\"14.00\">25</text>\n",
|
||
"</g>\n",
|
||
"<!-- 9->25 -->\n",
|
||
"<g id=\"edge28\" class=\"edge\">\n",
|
||
"<title>9->25</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M69.06,-594.51C86.85,-576.05 120.15,-541.51 139.77,-521.16\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"144.68,-516.07 142.09,-523.29 142.25,-518.59 139.82,-521.11 139.82,-521.11 139.82,-521.11 142.25,-518.59 137.55,-518.92 144.68,-516.07 144.68,-516.07\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-571.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 26 -->\n",
|
||
"<g id=\"node27\" class=\"node\">\n",
|
||
"<title>26</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"235,-647.02 204.83,-629.02 235,-611.02 265.16,-629.02 235,-647.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"235\" y=\"-625.32\" font-family=\"Lato\" font-size=\"14.00\">26</text>\n",
|
||
"</g>\n",
|
||
"<!-- 9->26 -->\n",
|
||
"<g id=\"edge29\" class=\"edge\">\n",
|
||
"<title>9->26</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M73.97,-609.13C103.58,-612.81 165.09,-620.45 202.63,-625.12\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"209.81,-626.01 202.47,-628.27 206.33,-625.58 202.86,-625.15 202.86,-625.15 202.86,-625.15 206.33,-625.58 203.25,-622.02 209.81,-626.01 209.81,-626.01\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-615.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 27 -->\n",
|
||
"<g id=\"node28\" class=\"node\">\n",
|
||
"<title>27</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"367.66,-388.02 337.5,-370.02 367.66,-352.02 397.83,-370.02 367.66,-388.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"367.66\" y=\"-366.32\" font-family=\"Lato\" font-size=\"14.00\">27</text>\n",
|
||
"</g>\n",
|
||
"<!-- 9->27 -->\n",
|
||
"<g id=\"edge30\" class=\"edge\">\n",
|
||
"<title>9->27</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M60.92,-589.43C68.46,-559.48 87.74,-498.4 126,-463.02 186.96,-406.64 285.83,-383.14 335.74,-374.47\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"342.74,-373.3 336.36,-377.56 339.29,-373.88 335.84,-374.46 335.84,-374.46 335.84,-374.46 339.29,-373.88 335.32,-371.35 342.74,-373.3 342.74,-373.3\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"148.33\" y=\"-466.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 28 -->\n",
|
||
"<g id=\"node29\" class=\"node\">\n",
|
||
"<title>28</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"524.99,-697.02 494.82,-679.02 524.99,-661.02 555.16,-679.02 524.99,-697.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"524.99\" y=\"-675.32\" font-family=\"Lato\" font-size=\"14.00\">28</text>\n",
|
||
"</g>\n",
|
||
"<!-- 9->28 -->\n",
|
||
"<g id=\"edge31\" class=\"edge\">\n",
|
||
"<title>9->28</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M67.25,-621.59C83.37,-642.63 116.82,-679.02 155.33,-679.02 155.33,-679.02 155.33,-679.02 368.66,-679.02 409.35,-679.02 456.04,-679.02 487.52,-679.02\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"494.79,-679.02 487.79,-682.17 491.29,-679.02 487.79,-679.02 487.79,-679.02 487.79,-679.02 491.29,-679.02 487.79,-675.87 494.79,-679.02 494.79,-679.02\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"227\" y=\"-682.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</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=\"992.65\" cy=\"-558.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"992.65\" y=\"-554.32\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
||
"</g>\n",
|
||
"<!-- 10 -->\n",
|
||
"<g id=\"node4\" class=\"node\">\n",
|
||
"<title>10</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1092.98,-429.02 1062.82,-411.02 1092.98,-393.02 1123.15,-411.02 1092.98,-429.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1092.98\" y=\"-407.32\" font-family=\"Lato\" font-size=\"14.00\">10</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->10 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->10</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1003.44,-543.39C1021.49,-516.4 1059.97,-458.87 1079.73,-429.34\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1083.64,-423.48 1082.37,-431.05 1081.7,-426.39 1079.75,-429.3 1079.75,-429.3 1079.75,-429.3 1081.7,-426.39 1077.13,-427.55 1083.64,-423.48 1083.64,-423.48\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-504.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 11 -->\n",
|
||
"<g id=\"node5\" class=\"node\">\n",
|
||
"<title>11</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1092.98,-576.02 1062.82,-558.02 1092.98,-540.02 1123.15,-558.02 1092.98,-576.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1092.98\" y=\"-554.32\" font-family=\"Lato\" font-size=\"14.00\">11</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->11 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->11</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1010.78,-558.02C1023.07,-558.02 1040.1,-558.02 1055.39,-558.02\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1062.73,-558.02 1055.73,-561.17 1059.23,-558.02 1055.73,-558.02 1055.73,-558.02 1055.73,-558.02 1059.23,-558.02 1055.73,-554.87 1062.73,-558.02 1062.73,-558.02\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-561.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1 -->\n",
|
||
"<g id=\"node6\" class=\"node\">\n",
|
||
"<title>1</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"1196.76\" cy=\"-457.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1196.76\" y=\"-453.32\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 10->1 -->\n",
|
||
"<g id=\"edge32\" class=\"edge\">\n",
|
||
"<title>10->1</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M1116.72,-414.91C1129.13,-417.57 1144.53,-421.77 1157.32,-428.02 1164.19,-431.38 1171.06,-436.04 1177.05,-440.64\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1182.72,-445.18 1175.29,-443.26 1179.68,-443.38 1176.94,-441.19 1177.26,-440.8 1177.57,-440.41 1180.3,-442.6 1179.23,-438.35 1182.72,-445.18 1182.72,-445.18\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1141.32\" y=\"-431.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 11->0 -->\n",
|
||
"<g id=\"edge33\" class=\"edge\">\n",
|
||
"<title>11->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M1076.17,-566.18C1063.4,-571.76 1044.94,-577.57 1028.65,-574.02 1024.2,-573.05 1019.63,-571.46 1015.32,-569.65\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1008.83,-566.68 1016.51,-566.73 1012.23,-567.68 1015.41,-569.14 1015.2,-569.59 1014.99,-570.05 1011.81,-568.59 1013.89,-572.46 1008.83,-566.68 1008.83,-566.68\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-578.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 12 -->\n",
|
||
"<g id=\"node7\" class=\"node\">\n",
|
||
"<title>12</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1300.54,-513.02 1270.38,-495.02 1300.54,-477.02 1330.71,-495.02 1300.54,-513.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1300.54\" y=\"-491.32\" font-family=\"Lato\" font-size=\"14.00\">12</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1->12 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>1->12</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1213.76,-463.93C1220.64,-466.83 1228.78,-470.18 1236.21,-473.02 1248.46,-477.69 1262.19,-482.51 1273.73,-486.44\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1280.59,-488.77 1272.95,-489.51 1277.28,-487.64 1273.96,-486.52 1273.96,-486.52 1273.96,-486.52 1277.28,-487.64 1274.97,-483.54 1280.59,-488.77 1280.59,-488.77\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1236.21\" y=\"-481.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 13 -->\n",
|
||
"<g id=\"node8\" class=\"node\">\n",
|
||
"<title>13</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"892.32,-554.02 862.15,-536.02 892.32,-518.02 922.48,-536.02 892.32,-554.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"892.32\" y=\"-532.32\" font-family=\"Lato\" font-size=\"14.00\">13</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1->13 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>1->13</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1178.79,-455.45C1148.16,-453.15 1081.9,-450.54 1028.65,-465.02 984.28,-477.08 937.96,-505.35 912.67,-522.36\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"906.7,-526.42 910.71,-519.88 909.6,-524.45 912.49,-522.48 912.49,-522.48 912.49,-522.48 909.6,-524.45 914.26,-525.08 906.7,-526.42 906.7,-526.42\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-468.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 12->1 -->\n",
|
||
"<g id=\"edge34\" class=\"edge\">\n",
|
||
"<title>12->1</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M1290.12,-483.08C1281.48,-473.16 1267.69,-459.79 1252.21,-454.02 1242.6,-450.43 1231.37,-450.42 1221.61,-451.6\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1214.49,-452.69 1220.93,-448.52 1217.87,-451.67 1221.33,-451.14 1221.4,-451.63 1221.48,-452.13 1218.02,-452.66 1221.88,-454.74 1214.49,-452.69 1214.49,-452.69\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1236.21\" y=\"-457.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 13->0 -->\n",
|
||
"<g id=\"edge35\" class=\"edge\">\n",
|
||
"<title>13->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M914.66,-540.79C930.33,-544.3 951.63,-549.06 967.86,-552.69\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"974.91,-554.27 967.4,-555.82 971.39,-554 967.97,-553.23 968.08,-552.75 968.19,-552.26 971.61,-553.02 968.77,-549.67 974.91,-554.27 974.91,-554.27\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"940.65\" y=\"-552.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2 -->\n",
|
||
"<g id=\"node9\" class=\"node\">\n",
|
||
"<title>2</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"992.65\" cy=\"-357.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"992.65\" y=\"-353.32\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
||
"</g>\n",
|
||
"<!-- 14 -->\n",
|
||
"<g id=\"node10\" class=\"node\">\n",
|
||
"<title>14</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1092.98,-136.02 1062.82,-118.02 1092.98,-100.02 1123.15,-118.02 1092.98,-136.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1092.98\" y=\"-114.32\" font-family=\"Lato\" font-size=\"14.00\">14</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2->14 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>2->14</title>\n",
|
||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M1005.93,-344.04C1017.86,-330.62 1035.5,-308.51 1044.65,-286.02 1064.81,-236.47 1044.57,-217.36 1062.65,-167.02 1066.53,-156.21 1072.91,-145.14 1078.73,-136.27\"/>\n",
|
||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1082.82,-130.23 1081.5,-137.79 1081.27,-133.41 1079.31,-136.31 1078.89,-136.03 1078.48,-135.75 1080.44,-132.85 1076.29,-134.26 1082.82,-130.23 1082.82,-130.23\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-316.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 16 -->\n",
|
||
"<g id=\"node11\" class=\"node\">\n",
|
||
"<title>16</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1092.98,-364.02 1062.82,-346.02 1092.98,-328.02 1123.15,-346.02 1092.98,-364.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1092.98\" y=\"-342.32\" font-family=\"Lato\" font-size=\"14.00\">16</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2->16 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>2->16</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1010.69,-359.95C1016.38,-360.79 1022.77,-361.6 1028.65,-362.02 1035.74,-362.52 1037.63,-363.17 1044.65,-362.02 1052.35,-360.75 1060.49,-358.4 1067.8,-355.88\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1074.8,-353.34 1069.29,-358.69 1071.51,-354.53 1068.22,-355.73 1068.22,-355.73 1068.22,-355.73 1071.51,-354.53 1067.14,-352.77 1074.8,-353.34 1074.8,-353.34\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-365.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 15 -->\n",
|
||
"<g id=\"node30\" class=\"node\">\n",
|
||
"<title>15</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"1196.76\" cy=\"-118.02\" rx=\"21.4\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1196.76\" y=\"-114.32\" font-family=\"Lato\" font-size=\"14.00\">15</text>\n",
|
||
"</g>\n",
|
||
"<!-- 14->15 -->\n",
|
||
"<g id=\"edge36\" class=\"edge\">\n",
|
||
"<title>14->15</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1108.96,-109.4C1121.71,-103.11 1140.58,-96.29 1157.32,-100.02 1162.36,-101.14 1167.53,-103 1172.37,-105.11\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1178.73,-108.09 1171.05,-107.97 1175.56,-106.6 1172.39,-105.12 1172.39,-105.12 1172.39,-105.12 1175.56,-106.6 1173.73,-102.26 1178.73,-108.09 1178.73,-108.09\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1141.32\" y=\"-103.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||
"</g>\n",
|
||
"<!-- 16->2 -->\n",
|
||
"<g id=\"edge38\" class=\"edge\">\n",
|
||
"<title>16->2</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1068.93,-342.33C1056.84,-341.04 1041.84,-340.48 1028.65,-343.02 1024.45,-343.83 1020.12,-345.14 1015.99,-346.63\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1009.29,-349.29 1014.64,-343.78 1012.55,-348 1015.8,-346.71 1015.8,-346.71 1015.8,-346.71 1012.55,-348 1016.96,-349.64 1009.29,-349.29 1009.29,-349.29\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-346.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 3 -->\n",
|
||
"<g id=\"node12\" class=\"node\">\n",
|
||
"<title>3</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"791.99\" cy=\"-605.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"791.99\" y=\"-601.32\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
||
"</g>\n",
|
||
"<!-- 3->13 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>3->13</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M807.91,-595.78C818.19,-589.32 832.08,-580.38 843.99,-572.02 853.73,-565.17 864.31,-557.19 872.99,-550.48\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"878.66,-546.06 875.07,-552.85 875.89,-548.21 873.13,-550.36 873.13,-550.36 873.13,-550.36 875.89,-548.21 871.2,-547.88 878.66,-546.06 878.66,-546.06\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-585.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 17 -->\n",
|
||
"<g id=\"node13\" class=\"node\">\n",
|
||
"<title>17</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"691.65,-585.02 661.49,-567.02 691.65,-549.02 721.82,-567.02 691.65,-585.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"691.65\" y=\"-563.32\" font-family=\"Lato\" font-size=\"14.00\">17</text>\n",
|
||
"</g>\n",
|
||
"<!-- 3->17 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>3->17</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M774.26,-600.37C764.21,-597.43 751.24,-593.38 739.99,-589.02 731.83,-585.86 723.11,-581.96 715.39,-578.32\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"708.64,-575.09 716.31,-575.27 711.79,-576.6 714.95,-578.11 714.95,-578.11 714.95,-578.11 711.79,-576.6 713.59,-580.95 708.64,-575.09 708.64,-575.09\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"739.99\" y=\"-597.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 17->2 -->\n",
|
||
"<g id=\"edge39\" class=\"edge\">\n",
|
||
"<title>17->2</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M713.01,-561.69C743.32,-553.14 801.28,-534.4 843.99,-506.02 899.72,-468.98 951.52,-408.35 976.32,-377.07\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"980.92,-371.23 979.07,-378.68 978.75,-373.98 976.59,-376.73 976.59,-376.73 976.59,-376.73 978.75,-373.98 974.11,-374.78 980.92,-371.23 980.92,-371.23\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-518.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 17->3 -->\n",
|
||
"<g id=\"edge40\" class=\"edge\">\n",
|
||
"<title>17->3</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M717.06,-564.14C729.23,-563.68 743.91,-564.68 755.99,-570.02 763.57,-573.37 770.41,-579.17 775.98,-585.09\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"780.74,-590.5 773.75,-587.32 778.05,-588.2 775.74,-585.57 776.12,-585.24 776.49,-584.91 778.8,-587.54 778.48,-583.16 780.74,-590.5 780.74,-590.5\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"739.99\" y=\"-573.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 4 -->\n",
|
||
"<g id=\"node14\" class=\"node\">\n",
|
||
"<title>4</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"992.65\" cy=\"-232.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"992.65\" y=\"-228.32\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
||
"</g>\n",
|
||
"<!-- 4->14 -->\n",
|
||
"<g id=\"edge10\" class=\"edge\">\n",
|
||
"<title>4->14</title>\n",
|
||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M994.3,-213.83C996.18,-190.23 1003.18,-149.53 1028.65,-128.02 1036.87,-121.07 1047.92,-117.95 1058.48,-116.75\"/>\n",
|
||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1065.68,-116.2 1058.94,-119.87 1062.22,-116.96 1058.73,-117.23 1058.7,-116.73 1058.66,-116.23 1062.15,-115.97 1058.46,-113.59 1065.68,-116.2 1065.68,-116.2\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-131.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 18 -->\n",
|
||
"<g id=\"node15\" class=\"node\">\n",
|
||
"<title>18</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1092.98,-212.02 1062.82,-194.02 1092.98,-176.02 1123.15,-194.02 1092.98,-212.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1092.98\" y=\"-190.32\" font-family=\"Lato\" font-size=\"14.00\">18</text>\n",
|
||
"</g>\n",
|
||
"<!-- 4->18 -->\n",
|
||
"<g id=\"edge11\" class=\"edge\">\n",
|
||
"<title>4->18</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1003.09,-217.32C1009.27,-209.12 1018.13,-199.65 1028.65,-195.02 1038.87,-190.52 1050.95,-189.43 1061.81,-189.76\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1069.09,-190.19 1061.92,-192.92 1065.59,-189.98 1062.1,-189.78 1062.1,-189.78 1062.1,-189.78 1065.59,-189.98 1062.28,-186.63 1069.09,-190.19 1069.09,-190.19\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-198.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 18->4 -->\n",
|
||
"<g id=\"edge41\" class=\"edge\">\n",
|
||
"<title>18->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1074.05,-200.95C1057.89,-207.19 1034.03,-216.41 1016.5,-223.19\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1009.89,-225.74 1015.28,-220.28 1013.15,-224.48 1016.42,-223.22 1016.42,-223.22 1016.42,-223.22 1013.15,-224.48 1017.55,-226.16 1009.89,-225.74 1009.89,-225.74\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-221.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5 -->\n",
|
||
"<g id=\"node16\" class=\"node\">\n",
|
||
"<title>5</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"992.65\" cy=\"-118.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"992.65\" y=\"-114.32\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->14 -->\n",
|
||
"<g id=\"edge12\" class=\"edge\">\n",
|
||
"<title>5->14</title>\n",
|
||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M1003.07,-103.26C1009.23,-95.03 1018.09,-85.56 1028.65,-81.02 1035.18,-78.21 1037.93,-78.7 1044.65,-81.02 1056.51,-85.1 1067.67,-93.51 1076.17,-101.29\"/>\n",
|
||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1081.61,-106.5 1074.38,-103.93 1078.74,-104.44 1076.21,-102.02 1076.56,-101.66 1076.91,-101.3 1079.43,-103.72 1078.74,-99.38 1081.61,-106.5 1081.61,-106.5\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-84.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->16 -->\n",
|
||
"<g id=\"edge13\" class=\"edge\">\n",
|
||
"<title>5->16</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M997.38,-135.42C1002.75,-159.01 1013.67,-202.2 1028.65,-237.02 1042.99,-270.36 1065.33,-306.25 1079.29,-327.39\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1083.33,-333.46 1076.83,-329.38 1081.39,-330.55 1079.45,-327.63 1079.45,-327.63 1079.45,-327.63 1081.39,-330.55 1082.07,-325.89 1083.33,-333.46 1083.33,-333.46\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-271.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->18 -->\n",
|
||
"<g id=\"edge14\" class=\"edge\">\n",
|
||
"<title>5->18</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1007.32,-128.59C1024.54,-141.89 1054.19,-164.81 1073.44,-179.68\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1079.05,-184.02 1071.59,-182.24 1076.28,-181.88 1073.51,-179.74 1073.51,-179.74 1073.51,-179.74 1076.28,-181.88 1075.44,-177.25 1079.05,-184.02 1079.05,-184.02\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-159.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 19 -->\n",
|
||
"<g id=\"node17\" class=\"node\">\n",
|
||
"<title>19</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1092.98,-41.02 1062.82,-23.02 1092.98,-5.02 1123.15,-23.02 1092.98,-41.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"1092.98\" y=\"-19.32\" font-family=\"Lato\" font-size=\"14.00\">19</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->19 -->\n",
|
||
"<g id=\"edge15\" class=\"edge\">\n",
|
||
"<title>5->19</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M993.21,-99.85C993.68,-73.91 998.89,-26.95 1028.65,-5.02 1041.54,4.48 1059.29,-1.8 1072.71,-9.44\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1078.92,-13.24 1071.3,-12.27 1075.93,-11.41 1072.95,-9.59 1072.95,-9.59 1072.95,-9.59 1075.93,-11.41 1074.59,-6.9 1078.92,-13.24 1078.92,-13.24\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-8.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 19->5 -->\n",
|
||
"<g id=\"edge42\" class=\"edge\">\n",
|
||
"<title>19->5</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1074.88,-30.47C1061.2,-37.05 1042.14,-47.67 1028.65,-61.02 1018.65,-70.92 1010.27,-84.22 1004.22,-95.49\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1000.94,-101.84 1001.35,-94.18 1002.54,-98.73 1004.15,-95.63 1004.15,-95.63 1004.15,-95.63 1002.54,-98.73 1006.95,-97.07 1000.94,-101.84 1000.94,-101.84\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-64.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6 -->\n",
|
||
"<g id=\"node18\" class=\"node\">\n",
|
||
"<title>6</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"591.32\" cy=\"-329.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"591.32\" y=\"-325.32\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->10 -->\n",
|
||
"<g id=\"edge16\" class=\"edge\">\n",
|
||
"<title>6->10</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M607.02,-338.11C643.9,-360.04 743.92,-414.02 834.99,-414.02 834.99,-414.02 834.99,-414.02 993.65,-414.02 1014.91,-414.02 1038.74,-413.31 1057.62,-412.58\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1064.86,-412.29 1057.99,-415.72 1061.36,-412.43 1057.87,-412.57 1057.87,-412.57 1057.87,-412.57 1061.36,-412.43 1057.74,-409.42 1064.86,-412.29 1064.86,-412.29\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-417.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->11 -->\n",
|
||
"<g id=\"edge17\" class=\"edge\">\n",
|
||
"<title>6->11</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M603.1,-343.04C615.44,-358.02 637.1,-381.19 661.32,-393.02 820.37,-470.7 896.23,-404.58 1044.65,-501.02 1059.35,-510.57 1071.81,-526.1 1080.25,-538.54\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1084.29,-544.71 1077.82,-540.58 1082.37,-541.78 1080.46,-538.86 1080.46,-538.86 1080.46,-538.86 1082.37,-541.78 1083.09,-537.13 1084.29,-544.71 1084.29,-544.71\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-441.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 20 -->\n",
|
||
"<g id=\"node19\" class=\"node\">\n",
|
||
"<title>20</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"691.65,-335.02 661.49,-317.02 691.65,-299.02 721.82,-317.02 691.65,-335.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"691.65\" y=\"-313.32\" font-family=\"Lato\" font-size=\"14.00\">20</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->20 -->\n",
|
||
"<g id=\"edge18\" class=\"edge\">\n",
|
||
"<title>6->20</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M609.45,-326.93C623.1,-325.26 642.58,-322.89 659.04,-320.88\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"666.36,-319.98 659.79,-323.96 662.88,-320.41 659.41,-320.83 659.41,-320.83 659.41,-320.83 662.88,-320.41 659.03,-317.7 666.36,-319.98 666.36,-319.98\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"627.32\" y=\"-327.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 21 -->\n",
|
||
"<g id=\"node20\" class=\"node\">\n",
|
||
"<title>21</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"691.65,-271.02 661.49,-253.02 691.65,-235.02 721.82,-253.02 691.65,-271.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"691.65\" y=\"-249.32\" font-family=\"Lato\" font-size=\"14.00\">21</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->21 -->\n",
|
||
"<g id=\"edge19\" class=\"edge\">\n",
|
||
"<title>6->21</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M605.99,-318.45C623.21,-305.14 652.86,-282.23 672.11,-267.35\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"677.72,-263.01 674.11,-269.79 674.95,-265.15 672.18,-267.29 672.18,-267.29 672.18,-267.29 674.95,-265.15 670.26,-264.8 677.72,-263.01 677.72,-263.01\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"627.32\" y=\"-303.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 20->4 -->\n",
|
||
"<g id=\"edge43\" class=\"edge\">\n",
|
||
"<title>20->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M710.41,-310.17C736.09,-300.43 785.21,-282.37 827.99,-270.02 877.02,-255.85 935.48,-243.3 967.58,-236.77\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"974.77,-235.32 968.53,-239.79 971.34,-236.01 967.91,-236.71 967.91,-236.71 967.91,-236.71 971.34,-236.01 967.29,-233.62 974.77,-235.32 974.77,-235.32\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-273.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7 -->\n",
|
||
"<g id=\"node21\" class=\"node\">\n",
|
||
"<title>7</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"791.99\" cy=\"-317.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"791.99\" y=\"-313.32\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
|
||
"</g>\n",
|
||
"<!-- 20->7 -->\n",
|
||
"<g id=\"edge44\" class=\"edge\">\n",
|
||
"<title>20->7</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M721.89,-317.02C736.13,-317.02 753.04,-317.02 766.57,-317.02\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"773.71,-317.02 766.71,-320.17 770.21,-317.52 766.71,-317.52 766.71,-317.02 766.71,-316.52 770.21,-316.52 766.71,-313.87 773.71,-317.02 773.71,-317.02\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"739.99\" y=\"-320.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 21->4 -->\n",
|
||
"<g id=\"edge45\" class=\"edge\">\n",
|
||
"<title>21->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M711.66,-246.85C737.61,-238.79 785.73,-225.1 827.99,-220.02 877.48,-214.07 935.77,-221.86 967.72,-227.39\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"974.87,-228.66 967.43,-230.53 971.43,-228.05 967.98,-227.43 967.98,-227.43 967.98,-227.43 971.43,-228.05 968.54,-224.33 974.87,-228.66 974.87,-228.66\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-223.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 21->6 -->\n",
|
||
"<g id=\"edge46\" class=\"edge\">\n",
|
||
"<title>21->6</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M666.5,-256.04C653.82,-258.61 638.6,-263.34 627.32,-272.02 616.01,-280.72 607.5,-294.2 601.7,-305.87\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"598.6,-312.48 598.72,-304.8 599.63,-309.1 601.12,-305.93 601.57,-306.14 602.02,-306.35 600.53,-309.52 604.42,-307.48 598.6,-312.48 598.6,-312.48\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"627.32\" y=\"-275.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->12 -->\n",
|
||
"<g id=\"edge20\" class=\"edge\">\n",
|
||
"<title>7->12</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M793.07,-335.08C793.65,-390.6 797.9,-557.65 827.99,-601.02 846.08,-627.1 859.58,-634.02 891.32,-634.02 891.32,-634.02 891.32,-634.02 1197.76,-634.02 1254.92,-634.02 1283.46,-556.56 1294.26,-517.29\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"1296.07,-510.42 1297.33,-518 1295.18,-513.81 1294.28,-517.19 1294.28,-517.19 1294.28,-517.19 1295.18,-513.81 1291.24,-516.39 1296.07,-510.42 1296.07,-510.42\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1028.65\" y=\"-637.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->13 -->\n",
|
||
"<g id=\"edge21\" class=\"edge\">\n",
|
||
"<title>7->13</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M794.17,-335.28C796.74,-364.78 804.61,-424.06 827.99,-468.02 834.15,-479.6 858.04,-503.91 874.64,-520.1\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"879.96,-525.25 872.74,-522.64 877.45,-522.81 874.93,-520.38 874.93,-520.38 874.93,-520.38 877.45,-522.81 877.12,-518.12 879.96,-525.25 879.96,-525.25\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-490.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 22 -->\n",
|
||
"<g id=\"node22\" class=\"node\">\n",
|
||
"<title>22</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"892.32,-321.02 862.15,-303.02 892.32,-285.02 922.48,-303.02 892.32,-321.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"892.32\" y=\"-299.32\" font-family=\"Lato\" font-size=\"14.00\">22</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->22 -->\n",
|
||
"<g id=\"edge22\" class=\"edge\">\n",
|
||
"<title>7->22</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M810.01,-315.23C819.94,-314.14 832.69,-312.64 843.99,-311.02 849.67,-310.2 855.72,-309.25 861.54,-308.29\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"868.72,-307.08 862.34,-311.35 865.27,-307.66 861.82,-308.24 861.82,-308.24 861.82,-308.24 865.27,-307.66 861.3,-305.13 868.72,-307.08 868.72,-307.08\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-316.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 23 -->\n",
|
||
"<g id=\"node23\" class=\"node\">\n",
|
||
"<title>23</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"446.33,-439.02 416.16,-421.02 446.33,-403.02 476.49,-421.02 446.33,-439.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"446.33\" y=\"-417.32\" font-family=\"Lato\" font-size=\"14.00\">23</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->23 -->\n",
|
||
"<g id=\"edge23\" class=\"edge\">\n",
|
||
"<title>7->23</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M786.05,-334.18C780.96,-348.59 771.53,-368.47 755.99,-379.02 669.5,-437.68 537.72,-431.72 478.29,-425.26\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"471.08,-424.44 478.39,-422.1 474.55,-424.83 478.03,-425.23 478.03,-425.23 478.03,-425.23 474.55,-424.83 477.67,-428.36 471.08,-424.44 471.08,-424.44\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"627.32\" y=\"-426.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 22->4 -->\n",
|
||
"<g id=\"edge47\" class=\"edge\">\n",
|
||
"<title>22->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M911.27,-296.08C924.54,-290.46 942.67,-281.73 956.65,-271.02 963.87,-265.49 970.79,-258.33 976.55,-251.65\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"981.08,-246.21 979.02,-253.6 978.84,-248.9 976.6,-251.58 976.6,-251.58 976.6,-251.58 978.84,-248.9 974.18,-249.57 981.08,-246.21 981.08,-246.21\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"940.65\" y=\"-283.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 22->7 -->\n",
|
||
"<g id=\"edge48\" class=\"edge\">\n",
|
||
"<title>22->7</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M874.35,-295.73C861.42,-291.21 843.29,-287.11 827.99,-292.02 822.06,-293.92 816.28,-297.23 811.18,-300.84\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"805.54,-305.14 809.2,-298.39 808.02,-302.62 810.8,-300.5 811.11,-300.89 811.41,-301.29 808.63,-303.41 813.02,-303.4 805.54,-305.14 805.54,-305.14\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"827.99\" y=\"-295.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 23->4 -->\n",
|
||
"<g id=\"edge49\" class=\"edge\">\n",
|
||
"<title>23->4</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M466.36,-414.7C513.4,-399.67 639.15,-363.02 746.99,-363.02 746.99,-363.02 746.99,-363.02 893.32,-363.02 945.97,-363.02 973.9,-294.49 985.32,-256.56\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"987.39,-249.41 988.47,-257.01 986.42,-252.78 985.45,-256.14 985.45,-256.14 985.45,-256.14 986.42,-252.78 982.42,-255.26 987.39,-249.41 987.39,-249.41\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"739.99\" y=\"-366.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 23->6 -->\n",
|
||
"<g id=\"edge50\" class=\"edge\">\n",
|
||
"<title>23->6</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M454.22,-407.69C462.16,-393.62 476.47,-371.77 494.66,-359.02 506.33,-350.84 542.24,-340.84 566.59,-334.7\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"573.43,-333 567.39,-337.75 570.15,-334.33 566.75,-335.18 566.63,-334.69 566.51,-334.21 569.91,-333.36 565.87,-331.63 573.43,-333 573.43,-333\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"516.99\" y=\"-362.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8 -->\n",
|
||
"<g id=\"node24\" class=\"node\">\n",
|
||
"<title>8</title>\n",
|
||
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"301.33\" cy=\"-498.02\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"301.33\" y=\"-494.32\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8->13 -->\n",
|
||
"<g id=\"edge24\" class=\"edge\">\n",
|
||
"<title>8->13</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M319.42,-501.38C346.16,-506.33 399.57,-515.02 445.33,-515.02 445.33,-515.02 445.33,-515.02 748.99,-515.02 789.05,-515.02 834.79,-523.26 863.36,-529.42\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"870.24,-530.93 862.73,-532.51 866.82,-530.18 863.4,-529.43 863.4,-529.43 863.4,-529.43 866.82,-530.18 864.08,-526.35 870.24,-530.93 870.24,-530.93\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"627.32\" y=\"-518.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8->17 -->\n",
|
||
"<g id=\"edge25\" class=\"edge\">\n",
|
||
"<title>8->17</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M313.61,-511.32C319.9,-517.79 328.27,-525.02 337.33,-529.02 447.09,-577.51 594.03,-574.25 658.29,-569.89\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"665.34,-569.38 658.58,-573.03 661.85,-569.63 658.36,-569.88 658.36,-569.88 658.36,-569.88 661.85,-569.63 658.13,-566.74 665.34,-569.38 665.34,-569.38\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"516.99\" y=\"-574.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8->23 -->\n",
|
||
"<g id=\"edge26\" class=\"edge\">\n",
|
||
"<title>8->23</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M318.17,-490.88C337.37,-482.08 370.55,-466.4 397.99,-451.02 407.19,-445.86 417.08,-439.7 425.44,-434.3\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"431.48,-430.35 427.34,-436.81 428.55,-432.26 425.62,-434.18 425.62,-434.18 425.62,-434.18 428.55,-432.26 423.9,-431.54 431.48,-430.35 431.48,-430.35\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"359.66\" y=\"-484.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 24 -->\n",
|
||
"<g id=\"node25\" class=\"node\">\n",
|
||
"<title>24</title>\n",
|
||
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"446.33,-289.02 416.16,-271.02 446.33,-253.02 476.49,-271.02 446.33,-289.02\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"446.33\" y=\"-267.32\" font-family=\"Lato\" font-size=\"14.00\">24</text>\n",
|
||
"</g>\n",
|
||
"<!-- 8->24 -->\n",
|
||
"<g id=\"edge27\" class=\"edge\">\n",
|
||
"<title>8->24</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M304.08,-480.05C308.16,-441.42 319.32,-351.99 337.33,-328.02 357.11,-301.68 392.67,-286.31 417.56,-278.3\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"424.28,-276.24 418.51,-281.31 420.93,-277.27 417.59,-278.3 417.59,-278.3 417.59,-278.3 420.93,-277.27 416.66,-275.28 424.28,-276.24 424.28,-276.24\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"359.66\" y=\"-331.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 24->5 -->\n",
|
||
"<g id=\"edge51\" class=\"edge\">\n",
|
||
"<title>24->5</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M454.69,-257.61C473.07,-226.1 524.3,-150.02 590.32,-150.02 590.32,-150.02 590.32,-150.02 893.32,-150.02 920.78,-150.02 950.53,-138.59 970.03,-129.4\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"976.48,-126.26 971.56,-132.15 973.33,-127.79 970.19,-129.32 970.19,-129.32 970.19,-129.32 973.33,-127.79 968.81,-126.49 976.48,-126.26 976.48,-126.26\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"739.99\" y=\"-153.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 24->8 -->\n",
|
||
"<g id=\"edge52\" class=\"edge\">\n",
|
||
"<title>24->8</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M433.02,-281.39C426.98,-287.15 420.12,-294.8 415.99,-303.02 396.9,-341.03 422.65,-362.36 397.99,-397.02 379.95,-422.38 358.94,-409.62 337.33,-432.02 333.92,-435.55 322.3,-457.99 313.38,-475.74\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"310.23,-482.02 310.55,-474.35 311.35,-478.67 312.92,-475.54 313.36,-475.76 313.81,-475.99 312.24,-479.12 316.18,-477.17 310.23,-482.02 310.23,-482.02\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"359.66\" y=\"-435.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 25->8 -->\n",
|
||
"<g id=\"edge53\" class=\"edge\">\n",
|
||
"<title>25->8</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M184.57,-503.69C210.97,-502.39 250.65,-500.45 276.02,-499.21\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"283.08,-498.86 276.25,-502.35 279.61,-499.53 276.12,-499.7 276.09,-499.2 276.07,-498.71 279.56,-498.53 275.94,-496.06 283.08,-498.86 283.08,-498.86\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"227\" y=\"-505.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 26->3 -->\n",
|
||
"<g id=\"edge54\" class=\"edge\">\n",
|
||
"<title>26->3</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M259.54,-632.49C285.66,-636.03 329.07,-641.02 366.66,-641.02 366.66,-641.02 366.66,-641.02 692.65,-641.02 720.75,-641.02 750.75,-627.9 770.13,-617.5\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"776.27,-614.1 771.67,-620.25 773.45,-616.23 770.39,-617.93 770.15,-617.49 769.91,-617.05 772.97,-615.36 768.62,-614.74 776.27,-614.1 776.27,-614.1\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"516.99\" y=\"-644.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 27->6 -->\n",
|
||
"<g id=\"edge55\" class=\"edge\">\n",
|
||
"<title>27->6</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M388.56,-364.22C413.24,-357.25 456.71,-345.64 494.66,-339.02 518.87,-334.79 546.87,-332.12 566.29,-330.61\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"573.29,-330.09 566.54,-333.75 569.84,-330.85 566.35,-331.11 566.31,-330.61 566.27,-330.11 569.76,-329.85 566.07,-327.47 573.29,-330.09 573.29,-330.09\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"438.33\" y=\"-359.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 28->0 -->\n",
|
||
"<g id=\"edge56\" class=\"edge\">\n",
|
||
"<title>28->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M555.42,-679.02C577.2,-679.02 607.62,-679.02 634.32,-679.02 634.32,-679.02 634.32,-679.02 893.32,-679.02 942.93,-679.02 971.91,-617 984.36,-581.76\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"986.64,-575.1 987.36,-582.74 985.98,-578.57 984.85,-581.88 984.38,-581.72 983.9,-581.56 985.03,-578.25 981.4,-580.71 986.64,-575.1 986.64,-575.1\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"739.99\" y=\"-682.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 15->14 -->\n",
|
||
"<g id=\"edge37\" class=\"edge\">\n",
|
||
"<title>15->14</title>\n",
|
||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M1175.31,-118.02C1162.45,-118.02 1145.49,-118.02 1130.39,-118.02\"/>\n",
|
||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1123.15,-118.02 1130.15,-114.87 1126.65,-117.52 1130.15,-117.52 1130.15,-118.02 1130.15,-118.52 1126.65,-118.52 1130.15,-121.17 1123.15,-118.02 1123.15,-118.02\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"1141.32\" y=\"-121.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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": "d5a53d3f",
|
||
"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 possibles 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": "cdf8f5f1",
|
||
"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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->2 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->3 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->4 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->1 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->2 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->3 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->4 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->2 -->\n",
|
||
"<g id=\"edge11\" class=\"edge\">\n",
|
||
"<title>2->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->4 -->\n",
|
||
"<g id=\"edge10\" class=\"edge\">\n",
|
||
"<title>2->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->3 -->\n",
|
||
"<g id=\"edge15\" class=\"edge\">\n",
|
||
"<title>3->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 & 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->4 -->\n",
|
||
"<g id=\"edge13\" class=\"edge\">\n",
|
||
"<title>3->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 & 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->5 -->\n",
|
||
"<g id=\"edge12\" class=\"edge\">\n",
|
||
"<title>3->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 & !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->6 -->\n",
|
||
"<g id=\"edge14\" class=\"edge\">\n",
|
||
"<title>3->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 & !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->4 -->\n",
|
||
"<g id=\"edge17\" class=\"edge\">\n",
|
||
"<title>4->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->5 -->\n",
|
||
"<g id=\"edge16\" class=\"edge\">\n",
|
||
"<title>4->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->4 -->\n",
|
||
"<g id=\"edge19\" class=\"edge\">\n",
|
||
"<title>5->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->5 -->\n",
|
||
"<g id=\"edge18\" class=\"edge\">\n",
|
||
"<title>5->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->3 -->\n",
|
||
"<g id=\"edge23\" class=\"edge\">\n",
|
||
"<title>6->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 & 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->4 -->\n",
|
||
"<g id=\"edge21\" class=\"edge\">\n",
|
||
"<title>6->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 & 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->5 -->\n",
|
||
"<g id=\"edge20\" class=\"edge\">\n",
|
||
"<title>6->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 & !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->6 -->\n",
|
||
"<g id=\"edge22\" class=\"edge\">\n",
|
||
"<title>6->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 & !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.jupyter.SVG object>"
|
||
]
|
||
},
|
||
"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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->1 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->2 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->2 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->1 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->1 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->2 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->2 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->1 -->\n",
|
||
"<g id=\"edge10\" class=\"edge\">\n",
|
||
"<title>2->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 & !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->1 -->\n",
|
||
"<g id=\"edge12\" class=\"edge\">\n",
|
||
"<title>2->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 & !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->2 -->\n",
|
||
"<g id=\"edge11\" class=\"edge\">\n",
|
||
"<title>2->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 & 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->2 -->\n",
|
||
"<g id=\"edge13\" class=\"edge\">\n",
|
||
"<title>2->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 & 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.jupyter.SVG object>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"simplification lvl 2 : bisimulation-based reduction with output 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->1 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->1 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->1 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->0 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->0 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->1 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->0 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->0 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>0->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 & !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.jupyter.SVG object>"
|
||
]
|
||
},
|
||
"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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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->1 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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->0 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>1->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->1 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>1->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.jupyter.SVG object>"
|
||
]
|
||
},
|
||
"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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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->1 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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->0 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>1->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->1 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>1->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.jupyter.SVG object>"
|
||
]
|
||
},
|
||
"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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->0 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->0 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->1 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->0 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->0 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->1 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->1 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>1->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 & !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.jupyter.SVG object>"
|
||
]
|
||
},
|
||
"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 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 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_separated_mealy(game, si)\n",
|
||
" display(mealy.show())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "511093c3",
|
||
"metadata": {},
|
||
"source": [
|
||
"If needed, a separated Mealy machine can be turned into game shape using `split_sepearated_mealy()`, which is more efficient than `split_2step()`."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "cc977286",
|
||
"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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->0 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->0 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->1 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->0 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->0 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->1 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->1 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>1->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 & !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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->2 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & !i1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->2 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>0->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 & !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->3 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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 & i1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->3 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>0->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 & 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->1 -->\n",
|
||
"<g id=\"edge10\" class=\"edge\">\n",
|
||
"<title>2->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->0 -->\n",
|
||
"<g id=\"edge11\" class=\"edge\">\n",
|
||
"<title>3->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->4 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>1->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 & i1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1->4 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>1->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 & 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->5 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>1->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 & !i1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1->5 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>1->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 & !i1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 4->0 -->\n",
|
||
"<g id=\"edge12\" class=\"edge\">\n",
|
||
"<title>4->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->1 -->\n",
|
||
"<g id=\"edge13\" class=\"edge\">\n",
|
||
"<title>5->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": "aa6fe484",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Converting the separated mealy machine to AIGER\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": "78261ec4",
|
||
"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->o0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>6->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->L0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>2->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 'spot::aig_ptr *' at 0x7fe9bc79ba50> >"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"aig = spot.mealy_machine_to_aig(mealy, \"isop\")\n",
|
||
"display(aig)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f95dc6b7",
|
||
"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": "14410565",
|
||
"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=\"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->o0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>6->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->L0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>2->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": "9ccbc2e2",
|
||
"metadata": {},
|
||
"source": [
|
||
"To encode the circuit in the aig format (ASCII version) use:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "06e485d0",
|
||
"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": "5f006648",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Adding more inputs and outputs by force"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9905208f",
|
||
"metadata": {},
|
||
"source": [
|
||
"It can happen that propositions declared as output are ommited 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": "560a7e46",
|
||
"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=\"259pt\"\n",
|
||
" viewBox=\"0.00 0.00 392.00 258.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 254.92)\">\n",
|
||
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-254.92 388,-254.92 388,4 -4,4\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"17\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"38\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
|
||
"<text text-anchor=\"start\" x=\"54\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"96\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
||
"<text text-anchor=\"start\" x=\"112\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"158\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"<text text-anchor=\"start\" x=\"174\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"216\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||
"<text text-anchor=\"start\" x=\"232\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"278\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"<text text-anchor=\"start\" x=\"294\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"332\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||
"<text text-anchor=\"start\" x=\"348\" y=\"-236.72\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n",
|
||
"<text text-anchor=\"start\" x=\"136.5\" y=\"-222.72\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 6]</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=\"-96.92\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"56\" y=\"-93.22\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
||
"</g>\n",
|
||
"<!-- I->3 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->3</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-96.92C2.79,-96.92 17.15,-96.92 30.63,-96.92\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-96.92 30.94,-100.07 34.44,-96.92 30.94,-96.92 30.94,-96.92 30.94,-96.92 34.44,-96.92 30.94,-93.77 37.94,-96.92 37.94,-96.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,-155.92 126,-137.92 153,-119.92 180,-137.92 153,-155.92\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"153\" y=\"-134.22\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
|
||
"</g>\n",
|
||
"<!-- 3->6 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>3->6</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M72.69,-103.69C88.13,-110.35 111.89,-120.6 129.37,-128.15\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"135.97,-131 128.3,-131.12 132.76,-129.61 129.54,-128.22 129.54,-128.22 129.54,-128.22 132.76,-129.61 130.79,-125.33 135.97,-131 135.97,-131\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"94\" y=\"-136.72\" font-family=\"Lato\" font-size=\"14.00\">i0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-121.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</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,-88.92 126,-70.92 153,-52.92 180,-70.92 153,-88.92\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"153\" y=\"-67.22\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
|
||
"</g>\n",
|
||
"<!-- 3->7 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>3->7</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M69.9,-84.83C76.09,-79.83 83.92,-74.58 92,-71.92 101.71,-68.71 112.8,-67.82 122.78,-67.94\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"129.81,-68.18 122.71,-71.09 126.32,-68.06 122.82,-67.94 122.82,-67.94 122.82,-67.94 126.32,-68.06 122.93,-64.79 129.81,-68.18 129.81,-68.18\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-90.72\" font-family=\"Lato\" font-size=\"14.00\">!i0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-75.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</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->4 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 4->0 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>4->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=\"#e31a1c\">❺</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->5 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>1->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=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 5->1 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>5->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=\"#e31a1c\">❺</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=\"-177.92\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"255\" y=\"-174.22\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2->6 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>2->6</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M240.9,-166.08C234.66,-161.02 226.86,-155.48 219,-151.92 207.86,-146.87 194.8,-143.6 183.32,-141.5\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"176.41,-140.34 183.83,-138.39 179.86,-140.92 183.31,-141.5 183.31,-141.5 183.31,-141.5 179.86,-140.92 182.79,-144.61 176.41,-140.34 176.41,-140.34\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"204\" y=\"-170.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"200.5\" y=\"-155.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->0 -->\n",
|
||
"<g id=\"edge9\" class=\"edge\">\n",
|
||
"<title>6->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M163.02,-126.19C171.04,-116.8 183.68,-104.35 198,-98.92 207.95,-95.14 219.62,-94.59 229.73,-95.21\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"236.77,-95.82 229.52,-98.35 233.24,-96.02 229.75,-95.71 229.8,-95.21 229.84,-94.71 233.33,-95.02 230.07,-92.07 236.77,-95.82 236.77,-95.82\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"200\" y=\"-117.72\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"200.5\" y=\"-102.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
||
"</g>\n",
|
||
"<!-- 6->2 -->\n",
|
||
"<g id=\"edge10\" class=\"edge\">\n",
|
||
"<title>6->2</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M162.07,-150.27C169.83,-160.92 182.63,-175.55 198,-181.92 208,-186.06 219.86,-185.85 230.09,-184.3\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"237.2,-182.96 230.9,-187.35 233.76,-183.61 230.32,-184.25 230.32,-184.25 230.32,-184.25 233.76,-183.61 229.73,-181.16 237.2,-182.96 237.2,-182.96\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"198\" y=\"-203.72\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"200.5\" y=\"-188.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
||
"</g>\n",
|
||
"<!-- 7->1 -->\n",
|
||
"<g id=\"edge11\" class=\"edge\">\n",
|
||
"<title>7->1</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M166.34,-61.67C174.78,-55.93 186.48,-49.07 198,-45.92 208.16,-43.13 219.76,-42.53 229.75,-42.75\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"237.03,-43.07 229.9,-45.91 233.51,-43.42 230.01,-43.27 230.04,-42.77 230.06,-42.27 233.55,-42.42 230.17,-39.62 237.03,-43.07 237.03,-43.07\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"198\" y=\"-64.72\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"200.5\" y=\"-49.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</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 0x7fe9bc6a8360> >"
|
||
]
|
||
},
|
||
"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=\"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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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->1 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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->1 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>1->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"
|
||
],
|
||
"text/plain": [
|
||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe9bd884390> >"
|
||
]
|
||
},
|
||
"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->6 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>4->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->L0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>6->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->o0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>6->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->6 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>2->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 'spot::aig_ptr *' at 0x7fe9bc6a8660> >"
|
||
]
|
||
},
|
||
"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_separated_mealy(game)\n",
|
||
"display(mealy)\n",
|
||
"aig = spot.mealy_machine_to_aig(mealy, \"isop\")\n",
|
||
"display(aig)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "06d42ec3",
|
||
"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": "6ea759ea",
|
||
"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->8 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>6->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->L0 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>8->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->o0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>8->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->8 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>2->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->o1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 'spot::aig_ptr *' at 0x7fe9bc6a8900> >"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"display(spot.mealy_machine_to_aig(mealy, \"isop\", [\"i0\", \"i1\"], [\"o0\", \"o1\"]))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4135f43e",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Combining mealy machines\n",
|
||
"\n",
|
||
"It can happen that the complet 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 aiger circuit.\n",
|
||
"\n",
|
||
"This can be done using the function `mealy_machines_to_aig()`, which takes a vector of separated mealy machines as argument.\n",
|
||
"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 strucuture."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"id": "4f9be142",
|
||
"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=\"236pt\"\n",
|
||
" viewBox=\"0.00 0.00 286.00 236.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 232.28)\">\n",
|
||
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-232.28 282,-232.28 282,4 -4,4\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"27.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"48.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"<text text-anchor=\"start\" x=\"64.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"106.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||
"<text text-anchor=\"start\" x=\"122.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"168.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"<text text-anchor=\"start\" x=\"184.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"222.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||
"<text text-anchor=\"start\" x=\"238.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
|
||
"<text text-anchor=\"start\" x=\"83.5\" y=\"-200.08\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</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=\"-93.28\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"56\" y=\"-89.58\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
||
"</g>\n",
|
||
"<!-- I->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-93.28C2.79,-93.28 17.15,-93.28 30.63,-93.28\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-93.28 30.94,-96.43 34.44,-93.28 30.94,-93.28 30.94,-93.28 30.94,-93.28 34.44,-93.28 30.94,-90.13 37.94,-93.28 37.94,-93.28\"/>\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,-151.28 224,-133.28 251,-115.28 278,-133.28 251,-151.28\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"251\" y=\"-129.58\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->1</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M62.13,-110.41C67.26,-124.18 76.64,-142.61 92,-151.28 135.36,-175.76 196.05,-156.81 228.13,-143.47\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"234.89,-140.57 229.71,-146.22 231.68,-141.95 228.46,-143.33 228.46,-143.33 228.46,-143.33 231.68,-141.95 227.22,-140.44 234.89,-140.57 234.89,-140.57\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-181.08\" font-family=\"Lato\" font-size=\"14.00\">(!i0 & !i1) | (i0 & i1)</text>\n",
|
||
"<text text-anchor=\"start\" x=\"141\" y=\"-166.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</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,-71.28 224,-53.28 251,-35.28 278,-53.28 251,-71.28\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"251\" y=\"-49.58\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->2 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->2</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M70,-81.48C76.21,-76.54 84.03,-71.26 92,-68.28 134,-52.59 186.43,-50.79 219.07,-51.55\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"226.12,-51.77 219.03,-54.7 222.62,-51.66 219.13,-51.55 219.13,-51.55 219.13,-51.55 222.62,-51.66 219.22,-48.41 226.12,-51.77 226.12,-51.77\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-87.08\" font-family=\"Lato\" font-size=\"14.00\">(!i0 & i1) | (i0 & !i1)</text>\n",
|
||
"<text text-anchor=\"start\" x=\"141\" y=\"-72.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1->0 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>1->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M233.93,-126.61C225.7,-123.4 215.44,-119.73 206,-117.28 194.17,-114.2 120.45,-102.86 81.33,-96.94\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"73.99,-95.83 81.39,-93.76 77.53,-95.86 80.99,-96.38 80.92,-96.88 80.84,-97.37 77.38,-96.85 80.45,-99.99 73.99,-95.83 73.99,-95.83\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"138.5\" y=\"-136.08\" font-family=\"Lato\" font-size=\"14.00\">!o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"141\" y=\"-121.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2->0 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>2->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M240.46,-42.08C232.31,-33.45 219.76,-22.19 206,-17.28 158.28,-0.24 134.67,10.05 92,-17.28 74.55,-28.45 65.68,-50.76 61.25,-68.34\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"59.61,-75.53 58.09,-68.01 59.9,-72.01 60.68,-68.59 61.16,-68.71 61.65,-68.82 60.87,-72.23 64.23,-69.41 59.61,-75.53 59.61,-75.53\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"140.5\" y=\"-36.08\" font-family=\"Lato\" font-size=\"14.00\">o0</text>\n",
|
||
"<text text-anchor=\"start\" x=\"141\" y=\"-21.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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=\"236pt\"\n",
|
||
" viewBox=\"0.00 0.00 286.00 236.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 232.28)\">\n",
|
||
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-232.28 282,-232.28 282,4 -4,4\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"27.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"48.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"<text text-anchor=\"start\" x=\"64.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"106.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||
"<text text-anchor=\"start\" x=\"122.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"168.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"<text text-anchor=\"start\" x=\"184.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
|
||
"<text text-anchor=\"start\" x=\"222.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||
"<text text-anchor=\"start\" x=\"238.5\" y=\"-214.08\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
|
||
"<text text-anchor=\"start\" x=\"83.5\" y=\"-200.08\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</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=\"-93.28\" rx=\"18\" ry=\"18\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"56\" y=\"-89.58\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
||
"</g>\n",
|
||
"<!-- I->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-93.28C2.79,-93.28 17.15,-93.28 30.63,-93.28\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-93.28 30.94,-96.43 34.44,-93.28 30.94,-93.28 30.94,-93.28 30.94,-93.28 34.44,-93.28 30.94,-90.13 37.94,-93.28 37.94,-93.28\"/>\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,-151.28 224,-133.28 251,-115.28 278,-133.28 251,-151.28\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"251\" y=\"-129.58\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->1</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M62.13,-110.41C67.26,-124.18 76.64,-142.61 92,-151.28 135.36,-175.76 196.05,-156.81 228.13,-143.47\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"234.89,-140.57 229.71,-146.22 231.68,-141.95 228.46,-143.33 228.46,-143.33 228.46,-143.33 231.68,-141.95 227.22,-140.44 234.89,-140.57 234.89,-140.57\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-181.08\" font-family=\"Lato\" font-size=\"14.00\">(!i0 & !i1) | (i0 & i1)</text>\n",
|
||
"<text text-anchor=\"start\" x=\"141\" y=\"-166.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</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,-71.28 224,-53.28 251,-35.28 278,-53.28 251,-71.28\"/>\n",
|
||
"<text text-anchor=\"middle\" x=\"251\" y=\"-49.58\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
||
"</g>\n",
|
||
"<!-- 0->2 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->2</title>\n",
|
||
"<path fill=\"none\" stroke=\"black\" d=\"M70,-81.48C76.21,-76.54 84.03,-71.26 92,-68.28 134,-52.59 186.43,-50.79 219.07,-51.55\"/>\n",
|
||
"<polygon fill=\"black\" stroke=\"black\" points=\"226.12,-51.77 219.03,-54.7 222.62,-51.66 219.13,-51.55 219.13,-51.55 219.13,-51.55 222.62,-51.66 219.22,-48.41 226.12,-51.77 226.12,-51.77\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"92\" y=\"-87.08\" font-family=\"Lato\" font-size=\"14.00\">(!i0 & i1) | (i0 & !i1)</text>\n",
|
||
"<text text-anchor=\"start\" x=\"141\" y=\"-72.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||
"</g>\n",
|
||
"<!-- 1->0 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>1->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M233.93,-126.61C225.7,-123.4 215.44,-119.73 206,-117.28 194.17,-114.2 120.45,-102.86 81.33,-96.94\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"73.99,-95.83 81.39,-93.76 77.53,-95.86 80.99,-96.38 80.92,-96.88 80.84,-97.37 77.38,-96.85 80.45,-99.99 73.99,-95.83 73.99,-95.83\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"140.5\" y=\"-136.08\" font-family=\"Lato\" font-size=\"14.00\">o1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"141\" y=\"-121.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
||
"</g>\n",
|
||
"<!-- 2->0 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>2->0</title>\n",
|
||
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M240.46,-42.08C232.31,-33.45 219.76,-22.19 206,-17.28 158.28,-0.24 134.67,10.05 92,-17.28 74.55,-28.45 65.68,-50.76 61.25,-68.34\"/>\n",
|
||
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"59.61,-75.53 58.09,-68.01 59.9,-72.01 60.68,-68.59 61.16,-68.71 61.65,-68.82 60.87,-72.23 64.23,-69.41 59.61,-75.53 59.61,-75.53\"/>\n",
|
||
"<text text-anchor=\"start\" x=\"138.5\" y=\"-36.08\" font-family=\"Lato\" font-size=\"14.00\">!o1</text>\n",
|
||
"<text text-anchor=\"start\" x=\"141\" y=\"-21.08\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & !i1) | (i0 & 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->0 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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 & i1) | (i0 & !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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & !i1) | (i0 & 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->0 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>0->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 & i1) | (i0 & !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:\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->10 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>6->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->10 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>8->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->o0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>10->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->o1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>10->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->6 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>2->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->8 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>2->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->6 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>4->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->8 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>4->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 'spot::aig_ptr *' at 0x7fe9bc6ae030> >"
|
||
]
|
||
},
|
||
"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",
|
||
"print(\"Circuit implementing both machines:\")\n",
|
||
"aig = spot.mealy_machines_to_aig([strat1, strat2], \"isop\")\n",
|
||
"display(aig)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b3985f04",
|
||
"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": "3bc0b1f2",
|
||
"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": "1455e6ab",
|
||
"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->10 -->\n",
|
||
"<g id=\"edge7\" class=\"edge\">\n",
|
||
"<title>6->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->o1 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>6->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->10 -->\n",
|
||
"<g id=\"edge8\" class=\"edge\">\n",
|
||
"<title>8->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->o0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>10->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->6 -->\n",
|
||
"<g id=\"edge3\" class=\"edge\">\n",
|
||
"<title>2->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->8 -->\n",
|
||
"<g id=\"edge5\" class=\"edge\">\n",
|
||
"<title>2->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->6 -->\n",
|
||
"<g id=\"edge4\" class=\"edge\">\n",
|
||
"<title>4->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->8 -->\n",
|
||
"<g id=\"edge6\" class=\"edge\">\n",
|
||
"<title>4->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 'spot::aig_ptr *' at 0x7fe9bc6a8d50> >"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"this_aig = spot.aiger_circuit(aag_txt)\n",
|
||
"display(this_aig)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "0c418256",
|
||
"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": "bd4b6aa2",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"((2, 4), (3, 5), (7, 9))\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(this_aig.gates())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "94fd22a1",
|
||
"metadata": {},
|
||
"source": [
|
||
"An aiger 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": "b157ec16",
|
||
"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->0 -->\n",
|
||
"<g id=\"edge1\" class=\"edge\">\n",
|
||
"<title>I->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->0 -->\n",
|
||
"<g id=\"edge2\" class=\"edge\">\n",
|
||
"<title>0->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 & !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 & !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 & 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 & 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 & b) | (a & !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 & !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 0x7fe9bc6a8330> >"
|
||
]
|
||
},
|
||
"execution_count": 16,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"this_aig.as_automaton()"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.9.2"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|