spot/tests/python/automata.ipynb
Alexandre Duret-Lutz 71fef458e1 python: define our own SVG DisplayObject
This is to workaround differences in minidom's pretty-printing that
occurred between Python 3.7 and 3.8.

* python/spot/jupyter.py (SVG): New class.
* python/spot/__init__.py: Use it.
* tests/python/_altscc.ipynb, tests/python/alternation.ipynb,
tests/python/automata.ipynb, tests/python/formulas.ipynb,
tests/python/gen.ipynb, tests/python/highlighting.ipynb,
tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
tests/python/product.ipynb, tests/python/randaut.ipynb,
tests/python/testingaut.ipynb, tests/python/twagraph-internals.ipynb,
tests/python/word.ipynb: Adjust.
2019-12-08 13:29:26 +01:00

3742 lines
237 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import display\n",
"import spot\n",
"from spot.jupyter import display_inline\n",
"spot.setup()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To build an automaton from an LTL formula, simply call `translate()` with a formula, and a list of options to characterize the automaton you want (those options have the same name as the long options name of the `ltl2tgba` tool, and they can be abbreviated)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"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=\"468pt\" height=\"329pt\"\n",
" viewBox=\"0.00 0.00 468.00 328.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 324.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-324.8 464,-324.8 464,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"207\" y=\"-290.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-120C2.79,-120 17.15,-120 30.63,-120\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-120 30.94,-123.15 34.44,-120 30.94,-120 30.94,-120 30.94,-120 34.44,-120 30.94,-116.85 37.94,-120 37.94,-120\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-137.04C48.32,-146.86 50.45,-156 56,-156 60.17,-156 62.4,-150.86 62.71,-144.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-137.04 65.85,-143.88 62.54,-140.53 62.71,-144.03 62.71,-144.03 62.71,-144.03 62.54,-140.53 59.56,-144.18 62.38,-137.04 62.38,-137.04\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"192\" cy=\"-214\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"192\" cy=\"-214\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-210.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.14,-133.6C74.64,-141.03 83.25,-150.1 92,-157 115.04,-175.17 144.53,-191.38 165.31,-201.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.73,-205.01 164.06,-204.72 168.59,-203.46 165.46,-201.9 165.46,-201.9 165.46,-201.9 168.59,-203.46 166.85,-199.08 171.73,-205.01 171.73,-205.01\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-197.8\" font-family=\"Lato\" font-size=\"14.00\">b &amp; c &amp; d</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"332.5\" cy=\"-157\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"332.5\" y=\"-153.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.17,-122.31C121.25,-128.66 252.51,-146.35 307.15,-153.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"314.34,-154.69 306.98,-156.87 310.87,-154.22 307.4,-153.75 307.4,-153.75 307.4,-153.75 310.87,-154.22 307.82,-150.63 314.34,-154.69 314.34,-154.69\"/>\n",
"<text text-anchor=\"start\" x=\"172.5\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\">b &amp; !d</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"442\" cy=\"-222\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"442\" y=\"-218.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.8,-116.59C120.18,-107.99 253.04,-88.91 351,-130 385.09,-144.3 412.71,-178.54 427.98,-200.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"431.95,-206.97 425.46,-202.88 430.02,-204.05 428.08,-201.13 428.08,-201.13 428.08,-201.13 430.02,-204.05 430.71,-199.39 431.95,-206.97 431.95,-206.97\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">b &amp; !c &amp; d</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</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\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.01,-103.85C71.18,-92.69 80.58,-78.08 92,-68 114.57,-48.08 146.49,-33.85 167.93,-25.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.77,-23.28 169.27,-28.64 171.48,-24.48 168.19,-25.68 168.19,-25.68 168.19,-25.68 171.48,-24.48 167.11,-22.72 174.77,-23.28 174.77,-23.28\"/>\n",
"<text text-anchor=\"start\" x=\"101.5\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.7,-232.52C176.96,-243.58 181.06,-254 192,-254 200.54,-254 204.92,-247.64 205.12,-239.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"204.3,-232.52 208.23,-239.11 204.7,-235.99 205.1,-239.47 205.1,-239.47 205.1,-239.47 204.7,-235.99 201.98,-239.83 204.3,-232.52 204.3,-232.52\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-257.8\" font-family=\"Lato\" font-size=\"14.00\">c &amp; d</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M214.32,-212.93C236.03,-211.07 270.09,-205.97 296,-192 303.35,-188.04 310.2,-182.09 315.89,-176.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"320.76,-170.91 318.35,-178.19 318.39,-173.49 316.03,-176.07 316.03,-176.07 316.03,-176.07 318.39,-173.49 313.71,-173.94 320.76,-170.91 320.76,-170.91\"/>\n",
"<text text-anchor=\"start\" x=\"257.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">!d</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M204.34,-232.61C211.11,-241.96 220.62,-252.46 232,-258 279.59,-281.18 298.12,-265.4 351,-263 375.52,-261.89 383.85,-268.57 406,-258 413.71,-254.32 420.65,-248.18 426.27,-242.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"431.05,-236.4 428.91,-243.77 428.78,-239.06 426.51,-241.73 426.51,-241.73 426.51,-241.73 428.78,-239.06 424.12,-239.68 431.05,-236.4 431.05,-236.4\"/>\n",
"<text text-anchor=\"start\" x=\"314\" y=\"-269.8\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M314.27,-156.51C293.56,-156.63 258.31,-159.14 232,-173 223.85,-177.29 216.44,-183.94 210.32,-190.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"205.5,-196.23 207.68,-188.88 207.78,-193.58 210.07,-190.93 210.07,-190.93 210.07,-190.93 207.78,-193.58 212.45,-192.99 205.5,-196.23 205.5,-196.23\"/>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M323.27,-172.54C320.67,-182.91 323.75,-193 332.5,-193 339.2,-193 342.58,-187.08 342.62,-179.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"341.73,-172.54 345.73,-179.1 342.17,-176.01 342.6,-179.49 342.6,-179.49 342.6,-179.49 342.17,-176.01 339.48,-179.88 341.73,-172.54 341.73,-172.54\"/>\n",
"<text text-anchor=\"start\" x=\"326\" y=\"-196.8\" font-family=\"Lato\" font-size=\"14.00\">!d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M348.45,-166.04C367.06,-177.29 398.97,-196.58 420.02,-209.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"426.18,-213.04 418.56,-212.11 423.18,-211.23 420.19,-209.42 420.19,-209.42 420.19,-209.42 423.18,-211.23 421.82,-206.72 426.18,-213.04 426.18,-213.04\"/>\n",
"<text text-anchor=\"start\" x=\"369\" y=\"-202.8\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M424.02,-225.02C388.18,-230.87 302.32,-242.06 232,-229 227.8,-228.22 223.46,-227 219.28,-225.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"212.43,-223.08 220.09,-222.54 215.72,-224.29 219,-225.49 219,-225.49 219,-225.49 215.72,-224.29 217.92,-228.45 212.43,-223.08 212.43,-223.08\"/>\n",
"<text text-anchor=\"start\" x=\"329\" y=\"-238.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M432.77,-237.54C430.17,-247.91 433.25,-258 442,-258 448.7,-258 452.08,-252.08 452.12,-244.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"451.23,-237.54 455.23,-244.1 451.67,-241.01 452.1,-244.49 452.1,-244.49 452.1,-244.49 451.67,-241.01 448.98,-244.88 451.23,-237.54 451.23,-237.54\"/>\n",
"<text text-anchor=\"start\" x=\"436.5\" y=\"-261.8\" font-family=\"Lato\" font-size=\"14.00\">!c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M180.57,-32.04C176.3,-42.91 180.11,-54 192,-54 201.29,-54 205.65,-47.23 205.07,-39.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"203.43,-32.04 208.09,-38.14 204.23,-35.45 205.02,-38.86 205.02,-38.86 205.02,-38.86 204.23,-35.45 201.95,-39.57 203.43,-32.04 203.43,-32.04\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde0062f990> >"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = spot.translate('(a U b) & GFc & GFd', 'BA', 'complete'); a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The call the `spot.setup()` in the first cells has installed a default style for the graphviz output. If you want to change this style temporarily, you can call the `show(style)` method explicitely. For instance here is a vertical layout with the default font of GraphViz."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"315pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 314.51 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.9259259259259258 0.9259259259259258) rotate(0) translate(4 386)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-386 336.72,-386 336.72,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"166.36\" y=\"-350.8\" font-family=\"Times,serif\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"210.72\" cy=\"-287\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"210.72\" y=\"-283.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M210.72,-341.85C210.72,-340.21 210.72,-325.85 210.72,-312.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"210.72,-305.06 213.87,-312.06 210.72,-308.56 210.72,-312.06 210.72,-312.06 210.72,-312.06 210.72,-308.56 207.57,-312.06 210.72,-305.06 210.72,-305.06\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M227.76,-293.38C237.58,-294.68 246.72,-292.55 246.72,-287 246.72,-282.83 241.58,-280.6 234.86,-280.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"227.76,-280.62 234.6,-277.15 231.25,-280.46 234.75,-280.29 234.75,-280.29 234.75,-280.29 231.25,-280.46 234.9,-283.44 227.76,-280.62 227.76,-280.62\"/>\n",
"<text text-anchor=\"middle\" x=\"265.22\" y=\"-283.3\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"70.72\" cy=\"-196\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"70.72\" cy=\"-196\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"70.72\" y=\"-192.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M192.88,-283.6C170.74,-279.88 132.73,-270.93 106.72,-251 96.94,-243.51 88.95,-232.57 83,-222.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"79.57,-216.37 85.74,-220.93 81.28,-219.42 82.99,-222.47 82.99,-222.47 82.99,-222.47 81.28,-219.42 80.25,-224.01 79.57,-216.37 79.57,-216.37\"/>\n",
"<text text-anchor=\"middle\" x=\"135.72\" y=\"-239.8\" font-family=\"Times,serif\" font-size=\"14.00\">b &amp; c &amp; d</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"123.72\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"123.72\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206,-269.58C197.63,-241.86 178.62,-184.59 152.72,-141 149.23,-135.12 144.78,-129.21 140.42,-123.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"135.77,-118.57 142.72,-121.82 138.05,-121.22 140.34,-123.87 140.34,-123.87 140.34,-123.87 138.05,-121.22 137.95,-125.93 135.77,-118.57 135.77,-118.57\"/>\n",
"<text text-anchor=\"middle\" x=\"206.22\" y=\"-192.3\" font-family=\"Times,serif\" font-size=\"14.00\">b &amp; !d</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"97.72\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"97.72\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M217.29,-270.23C225.48,-248.37 237.41,-207.76 228.72,-174 213.03,-113.09 200.93,-95.56 153.72,-54 143.36,-44.88 130.36,-36.6 119.5,-30.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"113.38,-26.97 121.03,-27.63 116.44,-28.68 119.5,-30.38 119.5,-30.38 119.5,-30.38 116.44,-28.68 117.96,-33.13 113.38,-26.97 113.38,-26.97\"/>\n",
"<text text-anchor=\"middle\" x=\"254.72\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">b &amp; !c &amp; d</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"289.72\" cy=\"-196\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"289.72\" y=\"-192.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M225.92,-276.92C235.78,-270.52 248.46,-261.28 257.72,-251 266.21,-241.56 273.6,-229.54 279.13,-219.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"282.49,-212.75 282.07,-220.41 280.88,-215.85 279.27,-218.96 279.27,-218.96 279.27,-218.96 280.88,-215.85 276.48,-217.51 282.49,-212.75 282.49,-212.75\"/>\n",
"<text text-anchor=\"middle\" x=\"288.22\" y=\"-239.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M91.3,-204.37C101.57,-205.53 110.72,-202.74 110.72,-196 110.72,-190.95 105.57,-188.11 98.67,-187.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"91.3,-187.63 98.25,-184.36 94.8,-187.57 98.3,-187.51 98.3,-187.51 98.3,-187.51 94.8,-187.57 98.36,-190.66 91.3,-187.63 91.3,-187.63\"/>\n",
"<text text-anchor=\"middle\" x=\"126.72\" y=\"-192.3\" font-family=\"Times,serif\" font-size=\"14.00\">c &amp; d</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M79.42,-175.57C84.37,-165.09 90.91,-152.07 97.72,-141 100.97,-135.72 104.8,-130.23 108.51,-125.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"112.77,-119.57 111.06,-127.06 110.66,-122.37 108.55,-125.16 108.55,-125.16 108.55,-125.16 110.66,-122.37 106.04,-123.26 112.77,-119.57 112.77,-119.57\"/>\n",
"<text text-anchor=\"middle\" x=\"103.72\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">!d</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M53.25,-182.41C28.08,-162.65 -13.46,-122.87 4.72,-87 19.22,-58.38 52.06,-38.93 74.57,-28.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"81.19,-25.41 76.1,-31.16 78,-26.85 74.81,-28.28 74.81,-28.28 74.81,-28.28 78,-26.85 73.51,-25.41 81.19,-25.41 81.19,-25.41\"/>\n",
"<text text-anchor=\"middle\" x=\"23.22\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M121.18,-123.06C119.15,-133.15 115.64,-145.88 109.72,-156 105.26,-163.62 98.96,-170.81 92.72,-176.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"87.53,-181.72 90.5,-174.65 90.09,-179.34 92.65,-176.95 92.65,-176.95 92.65,-176.95 90.09,-179.34 94.8,-179.26 87.53,-181.72 87.53,-181.72\"/>\n",
"<text text-anchor=\"middle\" x=\"132.72\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.38,-112.38C150.35,-114.02 159.72,-111.56 159.72,-105 159.72,-100.08 154.45,-97.46 147.61,-97.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.38,-97.62 147.17,-94.03 143.88,-97.39 147.37,-97.17 147.37,-97.17 147.37,-97.17 143.88,-97.39 147.57,-100.31 140.38,-97.62 140.38,-97.62\"/>\n",
"<text text-anchor=\"middle\" x=\"165.72\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">!d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M118.71,-87.61C114.75,-74.68 109.18,-56.47 104.78,-42.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.72,-35.34 107.78,-41.11 103.74,-38.69 104.77,-42.03 104.77,-42.03 104.77,-42.03 103.74,-38.69 101.75,-42.95 102.72,-35.34 102.72,-35.34\"/>\n",
"<text text-anchor=\"middle\" x=\"131.22\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M95.12,-35.92C90.47,-66.27 80.66,-130.21 75,-167.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.92,-174.12 71.87,-166.72 74.45,-170.66 74.99,-167.2 74.99,-167.2 74.99,-167.2 74.45,-170.66 78.1,-167.68 73.92,-174.12 73.92,-174.12\"/>\n",
"<text text-anchor=\"middle\" x=\"91.22\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.38,-25.38C124.35,-27.02 133.72,-24.56 133.72,-18 133.72,-13.08 128.45,-10.46 121.61,-10.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"114.38,-10.62 121.17,-7.03 117.88,-10.39 121.37,-10.17 121.37,-10.17 121.37,-10.17 117.88,-10.39 121.57,-13.31 114.38,-10.62 114.38,-10.62\"/>\n",
"<text text-anchor=\"middle\" x=\"139.22\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">!c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M306.01,-204.02C316.11,-205.95 325.72,-203.28 325.72,-196 325.72,-190.54 320.31,-187.67 313.35,-187.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"306.01,-187.98 312.74,-184.29 309.5,-187.7 312.99,-187.43 312.99,-187.43 312.99,-187.43 309.5,-187.7 313.24,-190.57 306.01,-187.98 306.01,-187.98\"/>\n",
"<text text-anchor=\"middle\" x=\"329.22\" y=\"-192.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.show(\"v\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you want to add some style options to the existing one, pass a dot to the `show()` function in addition to your own style options:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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=\"424pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 423.69 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.8849557522123894 0.8849557522123894) rotate(0) translate(4 403)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-403 475,-403 475,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-384.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"236.5\" y=\"-384.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"252.5\" y=\"-384.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"212.5\" y=\"-370.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"163.5,-153 163.5,-355 463,-355 463,-153 163.5,-153\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"grey\" points=\"163.5,-8 163.5,-93 215.5,-93 215.5,-8 163.5,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"red\" points=\"30,-110 30,-195 82,-195 82,-110 30,-110\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-136\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-132.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-136C2.79,-136 17.15,-136 30.63,-136\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-136 30.94,-139.15 34.44,-136 30.94,-136 30.94,-136 30.94,-136 34.44,-136 30.94,-132.85 37.94,-136 37.94,-136\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-153.04C48.32,-162.86 50.45,-172 56,-172 60.17,-172 62.4,-166.86 62.71,-160.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-153.04 65.85,-159.88 62.54,-156.53 62.71,-160.03 62.71,-160.03 62.71,-160.03 62.54,-156.53 59.56,-160.18 62.38,-153.04 62.38,-153.04\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"189.5\" cy=\"-245\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"189.5\" y=\"-241.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.47,-149.2C75.07,-156.52 83.68,-165.59 92,-173 116.91,-195.16 148.24,-217.66 168.32,-231.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.17,-235.46 166.61,-234.12 171.28,-233.49 168.39,-231.52 168.39,-231.52 168.39,-231.52 171.28,-233.49 170.17,-228.92 174.17,-235.46 174.17,-235.46\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">b &amp; c &amp; d</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"327.5\" cy=\"-179\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"327.5\" y=\"-175.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.04,-138.63C112.66,-144.61 209.82,-159.72 291,-173 294.68,-173.6 298.58,-174.25 302.39,-174.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"309.53,-176.09 302.11,-178.04 306.08,-175.51 302.63,-174.93 302.63,-174.93 302.63,-174.93 306.08,-175.51 303.15,-171.82 309.53,-176.09 309.53,-176.09\"/>\n",
"<text text-anchor=\"start\" x=\"170\" y=\"-163.8\" font-family=\"Lato\" font-size=\"14.00\">b &amp; !d</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"437\" cy=\"-212\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"437\" y=\"-208.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.97,-133.62C119.63,-127.92 248.25,-116.42 346,-152 373.27,-161.93 400.41,-181.73 417.64,-195.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"423.09,-200.43 415.7,-198.35 420.41,-198.18 417.72,-195.94 417.72,-195.94 417.72,-195.94 420.41,-198.18 419.74,-193.52 423.09,-200.43 423.09,-200.43\"/>\n",
"<text text-anchor=\"start\" x=\"227\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">b &amp; !c &amp; d</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"189.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"189.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.04,-119.89C71.23,-108.74 80.63,-94.14 92,-84 113.89,-64.48 144.77,-50.23 165.66,-42.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"172.33,-39.51 166.91,-44.94 169.06,-40.75 165.79,-42 165.79,-42 165.79,-42 169.06,-40.75 164.67,-39.06 172.33,-39.51 172.33,-39.51\"/>\n",
"<text text-anchor=\"start\" x=\"101.5\" y=\"-87.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.59,-259.42C174.78,-270.17 178.41,-281 189.5,-281 198.16,-281 202.28,-274.39 201.84,-266.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.41,-259.42 204.91,-265.64 201.12,-262.84 201.82,-266.27 201.82,-266.27 201.82,-266.27 201.12,-262.84 198.74,-266.91 200.41,-259.42 200.41,-259.42\"/>\n",
"<text text-anchor=\"start\" x=\"172.5\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\">c &amp; d</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-284.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M197.57,-228.61C203.6,-216.71 213.45,-201.29 227,-193 249.76,-179.07 280.84,-176.79 302.18,-177.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"309.29,-177.45 302.19,-180.36 305.79,-177.33 302.3,-177.21 302.3,-177.21 302.3,-177.21 305.79,-177.33 302.4,-174.06 309.29,-177.45 309.29,-177.45\"/>\n",
"<text text-anchor=\"start\" x=\"252.5\" y=\"-211.8\" font-family=\"Lato\" font-size=\"14.00\">!d</text>\n",
"<text text-anchor=\"start\" x=\"251\" y=\"-196.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M205.66,-253.32C212.05,-256.38 219.69,-259.47 227,-261 254.84,-266.83 262.93,-265.61 291,-261 335.96,-253.61 385.74,-234.14 413.72,-222.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"420.34,-219.19 415.19,-224.88 417.14,-220.59 413.93,-221.99 413.93,-221.99 413.93,-221.99 417.14,-220.59 412.67,-219.1 420.34,-219.19 420.34,-219.19\"/>\n",
"<text text-anchor=\"start\" x=\"309\" y=\"-275.8\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; d</text>\n",
"<text text-anchor=\"start\" x=\"319.5\" y=\"-260.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M317.9,-194.31C311.66,-204 302.35,-215.98 291,-223 267.76,-237.37 236.41,-242.42 214.94,-244.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"207.79,-244.65 214.56,-241.03 211.28,-244.41 214.77,-244.17 214.77,-244.17 214.77,-244.17 211.28,-244.41 214.99,-247.31 207.79,-244.65 207.79,-244.65\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M318.27,-194.54C315.67,-204.91 318.75,-215 327.5,-215 334.2,-215 337.58,-209.08 337.62,-201.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"336.73,-194.54 340.73,-201.1 337.17,-198.01 337.6,-201.49 337.6,-201.49 337.6,-201.49 337.17,-198.01 334.48,-201.88 336.73,-194.54 336.73,-194.54\"/>\n",
"<text text-anchor=\"start\" x=\"321\" y=\"-218.8\" font-family=\"Lato\" font-size=\"14.00\">!d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M344.83,-184.01C362.9,-189.56 392.18,-198.55 412.67,-204.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"419.52,-206.94 411.9,-207.9 416.17,-205.91 412.83,-204.89 412.83,-204.89 412.83,-204.89 416.17,-205.91 413.75,-201.88 419.52,-206.94 419.52,-206.94\"/>\n",
"<text text-anchor=\"start\" x=\"364\" y=\"-203.8\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M425.42,-226.22C410.28,-245.23 380.44,-278.03 346,-291 298.28,-308.97 240.25,-278.49 210.38,-259.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"204.45,-255.17 212.02,-256.43 207.37,-257.11 210.28,-259.05 210.28,-259.05 210.28,-259.05 207.37,-257.11 208.54,-261.67 204.45,-255.17 204.45,-255.17\"/>\n",
"<text text-anchor=\"start\" x=\"324\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M427.77,-227.54C425.17,-237.91 428.25,-248 437,-248 443.7,-248 447.08,-242.08 447.12,-234.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"446.23,-227.54 450.23,-234.1 446.67,-231.01 447.1,-234.49 447.1,-234.49 447.1,-234.49 446.67,-231.01 443.98,-234.88 446.23,-227.54 446.23,-227.54\"/>\n",
"<text text-anchor=\"start\" x=\"431.5\" y=\"-251.8\" font-family=\"Lato\" font-size=\"14.00\">!c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.59,-48.42C174.78,-59.17 178.41,-70 189.5,-70 198.16,-70 202.28,-63.39 201.84,-55.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.41,-48.42 204.91,-54.64 201.12,-51.84 201.82,-55.27 201.82,-55.27 201.82,-55.27 201.12,-51.84 198.74,-55.91 200.41,-48.42 200.41,-48.42\"/>\n",
"<text text-anchor=\"middle\" x=\"189.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.show(\".st\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `translate()` function can also be called with a formula object. Either as a function, or as a method."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$a \\mathbin{\\mathsf{U}} b$"
],
"text/plain": [
"spot.formula(\"a U b\")"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f = spot.formula('a U b'); f"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"171pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 171.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 167,-120.8 167,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"58.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.2,-22C85.07,-22 99.39,-22 111.89,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119,-22 112,-25.15 115.5,-22 112,-22 112,-22 112,-22 115.5,-22 112,-18.85 119,-22 119,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M132.99,-42.58C131.89,-52.84 134.55,-62 141,-62 145.83,-62 148.54,-56.85 149.13,-49.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.01,-42.58 152.27,-49.53 149.06,-46.08 149.12,-49.58 149.12,-49.58 149.12,-49.58 149.06,-46.08 145.97,-49.63 149.01,-42.58 149.01,-42.58\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde0062f9f0> >"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.translate(f)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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=\"171pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 171.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 167,-120.8 167,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"58.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.2,-22C85.07,-22 99.39,-22 111.89,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119,-22 112,-25.15 115.5,-22 112,-22 112,-22 112,-22 115.5,-22 112,-18.85 119,-22 119,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M132.99,-42.58C131.89,-52.84 134.55,-62 141,-62 145.83,-62 148.54,-56.85 149.13,-49.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.01,-42.58 152.27,-49.53 149.06,-46.08 149.12,-49.58 149.12,-49.58 149.12,-49.58 149.06,-46.08 145.97,-49.63 149.01,-42.58 149.01,-42.58\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde006764b0> >"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f.translate()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When used as a method, all the arguments are translation options. Here is a monitor:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"163pt\" height=\"115pt\"\n",
" viewBox=\"0.00 0.00 163.00 115.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 111)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-111 159,-111 159,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"74.5\" y=\"-91.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</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\">1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-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",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</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",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-18C85.12,-18 99.52,-18 111.67,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-18 111.89,-21.15 115.39,-18 111.89,-18 111.89,-18 111.89,-18 115.39,-18 111.89,-14.85 118.89,-18 118.89,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.97,-34.66C128.41,-44.62 130.75,-54 137,-54 141.69,-54 144.18,-48.73 144.47,-41.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"144.03,-34.66 147.6,-41.46 144.24,-38.16 144.46,-41.65 144.46,-41.65 144.46,-41.65 144.24,-38.16 141.31,-41.84 144.03,-34.66 144.03,-34.66\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde00676e70> >"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f.translate('mon')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following three cells show a formulas for which it makes a difference to select `'small'` or `'deterministic'`."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\mathsf{G} a \\lor \\mathsf{G} b \\lor \\mathsf{G} c$"
],
"text/plain": [
"spot.formula(\"Ga | Gb | Gc\")"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f = spot.formula('Ga | Gb | Gc'); f"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"253pt\" height=\"217pt\"\n",
" viewBox=\"0.00 0.00 253.00 216.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 212.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-212.8 249,-212.8 249,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-178.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"109\" cy=\"-113\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"109\" y=\"-109.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M109,-167.85C109,-166.21 109,-151.85 109,-138.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"109,-131.06 112.15,-138.06 109,-134.56 109,-138.06 109,-138.06 109,-138.06 109,-134.56 105.85,-138.06 109,-131.06 109,-131.06\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"22\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"22\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"22\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M96.9,-99.62C82.69,-85.08 58.89,-60.73 41.93,-43.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"36.91,-38.25 44.05,-41.05 39.35,-40.75 41.8,-43.25 41.8,-43.25 41.8,-43.25 39.35,-40.75 39.55,-45.46 36.91,-38.25 36.91,-38.25\"/>\n",
"<text text-anchor=\"start\" x=\"74\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"109\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"109\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"109\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M109,-94.84C109,-82.54 109,-65.68 109,-51.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"109,-44.19 112.15,-51.19 109,-47.69 109,-51.19 109,-51.19 109,-51.19 109,-47.69 105.85,-51.19 109,-44.19 109,-44.19\"/>\n",
"<text text-anchor=\"start\" x=\"109\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"198\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"198\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"198\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M121.38,-99.62C135.92,-85.08 160.27,-60.73 177.61,-43.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"182.75,-38.25 180.03,-45.43 180.28,-40.72 177.8,-43.2 177.8,-43.2 177.8,-43.2 180.28,-40.72 175.57,-40.97 182.75,-38.25 182.75,-38.25\"/>\n",
"<text text-anchor=\"start\" x=\"158\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M42.58,-30.37C52.84,-31.53 62,-28.74 62,-22 62,-16.95 56.85,-14.11 49.95,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"42.58,-13.63 49.52,-10.36 46.08,-13.57 49.58,-13.51 49.58,-13.51 49.58,-13.51 46.08,-13.57 49.63,-16.66 42.58,-13.63 42.58,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"62\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.58,-30.37C139.84,-31.53 149,-28.74 149,-22 149,-16.95 143.85,-14.11 136.95,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"129.58,-13.63 136.52,-10.36 133.08,-13.57 136.58,-13.51 136.58,-13.51 136.58,-13.51 133.08,-13.57 136.63,-16.66 129.58,-13.63 129.58,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"149\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M218.58,-30.37C228.84,-31.53 238,-28.74 238,-22 238,-16.95 232.85,-14.11 225.95,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"218.58,-13.63 225.52,-10.36 222.08,-13.57 225.58,-13.51 225.58,-13.51 225.58,-13.51 222.08,-13.57 225.63,-16.66 218.58,-13.63 218.58,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f.translate('ba', 'small').show('.v')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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=\"597pt\" height=\"320pt\"\n",
" viewBox=\"0.00 0.00 596.93 319.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 315.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-315.8 592.93,-315.8 592.93,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"271.47\" y=\"-281.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 6 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"287.93\" cy=\"-212\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"287.93\" cy=\"-212\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"287.93\" y=\"-208.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- I&#45;&gt;6 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M287.93,-270.83C287.93,-269.16 287.93,-255.12 287.93,-241.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"287.93,-234.14 291.09,-241.14 287.93,-237.64 287.94,-241.14 287.94,-241.14 287.94,-241.14 287.93,-237.64 284.79,-241.14 287.93,-234.14 287.93,-234.14\"/>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M308.93,-219.32C319.02,-220.22 327.93,-217.78 327.93,-212 327.93,-207.66 322.92,-205.21 316.16,-204.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"308.93,-204.68 315.9,-201.48 312.43,-204.66 315.93,-204.63 315.93,-204.63 315.93,-204.63 312.43,-204.66 315.95,-207.78 308.93,-204.68 308.93,-204.68\"/>\n",
"<text text-anchor=\"start\" x=\"327.93\" y=\"-208.3\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"98.93\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"98.93\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"98.93\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M265.9,-208.75C205.57,-202.11 40,-180.35 7.93,-139 -20.64,-102.15 37.53,-59.01 73.46,-37.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"79.88,-33.37 75.48,-39.65 76.88,-35.16 73.87,-36.95 73.87,-36.95 73.87,-36.95 76.88,-35.16 72.26,-34.24 79.88,-33.37 79.88,-33.37\"/>\n",
"<text text-anchor=\"start\" x=\"7.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"478.93\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"478.93\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"478.93\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;1 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>6&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M309.8,-207.58C362.2,-198.87 492.37,-174.05 515.93,-139 535.4,-110.05 514.4,-70.23 497.01,-45.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"492.69,-39.65 499.36,-43.45 494.75,-42.48 496.82,-45.31 496.82,-45.31 496.82,-45.31 494.75,-42.48 494.27,-47.16 492.69,-39.65 492.69,-39.65\"/>\n",
"<text text-anchor=\"start\" x=\"522.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"326.93\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"326.93\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"326.93\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M301.29,-194.06C305.75,-187.52 310.26,-179.76 312.93,-172 326.75,-131.92 328.64,-82.4 328.2,-51.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"328.04,-44.39 331.34,-51.32 328.11,-47.89 328.19,-51.39 328.19,-51.39 328.19,-51.39 328.11,-47.89 325.04,-51.45 328.04,-44.39 328.04,-44.39\"/>\n",
"<text text-anchor=\"start\" x=\"325.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"104.93\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"104.93\" cy=\"-117\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"104.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M266.68,-205.88C243.3,-199.76 205.07,-188.26 174.93,-172 157.21,-162.44 139.26,-148.48 125.97,-137.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"120.58,-132.49 127.93,-134.69 123.22,-134.78 125.87,-137.07 125.87,-137.07 125.87,-137.07 123.22,-134.78 123.81,-139.45 120.58,-132.49 120.58,-132.49\"/>\n",
"<text text-anchor=\"start\" x=\"174.93\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"218.93\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"218.93\" cy=\"-117\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"218.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M272.33,-196.15C265.39,-189.15 257.35,-180.49 250.93,-172 244.16,-163.03 237.64,-152.52 232.28,-143.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"228.77,-136.9 234.94,-141.46 230.48,-139.96 232.2,-143.01 232.2,-143.01 232.2,-143.01 230.48,-139.96 229.45,-144.55 228.77,-136.9 228.77,-136.9\"/>\n",
"<text text-anchor=\"start\" x=\"250.93\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"432.93\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"432.93\" cy=\"-117\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"432.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M306.01,-199.41C331.84,-182.84 379.4,-152.34 408.39,-133.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"414.64,-129.74 410.44,-136.17 411.69,-131.63 408.74,-133.52 408.74,-133.52 408.74,-133.52 411.69,-131.63 407.04,-130.86 414.64,-129.74 414.64,-129.74\"/>\n",
"<text text-anchor=\"start\" x=\"368.93\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M119.52,-30.37C129.78,-31.53 138.93,-28.74 138.93,-22 138.93,-16.95 133.79,-14.11 126.88,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119.52,-13.63 126.46,-10.36 123.02,-13.57 126.51,-13.51 126.51,-13.51 126.51,-13.51 123.02,-13.57 126.57,-16.66 119.52,-13.63 119.52,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"138.93\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M499.52,-30.37C509.78,-31.53 518.93,-28.74 518.93,-22 518.93,-16.95 513.79,-14.11 506.88,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"499.52,-13.63 506.46,-10.36 503.02,-13.57 506.51,-13.51 506.51,-13.51 506.51,-13.51 503.02,-13.57 506.57,-16.66 499.52,-13.63 499.52,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"518.93\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M347.52,-30.37C357.78,-31.53 366.93,-28.74 366.93,-22 366.93,-16.95 361.79,-14.11 354.88,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"347.52,-13.63 354.46,-10.36 351.02,-13.57 354.51,-13.51 354.51,-13.51 354.51,-13.51 351.02,-13.57 354.57,-16.66 347.52,-13.63 347.52,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"366.93\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M101.82,-94.99C101.07,-89.18 100.36,-82.85 99.93,-77 99.32,-68.61 99.01,-59.47 98.88,-51.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"98.79,-44.05 102.02,-51.02 98.83,-47.55 98.87,-51.05 98.87,-51.05 98.87,-51.05 98.83,-47.55 95.73,-51.09 98.79,-44.05 98.79,-44.05\"/>\n",
"<text text-anchor=\"start\" x=\"99.93\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">!b &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M118.67,-99.46C130.61,-85.47 147.31,-66.93 155.93,-62 201.1,-36.19 262.15,-27.46 297.76,-24.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"304.95,-23.96 298.21,-27.63 301.46,-24.23 297.97,-24.49 297.97,-24.49 297.97,-24.49 301.46,-24.23 297.73,-21.35 304.95,-23.96 304.95,-23.96\"/>\n",
"<text text-anchor=\"start\" x=\"155.93\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M125.52,-125.37C135.78,-126.53 144.93,-123.74 144.93,-117 144.93,-111.95 139.79,-109.11 132.88,-108.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"125.52,-108.63 132.46,-105.36 129.02,-108.57 132.51,-108.51 132.51,-108.51 132.51,-108.51 129.02,-108.57 132.57,-111.66 125.52,-108.63 125.52,-108.63\"/>\n",
"<text text-anchor=\"start\" x=\"144.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">b &amp; c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M214.68,-95.32C211.46,-84.2 205.99,-70.98 196.93,-62 178.13,-43.35 149.29,-33.32 127.76,-28.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"120.76,-26.55 128.28,-25.02 124.17,-27.32 127.59,-28.09 127.59,-28.09 127.59,-28.09 124.17,-27.32 126.89,-31.16 120.76,-26.55 120.76,-26.55\"/>\n",
"<text text-anchor=\"start\" x=\"206.93\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.9,-107.73C265.6,-96.77 314.51,-77.07 356.93,-62 388.98,-50.62 426.27,-38.92 451.1,-31.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"458.08,-29.23 452.3,-34.27 454.73,-30.24 451.38,-31.26 451.38,-31.26 451.38,-31.26 454.73,-30.24 450.46,-28.25 458.08,-29.23 458.08,-29.23\"/>\n",
"<text text-anchor=\"start\" x=\"356.93\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.52,-125.37C249.78,-126.53 258.93,-123.74 258.93,-117 258.93,-111.95 253.79,-109.11 246.88,-108.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"239.52,-108.63 246.46,-105.36 243.02,-108.57 246.51,-108.51 246.51,-108.51 246.51,-108.51 243.02,-108.57 246.57,-111.66 239.52,-108.63 239.52,-108.63\"/>\n",
"<text text-anchor=\"start\" x=\"258.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>5&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M444.8,-98.1C448.89,-91.59 453.34,-84.09 456.93,-77 461.39,-68.22 465.63,-58.32 469.18,-49.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"471.75,-42.84 472.14,-50.51 470.48,-46.1 469.2,-49.36 469.2,-49.36 469.2,-49.36 470.48,-46.1 466.27,-48.21 471.75,-42.84 471.75,-42.84\"/>\n",
"<text text-anchor=\"start\" x=\"462.93\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M423.32,-97.11C416.95,-85.92 407.78,-72.01 396.93,-62 384.37,-50.4 367.74,-40.95 353.84,-34.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"347.27,-31.2 354.94,-31.3 350.44,-32.68 353.61,-34.15 353.61,-34.15 353.61,-34.15 350.44,-32.68 352.28,-37.01 347.27,-31.2 347.27,-31.2\"/>\n",
"<text text-anchor=\"start\" x=\"408.93\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M453.52,-125.37C463.78,-126.53 472.93,-123.74 472.93,-117 472.93,-111.95 467.79,-109.11 460.88,-108.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"453.52,-108.63 460.46,-105.36 457.02,-108.57 460.51,-108.51 460.51,-108.51 460.51,-108.51 457.02,-108.57 460.57,-111.66 453.52,-108.63 453.52,-108.63\"/>\n",
"<text text-anchor=\"start\" x=\"472.93\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f.translate('ba', 'det').show('v.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is how to build an unambiguous automaton:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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=\"302pt\" height=\"347pt\"\n",
" viewBox=\"0.00 0.00 301.50 347.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 343)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-343 297.5,-343 297.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"125.75\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"147.75\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"163.75\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"123.75\" y=\"-310.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-131\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-127.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-131C2.79,-131 17.15,-131 30.63,-131\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-131 30.94,-134.15 34.44,-131 30.94,-131 30.94,-131 30.94,-131 34.44,-131 30.94,-127.85 37.94,-131 37.94,-131\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"157.5\" cy=\"-204\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"157.5\" y=\"-200.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.51,-144.56C74.98,-151.72 83.46,-160.37 92,-167 105.2,-177.25 121.54,-186.59 134.47,-193.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.89,-196.6 133.22,-196.22 137.77,-195.01 134.65,-193.42 134.65,-193.42 134.65,-193.42 137.77,-195.01 136.09,-190.61 140.89,-196.6 140.89,-196.6\"/>\n",
"<text text-anchor=\"middle\" x=\"105.5\" y=\"-186.8\" 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=\"157.5\" cy=\"-66\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"157.5\" y=\"-62.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.68,-121.41C88.75,-110.26 117.04,-91.78 136.2,-79.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.08,-75.42 137.94,-81.88 139.15,-77.33 136.22,-79.25 136.22,-79.25 136.22,-79.25 139.15,-77.33 134.5,-76.61 142.08,-75.42 142.08,-75.42\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-111.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"273\" cy=\"-123\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"273\" y=\"-119.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.03,-133.47C106.15,-137.68 177.8,-144.87 237,-135 241.14,-134.31 245.45,-133.19 249.57,-131.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.26,-129.63 250.64,-134.87 252.94,-130.76 249.63,-131.88 249.63,-131.88 249.63,-131.88 252.94,-130.76 248.62,-128.9 256.26,-129.63 256.26,-129.63\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"273\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"273\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.65,-114.7C74.72,-90 99.48,-43.85 137,-24 172.03,-5.47 219.6,-8.78 247.92,-13.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.03,-14.37 247.6,-16.32 251.57,-13.79 248.12,-13.21 248.12,-13.21 248.12,-13.21 251.57,-13.79 248.64,-10.1 255.03,-14.37 255.03,-14.37\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M152.86,-221.41C151.99,-231.09 153.54,-240 157.5,-240 160.41,-240 162.02,-235.19 162.32,-228.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"162.14,-221.41 165.46,-228.33 162.23,-224.91 162.31,-228.41 162.31,-228.41 162.31,-228.41 162.23,-224.91 159.16,-228.48 162.14,-221.41 162.14,-221.41\"/>\n",
"<text text-anchor=\"start\" x=\"151\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M150.04,-220.59C145.36,-238.17 147.85,-258 157.5,-258 165.87,-258 168.85,-243.09 166.45,-227.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"164.96,-220.59 169.48,-226.79 165.68,-224.01 166.4,-227.44 166.4,-227.44 166.4,-227.44 165.68,-224.01 163.32,-228.08 164.96,-220.59 164.96,-220.59\"/>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"149.5\" y=\"-261.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M148.52,-81.92C146.18,-92.15 149.17,-102 157.5,-102 163.88,-102 167.13,-96.23 167.25,-88.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"166.48,-81.92 170.37,-88.53 166.86,-85.4 167.24,-88.87 167.24,-88.87 167.24,-88.87 166.86,-85.4 164.11,-89.22 166.48,-81.92 166.48,-81.92\"/>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M169.82,-79.28C176.71,-86.62 186.09,-95.37 196,-101 212.12,-110.15 232.36,-115.77 247.9,-119.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.11,-120.45 247.63,-122.19 251.67,-119.78 248.24,-119.1 248.24,-119.1 248.24,-119.1 251.67,-119.78 248.85,-116.01 255.11,-120.45 255.11,-120.45\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.08,-58.22C180.77,-54.95 188.72,-51.18 196,-48 213.7,-40.27 234.07,-32.28 249.26,-26.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.85,-23.99 250.42,-29.42 252.58,-25.23 249.3,-26.47 249.3,-26.47 249.3,-26.47 252.58,-25.23 248.19,-23.53 255.85,-23.99 255.85,-23.99\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M262.81,-107.88C256.62,-98.98 247.64,-88.27 237,-82 220.48,-72.26 198.98,-68.37 182.66,-66.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"175.56,-66.31 182.78,-63.71 179.05,-66.58 182.54,-66.85 182.54,-66.85 182.54,-66.85 179.05,-66.58 182.3,-69.99 175.56,-66.31 175.56,-66.31\"/>\n",
"<text text-anchor=\"start\" x=\"203\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M263.43,-138.54C260.73,-148.91 263.92,-159 273,-159 279.95,-159 283.45,-153.08 283.5,-145.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"282.57,-138.54 286.6,-145.08 283.03,-142.01 283.48,-145.48 283.48,-145.48 283.48,-145.48 283.03,-142.01 280.35,-145.89 282.57,-138.54 282.57,-138.54\"/>\n",
"<text text-anchor=\"start\" x=\"252.5\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M263.43,-33.54C260.73,-43.91 263.92,-54 273,-54 279.95,-54 283.45,-48.08 283.5,-40.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"282.57,-33.54 286.6,-40.08 283.03,-37.01 283.48,-40.48 283.48,-40.48 283.48,-40.48 283.03,-37.01 280.35,-40.89 282.57,-33.54 282.57,-33.54\"/>\n",
"<text text-anchor=\"start\" x=\"252.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"265\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde00641300> >"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.translate('GFa -> GFb', 'unambig')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compare with the standard translation:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"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=\"165pt\" height=\"263pt\"\n",
" viewBox=\"0.00 0.00 165.00 263.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 259)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-259 161,-259 161,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"57.5\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"79.5\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"55.5\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-69C2.79,-69 17.15,-69 30.63,-69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-69 30.94,-72.15 34.44,-69 30.94,-69 30.94,-69 30.94,-69 34.44,-69 30.94,-65.85 37.94,-69 37.94,-69\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-86.04C48.32,-95.86 50.45,-105 56,-105 60.17,-105 62.4,-99.86 62.71,-93.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-86.04 65.85,-92.88 62.54,-89.53 62.71,-93.03 62.71,-93.03 62.71,-93.03 62.54,-89.53 59.56,-93.18 62.38,-86.04 62.38,-86.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"139\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.86,-78.35C84.53,-86.33 102.9,-97.9 117.06,-106.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.24,-110.71 115.64,-109.64 120.28,-108.84 117.31,-106.98 117.31,-106.98 117.31,-106.98 120.28,-108.84 118.99,-104.31 123.24,-110.71 123.24,-110.71\"/>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"139\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"139\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.86,-59.65C84.53,-51.67 102.9,-40.1 117.06,-31.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.24,-27.29 118.99,-33.69 120.28,-29.16 117.31,-31.02 117.31,-31.02 117.31,-31.02 120.28,-29.16 115.64,-28.36 123.24,-27.29 123.24,-27.29\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M135.4,-137.78C134.79,-147.31 135.99,-156 139,-156 141.21,-156 142.44,-151.32 142.7,-145.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.6,-137.78 145.85,-144.74 142.65,-141.28 142.7,-144.78 142.7,-144.78 142.7,-144.78 142.65,-141.28 139.55,-144.83 142.6,-137.78 142.6,-137.78\"/>\n",
"<text text-anchor=\"start\" x=\"132.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.15,-137.14C129.71,-154.58 131.66,-174 139,-174 145.37,-174 147.68,-159.4 145.94,-144.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"144.85,-137.14 149.04,-143.58 145.39,-140.6 145.92,-144.06 145.92,-144.06 145.92,-144.06 145.39,-140.6 142.81,-144.54 144.85,-137.14 144.85,-137.14\"/>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.97,-34.66C130.41,-44.62 132.75,-54 139,-54 143.69,-54 146.18,-48.73 146.47,-41.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.03,-34.66 149.6,-41.46 146.24,-38.16 146.46,-41.65 146.46,-41.65 146.46,-41.65 146.24,-38.16 143.31,-41.84 146.03,-34.66 146.03,-34.66\"/>\n",
"<text text-anchor=\"start\" x=\"133.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde006418d0> >"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.translate('GFa -> GFb')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And here is the automaton above with state-based acceptance:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"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=\"258pt\" height=\"220pt\"\n",
" viewBox=\"0.00 0.00 258.00 219.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 215.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-215.8 254,-215.8 254,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"102\" y=\"-181.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-69C2.79,-69 17.15,-69 30.63,-69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-69 30.94,-72.15 34.44,-69 30.94,-69 30.94,-69 30.94,-69 34.44,-69 30.94,-65.85 37.94,-69 37.94,-69\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-86.04C48.32,-95.86 50.45,-105 56,-105 60.17,-105 62.4,-99.86 62.71,-93.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-86.04 65.85,-92.88 62.54,-89.53 62.71,-93.03 62.71,-93.03 62.71,-93.03 62.54,-89.53 59.56,-93.18 62.38,-86.04 62.38,-86.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"143\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"143\" cy=\"-117\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.2,-77.58C84.62,-84.6 102.44,-94.66 116.97,-102.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.38,-106.48 115.73,-105.78 120.33,-104.76 117.28,-103.04 117.28,-103.04 117.28,-103.04 120.33,-104.76 118.83,-100.3 123.38,-106.48 123.38,-106.48\"/>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"143\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"143\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"143\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.2,-60.6C84.62,-53.73 102.44,-43.87 116.97,-35.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.38,-32.3 118.77,-38.44 120.31,-33.99 117.25,-35.69 117.25,-35.69 117.25,-35.69 120.31,-33.99 115.73,-32.93 123.38,-32.3 123.38,-32.3\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M134.99,-137.58C133.89,-147.84 136.55,-157 143,-157 147.83,-157 150.54,-151.85 151.13,-144.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.01,-137.58 154.27,-144.53 151.06,-141.08 151.12,-144.58 151.12,-144.58 151.12,-144.58 151.06,-141.08 147.97,-144.63 151.01,-137.58 151.01,-137.58\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"232\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"232\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M165.06,-117C177.59,-117 193.53,-117 206.61,-117\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"213.93,-117 206.93,-120.15 210.43,-117 206.93,-117 206.93,-117 206.93,-117 210.43,-117 206.93,-113.85 213.93,-117 213.93,-117\"/>\n",
"<text text-anchor=\"start\" x=\"183\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M134.99,-42.58C133.89,-52.84 136.55,-62 143,-62 147.83,-62 150.54,-56.85 151.13,-49.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.01,-42.58 154.27,-49.53 151.06,-46.08 151.12,-49.58 151.12,-49.58 151.12,-49.58 151.06,-46.08 147.97,-49.63 151.01,-42.58 151.01,-42.58\"/>\n",
"<text text-anchor=\"start\" x=\"137.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M216.69,-107.13C210.6,-103.51 203.24,-99.84 196,-98 186.65,-95.62 176.63,-98.04 167.91,-101.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.53,-104.97 166.43,-99.06 164.67,-103.43 167.81,-101.89 167.81,-101.89 167.81,-101.89 164.67,-103.43 169.2,-104.72 161.53,-104.97 161.53,-104.97\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M224.62,-133.66C222.98,-143.62 225.44,-153 232,-153 236.92,-153 239.54,-147.73 239.84,-140.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"239.38,-133.66 242.97,-140.45 239.61,-137.16 239.83,-140.65 239.83,-140.65 239.83,-140.65 239.61,-137.16 236.69,-140.85 239.38,-133.66 239.38,-133.66\"/>\n",
"<text text-anchor=\"start\" x=\"225.5\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">!b</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 0x7fde00641540> >"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = spot.translate('GFa -> GFb', 'sbacc')\n",
"a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some example of running the self-loopization algorithm on an automaton:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.is_empty()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Reading from file (see `automaton-io.ipynb` for more examples)."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Writing example1.aut\n"
]
}
],
"source": [
"%%file example1.aut\n",
"HOA: v1\n",
"States: 3\n",
"Start: 0\n",
"AP: 2 \"a\" \"b\"\n",
"acc-name: Buchi\n",
"Acceptance: 4 Inf(0)&Fin(1)&Fin(3) | Inf(2)&Inf(3) | Inf(1)\n",
"--BODY--\n",
"State: 0 {3}\n",
"[t] 0\n",
"[0] 1 {1}\n",
"[!0] 2 {0}\n",
"State: 1 {3}\n",
"[1] 0\n",
"[0&1] 1 {0}\n",
"[!0&1] 2 {2}\n",
"State: 2\n",
"[!1] 0\n",
"[0&!1] 1 {0}\n",
"[!0&!1] 2 {0}\n",
"--END--"
]
},
{
"cell_type": "code",
"execution_count": 17,
"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=\"361pt\" height=\"178pt\"\n",
" viewBox=\"0.00 0.00 361.00 178.46\" 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 174.46)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-174.46 357,-174.46 357,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\">(Inf(</text>\n",
"<text text-anchor=\"start\" x=\"33\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"49\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"157\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\">)) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"217\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"233\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"269\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"285\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\">)) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"325\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"341\" y=\"-156.26\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"87.75\" cy=\"-24.46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"87.75\" y=\"-20.76\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M32.9,-24.46C34.54,-24.46 48.9,-24.46 62.38,-24.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.69,-24.46 62.69,-27.61 66.19,-24.46 62.69,-24.46 62.69,-24.46 62.69,-24.46 66.19,-24.46 62.69,-21.31 69.69,-24.46 69.69,-24.46\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M81.37,-41.5C80.07,-51.32 82.2,-60.46 87.75,-60.46 91.92,-60.46 94.15,-55.32 94.46,-48.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"94.13,-41.5 97.6,-48.34 94.29,-45 94.46,-48.49 94.46,-48.49 94.46,-48.49 94.29,-45 91.31,-48.64 94.13,-41.5 94.13,-41.5\"/>\n",
"<text text-anchor=\"start\" x=\"83.25\" y=\"-79.26\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"79.75\" y=\"-64.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"191.75\" cy=\"-83.46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"191.75\" y=\"-79.76\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M96.22,-40.44C102.14,-51.25 111.45,-64.89 123.75,-72.46 136.45,-80.28 152.97,-83.06 166.43,-83.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.55,-84.13 166.43,-87.02 170.05,-84 166.55,-83.87 166.55,-83.87 166.55,-83.87 170.05,-84 166.67,-80.72 173.55,-84.13 173.55,-84.13\"/>\n",
"<text text-anchor=\"start\" x=\"136.25\" y=\"-100.26\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"123.75\" y=\"-86.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"139.75\" y=\"-86.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"300.75\" cy=\"-24.46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"300.75\" y=\"-20.76\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M105.83,-23.29C111.53,-22.95 117.91,-22.63 123.75,-22.46 186.39,-20.67 202.11,-20.67 264.75,-22.46 268.22,-22.56 271.88,-22.72 275.47,-22.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"282.67,-23.29 275.51,-26.05 279.17,-23.1 275.68,-22.91 275.68,-22.91 275.68,-22.91 279.17,-23.1 275.85,-19.76 282.67,-23.29 282.67,-23.29\"/>\n",
"<text text-anchor=\"start\" x=\"186.25\" y=\"-38.26\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"175.75\" y=\"-24.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"191.75\" y=\"-24.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M182.42,-67.77C176.33,-57.84 167.17,-45.59 155.75,-38.46 142.99,-30.5 126.47,-26.99 113.03,-25.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"105.92,-24.82 113.18,-22.32 109.41,-25.14 112.89,-25.46 112.89,-25.46 112.89,-25.46 109.41,-25.14 112.6,-28.6 105.92,-24.82 105.92,-24.82\"/>\n",
"<text text-anchor=\"start\" x=\"135.25\" y=\"-57.26\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"131.75\" y=\"-42.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M182.77,-99.38C180.43,-109.61 183.42,-119.46 191.75,-119.46 198.13,-119.46 201.38,-113.69 201.5,-106.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.73,-99.38 204.62,-105.99 201.11,-102.86 201.49,-106.34 201.49,-106.34 201.49,-106.34 201.11,-102.86 198.36,-106.68 200.73,-99.38 200.73,-99.38\"/>\n",
"<text text-anchor=\"start\" x=\"174.75\" y=\"-137.26\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"175.75\" y=\"-123.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"191.75\" y=\"-123.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M210.01,-84.43C225.43,-84.5 248.11,-82.58 264.75,-72.46 274.87,-66.31 282.96,-56.02 288.79,-46.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"292.3,-40.48 291.52,-48.11 290.55,-43.51 288.79,-46.53 288.79,-46.53 288.79,-46.53 290.55,-43.51 286.07,-44.96 292.3,-40.48 292.3,-40.48\"/>\n",
"<text text-anchor=\"start\" x=\"227.75\" y=\"-100.26\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"230.25\" y=\"-86.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"246.25\" y=\"-86.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M283.52,-18.19C259.6,-9.7 213.43,3.81 173.75,-1.46 152.4,-4.3 128.81,-10.98 111.91,-16.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"105.1,-18.65 110.77,-13.47 108.42,-17.56 111.75,-16.47 111.75,-16.47 111.75,-16.47 108.42,-17.56 112.73,-19.46 105.1,-18.65 105.1,-18.65\"/>\n",
"<text text-anchor=\"start\" x=\"185.25\" y=\"-5.26\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M282.53,-24.47C267.12,-25.22 244.46,-28.2 227.75,-38.46 218.61,-44.08 210.94,-53 205.13,-61.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"201.05,-67.71 202.22,-60.13 202.96,-64.78 204.86,-61.84 204.86,-61.84 204.86,-61.84 202.96,-64.78 207.5,-63.55 201.05,-67.71 201.05,-67.71\"/>\n",
"<text text-anchor=\"start\" x=\"227.75\" y=\"-57.26\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"238.25\" y=\"-42.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M291.52,-40C288.92,-50.37 292,-60.46 300.75,-60.46 307.45,-60.46 310.83,-54.55 310.87,-47.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"309.98,-40 313.98,-46.56 310.42,-43.48 310.85,-46.95 310.85,-46.95 310.85,-46.95 310.42,-43.48 307.73,-47.34 309.98,-40 309.98,-40\"/>\n",
"<text text-anchor=\"start\" x=\"280.25\" y=\"-79.26\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"292.75\" y=\"-64.26\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde00641b10> >"
]
},
"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=\"411pt\" height=\"189pt\"\n",
" viewBox=\"0.00 0.00 410.50 188.53\" 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 184.53)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-184.53 406.5,-184.53 406.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"97.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"119.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"135.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"172.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"188.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\">) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"228.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"244.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"280.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"296.75\" y=\"-166.33\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"166.25\" y=\"-152.33\" font-family=\"Lato\" font-size=\"14.00\">[Fin&#45;less 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-25.53\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.83\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-25.53C2.79,-25.53 17.15,-25.53 30.63,-25.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-25.53 30.94,-28.68 34.44,-25.53 30.94,-25.53 30.94,-25.53 30.94,-25.53 34.44,-25.53 30.94,-22.38 37.94,-25.53 37.94,-25.53\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-42.56C48.32,-52.38 50.45,-61.53 56,-61.53 60.17,-61.53 62.4,-56.38 62.71,-49.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-42.56 65.85,-49.41 62.54,-46.06 62.71,-49.56 62.71,-49.56 62.71,-49.56 62.54,-46.06 59.56,-49.7 62.38,-42.56 62.38,-42.56\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-80.33\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-65.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"160\" cy=\"-78.53\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"160\" y=\"-74.83\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.27,-41.84C70.1,-52.81 79.38,-66.51 92,-73.53 104.9,-80.7 121.42,-82 134.83,-81.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"141.92,-81.04 135.13,-84.62 138.42,-81.26 134.93,-81.48 134.93,-81.48 134.93,-81.48 138.42,-81.26 134.73,-78.34 141.92,-81.04 141.92,-81.04\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-98.33\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-84.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-84.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"269\" cy=\"-25.53\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"269\" y=\"-21.83\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.25,-24.48C91.41,-23.49 118.52,-22.08 142,-21.53 182.44,-20.57 192.59,-21.64 233,-23.53 236.47,-23.69 240.12,-23.88 243.71,-24.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"250.91,-24.48 243.75,-27.23 247.42,-24.28 243.92,-24.08 243.92,-24.08 243.92,-24.08 247.42,-24.28 244.1,-20.94 250.91,-24.48 250.91,-24.48\"/>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-40.33\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-25.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M149.36,-63.77C143.11,-55.39 134.25,-45.43 124,-39.53 110.97,-32.02 94.45,-28.51 81.07,-26.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74,-26.16 81.29,-23.74 77.49,-26.52 80.97,-26.88 80.97,-26.88 80.97,-26.88 77.49,-26.52 80.65,-30.01 74,-26.16 74,-26.16\"/>\n",
"<text text-anchor=\"start\" x=\"103.5\" y=\"-58.33\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-43.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M151.02,-94.44C148.68,-104.68 151.67,-114.53 160,-114.53 166.38,-114.53 169.63,-108.75 169.75,-101.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.98,-94.44 172.87,-101.06 169.36,-97.92 169.74,-101.4 169.74,-101.4 169.74,-101.4 169.36,-97.92 166.61,-101.74 168.98,-94.44 168.98,-94.44\"/>\n",
"<text text-anchor=\"start\" x=\"143\" y=\"-133.33\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-118.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.89,-76.2C193.08,-73.58 215.6,-68.34 233,-58.53 239.66,-54.77 246.03,-49.49 251.46,-44.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.57,-39.07 253.89,-46.27 254.11,-41.56 251.65,-44.05 251.65,-44.05 251.65,-44.05 254.11,-41.56 249.41,-41.84 256.57,-39.07 256.57,-39.07\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-89.33\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"198.5\" y=\"-75.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-75.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M252.17,-19.13C228.38,-10.28 181.92,4 142,-1.53 120.47,-4.51 96.72,-11.55 79.81,-17.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.01,-19.57 78.61,-14.32 76.32,-18.43 79.63,-17.3 79.63,-17.3 79.63,-17.3 76.32,-18.43 80.66,-20.27 73.01,-19.57 73.01,-19.57\"/>\n",
"<text text-anchor=\"start\" x=\"153.5\" y=\"-5.33\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.94,-25.82C235.65,-26.75 213.06,-29.85 196,-39.53 187.96,-44.08 180.79,-51.16 175.07,-58.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"170.61,-63.72 172.46,-56.27 172.77,-60.97 174.94,-58.22 174.94,-58.22 174.94,-58.22 172.77,-60.97 177.41,-60.16 170.61,-63.72 170.61,-63.72\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-43.33\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M259.77,-41.07C257.17,-51.43 260.25,-61.53 269,-61.53 275.7,-61.53 279.08,-55.61 279.12,-48.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"278.23,-41.07 282.23,-47.62 278.67,-44.54 279.1,-48.01 279.1,-48.01 279.1,-48.01 278.67,-44.54 275.98,-48.4 278.23,-41.07 278.23,-41.07\"/>\n",
"<text text-anchor=\"start\" x=\"248.5\" y=\"-65.33\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"382\" cy=\"-25.53\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"382\" y=\"-21.83\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M287.34,-25.53C306,-25.53 335.8,-25.53 356.76,-25.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"363.78,-25.53 356.78,-28.68 360.28,-25.53 356.78,-25.53 356.78,-25.53 356.78,-25.53 360.28,-25.53 356.78,-22.38 363.78,-25.53 363.78,-25.53\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-29.33\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M372.43,-41.07C369.73,-51.43 372.92,-61.53 382,-61.53 388.95,-61.53 392.45,-55.61 392.5,-48.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"391.57,-41.07 395.6,-47.6 392.03,-44.54 392.48,-48.01 392.48,-48.01 392.48,-48.01 392.03,-44.54 389.35,-48.41 391.57,-41.07 391.57,-41.07\"/>\n",
"<text text-anchor=\"start\" x=\"361.5\" y=\"-80.33\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"374\" y=\"-65.33\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde00676780> >"
]
},
"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=\"491pt\" height=\"215pt\"\n",
" viewBox=\"0.00 0.00 491.00 215.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 211)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-211 487,-211 487,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"220.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"242.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"258.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"218.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-63C2.79,-63 17.15,-63 30.63,-63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-63 30.94,-66.15 34.44,-63 30.94,-63 30.94,-63 30.94,-63 34.44,-63 30.94,-59.85 37.94,-63 37.94,-63\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-80.04C48.32,-89.86 50.45,-99 56,-99 60.17,-99 62.4,-93.86 62.71,-87.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-80.04 65.85,-86.88 62.54,-83.53 62.71,-87.03 62.71,-87.03 62.71,-87.03 62.54,-83.53 59.56,-87.18 62.38,-80.04 62.38,-80.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"144\" cy=\"-118\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-114.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.73,-76.06C75.14,-82.65 83.49,-90.4 92,-96 100.6,-101.66 110.9,-106.42 119.99,-110.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"126.65,-112.61 118.98,-113.04 123.38,-111.36 120.11,-110.1 120.11,-110.1 120.11,-110.1 123.38,-111.36 121.24,-107.16 126.65,-112.61 126.65,-112.61\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-122.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"253\" cy=\"-63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"253\" y=\"-59.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.3,-63C109,-63 187.15,-63 227.25,-63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"234.73,-63 227.73,-66.15 231.23,-63 227.73,-63 227.73,-63 227.73,-63 231.23,-63 227.73,-59.85 234.73,-63 234.73,-63\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.66,-103.12C127.41,-94.32 118.43,-83.63 108,-77 99.93,-71.87 89.98,-68.6 81.02,-66.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.1,-65.1 81.6,-63.42 77.53,-65.8 80.96,-66.51 80.96,-66.51 80.96,-66.51 77.53,-65.8 80.33,-69.59 74.1,-65.1 74.1,-65.1\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-80.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M136.33,-134.29C134.48,-144.39 137.04,-154 144,-154 149.22,-154 151.96,-148.59 152.23,-141.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.67,-134.29 155.34,-141.03 151.93,-137.78 152.2,-141.27 152.2,-141.27 152.2,-141.27 151.93,-137.78 149.06,-141.51 151.67,-134.29 151.67,-134.29\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M155.17,-103.78C161.48,-95.96 170.23,-86.71 180,-81 194.59,-72.47 213.12,-67.96 227.73,-65.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"234.98,-64.53 228.5,-68.65 231.51,-65.03 228.05,-65.54 228.05,-65.54 228.05,-65.54 231.51,-65.03 227.59,-62.42 234.98,-64.53 234.98,-64.53\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"465\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"465\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M158.84,-128.67C164.97,-132.75 172.49,-136.92 180,-139 195.85,-143.39 200.57,-139.62 217,-139 298.86,-135.92 395.65,-126.9 439.83,-122.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"446.96,-121.77 440.31,-125.61 443.48,-122.12 439.99,-122.47 439.99,-122.47 439.99,-122.47 443.48,-122.12 439.68,-119.34 446.96,-121.77 446.96,-121.77\"/>\n",
"<text text-anchor=\"start\" x=\"303\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M235.71,-57.56C211.72,-50.23 165.46,-38.67 126,-44 110.42,-46.11 93.38,-50.77 80.13,-54.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.19,-57.21 78.88,-52.05 76.52,-56.13 79.85,-55.05 79.85,-55.05 79.85,-55.05 76.52,-56.13 80.82,-58.04 73.19,-57.21 73.19,-57.21\"/>\n",
"<text text-anchor=\"start\" x=\"137.5\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244.68,-79.22C238.83,-90.16 229.54,-103.84 217,-111 202.6,-119.22 183.91,-120.82 169.18,-120.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.88,-120.1 169.03,-117.29 165.38,-120.27 168.88,-120.44 168.88,-120.44 168.88,-120.44 165.38,-120.27 168.72,-123.58 161.88,-120.1 161.88,-120.1\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M243.77,-78.54C241.17,-88.91 244.25,-99 253,-99 259.7,-99 263.08,-93.08 263.12,-85.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"262.23,-78.54 266.23,-85.1 262.67,-82.01 263.1,-85.49 263.1,-85.49 263.1,-85.49 262.67,-82.01 259.98,-85.88 262.23,-78.54 262.23,-78.54\"/>\n",
"<text text-anchor=\"start\" x=\"232.5\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M270.18,-68.6C288.82,-74.95 320.42,-85.4 348,-93 379.62,-101.71 416.58,-109.99 440.13,-115.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"446.99,-116.49 439.49,-118.11 443.56,-115.76 440.14,-115.03 440.14,-115.03 440.14,-115.03 443.56,-115.76 440.79,-111.95 446.99,-116.49 446.99,-116.49\"/>\n",
"<text text-anchor=\"start\" x=\"361.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"366\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"366\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M269.9,-56.55C288.94,-48.83 320.96,-35.85 342.52,-27.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.13,-24.44 343.82,-29.98 345.88,-25.75 342.64,-27.07 342.64,-27.07 342.64,-27.07 345.88,-25.75 341.46,-24.15 349.13,-24.44 349.13,-24.44\"/>\n",
"<text text-anchor=\"start\" x=\"289\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M456.64,-136.29C454.62,-146.39 457.41,-156 465,-156 470.7,-156 473.69,-150.59 473.98,-143.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"473.36,-136.29 477.09,-143 473.66,-139.78 473.95,-143.27 473.95,-143.27 473.95,-143.27 473.66,-139.78 470.81,-143.53 473.36,-136.29 473.36,-136.29\"/>\n",
"<text text-anchor=\"start\" x=\"460.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M379.29,-30.92C396.41,-48.93 427.54,-81.66 446.92,-102.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"451.81,-107.19 444.71,-104.28 449.4,-104.65 446.99,-102.11 446.99,-102.11 446.99,-102.11 449.4,-104.65 449.27,-99.94 451.81,-107.19 451.81,-107.19\"/>\n",
"<text text-anchor=\"start\" x=\"402\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M357.64,-34.29C355.62,-44.39 358.41,-54 366,-54 371.7,-54 374.69,-48.59 374.98,-41.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"374.36,-34.29 378.09,-41 374.66,-37.78 374.95,-41.27 374.95,-41.27 374.95,-41.27 374.66,-37.78 371.81,-41.53 374.36,-34.29 374.36,-34.29\"/>\n",
"<text text-anchor=\"start\" x=\"345.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"358\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde00641630> >"
]
},
"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=\"527pt\" height=\"219pt\"\n",
" viewBox=\"0.00 0.00 527.00 218.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 214.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-214.8 523,-214.8 523,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"236.5\" y=\"-180.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-88\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-88C2.79,-88 17.15,-88 30.63,-88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-88 30.94,-91.15 34.44,-88 30.94,-88 30.94,-88 30.94,-88 34.44,-88 30.94,-84.85 37.94,-88 37.94,-88\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-105.04C48.32,-114.86 50.45,-124 56,-124 60.17,-124 62.4,-118.86 62.71,-112.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-105.04 65.85,-111.88 62.54,-108.53 62.71,-112.03 62.71,-112.03 62.71,-112.03 62.54,-108.53 59.56,-112.18 62.38,-105.04 62.38,-105.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"141\" cy=\"-135\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"141\" cy=\"-135\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"136.5\" y=\"-131.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.46,-101.5C74.79,-108.21 83.16,-115.94 92,-121 98.09,-124.48 105.11,-127.16 111.88,-129.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119.06,-131.16 111.47,-132.35 115.68,-130.24 112.3,-129.32 112.3,-129.32 112.3,-129.32 115.68,-130.24 113.14,-126.28 119.06,-131.16 119.06,-131.16\"/>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-128.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"377.5\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"377.5\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.63,-83.71C105.08,-75.83 175.53,-59.29 236,-53 276.54,-48.78 324,-49.22 352.09,-50.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"359.14,-50.25 352.04,-53.18 355.64,-50.14 352.14,-50.03 352.14,-50.03 352.14,-50.03 355.64,-50.14 352.24,-46.88 359.14,-50.25 359.14,-50.25\"/>\n",
"<text text-anchor=\"start\" x=\"194\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M124.74,-119.65C117.94,-113.48 109.54,-106.72 101,-102 94.82,-98.58 87.68,-95.86 80.97,-93.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.93,-91.71 81.53,-90.64 77.29,-92.69 80.66,-93.66 80.66,-93.66 80.66,-93.66 77.29,-92.69 79.78,-96.69 73.93,-91.71 73.93,-91.71\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"497\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"497\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M162.92,-137.73C206.61,-143.08 310.75,-153.89 398,-148 424.4,-146.22 431.75,-147.93 457,-140 463.05,-138.1 469.3,-135.31 474.97,-132.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"481.32,-129.03 476.63,-135.11 478.24,-130.68 475.15,-132.33 475.15,-132.33 475.15,-132.33 478.24,-130.68 473.66,-129.55 481.32,-129.03 481.32,-129.03\"/>\n",
"<text text-anchor=\"start\" x=\"301.5\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"258\" cy=\"-84\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"258\" cy=\"-84\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"258\" y=\"-80.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.51,-126.35C180.59,-117.89 209.78,-104.94 230.86,-95.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"237.4,-92.69 232.27,-98.41 234.2,-94.11 231,-95.53 231,-95.53 231,-95.53 234.2,-94.11 229.72,-92.65 237.4,-92.69 237.4,-92.69\"/>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M395.56,-53.7C412.27,-56.96 437.94,-63.6 457,-76 466.59,-82.24 475.26,-91.46 481.98,-99.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"486.31,-105.47 479.54,-101.84 484.17,-102.7 482.04,-99.92 482.04,-99.92 482.04,-99.92 484.17,-102.7 484.54,-98 486.31,-105.47 486.31,-105.47\"/>\n",
"<text text-anchor=\"start\" x=\"418\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"497\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"497\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"497\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M394.36,-44.39C400.97,-41.82 408.77,-39.01 416,-37 432.96,-32.28 452.37,-28.6 467.82,-26.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"475.06,-24.92 468.64,-29.13 471.6,-25.47 468.14,-26.02 468.14,-26.02 468.14,-26.02 471.6,-25.47 467.65,-22.91 475.06,-24.92 475.06,-24.92\"/>\n",
"<text text-anchor=\"start\" x=\"416\" y=\"-40.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M486.85,-135.17C483.77,-145.66 487.16,-156 497,-156 504.54,-156 508.29,-149.94 508.25,-142.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"507.15,-135.17 511.32,-141.61 507.68,-138.63 508.2,-142.09 508.2,-142.09 508.2,-142.09 507.68,-138.63 505.09,-142.56 507.15,-135.17 507.15,-135.17\"/>\n",
"<text text-anchor=\"start\" x=\"480\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M479.02,-117.7C444.75,-113.02 364.86,-101.89 298,-91 294.44,-90.42 290.71,-89.78 287.01,-89.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"280.03,-87.9 287.47,-86.02 283.47,-88.51 286.92,-89.12 286.92,-89.12 286.92,-89.12 283.47,-88.51 286.37,-92.23 280.03,-87.9 280.03,-87.9\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M235.84,-84.42C198.47,-85.17 121.02,-86.72 81.44,-87.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.05,-87.66 80.99,-84.37 77.55,-87.59 81.05,-87.52 81.05,-87.52 81.05,-87.52 77.55,-87.59 81.11,-90.67 74.05,-87.66 74.05,-87.66\"/>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-89.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M279.47,-78.25C300.02,-72.48 331.66,-63.59 353.18,-57.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"360.05,-55.62 354.17,-60.54 356.68,-56.57 353.31,-57.51 353.31,-57.51 353.31,-57.51 356.68,-56.57 352.46,-54.48 360.05,-55.62 360.05,-55.62\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M276.7,-96.29C283.19,-100.42 290.73,-104.79 298,-108 363.01,-136.73 386.07,-129.53 457,-125 461.85,-124.69 467.02,-124.17 471.96,-123.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"478.96,-122.66 472.42,-126.69 475.49,-123.11 472.02,-123.56 472.02,-123.56 472.02,-123.56 475.49,-123.11 471.61,-120.44 478.96,-122.66 478.96,-122.66\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M273.38,-67.93C290.98,-49.58 322.71,-20.62 357,-9 394.46,3.69 440.64,-5.08 469.2,-13.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"476.07,-15.12 468.46,-16.17 472.71,-14.13 469.35,-13.15 469.35,-13.15 469.35,-13.15 472.71,-14.13 470.23,-10.13 476.07,-15.12 476.07,-15.12\"/>\n",
"<text text-anchor=\"start\" x=\"357\" y=\"-12.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M486.29,-41.34C484.29,-52.1 487.86,-62 497,-62 504,-62 507.73,-56.2 508.2,-48.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"507.71,-41.34 511.32,-48.12 507.95,-44.84 508.18,-48.33 508.18,-48.33 508.18,-48.33 507.95,-44.84 505.04,-48.54 507.71,-41.34 507.71,-41.34\"/>\n",
"<text text-anchor=\"start\" x=\"476.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</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 0x7fde00641870> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a = spot.automaton('example1.aut')\n",
"display(a)\n",
"display(spot.remove_fin(a))\n",
"display(a.postprocess('TGBA', 'complete'))\n",
"display(a.postprocess('BA'))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"!rm example1.aut"
]
},
{
"cell_type": "code",
"execution_count": 19,
"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=\"376pt\" height=\"187pt\"\n",
" viewBox=\"0.00 0.00 376.00 186.63\" 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.63)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-182.63 372,-182.63 372,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"15.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\">(Inf(</text>\n",
"<text text-anchor=\"start\" x=\"40.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"56.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"102.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"118.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"164.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"180.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\">)) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"224.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"240.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"276.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"292.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\">)) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"348.5\" y=\"-164.43\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-23.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-19.93\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.63C2.79,-23.63 17.15,-23.63 30.63,-23.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.63 30.94,-26.78 34.44,-23.63 30.94,-23.63 30.94,-23.63 30.94,-23.63 34.44,-23.63 30.94,-20.48 37.94,-23.63 37.94,-23.63\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-40.66C48.32,-50.49 50.45,-59.63 56,-59.63 60.17,-59.63 62.4,-54.48 62.71,-47.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-40.66 65.85,-47.51 62.54,-44.16 62.71,-47.66 62.71,-47.66 62.71,-47.66 62.54,-44.16 59.56,-47.8 62.38,-40.66 62.38,-40.66\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-78.43\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-63.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"160\" cy=\"-91.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"160\" y=\"-87.93\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.05,-39.58C71.12,-50.1 80.38,-63.41 92,-71.63 104.63,-80.56 121.28,-85.55 134.83,-88.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"141.99,-89.63 134.53,-91.46 138.54,-89 135.1,-88.37 135.1,-88.37 135.1,-88.37 138.54,-89 135.67,-85.27 141.99,-89.63 141.99,-89.63\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-102.43\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-88.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-88.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"269\" cy=\"-34.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"269\" y=\"-30.93\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.08,-22.46C79.78,-22.12 86.16,-21.79 92,-21.63 154.7,-19.84 170.78,-19.73 233,-27.63 236.67,-28.09 240.53,-28.72 244.3,-29.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"251.34,-30.79 243.87,-32.54 247.91,-30.12 244.48,-29.45 244.48,-29.45 244.48,-29.45 247.91,-30.12 245.08,-26.36 251.34,-30.79 251.34,-30.79\"/>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-39.43\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-25.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-25.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M152.5,-75.14C146.82,-62.89 137.36,-46.79 124,-37.63 111.51,-29.07 94.86,-25.56 81.28,-24.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.1,-23.64 81.32,-21.04 77.59,-23.91 81.08,-24.18 81.08,-24.18 81.08,-24.18 77.59,-23.91 80.83,-27.32 74.1,-23.64 74.1,-23.64\"/>\n",
"<text text-anchor=\"start\" x=\"103.5\" y=\"-56.43\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-41.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M151.02,-107.54C148.68,-117.78 151.67,-127.63 160,-127.63 166.38,-127.63 169.63,-121.85 169.75,-114.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.98,-107.54 172.87,-114.16 169.36,-111.02 169.74,-114.5 169.74,-114.5 169.74,-114.5 169.36,-111.02 166.61,-114.84 168.98,-107.54 168.98,-107.54\"/>\n",
"<text text-anchor=\"start\" x=\"143\" y=\"-145.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-131.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-131.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M167.91,-75.23C173.66,-63.77 183.01,-49.21 196,-41.63 210.32,-33.27 229.01,-31.67 243.76,-32.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"251.07,-32.45 243.92,-35.24 247.58,-32.27 244.08,-32.1 244.08,-32.1 244.08,-32.1 247.58,-32.27 244.24,-28.95 251.07,-32.45 251.07,-32.45\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-59.43\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"198.5\" y=\"-45.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-45.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"350\" cy=\"-85.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"350\" y=\"-81.93\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M173.47,-103.98C179.7,-109.27 187.66,-114.87 196,-117.63 241.75,-132.76 297.64,-111.5 327.6,-97.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"333.94,-93.92 329.06,-99.85 330.8,-95.47 327.66,-97.03 327.66,-97.03 327.66,-97.03 330.8,-95.47 326.26,-94.2 333.94,-93.92 333.94,-93.92\"/>\n",
"<text text-anchor=\"start\" x=\"262.5\" y=\"-124.43\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M252.58,-26.79C235.05,-18.4 205.32,-5.75 178,-1.63 143.6,3.57 103.98,-6.76 79.72,-14.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73,-17.3 78.57,-12.02 76.3,-16.15 79.61,-14.99 79.61,-14.99 79.61,-14.99 76.3,-16.15 80.65,-17.97 73,-17.3 73,-17.3\"/>\n",
"<text text-anchor=\"start\" x=\"153.5\" y=\"-5.43\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M256.97,-48.57C250.63,-55.76 242.13,-64.14 233,-69.63 218.31,-78.45 199.77,-84.01 185.19,-87.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"177.96,-88.87 184.16,-84.33 181.39,-88.14 184.81,-87.41 184.81,-87.41 184.81,-87.41 181.39,-88.14 185.47,-90.49 177.96,-88.87 177.96,-88.87\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-102.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"206.5\" y=\"-87.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M261.97,-51.29C260.41,-61.25 262.75,-70.63 269,-70.63 273.69,-70.63 276.18,-65.35 276.47,-58.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"276.03,-51.29 279.6,-58.09 276.24,-54.78 276.46,-58.28 276.46,-58.28 276.46,-58.28 276.24,-54.78 273.31,-58.47 276.03,-51.29 276.03,-51.29\"/>\n",
"<text text-anchor=\"start\" x=\"248.5\" y=\"-89.43\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-74.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M284.49,-43.98C296.77,-51.91 314.54,-63.38 328.32,-72.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"334.33,-76.16 326.75,-75.01 331.39,-74.26 328.45,-72.36 328.45,-72.36 328.45,-72.36 331.39,-74.26 330.16,-69.72 334.33,-76.16 334.33,-76.16\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-65.43\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M342.97,-102.29C341.41,-112.25 343.75,-121.63 350,-121.63 354.69,-121.63 357.18,-116.35 357.47,-109.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"357.03,-102.29 360.6,-109.09 357.24,-105.78 357.46,-109.28 357.46,-109.28 357.46,-109.28 357.24,-105.78 354.31,-109.47 357.03,-102.29 357.03,-102.29\"/>\n",
"<text text-anchor=\"middle\" x=\"350\" y=\"-125.43\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde006768d0> >"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.complete(a)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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=\"173pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 173.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 169,-120.8 169,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"59.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"60\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"60\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"60\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.17,-22C2.84,-22 16.88,-22 30.71,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.86,-22 30.86,-25.15 34.36,-22 30.86,-22 30.86,-22 30.86,-22 34.36,-22 30.86,-18.85 37.86,-22 37.86,-22\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.68,-42.99C51.78,-53.09 54.22,-62 60,-62 64.34,-62 66.79,-56.99 67.37,-50.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"67.32,-42.99 70.52,-49.97 67.34,-46.49 67.37,-49.99 67.37,-49.99 67.37,-49.99 67.34,-46.49 64.22,-50.01 67.32,-42.99 67.32,-42.99\"/>\n",
"<text text-anchor=\"start\" x=\"56.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"147\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"147\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M82.01,-22C94.09,-22 109.32,-22 121.89,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"128.94,-22 121.94,-25.15 125.44,-22 121.94,-22 121.94,-22 121.94,-22 125.44,-22 121.94,-18.85 128.94,-22 128.94,-22\"/>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M139.97,-38.66C138.41,-48.62 140.75,-58 147,-58 151.69,-58 154.18,-52.73 154.47,-45.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"154.03,-38.66 157.6,-45.46 154.24,-42.16 154.46,-45.65 154.46,-45.65 154.46,-45.65 154.24,-42.16 151.31,-45.84 154.03,-38.66 154.03,-38.66\"/>\n",
"<text text-anchor=\"middle\" x=\"147\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde006417e0> >"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.complete(spot.translate('Ga'))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.formula('(a W c) & FGa').is_syntactic_persistence()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"no\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=\"165pt\" height=\"130pt\"\n",
" viewBox=\"0.00 0.00 165.00 130.42\" 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 126.42)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-126.42 161,-126.42 161,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"57.5\" y=\"-108.22\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"79.5\" y=\"-108.22\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-108.22\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"55.5\" y=\"-94.22\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-20.42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-16.72\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-20.42C2.79,-20.42 17.15,-20.42 30.63,-20.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-20.42 30.94,-23.57 34.44,-20.42 30.94,-20.42 30.94,-20.42 30.94,-20.42 34.44,-20.42 30.94,-17.27 37.94,-20.42 37.94,-20.42\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-37.46C48.32,-47.28 50.45,-56.42 56,-56.42 60.17,-56.42 62.4,-51.28 62.71,-44.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-37.46 65.85,-44.31 62.54,-40.96 62.71,-44.45 62.71,-44.45 62.71,-44.45 62.54,-40.96 59.56,-44.6 62.38,-37.46 62.38,-37.46\"/>\n",
"<text text-anchor=\"start\" x=\"52.5\" y=\"-75.22\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-60.22\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"139\" cy=\"-20.42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"139\" y=\"-16.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.18,-20.42C85.67,-20.42 100.96,-20.42 113.69,-20.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"120.85,-20.42 113.85,-23.57 117.35,-20.42 113.85,-20.42 113.85,-20.42 113.85,-20.42 117.35,-20.42 113.85,-17.27 120.85,-20.42 120.85,-20.42\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-24.22\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M124.26,-9.65C115.3,-3.91 103.22,1.42 92,-1.42 87.14,-2.66 82.22,-4.72 77.67,-7.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"71.31,-10.56 75.91,-4.41 74.37,-8.86 77.44,-7.17 77.44,-7.17 77.44,-7.17 74.37,-8.86 78.96,-9.93 71.31,-10.56 71.31,-10.56\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-5.22\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.97,-37.09C130.41,-47.05 132.75,-56.42 139,-56.42 143.69,-56.42 146.18,-51.15 146.47,-44.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.03,-37.09 149.6,-43.88 146.24,-40.58 146.46,-44.08 146.46,-44.08 146.46,-44.08 146.24,-40.58 143.31,-44.27 146.03,-37.09 146.03,-37.09\"/>\n",
"<text text-anchor=\"start\" x=\"133.5\" y=\"-75.22\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-60.22\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"163pt\" height=\"161pt\"\n",
" viewBox=\"0.00 0.00 163.00 161.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 157)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-157 159,-157 159,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"56.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"78.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"94.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"54.5\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-35.04C48.32,-44.86 50.45,-54 56,-54 60.17,-54 62.4,-48.86 62.71,-42.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-35.04 65.85,-41.88 62.54,-38.53 62.71,-42.03 62.71,-42.03 62.71,-42.03 62.54,-38.53 59.56,-42.18 62.38,-35.04 62.38,-35.04\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-18C85.12,-18 99.52,-18 111.67,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-18 111.89,-21.15 115.39,-18 111.89,-18 111.89,-18 111.89,-18 115.39,-18 111.89,-14.85 118.89,-18 118.89,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.4,-35.78C132.79,-45.31 133.99,-54 137,-54 139.21,-54 140.44,-49.32 140.7,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-35.78 143.85,-42.74 140.65,-39.28 140.7,-42.78 140.7,-42.78 140.7,-42.78 140.65,-39.28 137.55,-42.83 140.6,-35.78 140.6,-35.78\"/>\n",
"<text text-anchor=\"start\" x=\"131.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">!c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.15,-35.14C127.71,-52.58 129.66,-72 137,-72 143.37,-72 145.68,-57.4 143.94,-42.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.85,-35.14 147.04,-41.58 143.39,-38.6 143.92,-42.06 143.92,-42.06 143.92,-42.06 143.39,-38.6 140.81,-42.54 142.85,-35.14 142.85,-35.14\"/>\n",
"<text text-anchor=\"start\" x=\"133.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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=\"354pt\" height=\"244pt\"\n",
" viewBox=\"0.00 0.00 354.00 244.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 240)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-240 350,-240 350,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"126\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"164\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\">[gen. Büchi 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"65\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"55\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0,0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.05,-18C1.95,-18 16.1,-18 30.76,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.14,-35.41C55.68,-45.09 58.3,-54 65,-54 69.92,-54 72.64,-49.19 73.16,-42.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.86,-35.41 76.29,-42.27 73,-38.91 73.14,-42.4 73.14,-42.4 73.14,-42.4 73,-38.91 70,-42.53 72.86,-35.41 72.86,-35.41\"/>\n",
"<text text-anchor=\"start\" x=\"46.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"57\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"189\" cy=\"-88\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"179\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">0,1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M86.15,-29.56C106.81,-41.41 139.04,-59.91 161.7,-72.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"167.82,-76.42 160.18,-75.67 164.79,-74.68 161.75,-72.94 161.75,-72.94 161.75,-72.94 164.79,-74.68 163.32,-70.21 167.82,-76.42 167.82,-76.42\"/>\n",
"<text text-anchor=\"start\" x=\"110\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"319\" cy=\"-88\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"309\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">1,1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M91.92,-15.33C132.92,-12.28 214.23,-11.07 274,-41 285.42,-46.72 295.41,-56.7 302.98,-65.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"307.36,-71.65 300.58,-68.05 305.22,-68.88 303.07,-66.12 303.07,-66.12 303.07,-66.12 305.22,-68.88 305.56,-64.19 307.36,-71.65 307.36,-71.65\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M183.43,-105.78C182.48,-115.31 184.34,-124 189,-124 192.42,-124 194.33,-119.32 194.73,-113.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"194.57,-105.78 197.88,-112.71 194.65,-109.28 194.73,-112.78 194.73,-112.78 194.73,-112.78 194.65,-109.28 191.58,-112.85 194.57,-105.78 194.57,-105.78\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M180.47,-105.25C174.41,-126.43 177.25,-154 189,-154 199.51,-154 202.89,-131.94 199.15,-112.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"197.53,-105.25 202.21,-111.34 198.34,-108.66 199.14,-112.06 199.14,-112.06 199.14,-112.06 198.34,-108.66 196.07,-112.78 197.53,-105.25 197.53,-105.25\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"189\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M195.63,-105.53C202.02,-122.15 214.19,-146.14 234,-157 249.59,-165.55 258.41,-165.55 274,-157 291.33,-147.5 302.82,-127.94 309.7,-112.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"312.37,-105.53 312.64,-113.21 311.04,-108.77 309.72,-112.01 309.72,-112.01 309.72,-112.01 311.04,-108.77 306.8,-110.82 312.37,-105.53 312.37,-105.53\"/>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M211.97,-97.69C218.88,-100.27 226.64,-102.7 234,-104 251.51,-107.08 256.49,-107.08 274,-104 279.06,-103.11 284.31,-101.68 289.34,-100.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"296.03,-97.69 290.47,-102.98 292.73,-98.85 289.43,-100.01 289.43,-100.01 289.43,-100.01 292.73,-98.85 288.38,-97.03 296.03,-97.69 296.03,-97.69\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M291.96,-85.93C286.06,-85.54 279.82,-85.2 274,-85 256.23,-84.39 251.77,-84.39 234,-85 230.46,-85.12 226.75,-85.3 223.07,-85.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"216.04,-85.93 222.84,-82.36 219.54,-85.72 223.03,-85.5 223.03,-85.5 223.03,-85.5 219.54,-85.72 223.22,-88.65 216.04,-85.93 216.04,-85.93\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M305.08,-72.38C297.11,-64 286.11,-54.5 274,-50 257.34,-43.8 250.66,-43.8 234,-50 224.35,-53.59 215.41,-60.35 208.14,-67.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"202.92,-72.38 205.66,-65.21 205.4,-69.91 207.88,-67.44 207.88,-67.44 207.88,-67.44 205.4,-69.91 210.1,-69.67 202.92,-72.38 202.92,-72.38\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-53.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M313.25,-105.78C312.27,-115.31 314.19,-124 319,-124 322.53,-124 324.51,-119.32 324.92,-113.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"324.75,-105.78 328.06,-112.71 324.83,-109.28 324.91,-112.78 324.91,-112.78 324.91,-112.78 324.83,-109.28 321.76,-112.85 324.75,-105.78 324.75,-105.78\"/>\n",
"<text text-anchor=\"start\" x=\"299\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"311\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M310.19,-105.25C303.94,-126.43 306.88,-154 319,-154 329.85,-154 333.34,-131.94 329.48,-112.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"327.81,-105.25 332.52,-111.31 328.64,-108.65 329.46,-112.05 329.46,-112.05 329.46,-112.05 328.64,-108.65 326.4,-112.8 327.81,-105.25 327.81,-105.25\"/>\n",
"<text text-anchor=\"start\" x=\"301\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"303\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</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=\"303pt\" height=\"244pt\"\n",
" viewBox=\"0.00 0.00 303.00 244.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 240)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-240 299,-240 299,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"100.5\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"122.5\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"174.5\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"103.5\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\">[gen. Büchi 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<g id=\"a_node2\"><a xlink:title=\"0,0\">\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",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-35.04C48.32,-44.86 50.45,-54 56,-54 60.17,-54 62.4,-48.86 62.71,-42.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-35.04 65.85,-41.88 62.54,-38.53 62.71,-42.03 62.71,-42.03 62.71,-42.03 62.54,-38.53 59.56,-42.18 62.38,-35.04 62.38,-35.04\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<g id=\"a_node3\"><a xlink:title=\"0,1\">\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"162.5\" cy=\"-88\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"162.5\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.53,-27.73C89.62,-39.85 120.64,-60.63 141.11,-74.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"147.09,-78.35 139.52,-77.07 144.19,-76.4 141.28,-74.45 141.28,-74.45 141.28,-74.45 144.19,-76.4 143.03,-71.84 147.09,-78.35 147.09,-78.35\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-81.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"101\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<g id=\"a_node4\"><a xlink:title=\"1,1\">\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"275\" cy=\"-88\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"275\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.96,-15.8C107.89,-12.27 185.47,-8.6 239,-40 249.22,-45.99 257.31,-56.27 263.13,-65.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"266.63,-71.87 260.41,-67.36 264.88,-68.83 263.14,-65.8 263.14,-65.8 263.14,-65.8 264.88,-68.83 265.87,-64.23 266.63,-71.87 266.63,-71.87\"/>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M157.86,-105.41C156.99,-115.09 158.54,-124 162.5,-124 165.41,-124 167.02,-119.19 167.32,-112.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"167.14,-105.41 170.46,-112.33 167.23,-108.91 167.31,-112.41 167.31,-112.41 167.31,-112.41 167.23,-108.91 164.16,-112.48 167.14,-105.41 167.14,-105.41\"/>\n",
"<text text-anchor=\"start\" x=\"144.5\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M155.5,-104.6C150.21,-125.86 152.55,-154 162.5,-154 171.4,-154 174.21,-131.49 170.92,-111.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.5,-104.6 173.99,-110.82 170.2,-108.02 170.9,-111.45 170.9,-111.45 170.9,-111.45 170.2,-108.02 167.82,-112.09 169.5,-104.6 169.5,-104.6\"/>\n",
"<text text-anchor=\"start\" x=\"146.5\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"146.5\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"162.5\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M167.14,-105.72C171.57,-122.23 180.83,-145.91 199,-157 214.18,-166.26 223.85,-166.3 239,-157 254.68,-147.37 263.6,-128.28 268.51,-112.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"270.49,-105.71 271.59,-113.31 269.53,-109.08 268.56,-112.44 268.56,-112.44 268.56,-112.44 269.53,-109.08 265.53,-111.57 270.49,-105.71 270.49,-105.71\"/>\n",
"<text text-anchor=\"start\" x=\"199\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.57,-96.49C184.7,-99.49 191.99,-102.49 199,-104 216.38,-107.74 221.63,-107.78 239,-104 243.46,-103.03 248.02,-101.44 252.33,-99.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"258.82,-96.66 253.76,-102.44 255.63,-98.12 252.45,-99.57 252.45,-99.57 252.45,-99.57 255.63,-98.12 251.14,-96.71 258.82,-96.66 258.82,-96.66\"/>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"211\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M256.93,-86.24C251.23,-85.73 244.85,-85.25 239,-85 221.24,-84.24 216.76,-84.25 199,-85 195.31,-85.16 191.41,-85.4 187.6,-85.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"180.46,-86.27 187.17,-82.56 183.94,-85.99 187.43,-85.7 187.43,-85.7 187.43,-85.7 183.94,-85.99 187.69,-88.84 180.46,-86.27 180.46,-86.27\"/>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M264.67,-72.85C258.54,-64.41 249.68,-54.68 239,-50 222.72,-42.86 215.31,-42.92 199,-50 190.59,-53.65 183.26,-60.39 177.49,-67.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.01,-72.84 174.88,-65.4 175.18,-70.1 177.35,-67.35 177.35,-67.35 177.35,-67.35 175.18,-70.1 179.82,-69.31 173.01,-72.84 173.01,-72.84\"/>\n",
"<text text-anchor=\"start\" x=\"203\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"211\" y=\"-53.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M270,-105.41C269.07,-115.09 270.73,-124 275,-124 278.13,-124 279.86,-119.19 280.19,-112.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"280,-105.41 283.33,-112.33 280.09,-108.91 280.18,-112.41 280.18,-112.41 280.18,-112.41 280.09,-108.91 277.03,-112.49 280,-105.41 280,-105.41\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"267\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M267.46,-104.6C261.77,-125.86 264.28,-154 275,-154 284.59,-154 287.61,-131.49 284.06,-111.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"282.54,-104.6 287.12,-110.75 283.29,-108.01 284.05,-111.43 284.05,-111.43 284.05,-111.43 283.29,-108.01 280.97,-112.11 282.54,-104.6 282.54,-104.6\"/>\n",
"<text text-anchor=\"start\" x=\"257\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"259\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Using +1 in the display options is a convient way to shift the \n",
"# set numbers in the output, as an aid in reading the product.\n",
"a1 = spot.translate('GF(a <-> Xa)')\n",
"print(a1.prop_weak())\n",
"a2 = spot.translate('a U b & GFc')\n",
"display_inline(a1.show('.t'), a2.show('.t+1'))\n",
"# the product should display pairs of states, unless asked not to (using '1').\n",
"p = spot.product(a1, a2)\n",
"display_inline(p.show('.t'), p.show('.t1'), per_row=2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Explicit determinization after translation:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"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=\"169pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 169.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 165,-120.8 165,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"57.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"139\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"139\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.18,-22C84.48,-22 97.85,-22 109.68,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"116.81,-22 109.81,-25.15 113.31,-22 109.81,-22 109.81,-22 109.81,-22 113.31,-22 109.81,-18.85 116.81,-22 116.81,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.32,-42.99C130.37,-53.09 132.93,-62 139,-62 143.55,-62 146.13,-56.99 146.74,-50.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.68,-42.99 149.88,-49.97 146.71,-46.49 146.73,-49.99 146.73,-49.99 146.73,-49.99 146.71,-46.49 143.58,-50.01 146.68,-42.99 146.68,-42.99\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">a</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 0x7fde006412d0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"False"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a = spot.translate('FGa')\n",
"display(a)\n",
"display(a.is_deterministic())"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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=\"170pt\" height=\"140pt\"\n",
" viewBox=\"0.00 0.00 170.00 140.47\" 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 136.47)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-136.47 166,-136.47 166,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"29\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"54\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"70\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"113\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"52\" y=\"-104.27\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-30.47\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-26.77\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-30.47C2.79,-30.47 17.15,-30.47 30.63,-30.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-30.47 30.94,-33.62 34.44,-30.47 30.94,-30.47 30.94,-30.47 30.94,-30.47 34.44,-30.47 30.94,-27.32 37.94,-30.47 37.94,-30.47\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-47.5C48.32,-57.32 50.45,-66.47 56,-66.47 60.17,-66.47 62.4,-61.32 62.71,-54.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-47.5 65.85,-54.35 62.54,-51 62.71,-54.5 62.71,-54.5 62.71,-54.5 62.54,-51 59.56,-54.64 62.38,-47.5 62.38,-47.5\"/>\n",
"<text text-anchor=\"start\" x=\"50.5\" y=\"-70.27\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"144\" cy=\"-30.47\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"144\" y=\"-26.77\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.04,-33.39C79.73,-34.24 86.12,-35.05 92,-35.47 99.09,-35.97 100.91,-35.97 108,-35.47 111.49,-35.22 115.16,-34.83 118.76,-34.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"125.96,-33.39 119.46,-37.47 122.49,-33.87 119.03,-34.35 119.03,-34.35 119.03,-34.35 122.49,-33.87 118.6,-31.23 125.96,-33.39 125.96,-33.39\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-54.27\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-39.27\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.4,-17.33C125.16,-11.25 116.91,-4.68 108,-1.47 95.99,2.87 83.5,-4 73.9,-12.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-17 71.63,-9.95 71.18,-14.64 73.76,-12.27 73.76,-12.27 73.76,-12.27 71.18,-14.64 75.89,-14.59 68.6,-17 68.6,-17\"/>\n",
"<text text-anchor=\"start\" x=\"94.5\" y=\"-20.27\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-5.27\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M136.33,-46.76C134.48,-56.85 137.04,-66.47 144,-66.47 149.22,-66.47 151.96,-61.06 152.23,-54.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.67,-46.76 155.34,-53.5 151.93,-50.25 152.2,-53.74 152.2,-53.74 152.2,-53.74 151.93,-50.25 149.06,-53.98 151.67,-46.76 151.67,-46.76\"/>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-85.27\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-70.27\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde00641360> >"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.tgba_determinize(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Determinization by `translate()`. The `generic` option allows any acceptance condition to be used instead of the default generalized Büchi."
]
},
{
"cell_type": "code",
"execution_count": 25,
"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=\"89pt\" height=\"161pt\"\n",
" viewBox=\"0.00 0.00 89.00 161.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 157)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-157 85,-157 85,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"18\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"43\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"59\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"59.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"59.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M4.65,-18C6.29,-18 20.65,-18 34.13,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"41.44,-18 34.44,-21.15 37.94,-18 34.44,-18 34.44,-18 34.44,-18 37.94,-18 34.44,-14.85 41.44,-18 41.44,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.26,-35.78C55.71,-45.31 56.79,-54 59.5,-54 61.49,-54 62.6,-49.32 62.83,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.74,-35.78 65.98,-42.74 62.78,-39.28 62.83,-42.78 62.83,-42.78 62.83,-42.78 62.78,-39.28 59.68,-42.82 62.74,-35.78 62.74,-35.78\"/>\n",
"<text text-anchor=\"start\" x=\"56\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.18,-35.42C51.15,-52.79 52.93,-72 59.5,-72 65.2,-72 67.29,-57.55 65.77,-42.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"64.82,-35.42 68.89,-41.93 65.29,-38.89 65.76,-42.36 65.76,-42.36 65.76,-42.36 65.29,-38.89 62.64,-42.78 64.82,-35.42 64.82,-35.42\"/>\n",
"<text text-anchor=\"start\" x=\"54\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fde00641090> >"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.translate('FGa', 'generic', 'deterministic')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Translation to state-based co-Büchi automaton"
]
},
{
"cell_type": "code",
"execution_count": 26,
"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=\"183pt\" height=\"131pt\"\n",
" viewBox=\"0.00 0.00 182.74 130.74\" 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 126.74)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-126.74 178.74,-126.74 178.74,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"64.87\" y=\"-108.54\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"89.87\" y=\"-108.54\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"105.87\" y=\"-108.54\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"54.87\" y=\"-94.54\" font-family=\"Lato\" font-size=\"14.00\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"64.87\" cy=\"-26.87\" rx=\"26.74\" ry=\"26.74\"/>\n",
"<text text-anchor=\"start\" x=\"60.37\" y=\"-30.67\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"56.87\" y=\"-15.67\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.05,-26.87C1.95,-26.87 16.07,-26.87 30.7,-26.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.86,-26.87 30.86,-30.02 34.36,-26.87 30.86,-26.87 30.86,-26.87 30.86,-26.87 34.36,-26.87 30.86,-23.72 37.86,-26.87 37.86,-26.87\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.67,-52.69C56.21,-63.05 58.94,-71.74 64.87,-71.74 69.32,-71.74 71.97,-66.85 72.82,-60.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.07,-52.69 75.98,-59.8 72.95,-56.19 72.83,-59.69 72.83,-59.69 72.83,-59.69 72.95,-56.19 69.68,-59.58 73.07,-52.69 73.07,-52.69\"/>\n",
"<text text-anchor=\"start\" x=\"59.37\" y=\"-75.54\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"156.74\" cy=\"-26.87\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"156.74\" y=\"-23.17\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M91.86,-26.87C104.31,-26.87 119.14,-26.87 131.37,-26.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"138.61,-26.87 131.61,-30.02 135.11,-26.87 131.61,-26.87 131.61,-26.87 131.61,-26.87 135.11,-26.87 131.61,-23.72 138.61,-26.87 138.61,-26.87\"/>\n",
"<text text-anchor=\"start\" x=\"111.74\" y=\"-30.67\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M141.02,-17.33C134.99,-13.95 127.78,-10.57 120.74,-8.87 112.29,-6.82 103.27,-8.23 95.03,-10.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"88.33,-13.57 93.73,-8.11 91.59,-12.31 94.86,-11.05 94.86,-11.05 94.86,-11.05 91.59,-12.31 95.99,-13.99 88.33,-13.57 88.33,-13.57\"/>\n",
"<text text-anchor=\"start\" x=\"109.74\" y=\"-12.67\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M149.71,-43.53C148.15,-53.5 150.49,-62.87 156.74,-62.87 161.43,-62.87 163.92,-57.6 164.21,-50.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"163.77,-43.53 167.34,-50.33 163.98,-47.03 164.2,-50.52 164.2,-50.52 164.2,-50.52 163.98,-47.03 161.05,-50.71 163.77,-43.53 163.77,-43.53\"/>\n",
"<text text-anchor=\"start\" x=\"153.24\" y=\"-66.67\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.translate('FGa', 'coBuchi', 'deterministic', 'sbacc').show('.b')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Translation to parity automaton. Specifying just `parity max odd` requires a parity acceptance. Adding `colored` ensures that each transition (or state if `sbacc` is also given) has a color, as people usually expect in parity automata."
]
},
{
"cell_type": "code",
"execution_count": 27,
"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=\"192pt\" height=\"176pt\"\n",
" viewBox=\"0.00 0.00 192.00 176.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 172)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-172 188,-172 188,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"33\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"49\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"112\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"168\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"34.5\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 3]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"111\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"111\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.15,-18C57.79,-18 72.15,-18 85.63,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"92.94,-18 85.94,-21.15 89.44,-18 85.94,-18 85.94,-18 85.94,-18 89.44,-18 85.94,-14.85 92.94,-18 92.94,-18\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M107.76,-35.78C107.21,-45.31 108.29,-54 111,-54 112.99,-54 114.1,-49.32 114.33,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"114.24,-35.78 117.48,-42.74 114.28,-39.28 114.33,-42.78 114.33,-42.78 114.33,-42.78 114.28,-39.28 111.18,-42.82 114.24,-35.78 114.24,-35.78\"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M105.99,-35.58C102.55,-56.72 104.21,-84 111,-84 117.04,-84 119.03,-62.36 116.96,-42.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"116.01,-35.58 120.06,-42.1 116.47,-39.05 116.93,-42.52 116.93,-42.52 116.93,-42.52 116.47,-39.05 113.81,-42.93 116.01,-35.58 116.01,-35.58\"/>\n",
"<text text-anchor=\"start\" x=\"105.5\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-87.8\" 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 0x7fde006419c0> >"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.translate('FGa', 'parity max odd', 'colored')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Adding an atomic proposition to all edges"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"169pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 169.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 165,-120.8 165,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"57.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"139\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"139\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.18,-22C84.48,-22 97.85,-22 109.68,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"116.81,-22 109.81,-25.15 113.31,-22 109.81,-22 109.81,-22 109.81,-22 113.31,-22 109.81,-18.85 116.81,-22 116.81,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.32,-42.99C130.37,-53.09 132.93,-62 139,-62 143.55,-62 146.13,-56.99 146.74,-50.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.68,-42.99 149.88,-49.97 146.71,-46.49 146.73,-49.99 146.73,-49.99 146.73,-49.99 146.71,-46.49 143.58,-50.01 146.68,-42.99 146.68,-42.99\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">a</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 0x7fde006412d0> >"
]
},
"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=\"196pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 196.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 192,-120.8 192,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"71\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"166\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"166\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"166\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.35,-22C91.17,-22 116.95,-22 136.73,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"143.99,-22 136.99,-25.15 140.49,-22 136.99,-22 136.99,-22 136.99,-22 140.49,-22 136.99,-18.85 143.99,-22 143.99,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M155.93,-41.76C154.22,-52.35 157.58,-62 166,-62 172.45,-62 175.93,-56.34 176.43,-48.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"176.07,-41.76 179.57,-48.59 176.25,-45.25 176.43,-48.75 176.43,-48.75 176.43,-48.75 176.25,-45.25 173.28,-48.91 176.07,-41.76 176.07,-41.76\"/>\n",
"<text text-anchor=\"start\" x=\"149\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</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 0x7fde006412d0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import buddy\n",
"display(a)\n",
"b = buddy.bdd_ithvar(a.register_ap('b'))\n",
"for e in a.edges():\n",
" e.cond &= b\n",
"display(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Adding an atomic proposition to the edge between 0 and 1:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"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=\"220pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 220.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 216,-120.8 216,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"83\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"190\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"190\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"190\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.26,-22C96.23,-22 134.49,-22 160.75,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"167.81,-22 160.81,-25.15 164.31,-22 160.81,-22 160.81,-22 160.81,-22 164.31,-22 160.81,-18.85 167.81,-22 167.81,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.05,-40.52C175.39,-51.58 179.38,-62 190,-62 198.3,-62 202.55,-55.64 202.74,-47.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"201.95,-40.52 205.86,-47.12 202.34,-43.99 202.73,-47.47 202.73,-47.47 202.73,-47.47 202.34,-43.99 199.6,-47.82 201.95,-40.52 201.95,-40.52\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</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 0x7fde006412d0> >"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = buddy.bdd_ithvar(a.register_ap('c'))\n",
"for e in a.out(0):\n",
" if e.dst == 1:\n",
" e.cond &= c\n",
"a"
]
}
],
"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.7.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}