spot/tests/python/automata.ipynb
Alexandre Duret-Lutz a7051b32c8 dot: fix #393
* spot/twaalgos/dot.cc: Add support for option 'E', and default to
rectangle nodes for large labels.
* bin/common_aoutput.cc, NEWS: Document it.
* tests/core/alternating.test, tests/core/dstar.test,
tests/core/readsave.test, tests/core/sccdot.test,
tests/core/tgbagraph.test, tests/python/_product_weak.ipynb,
tests/python/alternation.ipynb, tests/python/atva16-fig2b.ipynb,
tests/python/automata.ipynb, tests/python/decompose.ipynb,
tests/python/gen.ipynb, tests/python/highlighting.ipynb,
tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
tests/python/parity.ipynb, tests/python/pdegen.py,
tests/python/satmin.ipynb, tests/python/stutter-inv.ipynb: Adjust all
test cases.
2020-04-29 21:14:36 +02:00

3776 lines
240 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=\"460pt\" height=\"329pt\"\n",
" viewBox=\"0.00 0.00 460.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 456,-324.8 456,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"204.5\" 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=\"38\" 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=\"189\" cy=\"-214\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"189\" cy=\"-214\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"189\" 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.18,-133.55C74.68,-140.97 83.3,-150.04 92,-157 114.27,-174.8 142.64,-190.97 162.75,-201.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.97,-204.71 161.3,-204.29 165.86,-203.1 162.75,-201.5 162.75,-201.5 162.75,-201.5 165.86,-203.1 164.19,-198.7 168.97,-204.71 168.97,-204.71\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-196.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=\"326\" cy=\"-157\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"326\" 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.37C120.4,-128.75 247.6,-146.31 300.95,-153.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"307.97,-154.65 300.61,-156.81 304.5,-154.17 301.04,-153.69 301.04,-153.69 301.04,-153.69 304.5,-154.17 301.47,-150.57 307.97,-154.65 307.97,-154.65\"/>\n",
"<text text-anchor=\"start\" x=\"170.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=\"434\" cy=\"-222\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"434\" 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.75,-116.58C119.38,-108.07 248.82,-89.46 344,-130 377.64,-144.33 404.8,-178.24 419.92,-200.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"423.86,-206.63 417.38,-202.52 421.93,-203.71 420.01,-200.79 420.01,-200.79 420.01,-200.79 421.93,-203.71 422.64,-199.05 423.86,-206.63 423.86,-206.63\"/>\n",
"<text text-anchor=\"start\" x=\"229\" 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=\"189\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"189\" 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.05,-103.9C71.24,-92.75 80.64,-78.15 92,-68 113.65,-48.65 144.15,-34.44 164.92,-26.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.56,-23.66 166.16,-29.12 168.29,-24.92 165.03,-26.18 165.03,-26.18 165.03,-26.18 168.29,-24.92 163.9,-23.24 171.56,-23.66 171.56,-23.66\"/>\n",
"<text text-anchor=\"start\" x=\"100.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=\"M177.05,-232.52C174.39,-243.58 178.38,-254 189,-254 197.3,-254 201.55,-247.64 201.74,-239.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.95,-232.52 204.86,-239.12 201.34,-235.99 201.73,-239.47 201.73,-239.47 201.73,-239.47 201.34,-235.99 198.6,-239.82 200.95,-232.52 200.95,-232.52\"/>\n",
"<text text-anchor=\"start\" x=\"173\" 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=\"M211.12,-212.8C232.23,-210.84 265.05,-205.66 290,-192 297.27,-188.02 304.03,-182.07 309.64,-176.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"314.44,-170.89 312.08,-178.19 312.09,-173.48 309.74,-176.08 309.74,-176.08 309.74,-176.08 312.09,-173.48 307.41,-173.97 314.44,-170.89 314.44,-170.89\"/>\n",
"<text text-anchor=\"start\" x=\"253.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=\"M201.34,-232.6C208.12,-241.95 217.63,-252.44 229,-258 274.97,-280.45 292.9,-265.36 344,-263 368.08,-261.89 376.25,-268.39 398,-258 405.71,-254.32 412.64,-248.18 418.27,-242\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"423.05,-236.39 420.91,-243.76 420.78,-239.05 418.51,-241.72 418.51,-241.72 418.51,-241.72 420.78,-239.05 416.11,-239.68 423.05,-236.39 423.05,-236.39\"/>\n",
"<text text-anchor=\"start\" x=\"308\" 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=\"M307.66,-156.66C287.58,-156.96 254.08,-159.7 229,-173 220.86,-177.32 213.46,-183.97 207.34,-190.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"202.51,-196.26 204.7,-188.9 204.8,-193.61 207.08,-190.96 207.08,-190.96 207.08,-190.96 204.8,-193.61 209.47,-193.02 202.51,-196.26 202.51,-196.26\"/>\n",
"<text text-anchor=\"start\" x=\"243.5\" 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=\"M316.77,-172.54C314.17,-182.91 317.25,-193 326,-193 332.7,-193 336.08,-187.08 336.12,-179.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"335.23,-172.54 339.23,-179.1 335.67,-176.01 336.1,-179.49 336.1,-179.49 336.1,-179.49 335.67,-176.01 332.98,-179.88 335.23,-172.54 335.23,-172.54\"/>\n",
"<text text-anchor=\"start\" x=\"320\" 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=\"M341.74,-166.04C360.09,-177.29 391.55,-196.58 412.31,-209.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"418.39,-213.04 410.77,-212.06 415.4,-211.21 412.42,-209.38 412.42,-209.38 412.42,-209.38 415.4,-211.21 414.07,-206.69 418.39,-213.04 418.39,-213.04\"/>\n",
"<text text-anchor=\"start\" x=\"362\" 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=\"M416.16,-225.02C381.02,-230.79 297.46,-241.71 229,-229 224.8,-228.22 220.46,-227 216.28,-225.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"209.43,-223.08 217.09,-222.54 212.72,-224.29 216,-225.49 216,-225.49 216,-225.49 212.72,-224.29 214.92,-228.45 209.43,-223.08 209.43,-223.08\"/>\n",
"<text text-anchor=\"start\" x=\"322.5\" y=\"-237.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=\"M424.77,-237.54C422.17,-247.91 425.25,-258 434,-258 440.7,-258 444.08,-252.08 444.12,-244.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"443.23,-237.54 447.23,-244.1 443.67,-241.01 444.1,-244.49 444.1,-244.49 444.1,-244.49 443.67,-241.01 440.98,-244.88 443.23,-237.54 443.23,-237.54\"/>\n",
"<text text-anchor=\"start\" x=\"428.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=\"M177.76,-32.42C173.83,-43.17 177.58,-54 189,-54 197.92,-54 202.16,-47.39 201.72,-39.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.24,-32.42 204.78,-38.61 200.97,-35.84 201.7,-39.26 201.7,-39.26 201.7,-39.26 200.97,-35.84 198.61,-39.92 200.24,-32.42 200.24,-32.42\"/>\n",
"<text text-anchor=\"middle\" x=\"189\" 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 0x7fbc2c2c2bd0> >"
]
},
"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=\"343pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 343.40 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 368.02,-386 368.02,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"182.01\" 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=\"235.02\" cy=\"-287\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"235.02\" 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=\"M235.02,-341.85C235.02,-340.21 235.02,-325.85 235.02,-312.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"235.02,-305.06 238.17,-312.06 235.02,-308.56 235.02,-312.06 235.02,-312.06 235.02,-312.06 235.02,-308.56 231.87,-312.06 235.02,-305.06 235.02,-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=\"M252.06,-293.38C261.88,-294.68 271.02,-292.55 271.02,-287 271.02,-282.83 265.88,-280.6 259.16,-280.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.06,-280.62 258.9,-277.15 255.55,-280.46 259.05,-280.29 259.05,-280.29 259.05,-280.29 255.55,-280.46 259.2,-283.44 252.06,-280.62 252.06,-280.62\"/>\n",
"<text text-anchor=\"middle\" x=\"294.02\" 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=\"83.02\" cy=\"-196\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"83.02\" cy=\"-196\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"83.02\" 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=\"M217.12,-284.97C191.7,-282.65 144.81,-275.17 114.02,-251 104.95,-243.88 98.06,-233.32 93.11,-223.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"90.12,-217.06 95.95,-222.06 91.61,-220.23 93.09,-223.4 93.09,-223.4 93.09,-223.4 91.61,-220.23 90.24,-224.74 90.12,-217.06 90.12,-217.06\"/>\n",
"<text text-anchor=\"middle\" x=\"149.02\" 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=\"135.02\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"135.02\" 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=\"M229,-269.97C216.48,-237.07 187.54,-163.14 172.02,-141 167.12,-134.02 160.66,-127.33 154.51,-121.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.01,-116.85 156.34,-119.11 151.63,-119.17 154.26,-121.48 154.26,-121.48 154.26,-121.48 151.63,-119.17 152.18,-123.84 149.01,-116.85 149.01,-116.85\"/>\n",
"<text text-anchor=\"middle\" x=\"231.02\" 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=\"108.02\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"108.02\" 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=\"M243.11,-270.52C253.43,-248.66 268.74,-207.67 258.02,-174 238.2,-111.72 221.97,-97.3 173.02,-54 160.68,-43.08 144.33,-34.3 131.12,-28.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"124.54,-25.36 132.22,-25.3 127.74,-26.77 130.94,-28.19 130.94,-28.19 130.94,-28.19 127.74,-26.77 129.67,-31.07 124.54,-25.36 124.54,-25.36\"/>\n",
"<text text-anchor=\"middle\" x=\"289.02\" 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=\"318.02\" cy=\"-196\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"318.02\" 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=\"M250.62,-277.72C261.46,-271.42 275.75,-261.98 286.02,-251 294.69,-241.73 302.1,-229.72 307.6,-219.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"310.93,-212.87 310.54,-220.53 309.33,-215.98 307.74,-219.1 307.74,-219.1 307.74,-219.1 309.33,-215.98 304.93,-217.66 310.93,-212.87 310.93,-212.87\"/>\n",
"<text text-anchor=\"middle\" x=\"323.02\" 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=\"M103.6,-204.37C113.87,-205.53 123.02,-202.74 123.02,-196 123.02,-190.95 117.87,-188.11 110.97,-187.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"103.6,-187.63 110.55,-184.36 107.1,-187.57 110.6,-187.51 110.6,-187.51 110.6,-187.51 107.1,-187.57 110.66,-190.66 103.6,-187.63 103.6,-187.63\"/>\n",
"<text text-anchor=\"middle\" x=\"142.52\" 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=\"M89.91,-175.09C93.93,-164.59 99.5,-151.7 106.02,-141 109.58,-135.16 114.05,-129.26 118.41,-124.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.05,-118.61 120.88,-125.98 120.77,-121.27 118.49,-123.93 118.49,-123.93 118.49,-123.93 120.77,-121.27 116.1,-121.87 123.05,-118.61 123.05,-118.61\"/>\n",
"<text text-anchor=\"middle\" x=\"114.02\" 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=\"M64.14,-183.69C35.05,-164.73 -15.36,-124.88 5.02,-87 21.73,-55.95 59.5,-36.73 84.37,-26.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"91.01,-24.44 85.57,-29.86 87.74,-25.68 84.46,-26.91 84.46,-26.91 84.46,-26.91 87.74,-25.68 83.35,-23.97 91.01,-24.44 91.01,-24.44\"/>\n",
"<text text-anchor=\"middle\" x=\"27.52\" 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=\"M132.88,-123.06C131.08,-133.15 127.81,-145.88 122.02,-156 117.64,-163.66 111.35,-170.86 105.1,-176.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"99.91,-181.77 102.89,-174.7 102.47,-179.39 105.04,-177 105.04,-177 105.04,-177 102.47,-179.39 107.18,-179.31 99.91,-181.77 99.91,-181.77\"/>\n",
"<text text-anchor=\"middle\" x=\"148.52\" 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=\"M151.69,-112.38C161.65,-114.02 171.02,-111.56 171.02,-105 171.02,-100.08 165.75,-97.46 158.91,-97.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.69,-97.62 158.47,-94.03 155.18,-97.39 158.67,-97.17 158.67,-97.17 158.67,-97.17 155.18,-97.39 158.87,-100.31 151.69,-97.62 151.69,-97.62\"/>\n",
"<text text-anchor=\"middle\" x=\"179.02\" 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=\"M129.82,-87.61C125.71,-74.68 119.92,-56.47 115.35,-42.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"113.21,-35.34 118.33,-41.06 114.27,-38.67 115.33,-42.01 115.33,-42.01 115.33,-42.01 114.27,-38.67 112.33,-42.96 113.21,-35.34 113.21,-35.34\"/>\n",
"<text text-anchor=\"middle\" x=\"146.52\" 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=\"M105.62,-35.92C101.31,-66.27 92.22,-130.21 86.98,-167.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"85.99,-174.12 83.85,-166.75 86.48,-170.65 86.97,-167.19 86.97,-167.19 86.97,-167.19 86.48,-170.65 90.09,-167.63 85.99,-174.12 85.99,-174.12\"/>\n",
"<text text-anchor=\"middle\" x=\"102.02\" 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=\"M124.69,-25.38C134.65,-27.02 144.02,-24.56 144.02,-18 144.02,-13.08 138.75,-10.46 131.91,-10.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"124.69,-10.62 131.47,-7.03 128.18,-10.39 131.67,-10.17 131.67,-10.17 131.67,-10.17 128.18,-10.39 131.87,-13.31 124.69,-10.62 124.69,-10.62\"/>\n",
"<text text-anchor=\"middle\" x=\"151.02\" 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=\"M334.31,-204.02C344.41,-205.95 354.02,-203.28 354.02,-196 354.02,-190.54 348.61,-187.67 341.65,-187.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"334.31,-187.98 341.04,-184.29 337.8,-187.7 341.29,-187.43 341.29,-187.43 341.29,-187.43 337.8,-187.7 341.54,-190.57 334.31,-187.98 334.31,-187.98\"/>\n",
"<text text-anchor=\"middle\" x=\"359.02\" 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=\"415pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 414.84 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 465,-403 465,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"210\" y=\"-384.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-384.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-384.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"209\" 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=\"159.5,-153 159.5,-355 453,-355 453,-153 159.5,-153\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"grey\" points=\"159.5,-8 159.5,-93 211.5,-93 211.5,-8 159.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=\"38\" 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=\"185.5\" cy=\"-245\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"185.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.53,-149.14C75.14,-156.43 83.75,-165.51 92,-173 115.65,-194.48 145.09,-216.7 164.31,-230.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"170.18,-234.9 162.66,-233.35 167.34,-232.85 164.5,-230.8 164.5,-230.8 164.5,-230.8 167.34,-232.85 166.35,-228.25 170.18,-234.9 170.18,-234.9\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-221.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=\"319\" cy=\"-179\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"319\" 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.02,-138.74C111.69,-144.82 204.97,-159.92 283,-173 286.56,-173.6 290.32,-174.23 294,-174.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"300.91,-176.04 293.48,-177.97 297.46,-175.45 294.01,-174.86 294.01,-174.86 294.01,-174.86 297.46,-175.45 294.55,-171.76 300.91,-176.04 300.91,-176.04\"/>\n",
"<text text-anchor=\"start\" x=\"167\" 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=\"427\" cy=\"-212\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"427\" 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=\"M74.11,-133.61C118.95,-128.04 242.93,-117.18 337,-152 363.85,-161.94 390.53,-181.56 407.57,-195.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"412.96,-200.21 405.58,-198.1 410.29,-197.95 407.61,-195.7 407.61,-195.7 407.61,-195.7 410.29,-197.95 409.64,-193.29 412.96,-200.21 412.96,-200.21\"/>\n",
"<text text-anchor=\"start\" x=\"222\" y=\"-139.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=\"185.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"185.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.1,-119.95C71.31,-108.83 80.72,-94.24 92,-84 112.68,-65.23 141.67,-51.04 161.66,-42.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.32,-39.94 163.03,-45.5 165.08,-41.26 161.84,-42.58 161.84,-42.58 161.84,-42.58 165.08,-41.26 160.65,-39.67 168.32,-39.94 168.32,-39.94\"/>\n",
"<text text-anchor=\"start\" x=\"100.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=\"M174.79,-259.79C171.31,-270.42 174.88,-281 185.5,-281 193.63,-281 197.63,-274.8 197.5,-267.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.21,-259.79 200.52,-266.14 196.81,-263.24 197.42,-266.69 197.42,-266.69 197.42,-266.69 196.81,-263.24 194.32,-267.23 196.21,-259.79 196.21,-259.79\"/>\n",
"<text text-anchor=\"start\" x=\"169.5\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\">c &amp; d</text>\n",
"<text text-anchor=\"start\" x=\"177.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=\"M193.27,-228.64C199.09,-216.75 208.65,-201.34 222,-193 243.63,-179.49 273.25,-177.06 293.85,-177.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"301,-177.54 293.91,-180.49 297.5,-177.44 294,-177.34 294,-177.34 294,-177.34 297.5,-177.44 294.09,-174.19 301,-177.54 301,-177.54\"/>\n",
"<text text-anchor=\"start\" x=\"246.5\" y=\"-211.8\" font-family=\"Lato\" font-size=\"14.00\">!d</text>\n",
"<text text-anchor=\"start\" x=\"244.5\" 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=\"M201.57,-253.49C207.7,-256.49 214.99,-259.49 222,-261 248.51,-266.7 256.26,-265.45 283,-261 327.15,-253.65 375.94,-234.34 403.59,-222.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"410.15,-219.38 405.03,-225.09 406.95,-220.79 403.75,-222.21 403.75,-222.21 403.75,-222.21 406.95,-220.79 402.48,-219.33 410.15,-219.38 410.15,-219.38\"/>\n",
"<text text-anchor=\"start\" x=\"301\" y=\"-274.8\" font-family=\"Lato\" font-size=\"14.00\">!c &amp; d</text>\n",
"<text text-anchor=\"start\" x=\"311\" y=\"-259.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=\"M309.27,-194.71C303.14,-204.31 294.07,-216.04 283,-223 261.11,-236.77 231.6,-241.95 211,-243.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"203.84,-244.46 210.57,-240.76 207.33,-244.18 210.82,-243.9 210.82,-243.9 210.82,-243.9 207.33,-244.18 211.07,-247.04 203.84,-244.46 203.84,-244.46\"/>\n",
"<text text-anchor=\"start\" x=\"236.5\" 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=\"M309.77,-194.54C307.17,-204.91 310.25,-215 319,-215 325.7,-215 329.08,-209.08 329.12,-201.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"328.23,-194.54 332.23,-201.1 328.67,-198.01 329.1,-201.49 329.1,-201.49 329.1,-201.49 328.67,-198.01 325.98,-201.88 328.23,-194.54 328.23,-194.54\"/>\n",
"<text text-anchor=\"start\" x=\"313\" 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=\"M336.56,-184.16C354.38,-189.7 382.83,-198.56 402.86,-204.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"409.55,-206.88 401.93,-207.81 406.21,-205.84 402.87,-204.8 402.87,-204.8 402.87,-204.8 406.21,-205.84 403.81,-201.79 409.55,-206.88 409.55,-206.88\"/>\n",
"<text text-anchor=\"start\" x=\"355\" 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=\"M415.53,-226.04C400.55,-244.81 371.04,-277.2 337,-290 291.2,-307.23 235.67,-278.2 206.55,-259.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.41,-255.2 207.98,-256.46 203.32,-257.14 206.23,-259.08 206.23,-259.08 206.23,-259.08 203.32,-257.14 204.48,-261.71 200.41,-255.2 200.41,-255.2\"/>\n",
"<text text-anchor=\"start\" x=\"315.5\" y=\"-298.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=\"M417.77,-227.54C415.17,-237.91 418.25,-248 427,-248 433.7,-248 437.08,-242.08 437.12,-234.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"436.23,-227.54 440.23,-234.1 436.67,-231.01 437.1,-234.49 437.1,-234.49 437.1,-234.49 436.67,-231.01 433.98,-234.88 436.23,-227.54 436.23,-227.54\"/>\n",
"<text text-anchor=\"start\" x=\"421.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=\"M174.79,-48.79C171.31,-59.42 174.88,-70 185.5,-70 193.63,-70 197.63,-63.8 197.5,-56.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.21,-48.79 200.52,-55.14 196.81,-52.24 197.42,-55.69 197.42,-55.69 197.42,-55.69 196.81,-52.24 194.32,-56.23 196.21,-48.79 196.21,-48.79\"/>\n",
"<text text-anchor=\"middle\" x=\"185.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=\"170pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 170.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 166,-120.8 166,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",
"<!-- 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=\"38\" 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=\"140\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"140\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"140\" 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.39,-22C84.9,-22 98.55,-22 110.6,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"117.85,-22 110.85,-25.15 114.35,-22 110.85,-22 110.85,-22 110.85,-22 114.35,-22 110.85,-18.85 117.85,-22 117.85,-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=\"M131.99,-42.58C130.89,-52.84 133.55,-62 140,-62 144.83,-62 147.54,-56.85 148.13,-49.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"148.01,-42.58 151.27,-49.53 148.06,-46.08 148.12,-49.58 148.12,-49.58 148.12,-49.58 148.06,-46.08 144.97,-49.63 148.01,-42.58 148.01,-42.58\"/>\n",
"<text text-anchor=\"middle\" x=\"140\" 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 0x7fbc2c2c9270> >"
]
},
"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=\"170pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 170.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 166,-120.8 166,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",
"<!-- 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=\"38\" 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=\"140\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"140\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"140\" 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.39,-22C84.9,-22 98.55,-22 110.6,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"117.85,-22 110.85,-25.15 114.35,-22 110.85,-22 110.85,-22 110.85,-22 114.35,-22 110.85,-18.85 117.85,-22 117.85,-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=\"M131.99,-42.58C130.89,-52.84 133.55,-62 140,-62 144.83,-62 147.54,-56.85 148.13,-49.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"148.01,-42.58 151.27,-49.53 148.06,-46.08 148.12,-49.58 148.12,-49.58 148.12,-49.58 148.06,-46.08 144.97,-49.63 148.01,-42.58 148.01,-42.58\"/>\n",
"<text text-anchor=\"middle\" x=\"140\" 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 0x7fbc2c2c9a20> >"
]
},
"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=\"162pt\" height=\"115pt\"\n",
" viewBox=\"0.00 0.00 162.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 158,-111 158,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"74\" y=\"-91.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"66\" 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=\"38\" 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=\"136\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"136\" 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.31,-18C85.02,-18 98.92,-18 110.71,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"117.74,-18 110.74,-21.15 114.24,-18 110.74,-18 110.74,-18 110.74,-18 114.24,-18 110.74,-14.85 117.74,-18 117.74,-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=\"M128.97,-34.66C127.41,-44.62 129.75,-54 136,-54 140.69,-54 143.18,-48.73 143.47,-41.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"143.03,-34.66 146.6,-41.46 143.24,-38.16 143.46,-41.65 143.46,-41.65 143.46,-41.65 143.24,-38.16 140.31,-41.84 143.03,-34.66 143.03,-34.66\"/>\n",
"<text text-anchor=\"middle\" x=\"136\" 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 0x7fbc2c2ce600> >"
]
},
"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=\"252pt\" height=\"217pt\"\n",
" viewBox=\"0.00 0.00 252.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 248,-212.8 248,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"100.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=\"197\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"197\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"197\" 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.24,-99.62C135.62,-85.08 159.69,-60.73 176.84,-43.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"181.92,-38.25 179.24,-45.44 179.46,-40.74 177,-43.23 177,-43.23 177,-43.23 179.46,-40.74 174.76,-41.01 181.92,-38.25 181.92,-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=\"M217.58,-30.37C227.84,-31.53 237,-28.74 237,-22 237,-16.95 231.85,-14.11 224.95,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"217.58,-13.63 224.52,-10.36 221.08,-13.57 224.58,-13.51 224.58,-13.51 224.58,-13.51 221.08,-13.57 224.63,-16.66 217.58,-13.63 217.58,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"237\" 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=\"586pt\" height=\"320pt\"\n",
" viewBox=\"0.00 0.00 585.88 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 581.88,-315.8 581.88,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"267.44\" 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=\"283.88\" cy=\"-212\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"283.88\" cy=\"-212\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"283.88\" 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=\"M283.88,-270.83C283.88,-269.16 283.88,-255.12 283.88,-241.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"283.88,-234.14 287.03,-241.14 283.88,-237.64 283.88,-241.14 283.88,-241.14 283.88,-241.14 283.88,-237.64 280.73,-241.14 283.88,-234.14 283.88,-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=\"M304.87,-219.32C314.97,-220.22 323.88,-217.78 323.88,-212 323.88,-207.66 318.87,-205.21 312.1,-204.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"304.87,-204.68 311.85,-201.48 308.37,-204.66 311.87,-204.63 311.87,-204.63 311.87,-204.63 308.37,-204.66 311.9,-207.78 304.87,-204.68 304.87,-204.68\"/>\n",
"<text text-anchor=\"start\" x=\"323.88\" 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=\"96.88\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"96.88\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"96.88\" 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=\"M261.73,-208.65C201.89,-201.81 39.37,-179.75 7.88,-139 -20.31,-102.5 36.35,-59.38 71.61,-37.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"77.93,-33.57 73.59,-39.91 74.94,-35.4 71.95,-37.22 71.95,-37.22 71.95,-37.22 74.94,-35.4 70.31,-34.53 77.93,-33.57 77.93,-33.57\"/>\n",
"<text text-anchor=\"start\" x=\"7.88\" 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=\"471.88\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"471.88\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"471.88\" 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=\"M306.14,-211.9C353.18,-212.4 462.08,-205.94 506.88,-139 526.19,-110.15 506.06,-70.3 489.32,-45.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"485.16,-39.68 491.76,-43.6 487.17,-42.54 489.18,-45.41 489.18,-45.41 489.18,-45.41 487.17,-42.54 486.6,-47.22 485.16,-39.68 485.16,-39.68\"/>\n",
"<text text-anchor=\"start\" x=\"513.88\" 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=\"321.88\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"321.88\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"321.88\" 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=\"M296.7,-193.99C300.98,-187.44 305.31,-179.69 307.88,-172 321.33,-131.79 323.32,-82.31 323,-51.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"322.87,-44.35 326.14,-51.3 322.93,-47.85 322.99,-51.35 322.99,-51.35 322.99,-51.35 322.93,-47.85 319.84,-51.4 322.87,-44.35 322.87,-44.35\"/>\n",
"<text text-anchor=\"start\" x=\"320.88\" 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=\"102.88\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"102.88\" cy=\"-117\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"102.88\" 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=\"M262.8,-205.63C240.04,-199.36 203.12,-187.8 173.88,-172 156,-162.34 137.79,-148.39 124.29,-137.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.81,-132.43 126.18,-134.56 121.48,-134.69 124.14,-136.96 124.14,-136.96 124.14,-136.96 121.48,-134.69 122.1,-139.36 118.81,-132.43 118.81,-132.43\"/>\n",
"<text text-anchor=\"start\" x=\"173.88\" 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=\"214.88\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"214.88\" cy=\"-117\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"214.88\" 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=\"M268.43,-195.68C261.77,-188.73 254.1,-180.23 247.88,-172 241,-162.88 234.26,-152.26 228.69,-142.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"225.03,-136.58 231.27,-141.05 226.79,-139.61 228.55,-142.63 228.55,-142.63 228.55,-142.63 226.79,-139.61 225.83,-144.22 225.03,-136.58 225.03,-136.58\"/>\n",
"<text text-anchor=\"start\" x=\"247.88\" 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=\"425.88\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"425.88\" cy=\"-117\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"425.88\" 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=\"M301.87,-199.22C327.12,-182.68 373.17,-152.52 401.49,-133.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"407.6,-129.98 403.47,-136.45 404.67,-131.89 401.74,-133.81 401.74,-133.81 401.74,-133.81 404.67,-131.89 400.02,-131.18 407.6,-129.98 407.6,-129.98\"/>\n",
"<text text-anchor=\"start\" x=\"362.88\" 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=\"M117.46,-30.37C127.73,-31.53 136.88,-28.74 136.88,-22 136.88,-16.95 131.73,-14.11 124.83,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"117.46,-13.63 124.41,-10.36 120.96,-13.57 124.46,-13.51 124.46,-13.51 124.46,-13.51 120.96,-13.57 124.52,-16.66 117.46,-13.63 117.46,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"136.88\" 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=\"M492.46,-30.37C502.73,-31.53 511.88,-28.74 511.88,-22 511.88,-16.95 506.73,-14.11 499.83,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"492.46,-13.63 499.41,-10.36 495.96,-13.57 499.46,-13.51 499.46,-13.51 499.46,-13.51 495.96,-13.57 499.52,-16.66 492.46,-13.63 492.46,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"511.88\" 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=\"M342.46,-30.37C352.73,-31.53 361.88,-28.74 361.88,-22 361.88,-16.95 356.73,-14.11 349.83,-13.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"342.46,-13.63 349.41,-10.36 345.96,-13.57 349.46,-13.51 349.46,-13.51 349.46,-13.51 345.96,-13.57 349.52,-16.66 342.46,-13.63 342.46,-13.63\"/>\n",
"<text text-anchor=\"start\" x=\"361.88\" 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=\"M99.76,-94.99C99.02,-89.18 98.31,-82.85 97.88,-77 97.27,-68.61 96.96,-59.47 96.82,-51.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"96.74,-44.05 99.97,-51.02 96.78,-47.55 96.82,-51.05 96.82,-51.05 96.82,-51.05 96.78,-47.55 93.67,-51.09 96.74,-44.05 96.74,-44.05\"/>\n",
"<text text-anchor=\"start\" x=\"97.88\" 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=\"M116.32,-99.46C128.01,-85.47 144.37,-66.93 152.88,-62 197.27,-36.27 257.43,-27.51 292.71,-24.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"299.85,-23.98 293.11,-27.66 296.36,-24.25 292.87,-24.52 292.87,-24.52 292.87,-24.52 296.36,-24.25 292.63,-21.38 299.85,-23.98 299.85,-23.98\"/>\n",
"<text text-anchor=\"start\" x=\"152.88\" 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=\"M123.46,-125.37C133.73,-126.53 142.88,-123.74 142.88,-117 142.88,-111.95 137.73,-109.11 130.83,-108.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.46,-108.63 130.41,-105.36 126.96,-108.57 130.46,-108.51 130.46,-108.51 130.46,-108.51 126.96,-108.57 130.52,-111.66 123.46,-108.63 123.46,-108.63\"/>\n",
"<text text-anchor=\"start\" x=\"142.88\" 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=\"M210.61,-95.34C207.38,-84.24 201.91,-71.01 192.88,-62 174.59,-43.72 146.57,-33.68 125.52,-28.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.67,-26.76 126.21,-25.3 122.07,-27.56 125.48,-28.37 125.48,-28.37 125.48,-28.37 122.07,-27.56 124.76,-31.43 118.67,-26.76 118.67,-26.76\"/>\n",
"<text text-anchor=\"start\" x=\"202.88\" 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=\"M235.16,-107.56C261.77,-96.58 310.02,-77.04 351.88,-62 383.22,-50.74 419.65,-39.11 444.07,-31.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"450.94,-29.38 445.19,-34.46 447.6,-30.42 444.25,-31.45 444.25,-31.45 444.25,-31.45 447.6,-30.42 443.32,-28.44 450.94,-29.38 450.94,-29.38\"/>\n",
"<text text-anchor=\"start\" x=\"351.88\" 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=\"M235.46,-125.37C245.73,-126.53 254.88,-123.74 254.88,-117 254.88,-111.95 249.73,-109.11 242.83,-108.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"235.46,-108.63 242.41,-105.36 238.96,-108.57 242.46,-108.51 242.46,-108.51 242.46,-108.51 238.96,-108.57 242.52,-111.66 235.46,-108.63 235.46,-108.63\"/>\n",
"<text text-anchor=\"start\" x=\"254.88\" 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=\"M437.75,-98.1C441.84,-91.59 446.29,-84.09 449.88,-77 454.33,-68.22 458.58,-58.32 462.13,-49.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"464.7,-42.84 465.09,-50.51 463.43,-46.1 462.15,-49.36 462.15,-49.36 462.15,-49.36 463.43,-46.1 459.22,-48.21 464.7,-42.84 464.7,-42.84\"/>\n",
"<text text-anchor=\"start\" x=\"455.88\" 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=\"M416.48,-96.87C410.32,-85.72 401.46,-71.95 390.88,-62 378.57,-50.41 362.18,-40.96 348.46,-34.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"341.97,-31.21 349.65,-31.34 345.14,-32.7 348.3,-34.19 348.3,-34.19 348.3,-34.19 345.14,-32.7 346.96,-37.04 341.97,-31.21 341.97,-31.21\"/>\n",
"<text text-anchor=\"start\" x=\"402.88\" 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=\"M446.46,-125.37C456.73,-126.53 465.88,-123.74 465.88,-117 465.88,-111.95 460.73,-109.11 453.83,-108.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"446.46,-108.63 453.41,-105.36 449.96,-108.57 453.46,-108.51 453.46,-108.51 453.46,-108.51 449.96,-108.57 453.52,-111.66 446.46,-108.63 446.46,-108.63\"/>\n",
"<text text-anchor=\"start\" x=\"465.88\" 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=\"298pt\" height=\"347pt\"\n",
" viewBox=\"0.00 0.00 298.00 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 294,-343 294,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"124.5\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"145.5\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"161.5\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"123.5\" 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=\"156\" cy=\"-204\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"156\" 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.54,-144.52C75.02,-151.67 83.5,-160.33 92,-167 104.83,-177.07 120.67,-186.36 133.25,-193.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"139.5,-196.4 131.84,-195.93 136.41,-194.77 133.31,-193.14 133.31,-193.14 133.31,-193.14 136.41,-194.77 134.78,-190.35 139.5,-196.4 139.5,-196.4\"/>\n",
"<text text-anchor=\"middle\" x=\"105\" 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=\"156\" cy=\"-66\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"156\" 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.46,-121.41C88.11,-110.37 115.57,-92.15 134.44,-79.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.48,-75.63 136.39,-82.12 137.56,-77.56 134.65,-79.5 134.65,-79.5 134.65,-79.5 137.56,-77.56 132.91,-76.87 140.48,-75.63 140.48,-75.63\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-109.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=\"270\" cy=\"-123\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"270\" 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=\"M73.99,-133.48C105.7,-137.64 175.94,-144.68 234,-135 238.14,-134.31 242.45,-133.19 246.57,-131.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"253.26,-129.63 247.64,-134.87 249.94,-130.76 246.63,-131.88 246.63,-131.88 246.63,-131.88 249.94,-130.76 245.62,-128.9 253.26,-129.63 253.26,-129.63\"/>\n",
"<text text-anchor=\"start\" x=\"136\" 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=\"270\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"270\" 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.69,-114.3C74.63,-89.51 98.92,-43.78 136,-24 170.45,-5.63 217.34,-8.89 245.25,-13.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.26,-14.41 244.84,-16.36 248.81,-13.83 245.36,-13.25 245.36,-13.25 245.36,-13.25 248.81,-13.83 245.88,-10.14 252.26,-14.41 252.26,-14.41\"/>\n",
"<text text-anchor=\"start\" x=\"136\" 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=\"M151.51,-221.78C150.74,-231.31 152.24,-240 156,-240 158.76,-240 160.3,-235.32 160.62,-229.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"160.49,-221.78 163.77,-228.72 160.56,-225.28 160.62,-228.78 160.62,-228.78 160.62,-228.78 160.56,-225.28 157.47,-228.84 160.49,-221.78 160.49,-221.78\"/>\n",
"<text text-anchor=\"start\" x=\"150\" 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=\"M148.82,-220.59C144.33,-238.17 146.72,-258 156,-258 164.05,-258 166.91,-243.09 164.6,-227.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"163.18,-220.59 167.65,-226.83 163.87,-224.02 164.56,-227.45 164.56,-227.45 164.56,-227.45 163.87,-224.02 161.47,-228.07 163.18,-220.59 163.18,-220.59\"/>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"148\" 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=\"M147.37,-81.92C145.11,-92.15 147.99,-102 156,-102 162.13,-102 165.25,-96.23 165.37,-88.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"164.63,-81.92 168.5,-88.55 165,-85.4 165.37,-88.88 165.37,-88.88 165.37,-88.88 165,-85.4 162.23,-89.21 164.63,-81.92 164.63,-81.92\"/>\n",
"<text text-anchor=\"start\" x=\"143\" 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=\"M168.46,-79.62C175.23,-86.88 184.34,-95.45 194,-101 209.77,-110.06 229.59,-115.67 244.9,-118.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.01,-120.38 244.53,-122.09 248.58,-119.69 245.15,-119 245.15,-119 245.15,-119 248.58,-119.69 245.77,-115.91 252.01,-120.38 252.01,-120.38\"/>\n",
"<text text-anchor=\"start\" x=\"194\" 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=\"M172.37,-58.22C178.97,-54.95 186.81,-51.18 194,-48 211.19,-40.39 230.95,-32.52 245.86,-26.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.77,-24.1 247.36,-29.56 249.5,-25.36 246.23,-26.62 246.23,-26.62 246.23,-26.62 249.5,-25.36 245.1,-23.67 252.77,-24.1 252.77,-24.1\"/>\n",
"<text text-anchor=\"start\" x=\"194\" 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=\"M259.8,-107.89C253.6,-99 244.63,-88.29 234,-82 218.05,-72.56 197.36,-68.63 181.44,-67.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.05,-66.41 181.29,-63.85 177.54,-66.7 181.03,-66.99 181.03,-66.99 181.03,-66.99 177.54,-66.7 180.77,-70.13 174.05,-66.41 174.05,-66.41\"/>\n",
"<text text-anchor=\"start\" x=\"201\" 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=\"M260.43,-138.54C257.73,-148.91 260.92,-159 270,-159 276.95,-159 280.45,-153.08 280.5,-145.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"279.57,-138.54 283.6,-145.08 280.03,-142.01 280.48,-145.48 280.48,-145.48 280.48,-145.48 280.03,-142.01 277.35,-145.89 279.57,-138.54 279.57,-138.54\"/>\n",
"<text text-anchor=\"start\" x=\"250\" 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=\"M260.43,-33.54C257.73,-43.91 260.92,-54 270,-54 276.95,-54 280.45,-48.08 280.5,-40.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"279.57,-33.54 283.6,-40.08 280.03,-37.01 280.48,-40.48 280.48,-40.48 280.48,-40.48 280.03,-37.01 277.35,-40.89 279.57,-33.54 279.57,-33.54\"/>\n",
"<text text-anchor=\"start\" x=\"250\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"262\" 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 0x7fbc2c2de5d0> >"
]
},
"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=\"58\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"57\" 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.5\" 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=\"133\" 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=\"135\" 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 0x7fbc2c2defc0> >"
]
},
"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=\"257pt\" height=\"220pt\"\n",
" viewBox=\"0.00 0.00 257.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 253,-215.8 253,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"103\" 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.5\" 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=\"139\" 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=\"231\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"231\" 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.26,-117C177.48,-117 192.89,-117 205.61,-117\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"212.74,-117 205.74,-120.15 209.24,-117 205.74,-117 205.74,-117 205.74,-117 209.24,-117 205.74,-113.85 212.74,-117 212.74,-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=\"M215.69,-107.13C209.6,-103.51 202.24,-99.84 195,-98 186.13,-95.75 176.67,-97.92 168.33,-101.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.64,-104.75 166.55,-98.86 164.78,-103.22 167.93,-101.69 167.93,-101.69 167.93,-101.69 164.78,-103.22 169.31,-104.52 161.64,-104.75 161.64,-104.75\"/>\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=\"M223.62,-133.66C221.98,-143.62 224.44,-153 231,-153 235.92,-153 238.54,-147.73 238.84,-140.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"238.38,-133.66 241.97,-140.45 238.61,-137.16 238.83,-140.65 238.83,-140.65 238.83,-140.65 238.61,-137.16 235.69,-140.85 238.38,-133.66 238.38,-133.66\"/>\n",
"<text text-anchor=\"start\" x=\"225\" 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 0x7fbc2c2e4270> >"
]
},
"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: 5 Inf(0)&Fin(1)&Fin(4) | Inf(2)&Inf(3) | Inf(1)\n",
"--BODY--\n",
"State: 0 {3}\n",
"[t] 0\n",
"[0] 1 {1}\n",
"[!0] 2 {0 4}\n",
"State: 1 {3}\n",
"[1] 0\n",
"[0&1] 1 {0}\n",
"[!0&1] 2 {2 4}\n",
"State: 2 \n",
"[!1] 0\n",
"[0&!1] 1 {0}\n",
"[!0&!1] 2 {0 4}\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=\"354pt\" height=\"178pt\"\n",
" viewBox=\"0.00 0.00 354.00 177.79\" 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 173.79)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-173.79 350,-173.79 350,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">(Inf(</text>\n",
"<text text-anchor=\"start\" x=\"33\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"49\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"109\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">)) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"212\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"262\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"278\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">)) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"318\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-155.59\" 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=\"73\" cy=\"-23.79\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"73\" y=\"-20.09\" 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=\"M18.15,-23.79C19.79,-23.79 34.15,-23.79 47.63,-23.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"54.94,-23.79 47.94,-26.94 51.44,-23.79 47.94,-23.79 47.94,-23.79 47.94,-23.79 51.44,-23.79 47.94,-20.64 54.94,-23.79 54.94,-23.79\"/>\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=\"M66.62,-40.82C65.32,-50.65 67.45,-59.79 73,-59.79 77.17,-59.79 79.4,-54.65 79.71,-47.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"79.38,-40.82 82.85,-47.67 79.54,-44.32 79.71,-47.82 79.71,-47.82 79.71,-47.82 79.54,-44.32 76.56,-47.96 79.38,-40.82 79.38,-40.82\"/>\n",
"<text text-anchor=\"start\" x=\"68.5\" y=\"-78.59\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"65\" y=\"-63.59\" 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=\"183\" cy=\"-82.79\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"183\" y=\"-79.09\" 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=\"M81.44,-39.81C87.34,-50.65 96.65,-64.3 109,-71.79 123.6,-80.64 142.77,-83.26 157.8,-83.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"164.81,-83.81 157.77,-86.88 161.31,-83.77 157.81,-83.73 157.81,-83.73 157.81,-83.73 161.31,-83.77 157.85,-80.58 164.81,-83.81 164.81,-83.81\"/>\n",
"<text text-anchor=\"start\" x=\"121.5\" y=\"-99.59\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"109\" y=\"-85.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"125\" y=\"-85.59\" 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=\"309\" cy=\"-23.79\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"309\" y=\"-20.09\" 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=\"M91.04,-23.17C125.44,-22.03 205.65,-19.86 273,-21.79 276.47,-21.89 280.13,-22.04 283.72,-22.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"290.92,-22.62 283.76,-25.38 287.42,-22.42 283.93,-22.23 283.93,-22.23 283.93,-22.23 287.42,-22.42 284.1,-19.09 290.92,-22.62 290.92,-22.62\"/>\n",
"<text text-anchor=\"start\" x=\"177.5\" y=\"-38.59\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"159\" y=\"-24.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"191\" y=\"-24.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</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=\"M172.29,-67.96C164.91,-57.9 153.85,-45.13 141,-37.79 128.03,-30.38 111.64,-26.87 98.32,-25.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"91.27,-24.48 98.56,-22.08 94.75,-24.84 98.23,-25.21 98.23,-25.21 98.23,-25.21 94.75,-24.84 97.9,-28.34 91.27,-24.48 91.27,-24.48\"/>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-56.59\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"117\" y=\"-41.59\" 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=\"M173.19,-97.95C170.21,-108.45 173.48,-118.79 183,-118.79 190.29,-118.79 193.91,-112.73 193.87,-105.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"192.81,-97.95 196.95,-104.42 193.32,-101.42 193.83,-104.88 193.83,-104.88 193.83,-104.88 193.32,-101.42 190.71,-105.34 192.81,-97.95 192.81,-97.95\"/>\n",
"<text text-anchor=\"start\" x=\"167\" y=\"-136.59\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"167\" y=\"-122.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"183\" y=\"-122.59\" 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=\"M201.01,-84.52C219.92,-85.63 250.73,-84.89 273,-71.79 283.21,-65.78 291.3,-55.5 297.12,-46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"300.62,-39.91 299.86,-47.55 298.87,-42.95 297.13,-45.98 297.13,-45.98 297.13,-45.98 298.87,-42.95 294.4,-44.41 300.62,-39.91 300.62,-39.91\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-101.59\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"225\" y=\"-87.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-87.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"257\" y=\"-87.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</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=\"M291.49,-18.37C264.04,-10.04 207.25,4.35 159,-1.79 137.7,-4.5 114.1,-10.89 97.19,-16.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"90.37,-18.23 96.11,-13.12 93.71,-17.18 97.05,-16.13 97.05,-16.13 97.05,-16.13 93.71,-17.18 97.99,-19.13 90.37,-18.23 90.37,-18.23\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-5.59\" 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=\"M290.73,-23.48C273.16,-23.89 245.65,-26.52 225,-37.79 214.35,-43.6 205,-53.26 197.93,-62.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"193.62,-67.81 195.35,-60.33 195.74,-65.02 197.86,-62.23 197.86,-62.23 197.86,-62.23 195.74,-65.02 200.37,-64.14 193.62,-67.81 193.62,-67.81\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-56.59\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-41.59\" 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=\"M298.85,-38.95C295.77,-49.45 299.16,-59.79 309,-59.79 316.54,-59.79 320.29,-53.73 320.25,-46.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"319.15,-38.95 323.32,-45.4 319.68,-42.41 320.2,-45.87 320.2,-45.87 320.2,-45.87 319.68,-42.41 317.09,-46.35 319.15,-38.95 319.15,-38.95\"/>\n",
"<text text-anchor=\"start\" x=\"289\" y=\"-77.59\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"293\" y=\"-63.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"309\" y=\"-63.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2e4180> >"
]
},
"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=\"482pt\" height=\"315pt\"\n",
" viewBox=\"0.00 0.00 482.00 315.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 311)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-311 478,-311 478,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"156.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"172.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"208.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"224.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"264.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"280.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"314.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"330.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"203\" y=\"-278.8\" 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=\"-97\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-93.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,-97C2.79,-97 17.15,-97 30.63,-97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-97 30.94,-100.15 34.44,-97 30.94,-97 30.94,-97 30.94,-97 34.44,-97 30.94,-93.85 37.94,-97 37.94,-97\"/>\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,-114.04C48.32,-123.86 50.45,-133 56,-133 60.17,-133 62.4,-127.86 62.71,-121.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-114.04 65.85,-120.88 62.54,-117.53 62.71,-121.03 62.71,-121.03 62.71,-121.03 62.54,-117.53 59.56,-121.18 62.38,-114.04 62.38,-114.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-136.8\" 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=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"160\" y=\"-170.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=\"M73.27,-103C87.57,-108.77 108.46,-118.47 124,-131 131.88,-137.36 139.2,-145.75 145.08,-153.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.28,-159.12 142.59,-155.36 147.2,-156.31 145.12,-153.49 145.12,-153.49 145.12,-153.49 147.2,-156.31 147.66,-151.62 149.28,-159.12 149.28,-159.12\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-148.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-134.8\" 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=\"268\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"268\" y=\"-113.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.42,-98.17C105.92,-100.35 174.44,-105.43 232,-112 235.48,-112.4 239.14,-112.87 242.73,-113.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"249.93,-114.37 242.56,-116.51 246.47,-113.88 243,-113.39 243,-113.39 243,-113.39 246.47,-113.88 243.44,-110.27 249.93,-114.37 249.93,-114.37\"/>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-109.8\" 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=\"456\" cy=\"-134\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"456\" y=\"-130.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=\"M64.58,-80.98C78.87,-53.43 112.57,0 159,0 159,0 159,0 377,0 426.84,0 445.39,-70.1 451.84,-108.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"452.97,-116.21 448.78,-109.77 452.43,-112.75 451.9,-109.29 451.9,-109.29 451.9,-109.29 452.43,-112.75 455.01,-108.81 452.97,-116.21 452.97,-116.21\"/>\n",
"<text text-anchor=\"middle\" x=\"268\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M141.73,-173.91C127.17,-173.02 106.45,-169.73 92,-159 79.24,-149.53 70.47,-133.93 64.9,-120.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.27,-114.12 67.78,-119.47 63.56,-117.37 64.85,-120.63 64.85,-120.63 64.85,-120.63 63.56,-117.37 61.92,-121.79 62.27,-114.12 62.27,-114.12\"/>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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=\"M151.02,-189.92C148.68,-200.15 151.67,-210 160,-210 166.38,-210 169.63,-204.23 169.75,-196.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.98,-189.92 172.87,-196.53 169.36,-193.4 169.74,-196.87 169.74,-196.87 169.74,-196.87 169.36,-193.4 166.61,-197.22 168.98,-189.92 168.98,-189.92\"/>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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=\"M177.47,-169.15C192.31,-164.41 214.43,-156.38 232,-146 237.89,-142.52 243.8,-138.07 249.04,-133.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.44,-129.07 251.19,-136.02 251.79,-131.35 249.14,-133.63 249.14,-133.63 249.14,-133.63 251.79,-131.35 247.08,-131.25 254.44,-129.07 254.44,-129.07\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"214\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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=\"M171.45,-188.1C177.73,-195.52 186.36,-204.07 196,-209 275.04,-249.38 316.7,-278.62 394,-235 422.9,-218.69 439.65,-182.57 448.06,-158.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"450.31,-151.42 451.11,-159.06 449.21,-154.75 448.12,-158.07 448.12,-158.07 448.12,-158.07 449.21,-154.75 445.12,-157.09 450.31,-151.42 450.31,-151.42\"/>\n",
"<text text-anchor=\"start\" x=\"318\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"376\" cy=\"-160\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"376\" y=\"-156.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.91,-184.17C181.05,-188.05 188.56,-192.02 196,-194 211.46,-198.11 216.11,-195.86 232,-194 274.81,-188.98 323.38,-175.78 351.47,-167.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"358.49,-165.26 352.71,-170.3 355.15,-166.27 351.8,-167.29 351.8,-167.29 351.8,-167.29 355.15,-166.27 350.88,-164.27 358.49,-165.26 358.49,-165.26\"/>\n",
"<text text-anchor=\"start\" x=\"252\" y=\"-194.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.4,-109.27C234,-101.12 204.76,-88.8 178,-84 144.45,-77.99 105.14,-84.71 80.65,-90.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.54,-92.27 79.58,-87.53 76.94,-91.43 80.34,-90.59 80.34,-90.59 80.34,-90.59 76.94,-91.43 81.1,-93.65 73.54,-92.27 73.54,-92.27\"/>\n",
"<text text-anchor=\"start\" x=\"154\" y=\"-87.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.02,-115.84C234.83,-115.59 212.49,-117.22 196,-127 186.19,-132.82 178.26,-142.56 172.44,-151.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.76,-157.81 169.65,-150.19 170.56,-154.81 172.36,-151.81 172.36,-151.81 172.36,-151.81 170.56,-154.81 175.06,-153.43 168.76,-157.81 168.76,-157.81\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M258.77,-132.54C256.17,-142.91 259.25,-153 268,-153 274.7,-153 278.08,-147.08 278.12,-139.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"277.23,-132.54 281.23,-139.1 277.67,-136.01 278.1,-139.49 278.1,-139.49 278.1,-139.49 277.67,-136.01 274.98,-139.88 277.23,-132.54 277.23,-132.54\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M286.08,-115.8C310.23,-114.41 355.71,-112.91 394,-118 406.64,-119.68 420.41,-123.15 431.66,-126.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"438.65,-128.53 431.04,-129.53 435.3,-127.52 431.95,-126.51 431.95,-126.51 431.95,-126.51 435.3,-127.52 432.86,-123.49 438.65,-128.53 438.65,-128.53\"/>\n",
"<text text-anchor=\"start\" x=\"370\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M285.1,-123.53C303.02,-130.8 332.13,-142.61 352.35,-150.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"359.1,-153.55 351.43,-153.84 355.85,-152.23 352.61,-150.92 352.61,-150.92 352.61,-150.92 355.85,-152.23 353.79,-148 359.1,-153.55 359.1,-153.55\"/>\n",
"<text text-anchor=\"start\" x=\"304\" y=\"-147.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M448.97,-150.66C447.41,-160.62 449.75,-170 456,-170 460.69,-170 463.18,-164.73 463.47,-157.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"463.03,-150.66 466.6,-157.46 463.24,-154.16 463.46,-157.65 463.46,-157.65 463.46,-157.65 463.24,-154.16 460.31,-157.84 463.03,-150.66 463.03,-150.66\"/>\n",
"<text text-anchor=\"middle\" x=\"456\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M393.54,-154.49C404.68,-150.77 419.53,-145.82 431.84,-141.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"438.75,-139.42 433.1,-144.62 435.43,-140.52 432.11,-141.63 432.11,-141.63 432.11,-141.63 435.43,-140.52 431.11,-138.64 438.75,-139.42 438.75,-139.42\"/>\n",
"<text text-anchor=\"start\" x=\"412\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M368.97,-176.66C367.41,-186.62 369.75,-196 376,-196 380.69,-196 383.18,-190.73 383.47,-183.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"383.03,-176.66 386.6,-183.46 383.24,-180.16 383.46,-183.65 383.46,-183.65 383.46,-183.65 383.24,-180.16 380.31,-183.84 383.03,-176.66 383.03,-176.66\"/>\n",
"<text text-anchor=\"start\" x=\"360\" y=\"-214.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"368\" y=\"-199.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 0x7fbc2c2e94e0> >"
]
},
"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=\"492pt\" height=\"229pt\"\n",
" viewBox=\"0.00 0.00 492.00 228.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 224.63)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-224.63 488,-224.63 488,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"221.5\" y=\"-206.43\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"242.5\" y=\"-206.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"258.5\" y=\"-206.43\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"220.5\" y=\"-192.43\" 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=\"-123.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-119.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,-123.63C2.79,-123.63 17.15,-123.63 30.63,-123.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-123.63 30.94,-126.78 34.44,-123.63 30.94,-123.63 30.94,-123.63 30.94,-123.63 34.44,-123.63 30.94,-120.48 37.94,-123.63 37.94,-123.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,-140.67C48.32,-150.49 50.45,-159.63 56,-159.63 60.17,-159.63 62.4,-154.49 62.71,-147.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-140.67 65.85,-147.52 62.54,-144.17 62.71,-147.66 62.71,-147.66 62.71,-147.66 62.54,-144.17 59.56,-147.81 62.38,-140.67 62.38,-140.67\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-163.43\" 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=\"-60.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-56.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=\"M71.2,-113.23C85.35,-102.86 107.21,-86.86 123.09,-75.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"129.06,-70.84 125.28,-77.52 126.24,-72.91 123.42,-74.98 123.42,-74.98 123.42,-74.98 126.24,-72.91 121.55,-72.44 129.06,-70.84 129.06,-70.84\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-116.43\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-101.43\" 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=\"252\" cy=\"-112.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"252\" y=\"-108.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=\"M66.6,-138.23C72.83,-146.47 81.69,-156.19 92,-161.63 119.58,-176.21 130.84,-168.07 162,-166.63 186.08,-165.52 195.1,-173.64 216,-161.63 226.41,-155.65 234.52,-145.18 240.31,-135.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"243.77,-129.21 243.12,-136.86 242.07,-132.27 240.37,-135.33 240.37,-135.33 240.37,-135.33 242.07,-132.27 237.62,-133.8 243.77,-129.21 243.77,-129.21\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-173.43\" 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=\"M125.67,-59.03C115.17,-58.9 101.92,-60.3 92,-66.63 79.78,-74.44 71.15,-88.2 65.52,-100.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.7,-106.7 62.62,-99.03 64.1,-103.49 65.5,-100.29 65.5,-100.29 65.5,-100.29 64.1,-103.49 68.39,-101.55 62.7,-106.7 62.7,-106.7\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-70.43\" 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,-76.92C134.48,-87.02 137.04,-96.63 144,-96.63 149.22,-96.63 151.96,-91.23 152.23,-84.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.67,-76.92 155.34,-83.66 151.93,-80.41 152.2,-83.9 152.2,-83.9 152.2,-83.9 151.93,-80.41 149.06,-84.14 151.67,-76.92 151.67,-76.92\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-100.43\" 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=\"M159.82,-69.52C165.98,-73.11 173.27,-77.2 180,-80.63 195.94,-88.76 214.38,-97.04 228.47,-103.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"235,-105.94 227.33,-106.08 231.79,-104.56 228.57,-103.18 228.57,-103.18 228.57,-103.18 231.79,-104.56 229.82,-100.29 235,-105.94 235,-105.94\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-115.43\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-100.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"360\" cy=\"-31.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"360\" y=\"-27.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=\"M161.63,-55.85C167.41,-54.32 173.95,-52.74 180,-51.63 234.76,-41.59 299.93,-35.84 334.54,-33.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"341.85,-32.75 335.1,-36.39 338.36,-33 334.87,-33.25 334.87,-33.25 334.87,-33.25 338.36,-33 334.64,-30.11 341.85,-32.75 341.85,-32.75\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-47.43\" 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=\"466\" cy=\"-31.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"466\" y=\"-27.93\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M159.99,-51.97C166.06,-48.71 173.22,-45.19 180,-42.63 263.86,-11.07 289.41,8.8 378,-4.63 400.3,-8.02 424.76,-16.01 442.04,-22.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"448.99,-25.06 441.33,-25.52 445.72,-23.82 442.44,-22.58 442.44,-22.58 442.44,-22.58 445.72,-23.82 443.56,-19.63 448.99,-25.06 448.99,-25.06\"/>\n",
"<text text-anchor=\"start\" x=\"300\" y=\"-8.43\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M236.27,-122.14C230.24,-125.51 223.03,-128.9 216,-130.63 120.51,-154.22 124.8,-135.34 92,-131.63 88.3,-131.22 84.42,-130.56 80.65,-129.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.6,-128.23 81.12,-126.67 77.02,-128.99 80.44,-129.75 80.44,-129.75 80.44,-129.75 77.02,-128.99 79.76,-132.82 73.6,-128.23 73.6,-128.23\"/>\n",
"<text text-anchor=\"start\" x=\"138\" y=\"-145.43\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244.59,-96.08C239,-84.16 229.63,-68.94 216,-61.63 201.75,-54 183.47,-53.93 169.02,-55.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.86,-56.72 168.33,-52.59 165.33,-56.21 168.79,-55.7 168.79,-55.7 168.79,-55.7 165.33,-56.21 169.24,-58.82 161.86,-56.72 161.86,-56.72\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-65.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</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=\"M242.77,-128.18C240.17,-138.54 243.25,-148.63 252,-148.63 258.7,-148.63 262.08,-142.72 262.12,-135.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"261.23,-128.18 265.23,-134.73 261.67,-131.65 262.1,-135.12 262.1,-135.12 262.1,-135.12 261.67,-131.65 258.98,-135.51 261.23,-128.18 261.23,-128.18\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-152.43\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M266.86,-102.05C285.43,-87.86 318.48,-62.6 339.54,-46.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"345.14,-42.23 341.49,-48.98 342.36,-44.35 339.58,-46.48 339.58,-46.48 339.58,-46.48 342.36,-44.35 337.66,-43.97 345.14,-42.23 345.14,-42.23\"/>\n",
"<text text-anchor=\"start\" x=\"288\" y=\"-87.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M269.91,-115.19C294.64,-118.21 341.68,-121.13 378,-106.63 407.37,-94.91 433.74,-68.93 449.56,-50.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"454.12,-45.52 451.96,-52.89 451.84,-48.18 449.57,-50.84 449.57,-50.84 449.57,-50.84 451.84,-48.18 447.17,-48.8 454.12,-45.52 454.12,-45.52\"/>\n",
"<text text-anchor=\"start\" x=\"356\" y=\"-118.43\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M351.02,-47.55C348.68,-57.78 351.67,-67.63 360,-67.63 366.38,-67.63 369.63,-61.86 369.75,-54.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"368.98,-47.55 372.87,-54.17 369.36,-51.03 369.74,-54.51 369.74,-54.51 369.74,-54.51 369.36,-51.03 366.61,-54.85 368.98,-47.55 368.98,-47.55\"/>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-86.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"352\" y=\"-71.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M378.17,-31.63C395.18,-31.63 421.4,-31.63 440.57,-31.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"447.8,-31.63 440.8,-34.78 444.3,-31.63 440.8,-31.63 440.8,-31.63 440.8,-31.63 444.3,-31.63 440.8,-28.48 447.8,-31.63 447.8,-31.63\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-35.43\" font-family=\"Lato\" font-size=\"14.00\">!a | !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M457.02,-47.55C454.68,-57.78 457.67,-67.63 466,-67.63 472.38,-67.63 475.63,-61.86 475.75,-54.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"474.98,-47.55 478.87,-54.17 475.36,-51.03 475.74,-54.51 475.74,-54.51 475.74,-54.51 475.36,-51.03 472.61,-54.85 474.98,-47.55 474.98,-47.55\"/>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-71.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 0x7fbc2c2e4300> >"
]
},
"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=\"506pt\" height=\"203pt\"\n",
" viewBox=\"0.00 0.00 506.00 202.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 198.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-198.8 502,-198.8 502,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"227.5\" y=\"-164.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=\"-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=\"51.5\" y=\"-57.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=\"140\" cy=\"-56\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"140\" cy=\"-56\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-52.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.81,-25.33C84.22,-30.62 99.89,-37.88 113.12,-44.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119.77,-47.09 112.1,-47.01 116.6,-45.62 113.42,-44.15 113.42,-44.15 113.42,-44.15 116.6,-45.62 114.75,-41.29 119.77,-47.09 119.77,-47.09\"/>\n",
"<text text-anchor=\"start\" x=\"92.5\" y=\"-40.8\" 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=\"M127.18,-37.94C120.39,-29.26 111.01,-19.72 100,-15 94.07,-12.46 87.25,-11.97 80.82,-12.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.53,-13.36 80.07,-9.36 77,-12.92 80.47,-12.48 80.47,-12.48 80.47,-12.48 77,-12.92 80.87,-15.61 73.53,-13.36 73.53,-13.36\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-18.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=\"248\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"248\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.94,-58.57C179.36,-60.71 204.19,-63.75 222.52,-66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"229.95,-66.91 222.61,-69.18 226.47,-66.48 223,-66.06 223,-66.06 223,-66.06 226.47,-66.48 223.38,-62.93 229.95,-66.91 229.95,-66.91\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-67.8\" 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=\"360\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"360\" cy=\"-51\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"360\" y=\"-47.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=\"M160.7,-47.59C178.45,-40.5 205.44,-30.9 230,-27 265.58,-21.35 306.42,-31.84 332.45,-40.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"339.39,-43.12 331.74,-43.77 336.08,-41.96 332.78,-40.8 332.78,-40.8 332.78,-40.8 336.08,-41.96 333.83,-37.83 339.39,-43.12 339.39,-43.12\"/>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-30.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=\"476\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"476\" cy=\"-100\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"476\" y=\"-96.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=\"M154.68,-72.58C170.62,-90.45 198.76,-117.83 230,-129 305.95,-156.17 402.75,-127.67 448.62,-110.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.27,-108.19 449.83,-113.61 451.99,-109.43 448.72,-110.66 448.72,-110.66 448.72,-110.66 451.99,-109.43 447.61,-107.72 455.27,-108.19 455.27,-108.19\"/>\n",
"<text text-anchor=\"start\" x=\"286\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</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=\"M239.02,-84.92C236.68,-95.15 239.67,-105 248,-105 254.38,-105 257.63,-99.23 257.75,-91.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.98,-84.92 260.87,-91.53 257.36,-88.4 257.74,-91.87 257.74,-91.87 257.74,-91.87 257.36,-88.4 254.61,-92.22 256.98,-84.92 256.98,-84.92\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; 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=\"M266.13,-70.23C280.64,-70.86 301.9,-70.83 320,-67 324.42,-66.06 328.97,-64.65 333.34,-63.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"340,-60.4 334.65,-65.91 336.75,-61.69 333.49,-62.98 333.49,-62.98 333.49,-62.98 336.75,-61.69 332.33,-60.05 340,-60.4 340,-60.4\"/>\n",
"<text text-anchor=\"start\" x=\"284\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M342.55,-36.96C335.95,-32.06 328.01,-27.04 320,-24 228.34,10.78 198.03,-9.31 100,-8 96.44,-7.95 95.52,-7.51 92,-8 88.09,-8.55 84,-9.42 80.06,-10.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.18,-12.36 79.07,-7.44 76.55,-11.42 79.92,-10.47 79.92,-10.47 79.92,-10.47 76.55,-11.42 80.77,-13.51 73.18,-12.36 73.18,-12.36\"/>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">!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=\"M338.24,-46.81C322.96,-44.52 301.83,-43.06 284,-48 278.84,-49.43 273.67,-51.85 268.95,-54.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"262.84,-58.33 267.13,-51.97 265.81,-56.49 268.79,-54.65 268.79,-54.65 268.79,-54.65 265.81,-56.49 270.45,-57.32 262.84,-58.33 262.84,-58.33\"/>\n",
"<text text-anchor=\"start\" x=\"284\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.6,-59.42C399.44,-67.52 428.04,-79.82 448.83,-88.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.28,-91.52 447.6,-91.65 452.06,-90.14 448.85,-88.76 448.85,-88.76 448.85,-88.76 452.06,-90.14 450.09,-85.86 455.28,-91.52 455.28,-91.52\"/>\n",
"<text text-anchor=\"start\" x=\"400\" y=\"-85.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=\"M465.57,-119.76C463.8,-130.35 467.28,-140 476,-140 482.68,-140 486.28,-134.34 486.81,-126.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"486.43,-119.76 489.94,-126.58 486.61,-123.25 486.8,-126.75 486.8,-126.75 486.8,-126.75 486.61,-123.25 483.65,-126.91 486.43,-119.76 486.43,-119.76\"/>\n",
"<text text-anchor=\"start\" x=\"460\" y=\"-143.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 0x7fbc2c2e9ed0> >"
]
},
"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=\"398pt\" height=\"189pt\"\n",
" viewBox=\"0.00 0.00 398.00 189.02\" 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 185.02)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.02 394,-185.02 394,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"30\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\">(Inf(</text>\n",
"<text text-anchor=\"start\" x=\"55\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"71\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"115\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"191\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\">)) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"250\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"284\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"300\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\">)) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"340\" y=\"-166.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"356\" y=\"-166.82\" 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=\"-26.02\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-22.32\" 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,-26.02C2.79,-26.02 17.15,-26.02 30.63,-26.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-26.02 30.94,-29.17 34.44,-26.02 30.94,-26.02 30.94,-26.02 30.94,-26.02 34.44,-26.02 30.94,-22.87 37.94,-26.02 37.94,-26.02\"/>\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,-43.05C48.32,-52.87 50.45,-62.02 56,-62.02 60.17,-62.02 62.4,-56.87 62.71,-50.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-43.05 65.85,-49.9 62.54,-46.55 62.71,-50.04 62.71,-50.04 62.71,-50.04 62.54,-46.55 59.56,-50.19 62.38,-43.05 62.38,-43.05\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-80.82\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-65.82\" 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=\"166\" cy=\"-94.02\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"166\" y=\"-90.32\" 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.99,-42.06C71.03,-52.61 80.29,-65.93 92,-74.02 106.5,-84.02 125.83,-89.03 140.96,-91.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"148.01,-92.57 140.62,-94.67 144.55,-92.06 141.08,-91.55 141.08,-91.55 141.08,-91.55 144.55,-92.06 141.54,-88.44 148.01,-92.57 148.01,-92.57\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-104.82\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-90.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-90.82\" 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=\"292\" cy=\"-39.02\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"292\" y=\"-35.32\" 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,-24.84C79.78,-24.5 86.16,-24.18 92,-24.02 164.91,-21.93 183.87,-19.22 256,-30.02 259.71,-30.57 263.59,-31.36 267.36,-32.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"274.41,-34 266.85,-35.35 271.01,-33.15 267.62,-32.3 267.62,-32.3 267.62,-32.3 271.01,-33.15 268.39,-29.24 274.41,-34 274.41,-34\"/>\n",
"<text text-anchor=\"start\" x=\"160.5\" y=\"-39.82\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"142\" y=\"-25.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"158\" y=\"-25.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-25.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</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=\"M157.13,-78.26C150.13,-65.92 138.73,-49.32 124,-40.02 111.29,-31.98 94.77,-28.47 81.31,-26.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.2,-26.33 81.45,-23.82 77.68,-26.64 81.17,-26.96 81.17,-26.96 81.17,-26.96 77.68,-26.64 80.89,-30.09 74.2,-26.33 74.2,-26.33\"/>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-58.82\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-43.82\" 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=\"M156.19,-109.18C153.21,-119.68 156.48,-130.02 166,-130.02 173.29,-130.02 176.91,-123.96 176.87,-116.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"175.81,-109.18 179.95,-115.65 176.32,-112.64 176.83,-116.11 176.83,-116.11 176.83,-116.11 176.32,-112.64 173.71,-116.57 175.81,-109.18 175.81,-109.18\"/>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-147.82\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-133.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"166\" y=\"-133.82\" 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=\"M175.12,-78.38C182.12,-66.68 193.4,-51.47 208,-44.02 226.22,-34.71 249.71,-34.18 267.05,-35.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"274.07,-36.24 266.8,-38.69 270.59,-35.9 267.1,-35.56 267.1,-35.56 267.1,-35.56 270.59,-35.9 267.41,-32.42 274.07,-36.24 274.07,-36.24\"/>\n",
"<text text-anchor=\"start\" x=\"214\" y=\"-61.82\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"208\" y=\"-47.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"224\" y=\"-47.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"240\" y=\"-47.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"372\" cy=\"-89.02\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"372\" y=\"-85.32\" 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=\"M179.95,-105.86C187.53,-111.98 197.62,-118.81 208,-122.02 257.24,-137.23 317.06,-115.18 348.77,-100.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"355.46,-97.24 350.51,-103.1 352.3,-98.75 349.15,-100.26 349.15,-100.26 349.15,-100.26 352.3,-98.75 347.79,-97.42 355.46,-97.24 355.46,-97.24\"/>\n",
"<text text-anchor=\"start\" x=\"286\" y=\"-127.82\" 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=\"M276.06,-29.85C269.99,-26.42 262.82,-22.7 256,-20.02 208.33,-1.27 192.78,3.73 142,-3.02 120.65,-5.85 97.06,-12.53 80.16,-17.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.35,-20.2 79.02,-15.03 76.67,-19.11 80,-18.02 80,-18.02 80,-18.02 76.67,-19.11 80.98,-21.01 73.35,-20.2 73.35,-20.2\"/>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-6.82\" 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=\"M279.62,-52.67C273.31,-59.41 264.95,-67.14 256,-72.02 235.64,-83.11 209.64,-88.7 191,-91.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"184,-92.42 190.51,-88.35 187.47,-91.94 190.94,-91.47 190.94,-91.47 190.94,-91.47 187.47,-91.94 191.36,-94.59 184,-92.42 184,-92.42\"/>\n",
"<text text-anchor=\"start\" x=\"214\" y=\"-106.82\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"224\" y=\"-91.82\" 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=\"M284.97,-55.68C283.41,-65.64 285.75,-75.02 292,-75.02 296.69,-75.02 299.18,-69.74 299.47,-62.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"299.03,-55.68 302.6,-62.47 299.24,-59.17 299.46,-62.67 299.46,-62.67 299.46,-62.67 299.24,-59.17 296.31,-62.86 299.03,-55.68 299.03,-55.68\"/>\n",
"<text text-anchor=\"start\" x=\"272\" y=\"-92.82\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"276\" y=\"-78.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"292\" y=\"-78.82\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</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=\"M307.67,-48.42C319.66,-56.1 336.74,-67.06 350.15,-75.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"356.39,-79.65 348.8,-78.53 353.45,-77.76 350.5,-75.87 350.5,-75.87 350.5,-75.87 353.45,-77.76 352.2,-73.22 356.39,-79.65 356.39,-79.65\"/>\n",
"<text text-anchor=\"start\" x=\"328\" y=\"-68.82\" 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=\"M364.97,-105.68C363.41,-115.64 365.75,-125.02 372,-125.02 376.69,-125.02 379.18,-119.74 379.47,-112.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"379.03,-105.68 382.6,-112.47 379.24,-109.17 379.46,-112.67 379.46,-112.67 379.46,-112.67 379.24,-109.17 376.31,-112.86 379.03,-105.68 379.03,-105.68\"/>\n",
"<text text-anchor=\"middle\" x=\"372\" y=\"-128.82\" 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 0x7fbc2c2f4060> >"
]
},
"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=\"61\" 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 0x7fbc2c2f4de0> >"
]
},
"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=\"58\" y=\"-108.22\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-108.22\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-108.22\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"57\" 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=\"162pt\" height=\"161pt\"\n",
" viewBox=\"0.00 0.00 162.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 158,-157 158,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=\"77.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"93.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"55.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=\"38\" 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=\"136\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"136\" 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.31,-18C85.02,-18 98.92,-18 110.71,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"117.74,-18 110.74,-21.15 114.24,-18 110.74,-18 110.74,-18 110.74,-18 114.24,-18 110.74,-14.85 117.74,-18 117.74,-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=\"M132.4,-35.78C131.79,-45.31 132.99,-54 136,-54 138.21,-54 139.44,-49.32 139.7,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"139.6,-35.78 142.85,-42.74 139.65,-39.28 139.7,-42.78 139.7,-42.78 139.7,-42.78 139.65,-39.28 136.55,-42.83 139.6,-35.78 139.6,-35.78\"/>\n",
"<text text-anchor=\"start\" x=\"130.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=\"M130.15,-35.14C126.71,-52.58 128.66,-72 136,-72 142.37,-72 144.68,-57.4 142.94,-42.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"141.85,-35.14 146.04,-41.58 142.39,-38.6 142.92,-42.06 142.92,-42.06 142.92,-42.06 142.39,-38.6 139.81,-42.54 141.85,-35.14 141.85,-35.14\"/>\n",
"<text text-anchor=\"start\" x=\"132.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"<text text-anchor=\"start\" x=\"128\" 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=\"329pt\" height=\"244pt\"\n",
" viewBox=\"0.00 0.00 329.39 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 325.39,-240 325.39,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"115.19\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"136.19\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"152.19\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"186.19\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"202.19\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"118.19\" 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=\"61.4\" cy=\"-18\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"51.4\" 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.17,-18C2.85,-18 16.69,-18 30.57,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.76,-18 30.76,-21.15 34.26,-18 30.76,-18 30.76,-18 30.76,-18 34.26,-18 30.76,-14.85 37.76,-18 37.76,-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=\"M54.26,-35.41C52.92,-45.09 55.3,-54 61.4,-54 65.87,-54 68.35,-49.19 68.82,-42.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"68.54,-35.41 71.95,-42.29 68.67,-38.91 68.8,-42.41 68.8,-42.41 68.8,-42.41 68.67,-38.91 65.65,-42.52 68.54,-35.41 68.54,-35.41\"/>\n",
"<text text-anchor=\"start\" x=\"43.4\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"53.4\" 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=\"176.19\" cy=\"-88\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"166.19\" 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=\"M80.02,-28.94C99.2,-40.84 129.96,-59.93 151.3,-73.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"157.32,-76.91 149.71,-75.89 154.35,-75.06 151.37,-73.22 151.37,-73.22 151.37,-73.22 154.35,-75.06 153.03,-70.54 157.32,-76.91 157.32,-76.91\"/>\n",
"<text text-anchor=\"start\" x=\"102.8\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"110.8\" 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=\"297.99\" cy=\"-88\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"287.99\" 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=\"M84.6,-15.63C122.35,-12.65 200.41,-11.08 256.59,-41 267.34,-46.73 276.48,-56.58 283.34,-65.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"287.51,-71.7 280.9,-67.79 285.49,-68.84 283.47,-65.98 283.47,-65.98 283.47,-65.98 285.49,-68.84 286.05,-64.16 287.51,-71.7 287.51,-71.7\"/>\n",
"<text text-anchor=\"start\" x=\"158.19\" 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=\"M171.16,-105.78C170.31,-115.31 171.98,-124 176.19,-124 179.29,-124 181.01,-119.32 181.37,-113.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"181.23,-105.78 184.52,-112.72 181.3,-109.28 181.37,-112.78 181.37,-112.78 181.37,-112.78 181.3,-109.28 178.22,-112.84 181.23,-105.78 181.23,-105.78\"/>\n",
"<text text-anchor=\"start\" x=\"158.69\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"168.19\" 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=\"M168.49,-105.25C163.01,-126.43 165.58,-154 176.19,-154 185.68,-154 188.74,-131.94 185.36,-112.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"183.9,-105.25 188.44,-111.44 184.63,-108.67 185.36,-112.1 185.36,-112.1 185.36,-112.1 184.63,-108.67 182.28,-112.75 183.9,-105.25 183.9,-105.25\"/>\n",
"<text text-anchor=\"start\" x=\"160.69\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"160.19\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"176.19\" 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=\"M181.95,-105.48C187.5,-122.06 198.44,-146.02 217.59,-157 232.63,-165.62 241.55,-165.62 256.59,-157 273.2,-147.48 283.63,-128.2 289.73,-112.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"292.23,-105.48 292.82,-113.14 291.05,-108.78 289.86,-112.07 289.86,-112.07 289.86,-112.07 291.05,-108.78 286.9,-111 292.23,-105.48 292.23,-105.48\"/>\n",
"<text text-anchor=\"start\" x=\"217.59\" 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=\"M196.47,-97.35C203.02,-100.05 210.48,-102.64 217.59,-104 234.62,-107.25 239.57,-107.25 256.59,-104 261.37,-103.09 266.31,-101.62 271.02,-99.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"277.71,-97.35 272.32,-102.81 274.45,-98.61 271.18,-99.87 271.18,-99.87 271.18,-99.87 274.45,-98.61 270.05,-96.93 277.71,-97.35 277.71,-97.35\"/>\n",
"<text text-anchor=\"start\" x=\"219.59\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"229.09\" 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=\"M274.36,-86.02C268.57,-85.6 262.35,-85.21 256.59,-85 239.27,-84.36 234.91,-84.36 217.59,-85 214.17,-85.13 210.59,-85.31 207.03,-85.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"199.83,-86.02 206.6,-82.41 203.32,-85.79 206.81,-85.55 206.81,-85.55 206.81,-85.55 203.32,-85.79 207.02,-88.69 199.83,-86.02 199.83,-86.02\"/>\n",
"<text text-anchor=\"start\" x=\"219.59\" 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=\"M285.38,-72.41C278.15,-64.04 268.05,-54.54 256.59,-50 240.48,-43.61 233.71,-43.61 217.59,-50 208.46,-53.62 200.19,-60.39 193.55,-67.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.8,-72.41 191.21,-65.12 191.16,-69.83 193.53,-67.24 193.53,-67.24 193.53,-67.24 191.16,-69.83 195.85,-69.37 188.8,-72.41 188.8,-72.41\"/>\n",
"<text text-anchor=\"start\" x=\"221.59\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"229.09\" 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=\"M292.6,-105.78C291.68,-115.31 293.48,-124 297.99,-124 301.3,-124 303.15,-119.32 303.54,-113.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"303.38,-105.78 306.68,-112.71 303.46,-109.28 303.53,-112.78 303.53,-112.78 303.53,-112.78 303.46,-109.28 300.38,-112.85 303.38,-105.78 303.38,-105.78\"/>\n",
"<text text-anchor=\"start\" x=\"278.49\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"289.99\" 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=\"M289.82,-104.92C283.84,-126.15 286.56,-154 297.99,-154 308.21,-154 311.47,-131.71 307.76,-111.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"306.16,-104.92 310.81,-111.03 306.95,-108.33 307.74,-111.74 307.74,-111.74 307.74,-111.74 306.95,-108.33 304.67,-112.45 306.16,-104.92 306.16,-104.92\"/>\n",
"<text text-anchor=\"start\" x=\"280.49\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"281.99\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"297.99\" 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=\"299pt\" height=\"244pt\"\n",
" viewBox=\"0.00 0.00 298.50 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 294.5,-240 294.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"99.75\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"120.75\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"136.75\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"170.75\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"186.75\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"102.75\" 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=\"38\" 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=\"160\" cy=\"-88\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"160\" 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.18,-27.73C88.74,-39.79 118.78,-60.4 138.76,-74.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"144.61,-78.12 137.05,-76.76 141.72,-76.14 138.84,-74.16 138.84,-74.16 138.84,-74.16 141.72,-76.14 140.62,-71.57 144.61,-78.12 144.61,-78.12\"/>\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=\"100\" 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=\"271\" cy=\"-88\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"271\" 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=\"M74.1,-15.86C107.56,-12.53 182.94,-9.36 235,-40 245.21,-46.01 253.3,-56.28 259.12,-65.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"262.62,-71.88 256.4,-67.38 260.87,-68.84 259.13,-65.81 259.13,-65.81 259.13,-65.81 260.87,-68.84 261.86,-64.24 262.62,-71.88 262.62,-71.88\"/>\n",
"<text text-anchor=\"start\" x=\"142\" y=\"-23.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=\"M155.36,-105.41C154.49,-115.09 156.04,-124 160,-124 162.91,-124 164.52,-119.19 164.82,-112.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"164.64,-105.41 167.96,-112.33 164.73,-108.91 164.81,-112.41 164.81,-112.41 164.81,-112.41 164.73,-108.91 161.66,-112.48 164.64,-105.41 164.64,-105.41\"/>\n",
"<text text-anchor=\"start\" x=\"142.5\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"152\" 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=\"M153,-104.6C147.71,-125.86 150.05,-154 160,-154 168.9,-154 171.71,-131.49 168.42,-111.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"167,-104.6 171.49,-110.82 167.7,-108.02 168.4,-111.45 168.4,-111.45 168.4,-111.45 167.7,-108.02 165.32,-112.09 167,-104.6 167,-104.6\"/>\n",
"<text text-anchor=\"start\" x=\"144.5\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"160\" 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=\"M164.51,-105.71C168.82,-122.21 177.91,-145.89 196,-157 210.77,-166.07 220.23,-166.07 235,-157 250.68,-147.37 259.6,-128.28 264.51,-112.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"266.49,-105.71 267.59,-113.31 265.53,-109.08 264.56,-112.44 264.56,-112.44 264.56,-112.44 265.53,-109.08 261.53,-111.57 266.49,-105.71 266.49,-105.71\"/>\n",
"<text text-anchor=\"start\" x=\"196\" 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=\"M176.18,-96.66C182.16,-99.6 189.21,-102.52 196,-104 212.94,-107.69 218.06,-107.69 235,-104 239.46,-103.03 244.02,-101.44 248.33,-99.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.82,-96.66 249.76,-102.44 251.63,-98.12 248.45,-99.57 248.45,-99.57 248.45,-99.57 251.63,-98.12 247.14,-96.71 254.82,-96.66 254.82,-96.66\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"207.5\" 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=\"M252.93,-86.24C247.23,-85.73 240.85,-85.25 235,-85 217.68,-84.26 213.32,-84.26 196,-85 192.53,-85.15 188.87,-85.38 185.27,-85.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"178.07,-86.24 184.79,-82.53 181.56,-85.96 185.05,-85.67 185.05,-85.67 185.05,-85.67 181.56,-85.96 185.31,-88.81 178.07,-86.24 178.07,-86.24\"/>\n",
"<text text-anchor=\"start\" x=\"198\" 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=\"M260.67,-72.85C254.54,-64.41 245.68,-54.68 235,-50 219.13,-43.04 211.87,-43.04 196,-50 187.66,-53.66 180.43,-60.39 174.74,-67.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"170.33,-72.85 172.15,-65.39 172.48,-70.09 174.63,-67.33 174.63,-67.33 174.63,-67.33 172.48,-70.09 177.12,-69.26 170.33,-72.85 170.33,-72.85\"/>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"207.5\" 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=\"M266.18,-105.41C265.28,-115.09 266.89,-124 271,-124 274.02,-124 275.69,-119.19 276.01,-112.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"275.82,-105.41 279.15,-112.33 275.91,-108.91 276,-112.41 276,-112.41 276,-112.41 275.91,-108.91 272.85,-112.49 275.82,-105.41 275.82,-105.41\"/>\n",
"<text text-anchor=\"start\" x=\"251.5\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"263\" 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=\"M263.73,-104.6C258.24,-125.86 260.66,-154 271,-154 280.25,-154 283.16,-131.49 279.74,-111.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"278.27,-104.6 282.81,-110.79 279,-108.02 279.73,-111.44 279.73,-111.44 279.73,-111.44 279,-108.02 276.64,-112.1 278.27,-104.6 278.27,-104.6\"/>\n",
"<text text-anchor=\"start\" x=\"253.5\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"271\" 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=\"59\" 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 0x7fbc2c2f4840> >"
]
},
"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=\"30.5\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"53.5\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"69.5\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-118.27\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"53.5\" 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 0x7fbc2c279390> >"
]
},
"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=\"87pt\" height=\"161pt\"\n",
" viewBox=\"0.00 0.00 87.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 83,-157 83,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=\"41\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"57\" 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=\"58.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"58.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=\"M3.65,-18C5.29,-18 19.65,-18 33.13,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"40.44,-18 33.44,-21.15 36.94,-18 33.44,-18 33.44,-18 33.44,-18 36.94,-18 33.44,-14.85 40.44,-18 40.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=\"M55.26,-35.78C54.71,-45.31 55.79,-54 58.5,-54 60.49,-54 61.6,-49.32 61.83,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.74,-35.78 64.98,-42.74 61.78,-39.28 61.83,-42.78 61.83,-42.78 61.83,-42.78 61.78,-39.28 58.68,-42.82 61.74,-35.78 61.74,-35.78\"/>\n",
"<text text-anchor=\"start\" x=\"55\" 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=\"M53.18,-35.42C50.15,-52.79 51.93,-72 58.5,-72 64.2,-72 66.29,-57.55 64.77,-42.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"63.82,-35.42 67.89,-41.93 64.29,-38.89 64.76,-42.36 64.76,-42.36 64.76,-42.36 64.29,-38.89 61.64,-42.78 63.82,-35.42 63.82,-35.42\"/>\n",
"<text text-anchor=\"start\" x=\"53\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"50.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 0x7fbc2c280c60> >"
]
},
"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=\"165pt\" height=\"115pt\"\n",
" viewBox=\"0.00 0.00 165.00 115.19\" 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.19)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-111.19 161,-111.19 161,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"57\" y=\"-92.99\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"80\" y=\"-92.99\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-92.99\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"47\" y=\"-78.99\" 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",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M62,-38.19C62,-38.19 50,-38.19 50,-38.19 44,-38.19 38,-32.19 38,-26.19 38,-26.19 38,-12.19 38,-12.19 38,-6.19 44,-0.19 50,-0.19 50,-0.19 62,-0.19 62,-0.19 68,-0.19 74,-6.19 74,-12.19 74,-12.19 74,-26.19 74,-26.19 74,-32.19 68,-38.19 62,-38.19\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-22.99\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-7.99\" 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.15,-19.19C2.79,-19.19 17.15,-19.19 30.63,-19.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-19.19 30.94,-22.34 34.44,-19.19 30.94,-19.19 30.94,-19.19 30.94,-19.19 34.44,-19.19 30.94,-16.04 37.94,-19.19 37.94,-19.19\"/>\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.45,-38.23C48.54,-47.72 50.73,-56.19 56,-56.19 59.87,-56.19 62.08,-51.62 62.62,-45.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.55,-38.23 65.77,-45.2 62.58,-41.73 62.62,-45.23 62.62,-45.23 62.62,-45.23 62.58,-41.73 59.47,-45.26 62.55,-38.23 62.55,-38.23\"/>\n",
"<text text-anchor=\"start\" x=\"50.5\" y=\"-59.99\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M145,-37.19C145,-37.19 133,-37.19 133,-37.19 127,-37.19 121,-31.19 121,-25.19 121,-25.19 121,-13.19 121,-13.19 121,-7.19 127,-1.19 133,-1.19 133,-1.19 145,-1.19 145,-1.19 151,-1.19 157,-7.19 157,-13.19 157,-13.19 157,-25.19 157,-25.19 157,-31.19 151,-37.19 145,-37.19\"/>\n",
"<text text-anchor=\"middle\" x=\"139\" y=\"-15.49\" 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=\"M74.18,-19.19C85.67,-19.19 100.96,-19.19 113.69,-19.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"120.85,-19.19 113.85,-22.34 117.35,-19.19 113.85,-19.19 113.85,-19.19 113.85,-19.19 117.35,-19.19 113.85,-16.04 120.85,-19.19 120.85,-19.19\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-22.99\" 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=\"M120.88,-7.06C112.38,-2.45 101.84,1.19 92,-1.19 88.18,-2.11 84.31,-3.53 80.61,-5.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.17,-8.31 79.08,-2.42 77.31,-6.78 80.46,-5.25 80.46,-5.25 80.46,-5.25 77.31,-6.78 81.84,-8.08 74.17,-8.31 74.17,-8.31\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-4.99\" 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=\"M131.76,-37.34C130.65,-46.73 133.06,-55.19 139,-55.19 143.36,-55.19 145.82,-50.63 146.38,-44.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.24,-37.34 149.52,-44.28 146.31,-40.84 146.37,-44.34 146.37,-44.34 146.37,-44.34 146.31,-40.84 143.23,-44.4 146.24,-37.34 146.24,-37.34\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-58.99\" 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=\"187pt\" height=\"176pt\"\n",
" viewBox=\"0.00 0.00 187.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 183,-172 183,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=\"31\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"47\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"109\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"147\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"163\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"34\" 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=\"108.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"108.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=\"M53.65,-18C55.29,-18 69.65,-18 83.13,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"90.44,-18 83.44,-21.15 86.94,-18 83.44,-18 83.44,-18 83.44,-18 86.94,-18 83.44,-14.85 90.44,-18 90.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=\"M105.26,-35.78C104.71,-45.31 105.79,-54 108.5,-54 110.49,-54 111.6,-49.32 111.83,-43.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"111.74,-35.78 114.98,-42.74 111.78,-39.28 111.83,-42.78 111.83,-42.78 111.83,-42.78 111.78,-39.28 108.68,-42.82 111.74,-35.78 111.74,-35.78\"/>\n",
"<text text-anchor=\"start\" x=\"105\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"100.5\" 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=\"M103.49,-35.58C100.05,-56.72 101.71,-84 108.5,-84 114.54,-84 116.53,-62.36 114.46,-42.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"113.51,-35.58 117.56,-42.1 113.97,-39.05 114.43,-42.52 114.43,-42.52 114.43,-42.52 113.97,-39.05 111.31,-42.93 113.51,-35.58 113.51,-35.58\"/>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"100.5\" 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 0x7fbc2c287cc0> >"
]
},
"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=\"59\" 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 0x7fbc2c2f4840> >"
]
},
"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=\"194pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 194.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 190,-120.8 190,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"71.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=\"52\" 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=\"164\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"164\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"164\" 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.03,-22C90.43,-22 115.53,-22 134.89,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142,-22 135,-25.15 138.5,-22 135,-22 135,-22 135,-22 138.5,-22 135,-18.85 142,-22 142,-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=\"M153.93,-41.76C152.22,-52.35 155.58,-62 164,-62 170.45,-62 173.93,-56.34 174.43,-48.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.07,-41.76 177.57,-48.59 174.25,-45.25 174.43,-48.75 174.43,-48.75 174.43,-48.75 174.25,-45.25 171.28,-48.91 174.07,-41.76 174.07,-41.76\"/>\n",
"<text text-anchor=\"start\" x=\"148\" 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 0x7fbc2c2f4840> >"
]
},
"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=\"218pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 218.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 214,-120.8 214,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"83.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=\"52\" 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=\"188\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"188\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" 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,-22C95.76,-22 132.79,-22 158.52,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"165.78,-22 158.78,-25.15 162.28,-22 158.78,-22 158.78,-22 158.78,-22 162.28,-22 158.78,-18.85 165.78,-22 165.78,-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=\"M176.05,-40.52C173.39,-51.58 177.38,-62 188,-62 196.3,-62 200.55,-55.64 200.74,-47.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"199.95,-40.52 203.86,-47.12 200.34,-43.99 200.73,-47.47 200.73,-47.47 200.73,-47.47 200.34,-43.99 197.6,-47.82 199.95,-40.52 199.95,-40.52\"/>\n",
"<text text-anchor=\"start\" x=\"172\" 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 0x7fbc2c2f4840> >"
]
},
"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.8.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}