spot/tests/python/automata.ipynb
Alexandre Duret-Lutz 60296317c7 python: more conventional __repr__ for several types
* NEWS: Mention the change.
* python/spot/__init__.py: Add _repr_latex_ for twa_word, and
remove __repr__ and __str__ for atomic_prop_set.
* python/spot/impl.i: Implement __repr__ and __str__ for
atomic_prop_set.  Fix __repr__ for trival, acc_code, acc_cond,
mark_t.  Remove __repr__ for twa_run and twa_word.
* tests/python/acc_cond.ipynb, tests/python/accparse.ipynb,
tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
tests/python/bdditer.py, tests/python/contains.ipynb,
tests/python/gen.ipynb, tests/python/highlighting.ipynb,
tests/python/ltlsimple.py, tests/python/ltsmin-dve.ipynb,
tests/python/product.ipynb, tests/python/relabel.py,
tests/python/satmin.ipynb tests/python/stutter-inv.ipynb,
tests/python/word.ipynb: Adjust test cases.
* tests/python/formulas.ipynb: Add test for atomic_prop_set.
2018-11-03 07:53:26 +01:00

3675 lines
257 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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"468pt\" height=\"329pt\"\n",
" viewBox=\"0.00 0.00 468.00 328.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 324.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-324.8 464,-324.8 464,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"207\" y=\"-290.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-120C4.178,-120 17.9448,-120 30.9241,-120\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-120 30.9808,-123.1501 34.4807,-120 30.9807,-120.0001 30.9807,-120.0001 30.9807,-120.0001 34.4807,-120 30.9807,-116.8501 37.9807,-120 37.9807,-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=\"#000000\" d=\"M49.6208,-137.0373C48.3189,-146.8579 50.4453,-156 56,-156 60.166,-156 62.4036,-150.8576 62.7128,-144.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-137.0373 65.8541,-143.8818 62.5434,-140.5335 62.7076,-144.0296 62.7076,-144.0296 62.7076,-144.0296 62.5434,-140.5335 59.561,-144.1774 62.3792,-137.0373 62.3792,-137.0373\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-214\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"192\" cy=\"-214\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-210.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M67.8332,-133.9421C74.4899,-141.3052 83.2108,-150.1986 92,-157 115.1023,-174.8774 144.4269,-190.9236 165.335,-201.4008\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"171.8091,-204.602 164.138,-204.3229 168.6717,-203.0506 165.5343,-201.4993 165.5343,-201.4993 165.5343,-201.4993 168.6717,-203.0506 166.9305,-198.6756 171.8091,-204.602 171.8091,-204.602\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-196.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" cx=\"332.5\" cy=\"-157\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"332.5\" y=\"-153.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.1419,-122.4277C122.1062,-128.846 252.3489,-146.2745 307.3984,-153.641\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"314.6507,-154.6115 307.2947,-156.8051 311.1816,-154.1472 307.7126,-153.683 307.7126,-153.683 307.7126,-153.683 311.1816,-154.1472 308.1304,-150.5608 314.6507,-154.6115 314.6507,-154.6115\"/>\n",
"<text text-anchor=\"start\" x=\"172.5\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b &amp; !d</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"442\" cy=\"-222\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"442\" y=\"-218.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M73.8778,-116.3857C121.3158,-107.663 253.4179,-89.0652 351,-130 385.0855,-144.2986 412.9463,-178.2196 428.5041,-200.6342\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"432.5609,-206.6252 426.0277,-202.5952 430.5985,-203.7271 428.636,-200.829 428.636,-200.829 428.636,-200.829 430.5985,-203.7271 431.2443,-199.0628 432.5609,-206.6252 432.5609,-206.6252\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" cx=\"192\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M64.323,-103.8495C70.7091,-92.6794 80.387,-78.0719 92,-68 114.626,-48.3765 146.3062,-34.244 167.9061,-26.1124\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"174.5406,-23.6837 169.05,-29.0481 171.2539,-24.8869 167.9672,-26.0901 167.9672,-26.0901 167.9672,-26.0901 171.2539,-24.8869 166.8843,-23.132 174.5406,-23.6837 174.5406,-23.6837\"/>\n",
"<text text-anchor=\"start\" x=\"101.5\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M179.6953,-232.5156C176.9609,-243.5833 181.0625,-254 192,-254 200.5449,-254 204.9175,-247.6422 205.1178,-239.5831\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"204.3047,-232.5156 208.2342,-239.1097 204.7048,-235.9927 205.1048,-239.4698 205.1048,-239.4698 205.1048,-239.4698 204.7048,-235.9927 201.9755,-239.8298 204.3047,-232.5156 204.3047,-232.5156\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-257.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M214.3062,-212.8263C236.2237,-210.8821 270.0602,-205.7177 296,-192 303.3681,-188.1035 310.2911,-182.2836 316.0858,-176.5026\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"321.0707,-171.2608 318.5294,-178.5041 318.6587,-173.7971 316.2468,-176.3333 316.2468,-176.3333 316.2468,-176.3333 318.6587,-173.7971 313.9641,-174.1626 321.0707,-171.2608 321.0707,-171.2608\"/>\n",
"<text text-anchor=\"start\" x=\"257.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M203.7297,-232.6179C210.7106,-241.971 220.4561,-252.4671 232,-258 279.7359,-280.8792 298.1188,-265.3987 351,-263 375.52,-261.8877 383.7721,-268.411 406,-258 413.7217,-254.3833 420.7359,-248.3804 426.4793,-242.3031\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"431.3805,-236.7674 429.0987,-244.0966 429.0604,-239.3879 426.7402,-242.0084 426.7402,-242.0084 426.7402,-242.0084 429.0604,-239.3879 424.3818,-239.9203 431.3805,-236.7674 431.3805,-236.7674\"/>\n",
"<text text-anchor=\"start\" x=\"314\" y=\"-269.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M314.3814,-156.5337C293.4025,-156.7259 258.3574,-159.3513 232,-173 223.8592,-177.2156 216.3944,-183.7118 210.1745,-190.2994\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"205.255,-195.8065 207.5692,-188.4875 207.5867,-193.1963 209.9184,-190.5861 209.9184,-190.5861 209.9184,-190.5861 207.5867,-193.1963 212.2676,-192.6846 205.255,-195.8065 205.255,-195.8065\"/>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M323.2674,-172.5414C320.6685,-182.9087 323.7461,-193 332.5,-193 339.2022,-193 342.577,-187.0847 342.6245,-179.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"341.7326,-172.5414 345.7286,-179.0955 342.1678,-176.0143 342.603,-179.4871 342.603,-179.4871 342.603,-179.4871 342.1678,-176.0143 339.4775,-179.8788 341.7326,-172.5414 341.7326,-172.5414\"/>\n",
"<text text-anchor=\"start\" x=\"326\" y=\"-196.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M348.1887,-166.3129C367.0531,-177.511 398.8271,-196.3722 420.1011,-209.0007\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"426.3404,-212.7044 418.7131,-211.8399 423.3307,-210.9178 420.321,-209.1312 420.321,-209.1312 420.321,-209.1312 423.3307,-210.9178 421.929,-206.4225 426.3404,-212.7044 426.3404,-212.7044\"/>\n",
"<text text-anchor=\"start\" x=\"369\" y=\"-202.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M424.1149,-225.1201C387.6378,-230.9319 302.1713,-241.7245 232,-229 227.7924,-228.237 223.4512,-227.0569 219.2499,-225.6861\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.3598,-223.2394 220.0103,-222.6135 215.658,-224.4107 218.9562,-225.5819 218.9562,-225.5819 218.9562,-225.5819 215.658,-224.4107 217.9021,-228.5503 212.3598,-223.2394 212.3598,-223.2394\"/>\n",
"<text text-anchor=\"start\" x=\"329\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M432.7674,-237.5414C430.1685,-247.9087 433.2461,-258 442,-258 448.7022,-258 452.077,-252.0847 452.1245,-244.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"451.2326,-237.5414 455.2286,-244.0955 451.6678,-241.0143 452.103,-244.4871 452.103,-244.4871 452.103,-244.4871 451.6678,-241.0143 448.9775,-244.8788 451.2326,-237.5414 451.2326,-237.5414\"/>\n",
"<text text-anchor=\"start\" x=\"436.5\" y=\"-261.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M180.5701,-32.0417C176.2955,-42.9126 180.1055,-54 192,-54 201.2926,-54 205.6508,-47.2328 205.0745,-39.0885\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"203.4299,-32.0417 208.0885,-38.1426 204.2254,-35.4502 205.0209,-38.8586 205.0209,-38.8586 205.0209,-38.8586 204.2254,-35.4502 201.9534,-39.5745 203.4299,-32.0417 203.4299,-32.0417\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d1c0b2de0> >"
]
},
"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": [
"<svg height=\"360pt\" viewBox=\"0.00 0.00 314.52 360.00\" width=\"315pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(.9231 .9231) rotate(0) translate(4 386)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-386 336.7254,-386 336.7254,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"166.3627\" y=\"-350.8\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"210.7254\" cy=\"-287\" fill=\"none\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"210.7254\" y=\"-283.3\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;0</title>\n",
"<path d=\"M210.7254,-341.8767C210.7254,-338.822 210.7254,-325.0552 210.7254,-312.0759\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"210.7254,-305.0193 213.8755,-312.0192 210.7255,-308.5193 210.7255,-312.0193 210.7255,-312.0193 210.7255,-312.0193 210.7255,-308.5193 207.5755,-312.0193 210.7254,-305.0193 210.7254,-305.0193\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;0</title>\n",
"<path d=\"M227.7627,-293.3792C237.5833,-294.6811 246.7254,-292.5547 246.7254,-287 246.7254,-282.834 241.583,-280.5964 234.8687,-280.2872\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"227.7627,-280.6208 234.6073,-277.1459 231.2589,-280.4566 234.755,-280.2924 234.755,-280.2924 234.755,-280.2924 231.2589,-280.4566 234.9028,-283.439 227.7627,-280.6208 227.7627,-280.6208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"265.2254\" y=\"-283.3\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"70.7254\" cy=\"-196\" fill=\"none\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"70.7254\" cy=\"-196\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"70.7254\" y=\"-192.3\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M192.8529,-284.4426C170.6806,-280.512 132.6422,-271.2072 106.7254,-251 97.0365,-243.4456 89.1301,-232.5183 83.2204,-222.3909\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"79.8008,-216.2259 85.9509,-220.8193 81.4985,-219.2866 83.1963,-222.3473 83.1963,-222.3473 83.1963,-222.3473 81.4985,-219.2866 80.4416,-223.8752 79.8008,-216.2259 79.8008,-216.2259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"135.7254\" y=\"-239.8\">b &amp; c &amp; d</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>2</title>\n",
"<ellipse cx=\"123.7254\" cy=\"-105\" fill=\"none\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"123.7254\" y=\"-101.3\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;2</title>\n",
"<path d=\"M205.6834,-269.5955C197.1185,-241.4204 178.1517,-184.5823 152.7254,-141 149.2802,-135.0947 144.9167,-129.1332 140.6274,-123.8068\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"136.0493,-118.309 142.9494,-121.6725 138.289,-120.9986 140.5287,-123.6882 140.5287,-123.6882 140.5287,-123.6882 138.289,-120.9986 138.1081,-125.704 136.0493,-118.309 136.0493,-118.309\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"205.2254\" y=\"-192.3\">b &amp; !d</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>3</title>\n",
"<ellipse cx=\"97.7254\" cy=\"-18\" fill=\"none\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"97.7254\" y=\"-14.3\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>0-&gt;3</title>\n",
"<path d=\"M217.4452,-269.9468C225.2927,-247.6426 236.1873,-207.4663 227.7254,-174 212.3658,-113.2529 200.4922,-95.7012 153.7254,-54 143.4855,-44.8693 130.7016,-36.466 119.9346,-30.0786\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"113.8626,-26.5606 121.4986,-27.3444 116.891,-28.3153 119.9194,-30.0699 119.9194,-30.0699 119.9194,-30.0699 116.891,-28.3153 118.3402,-32.7955 113.8626,-26.5606 113.8626,-26.5606\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"253.7254\" y=\"-144.8\">b &amp; !c &amp; d</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node6\">\n",
"<title>4</title>\n",
"<ellipse cx=\"289.7254\" cy=\"-196\" fill=\"none\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"289.7254\" y=\"-192.3\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>0-&gt;4</title>\n",
"<path d=\"M226.3722,-277.3069C236.1719,-270.7149 248.6225,-261.3359 257.7254,-251 266.1904,-241.3884 273.5514,-229.202 279.0721,-218.7444\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"282.2652,-212.4949 281.8853,-220.1616 280.6727,-215.6117 279.0803,-218.7284 279.0803,-218.7284 279.0803,-218.7284 280.6727,-215.6117 276.2752,-217.2952 282.2652,-212.4949 282.2652,-212.4949\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"288.2254\" y=\"-239.8\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M91.3062,-204.3702C101.5701,-205.5284 110.7254,-202.7383 110.7254,-196 110.7254,-190.9463 105.5756,-188.1134 98.6706,-187.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"91.3062,-187.6298 98.2502,-184.3582 94.8057,-187.5688 98.3052,-187.5077 98.3052,-187.5077 98.3052,-187.5077 94.8057,-187.5688 98.3601,-190.6573 91.3062,-187.6298 91.3062,-187.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"126.7254\" y=\"-192.3\">c &amp; d</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M79.6814,-175.7118C84.5979,-165.1372 91.0431,-152.1246 97.7254,-141 100.9211,-135.6798 104.678,-130.1458 108.327,-125.0585\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"112.521,-119.3313 110.9267,-126.84 110.4532,-122.1551 108.3853,-124.9789 108.3853,-124.9789 108.3853,-124.9789 110.4532,-122.1551 105.8438,-123.1178 112.521,-119.3313 112.521,-119.3313\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"103.7254\" y=\"-144.8\">!d</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M52.8324,-182.9577C27.6203,-162.8845 -13.3738,-122.9652 4.7254,-87 19.1403,-58.356 51.6943,-38.6202 74.1887,-27.8114\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"80.8156,-24.7435 75.7866,-30.5429 77.6394,-26.2139 74.4632,-27.6843 74.4632,-27.6843 74.4632,-27.6843 77.6394,-26.2139 73.1399,-24.8258 80.8156,-24.7435 80.8156,-24.7435\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"23.2254\" y=\"-101.3\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M121.1076,-122.8521C119.0684,-133.0528 115.5684,-145.8028 109.7254,-156 105.3555,-163.6264 99.1921,-170.866 93.0527,-177.037\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"87.941,-181.9542 90.802,-174.8311 90.4634,-179.5277 92.9858,-177.1013 92.9858,-177.1013 92.9858,-177.1013 90.4634,-179.5277 95.1696,-179.3714 87.941,-181.9542 87.941,-181.9542\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"132.7254\" y=\"-144.8\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M140.3895,-112.3828C150.3504,-114.0234 159.7254,-111.5625 159.7254,-105 159.7254,-100.0781 154.452,-97.4634 147.613,-97.1558\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"140.3895,-97.6172 147.1744,-94.0273 143.8824,-97.394 147.3752,-97.1709 147.3752,-97.1709 147.3752,-97.1709 143.8824,-97.394 147.5761,-100.3145 140.3895,-97.6172 140.3895,-97.6172\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"165.7254\" y=\"-101.3\">!d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>2-&gt;3</title>\n",
"<path d=\"M118.4639,-87.3943C114.5619,-74.3374 109.1974,-56.3869 104.902,-42.014\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"102.8904,-35.2827 107.9129,-41.0876 103.8926,-38.6361 104.8948,-41.9896 104.8948,-41.9896 104.8948,-41.9896 103.8926,-38.6361 101.8767,-42.8916 102.8904,-35.2827 102.8904,-35.2827\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"131.2254\" y=\"-57.8\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>3-&gt;1</title>\n",
"<path d=\"M94.9989,-35.975C90.3216,-66.8106 80.7301,-130.0432 75.1055,-167.1237\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"74.0362,-174.1737 71.9716,-166.7804 74.5611,-170.7133 75.086,-167.2529 75.086,-167.2529 75.086,-167.2529 74.5611,-170.7133 78.2004,-167.7253 74.0362,-174.1737 74.0362,-174.1737\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"91.2254\" y=\"-101.3\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge14\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M114.3895,-25.3828C124.3504,-27.0234 133.7254,-24.5625 133.7254,-18 133.7254,-13.0781 128.452,-10.4634 121.613,-10.1558\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"114.3895,-10.6172 121.1744,-7.0273 117.8824,-10.394 121.3752,-10.1709 121.3752,-10.1709 121.3752,-10.1709 117.8824,-10.394 121.5761,-13.3145 114.3895,-10.6172 114.3895,-10.6172\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"139.2254\" y=\"-14.3\">!c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge15\">\n",
"<title>4-&gt;4</title>\n",
"<path d=\"M306.0157,-204.0164C316.1146,-205.9495 325.7254,-203.2773 325.7254,-196 325.7254,-190.542 320.3193,-187.6744 313.3558,-187.3972\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"306.0157,-187.9836 312.7426,-184.2861 309.5046,-187.7048 312.9935,-187.4261 312.9935,-187.4261 312.9935,-187.4261 309.5046,-187.7048 313.2443,-190.5661 306.0157,-187.9836 306.0157,-187.9836\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"329.2254\" y=\"-192.3\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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": [
"<svg height=\"360pt\" viewBox=\"0.00 0.00 527.72 360.00\" width=\"528pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(.8471 .8471) rotate(0) translate(4 421)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-421 619,-421 619,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"286.5\" y=\"-402.8\">Inf(</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"308.5\" y=\"-402.8\">⓿</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"324.5\" y=\"-402.8\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"284.5\" y=\"-388.8\">[Büchi]</text>\n",
"<g class=\"cluster\" id=\"clust1\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" points=\"162,-171 162,-373 607,-373 607,-171 162,-171\" stroke=\"#00ff00\"/>\n",
"</g>\n",
"<g class=\"cluster\" id=\"clust2\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" points=\"162,-8 162,-93 214,-93 214,-8 162,-8\" stroke=\"#c0c0c0\"/>\n",
"</g>\n",
"<g class=\"cluster\" id=\"clust3\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" points=\"30,-106 30,-191 82,-191 82,-106 30,-106\" stroke=\"#ff0000\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"56\" cy=\"-132\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-128.3\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;0</title>\n",
"<path d=\"M1.1233,-132C4.178,-132 17.9448,-132 30.9241,-132\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.9807,-132 30.9808,-135.1501 34.4807,-132 30.9807,-132.0001 30.9807,-132.0001 30.9807,-132.0001 34.4807,-132 30.9807,-128.8501 37.9807,-132 37.9807,-132\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;0</title>\n",
"<path d=\"M49.6208,-149.0373C48.3189,-158.8579 50.4453,-168 56,-168 60.166,-168 62.4036,-162.8576 62.7128,-156.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"62.3792,-149.0373 65.8541,-155.8818 62.5434,-152.5335 62.7076,-156.0296 62.7076,-156.0296 62.7076,-156.0296 62.5434,-152.5335 59.561,-156.1774 62.3792,-149.0373 62.3792,-149.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"37.5\" y=\"-171.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"188\" cy=\"-248\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"188\" y=\"-244.3\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M69.2513,-144.3168C76.0158,-150.5608 84.4009,-158.2346 92,-165 118.2467,-188.3672 149.0536,-214.8362 168.5495,-231.4711\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"174.2193,-236.3036 166.8485,-234.1602 171.5556,-234.0332 168.8918,-231.7628 168.8918,-231.7628 168.8918,-231.7628 171.5556,-234.0332 170.9352,-229.3654 174.2193,-236.3036 174.2193,-236.3036\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-219.8\">b &amp; c &amp; d</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>2</title>\n",
"<ellipse cx=\"433.5\" cy=\"-197\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"433.5\" y=\"-193.3\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;2</title>\n",
"<path d=\"M73.8062,-134.654C124.4892,-142.2776 273.8265,-165.2225 397,-189 400.8218,-189.7378 404.8571,-190.5691 408.7959,-191.4097\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"415.7147,-192.9145 408.2051,-194.5048 412.2946,-192.1707 408.8746,-191.4268 408.8746,-191.4268 408.8746,-191.4268 412.2946,-192.1707 409.5441,-188.3487 415.7147,-192.9145 415.7147,-192.9145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"224\" y=\"-167.8\">b &amp; !d</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>3</title>\n",
"<ellipse cx=\"581\" cy=\"-241\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"581\" y=\"-237.3\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>0-&gt;3</title>\n",
"<path d=\"M73.8174,-127.7833C99.0697,-122.1857 146.7879,-113 188,-113 188,-113 188,-113 507.5,-113 554.4663,-113 571.8564,-178.6094 577.9464,-215.8831\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"579.0191,-222.9322 574.8517,-216.4858 578.4925,-219.472 577.9659,-216.0119 577.9659,-216.0119 577.9659,-216.0119 578.4925,-219.472 581.08,-215.5379 579.0191,-222.9322 579.0191,-222.9322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"333\" y=\"-116.8\">b &amp; !c &amp; d</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node6\">\n",
"<title>4</title>\n",
"<ellipse cx=\"188\" cy=\"-34\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"188\" y=\"-30.3\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>0-&gt;4</title>\n",
"<path d=\"M65.1948,-116.2897C71.7138,-106.1408 81.1989,-93.1668 92,-84 113.8829,-65.4281 143.8259,-51.2192 164.422,-42.778\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"171.0233,-40.1384 165.6932,-45.6622 167.7735,-41.4379 164.5237,-42.7374 164.5237,-42.7374 164.5237,-42.7374 167.7735,-41.4379 163.3541,-39.8125 171.0233,-40.1384 171.0233,-40.1384\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"101.5\" y=\"-87.8\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M178.7674,-263.5414C176.1685,-273.9087 179.2461,-284 188,-284 194.7022,-284 198.077,-278.0847 198.1245,-270.6591\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"197.2326,-263.5414 201.2286,-270.0955 197.6678,-267.0143 198.103,-270.4871 198.103,-270.4871 198.103,-270.4871 197.6678,-267.0143 194.9775,-270.8788 197.2326,-263.5414 197.2326,-263.5414\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"171\" y=\"-302.8\">c &amp; d</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"180\" y=\"-287.8\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M205.6558,-244.3322C248.636,-235.4035 358.8132,-212.5154 408.5154,-202.1903\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"415.6744,-200.7031 409.4614,-205.2111 412.2475,-201.415 408.8207,-202.1269 408.8207,-202.1269 408.8207,-202.1269 412.2475,-201.415 408.1799,-199.0428 415.6744,-200.7031 415.6744,-200.7031\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"291.5\" y=\"-246.8\">!d</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-231.8\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M205.7394,-251.478C224.3873,-254.9438 254.6228,-260.0257 281,-262 382.9785,-269.6328 504.5245,-253.2927 555.9986,-245.1951\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"563.074,-244.064 556.6591,-248.2796 559.6179,-244.6166 556.1618,-245.1691 556.1618,-245.1691 556.1618,-245.1691 559.6179,-244.6166 555.6645,-242.0586 563.074,-244.064 563.074,-244.064\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"415\" y=\"-279.8\">!c &amp; d</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-264.8\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M415.3575,-195.3231C386.4746,-193.1569 328.4539,-190.8709 281,-202 254.7601,-208.1539 227.4236,-222.8282 209.2362,-233.9608\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"202.9685,-237.8797 207.2338,-231.4977 205.9362,-236.0242 208.9038,-234.1686 208.9038,-234.1686 208.9038,-234.1686 205.9362,-236.0242 210.5738,-236.8395 202.9685,-237.8797 202.9685,-237.8797\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-205.8\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M427.1208,-214.0373C425.8189,-223.8579 427.9453,-233 433.5,-233 437.666,-233 439.9036,-227.8576 440.2128,-221.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"439.8792,-214.0373 443.3541,-220.8818 440.0434,-217.5335 440.2076,-221.0296 440.2076,-221.0296 440.2076,-221.0296 440.0434,-217.5335 437.061,-221.1774 439.8792,-214.0373 439.8792,-214.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"427\" y=\"-236.8\">!d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>2-&gt;3</title>\n",
"<path d=\"M450.9994,-202.2202C477.2802,-210.0599 527.0238,-224.8986 556.7757,-233.7738\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"563.5234,-235.7866 555.915,-236.8041 560.1694,-234.7861 556.8155,-233.7856 556.8155,-233.7856 556.8155,-233.7856 560.1694,-234.7861 557.7159,-230.767 563.5234,-235.7866 563.5234,-235.7866\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"489\" y=\"-227.8\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>3-&gt;1</title>\n",
"<path d=\"M577.5101,-258.9991C570.3472,-289.9582 550.8654,-350 507.5,-350 298,-350 298,-350 298,-350 251.7536,-350 216.7393,-300.9249 199.6255,-270.8551\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"196.0527,-264.3881 202.195,-268.9918 197.7452,-267.4516 199.4378,-270.5152 199.4378,-270.5152 199.4378,-270.5152 197.7452,-267.4516 196.6806,-272.0385 196.0527,-264.3881 196.0527,-264.3881\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"430\" y=\"-353.8\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge14\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M574.6208,-258.0373C573.3189,-267.8579 575.4453,-277 581,-277 585.166,-277 587.4036,-271.8576 587.7128,-265.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"587.3792,-258.0373 590.8541,-264.8818 587.5434,-261.5335 587.7076,-265.0296 587.7076,-265.0296 587.7076,-265.0296 587.5434,-261.5335 584.561,-265.1774 587.3792,-258.0373 587.3792,-258.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"575.5\" y=\"-280.8\">!c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge15\">\n",
"<title>4-&gt;4</title>\n",
"<path d=\"M178.7674,-49.5414C176.1685,-59.9087 179.2461,-70 188,-70 194.7022,-70 198.077,-64.0847 198.1245,-56.6591\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"197.2326,-49.5414 201.2286,-56.0955 197.6678,-53.0143 198.103,-56.4871 198.103,-56.4871 198.103,-56.4871 197.6678,-53.0143 194.9775,-56.8788 197.2326,-49.5414 197.2326,-49.5414\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"188\" y=\"-73.8\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"171pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 171.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 167,-120.8 167,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"58.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-22C4.178,-22 17.9448,-22 30.9241,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-22 30.9808,-25.1501 34.4807,-22 30.9807,-22.0001 30.9807,-22.0001 30.9807,-22.0001 34.4807,-22 30.9807,-18.8501 37.9807,-22 37.9807,-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=\"#000000\" d=\"M49.6208,-39.0373C48.3189,-48.8579 50.4453,-58 56,-58 60.166,-58 62.4036,-52.8576 62.7128,-46.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-39.0373 65.8541,-45.8818 62.5434,-42.5335 62.7076,-46.0296 62.7076,-46.0296 62.7076,-46.0296 62.5434,-42.5335 59.561,-46.1774 62.3792,-39.0373 62.3792,-39.0373\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.0263,-22C84.9439,-22 99.13,-22 111.634,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.7644,-22 111.7645,-25.1501 115.2644,-22 111.7644,-22.0001 111.7644,-22.0001 111.7644,-22.0001 115.2644,-22 111.7644,-18.8501 118.7644,-22 118.7644,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M132.9937,-42.5808C131.8859,-52.8447 134.5547,-62 141,-62 145.834,-62 148.5437,-56.8502 149.129,-49.9451\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"149.0063,-42.5808 152.2726,-49.5273 149.0647,-46.0803 149.123,-49.5798 149.123,-49.5798 149.123,-49.5798 149.0647,-46.0803 145.9735,-49.6324 149.0063,-42.5808 149.0063,-42.5808\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d1c02c930> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"171pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 171.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 167,-120.8 167,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"58.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-22C4.178,-22 17.9448,-22 30.9241,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-22 30.9808,-25.1501 34.4807,-22 30.9807,-22.0001 30.9807,-22.0001 30.9807,-22.0001 34.4807,-22 30.9807,-18.8501 37.9807,-22 37.9807,-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=\"#000000\" d=\"M49.6208,-39.0373C48.3189,-48.8579 50.4453,-58 56,-58 60.166,-58 62.4036,-52.8576 62.7128,-46.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-39.0373 65.8541,-45.8818 62.5434,-42.5335 62.7076,-46.0296 62.7076,-46.0296 62.7076,-46.0296 62.5434,-42.5335 59.561,-46.1774 62.3792,-39.0373 62.3792,-39.0373\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.0263,-22C84.9439,-22 99.13,-22 111.634,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.7644,-22 111.7645,-25.1501 115.2644,-22 111.7644,-22.0001 111.7644,-22.0001 111.7644,-22.0001 115.2644,-22 111.7644,-18.8501 118.7644,-22 118.7644,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M132.9937,-42.5808C131.8859,-52.8447 134.5547,-62 141,-62 145.834,-62 148.5437,-56.8502 149.129,-49.9451\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"149.0063,-42.5808 152.2726,-49.5273 149.0647,-46.0803 149.123,-49.5798 149.123,-49.5798 149.123,-49.5798 149.0647,-46.0803 145.9735,-49.6324 149.0063,-42.5808 149.0063,-42.5808\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d1c02c960> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"163pt\" height=\"115pt\"\n",
" viewBox=\"0.00 0.00 163.00 115.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 111)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-111 159,-111 159,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"74.5\" y=\"-91.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-18C4.178,-18 17.9448,-18 30.9241,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-18 30.9808,-21.1501 34.4807,-18 30.9807,-18.0001 30.9807,-18.0001 30.9807,-18.0001 34.4807,-18 30.9807,-14.8501 37.9807,-18 37.9807,-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=\"#000000\" d=\"M49.6208,-35.0373C48.3189,-44.8579 50.4453,-54 56,-54 60.166,-54 62.4036,-48.8576 62.7128,-42.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-35.0373 65.8541,-41.8818 62.5434,-38.5335 62.7076,-42.0296 62.7076,-42.0296 62.7076,-42.0296 62.5434,-38.5335 59.561,-42.1774 62.3792,-35.0373 62.3792,-35.0373\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"137\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.3802,-18C85.4352,-18 99.6622,-18 111.7609,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.9716,-18 111.9716,-21.1501 115.4716,-18 111.9716,-18.0001 111.9716,-18.0001 111.9716,-18.0001 115.4716,-18 111.9716,-14.8501 118.9716,-18 118.9716,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M129.9688,-34.6641C128.4063,-44.625 130.75,-54 137,-54 141.6875,-54 144.1777,-48.7266 144.4707,-41.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"144.0313,-34.6641 147.6006,-41.4598 144.2438,-38.1576 144.4564,-41.6511 144.4564,-41.6511 144.4564,-41.6511 144.2438,-38.1576 141.3122,-41.8425 144.0313,-34.6641 144.0313,-34.6641\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d1c02ca80> >"
]
},
"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": [
"<svg height=\"217pt\" viewBox=\"0.00 0.00 253.00 216.80\" width=\"253pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 212.8)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-212.8 249,-212.8 249,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"99.5\" y=\"-178.6\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"109\" cy=\"-113\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"109\" y=\"-109.3\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;0</title>\n",
"<path d=\"M109,-167.8767C109,-164.822 109,-151.0552 109,-138.0759\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"109,-131.0193 112.1501,-138.0192 109,-134.5193 109.0001,-138.0193 109.0001,-138.0193 109.0001,-138.0193 109,-134.5193 105.8501,-138.0193 109,-131.0193 109,-131.0193\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"22\" cy=\"-22\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"22\" cy=\"-22\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"22\" y=\"-18.3\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M96.535,-99.9619C82.3984,-85.1754 59.1374,-60.8449 42.3576,-43.2936\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.3754,-38.0824 44.4896,-40.9653 39.7941,-40.6122 42.2128,-43.1421 42.2128,-43.1421 42.2128,-43.1421 39.7941,-40.6122 39.9359,-45.3189 37.3754,-38.0824 37.3754,-38.0824\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"74\" y=\"-65.8\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>2</title>\n",
"<ellipse cx=\"109\" cy=\"-22\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"109\" cy=\"-22\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"109\" y=\"-18.3\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;2</title>\n",
"<path d=\"M109,-94.5848C109,-82.2017 109,-65.6103 109,-51.4159\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"109,-44.2465 112.1501,-51.2465 109,-47.7465 109.0001,-51.2465 109.0001,-51.2465 109.0001,-51.2465 109,-47.7465 105.8501,-51.2466 109,-44.2465 109,-44.2465\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"109\" y=\"-65.8\">b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>3</title>\n",
"<ellipse cx=\"198\" cy=\"-22\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"198\" cy=\"-22\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"198\" y=\"-18.3\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;3</title>\n",
"<path d=\"M121.7515,-99.9619C136.3002,-85.0863 160.2959,-60.5514 177.4839,-42.9772\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"182.5815,-37.7649 179.9391,-44.9719 180.1343,-40.2672 177.6871,-42.7694 177.6871,-42.7694 177.6871,-42.7694 180.1343,-40.2672 175.4351,-40.5669 182.5815,-37.7649 182.5815,-37.7649\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"158\" y=\"-65.8\">c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M42.5808,-30.3702C52.8447,-31.5284 62,-28.7383 62,-22 62,-16.9463 56.8502,-14.1134 49.9451,-13.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"42.5808,-13.6298 49.5248,-10.3582 46.0803,-13.5688 49.5797,-13.5077 49.5797,-13.5077 49.5797,-13.5077 46.0803,-13.5688 49.6347,-16.6573 42.5808,-13.6298 42.5808,-13.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"62\" y=\"-18.3\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M129.5808,-30.3702C139.8447,-31.5284 149,-28.7383 149,-22 149,-16.9463 143.8502,-14.1134 136.9451,-13.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"129.5808,-13.6298 136.5248,-10.3582 133.0803,-13.5688 136.5797,-13.5077 136.5797,-13.5077 136.5797,-13.5077 133.0803,-13.5688 136.6347,-16.6573 129.5808,-13.6298 129.5808,-13.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"149\" y=\"-18.3\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M218.5808,-30.3702C228.8447,-31.5284 238,-28.7383 238,-22 238,-16.9463 232.8502,-14.1134 225.9451,-13.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"218.5808,-13.6298 225.5248,-10.3582 222.0803,-13.5688 225.5797,-13.5077 225.5797,-13.5077 225.5797,-13.5077 222.0803,-13.5688 225.6347,-16.6573 218.5808,-13.6298 218.5808,-13.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"238\" y=\"-18.3\">c</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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": [
"<svg height=\"320pt\" viewBox=\"0.00 0.00 596.97 319.80\" width=\"597pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 315.8)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-315.8 592.9654,-315.8 592.9654,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"271.4827\" y=\"-281.6\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 6 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>6</title>\n",
"<ellipse cx=\"287.9654\" cy=\"-212\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"287.9654\" cy=\"-212\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"287.9654\" y=\"-208.3\">6</text>\n",
"</g>\n",
"<!-- I&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;6</title>\n",
"<path d=\"M287.9654,-270.8318C287.9654,-267.7509 287.9654,-254.5054 287.9654,-241.3612\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"287.9654,-234.1345 291.1155,-241.1344 287.9655,-237.6345 287.9655,-241.1345 287.9655,-241.1345 287.9655,-241.1345 287.9655,-237.6345 284.8155,-241.1345 287.9654,-234.1345 287.9654,-234.1345\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge20\">\n",
"<title>6-&gt;6</title>\n",
"<path d=\"M308.9562,-219.3169C319.0527,-220.2202 327.9654,-217.7813 327.9654,-212 327.9654,-207.6641 322.952,-205.2082 316.1858,-204.6323\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"308.9562,-204.6831 315.9338,-201.4839 312.4561,-204.6585 315.956,-204.6338 315.956,-204.6338 315.956,-204.6338 312.4561,-204.6585 315.9782,-207.7837 308.9562,-204.6831 308.9562,-204.6831\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"327.9654\" y=\"-208.3\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>0</title>\n",
"<ellipse cx=\"98.9654\" cy=\"-22\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"98.9654\" cy=\"-22\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"98.9654\" y=\"-18.3\">0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge14\">\n",
"<title>6-&gt;0</title>\n",
"<path d=\"M265.9308,-209.6731C205.582,-202.8018 39.9872,-180.4407 7.9654,-139 -20.6224,-102.0033 37.2077,-58.5869 73.1888,-36.4993\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"79.6272,-32.6296 75.2502,-38.9355 76.6273,-34.4326 73.6275,-36.2357 73.6275,-36.2357 73.6275,-36.2357 76.6273,-34.4326 72.0047,-33.5358 79.6272,-32.6296 79.6272,-32.6296\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"7.9654\" y=\"-113.3\">!a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>1</title>\n",
"<ellipse cx=\"478.9654\" cy=\"-22\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"478.9654\" cy=\"-22\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"478.9654\" y=\"-18.3\">1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge15\">\n",
"<title>6-&gt;1</title>\n",
"<path d=\"M309.8221,-208.4766C362.2134,-199.5229 492.368,-174.0944 515.9654,-139 535.5546,-109.8668 514.5931,-69.7601 497.1695,-44.8789\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"493.0699,-39.2019 499.7218,-43.0328 495.119,-42.0394 497.1681,-44.8769 497.1681,-44.8769 497.1681,-44.8769 495.119,-42.0394 494.6143,-46.7211 493.0699,-39.2019 493.0699,-39.2019\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"522.9654\" y=\"-113.3\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>2</title>\n",
"<ellipse cx=\"326.9654\" cy=\"-22\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"326.9654\" cy=\"-22\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"326.9654\" y=\"-18.3\">2</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge16\">\n",
"<title>6-&gt;2</title>\n",
"<path d=\"M301.5814,-194.1851C305.956,-187.559 310.3441,-179.7583 312.9654,-172 326.6067,-131.6262 328.5547,-81.8812 328.1683,-51.0495\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"328.0352,-44.0135 331.3172,-50.9526 328.1015,-47.5129 328.1677,-51.0123 328.1677,-51.0123 328.1677,-51.0123 328.1015,-47.5129 325.0183,-51.0719 328.0352,-44.0135 328.0352,-44.0135\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"325.9654\" y=\"-113.3\">!a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node6\">\n",
"<title>3</title>\n",
"<ellipse cx=\"104.9654\" cy=\"-117\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"104.9654\" cy=\"-117\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"104.9654\" y=\"-113.3\">3</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge17\">\n",
"<title>6-&gt;3</title>\n",
"<path d=\"M266.2581,-206.5907C242.832,-200.2433 204.8664,-188.4553 174.9654,-172 157.4307,-162.3502 139.7237,-148.3891 126.5056,-136.9479\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"121.1292,-132.2187 128.4657,-134.4768 123.7572,-134.5304 126.3852,-136.842 126.3852,-136.842 126.3852,-136.842 123.7572,-134.5304 124.3047,-139.2072 121.1292,-132.2187 121.1292,-132.2187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"174.9654\" y=\"-160.8\">!a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node7\">\n",
"<title>4</title>\n",
"<ellipse cx=\"218.9654\" cy=\"-117\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"218.9654\" cy=\"-117\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"218.9654\" y=\"-113.3\">4</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge18\">\n",
"<title>6-&gt;4</title>\n",
"<path d=\"M271.9941,-196.356C265.1341,-189.2402 257.2646,-180.519 250.9654,-172 244.2948,-162.9786 237.8804,-152.4586 232.5689,-143.0491\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"229.0783,-136.7442 235.2247,-141.3426 230.7736,-139.8063 232.4688,-142.8683 232.4688,-142.8683 232.4688,-142.8683 230.7736,-139.8063 229.713,-144.3941 229.0783,-136.7442 229.0783,-136.7442\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"250.9654\" y=\"-160.8\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g class=\"node\" id=\"node8\">\n",
"<title>5</title>\n",
"<ellipse cx=\"432.9654\" cy=\"-117\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"432.9654\" cy=\"-117\" fill=\"none\" rx=\"22\" ry=\"22\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"432.9654\" y=\"-113.3\">5</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge19\">\n",
"<title>6-&gt;5</title>\n",
"<path d=\"M306.6248,-199.7749C332.509,-182.8163 379.3694,-152.1146 408.1699,-133.2453\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"414.3777,-129.1782 410.2487,-135.6493 411.4501,-131.0963 408.5224,-133.0144 408.5224,-133.0144 408.5224,-133.0144 411.4501,-131.0963 406.7961,-130.3795 414.3777,-129.1782 414.3777,-129.1782\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.9654\" y=\"-160.8\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;0</title>\n",
"<path d=\"M119.5462,-30.3702C129.8102,-31.5284 138.9654,-28.7383 138.9654,-22 138.9654,-16.9463 133.8156,-14.1134 126.9106,-13.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"119.5462,-13.6298 126.4903,-10.3582 123.0457,-13.5688 126.5452,-13.5077 126.5452,-13.5077 126.5452,-13.5077 123.0457,-13.5688 126.6001,-16.6573 119.5462,-13.6298 119.5462,-13.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"138.9654\" y=\"-18.3\">c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M499.5462,-30.3702C509.8102,-31.5284 518.9654,-28.7383 518.9654,-22 518.9654,-16.9463 513.8156,-14.1134 506.9106,-13.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"499.5462,-13.6298 506.4903,-10.3582 503.0457,-13.5688 506.5452,-13.5077 506.5452,-13.5077 506.5452,-13.5077 503.0457,-13.5688 506.6001,-16.6573 499.5462,-13.6298 499.5462,-13.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"518.9654\" y=\"-18.3\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M347.5462,-30.3702C357.8102,-31.5284 366.9654,-28.7383 366.9654,-22 366.9654,-16.9463 361.8156,-14.1134 354.9106,-13.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"347.5462,-13.6298 354.4903,-10.3582 351.0457,-13.5688 354.5452,-13.5077 354.5452,-13.5077 354.5452,-13.5077 351.0457,-13.5688 354.6001,-16.6573 347.5462,-13.6298 347.5462,-13.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.9654\" y=\"-18.3\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>3-&gt;0</title>\n",
"<path d=\"M101.794,-95.0347C101.0663,-89.1861 100.384,-82.8638 99.9654,-77 99.3711,-68.6745 99.066,-59.6231 98.922,-51.312\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"98.8336,-44.2356 102.0708,-51.1957 98.8773,-47.7353 98.9211,-51.235 98.9211,-51.235 98.9211,-51.235 98.8773,-47.7353 95.7713,-51.2744 98.8336,-44.2356 98.8336,-44.2356\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"99.9654\" y=\"-65.8\">!b &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>3-&gt;2</title>\n",
"<path d=\"M118.9069,-99.8851C130.8179,-85.6735 147.3525,-67.0055 155.9654,-62 201.0018,-35.8266 262.0873,-26.7726 297.7417,-23.6452\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"304.9491,-23.0638 298.2251,-26.7665 301.4604,-23.3453 297.9717,-23.6267 297.9717,-23.6267 297.9717,-23.6267 301.4604,-23.3453 297.7184,-20.4869 304.9491,-23.0638 304.9491,-23.0638\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"155.9654\" y=\"-65.8\">b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M125.5462,-125.3702C135.8102,-126.5284 144.9654,-123.7383 144.9654,-117 144.9654,-111.9463 139.8156,-109.1134 132.9106,-108.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"125.5462,-108.6298 132.4903,-105.3582 129.0457,-108.5688 132.5452,-108.5077 132.5452,-108.5077 132.5452,-108.5077 129.0457,-108.5688 132.6001,-111.6573 125.5462,-108.6298 125.5462,-108.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"144.9654\" y=\"-113.3\">b &amp; c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>4-&gt;0</title>\n",
"<path d=\"M214.617,-95.4288C211.3934,-84.2357 205.951,-71.0489 196.9654,-62 178.2356,-43.1383 149.384,-32.8211 127.8287,-27.4143\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"120.8234,-25.7637 128.3593,-24.3032 124.2302,-26.5665 127.6369,-27.3692 127.6369,-27.3692 127.6369,-27.3692 124.2302,-26.5665 126.9144,-30.4352 120.8234,-25.7637 120.8234,-25.7637\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"206.9654\" y=\"-65.8\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>4-&gt;1</title>\n",
"<path d=\"M239.3866,-108.397C266.1876,-97.2136 314.7797,-77.3054 356.9654,-62 388.8139,-50.4451 425.8509,-38.5104 450.6879,-30.7203\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"457.6697,-28.5389 451.9276,-33.6332 454.3289,-29.5827 450.9882,-30.6266 450.9882,-30.6266 450.9882,-30.6266 454.3289,-29.5827 450.0487,-27.6199 457.6697,-28.5389 457.6697,-28.5389\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"356.9654\" y=\"-65.8\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>4-&gt;4</title>\n",
"<path d=\"M239.5462,-125.3702C249.8102,-126.5284 258.9654,-123.7383 258.9654,-117 258.9654,-111.9463 253.8156,-109.1134 246.9106,-108.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"239.5462,-108.6298 246.4903,-105.3582 243.0457,-108.5688 246.5452,-108.5077 246.5452,-108.5077 246.5452,-108.5077 243.0457,-108.5688 246.6001,-111.6573 239.5462,-108.6298 239.5462,-108.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"258.9654\" y=\"-113.3\">a &amp; c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>5-&gt;1</title>\n",
"<path d=\"M445.0767,-98.2225C449.095,-91.6382 453.4387,-84.11 456.9654,-77 461.299,-68.2634 465.4407,-58.4526 468.9381,-49.5622\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"471.4795,-42.976 471.8983,-50.6407 470.2195,-46.2413 468.9595,-49.5067 468.9595,-49.5067 468.9595,-49.5067 470.2195,-46.2413 466.0207,-48.3727 471.4795,-42.976 471.4795,-42.976\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"462.9654\" y=\"-65.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>5-&gt;2</title>\n",
"<path d=\"M423.0909,-97.2725C416.7424,-85.9775 407.685,-72.0907 396.9654,-62 384.4407,-50.21 367.8099,-40.5218 353.9015,-33.6344\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"347.3223,-30.4813 354.9962,-30.666 350.4786,-31.994 353.6349,-33.5066 353.6349,-33.5066 353.6349,-33.5066 350.4786,-31.994 352.2735,-36.3472 347.3223,-30.4813 347.3223,-30.4813\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"409.9654\" y=\"-65.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>5-&gt;5</title>\n",
"<path d=\"M453.5462,-125.3702C463.8102,-126.5284 472.9654,-123.7383 472.9654,-117 472.9654,-111.9463 467.8156,-109.1134 460.9106,-108.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"453.5462,-108.6298 460.4903,-105.3582 457.0457,-108.5688 460.5452,-108.5077 460.5452,-108.5077 460.5452,-108.5077 457.0457,-108.5688 460.6001,-111.6573 453.5462,-108.6298 453.5462,-108.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"472.9654\" y=\"-113.3\">a &amp; b</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"302pt\" height=\"347pt\"\n",
" viewBox=\"0.00 0.00 301.50 347.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 343)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-343 297.5,-343 297.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"125.75\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"147.75\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"163.75\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"123.75\" y=\"-310.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-131C4.178,-131 17.9448,-131 30.9241,-131\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-131 30.9808,-134.1501 34.4807,-131 30.9807,-131.0001 30.9807,-131.0001 30.9807,-131.0001 34.4807,-131 30.9807,-127.8501 37.9807,-131 37.9807,-131\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"157.5\" cy=\"-204\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"157.5\" y=\"-200.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M67.8831,-144.5544C74.5545,-151.7153 83.2735,-160.3688 92,-167 105.2828,-177.0934 121.6175,-186.326 134.6516,-193.0439\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"141.133,-196.319 133.4647,-195.9735 138.0092,-194.7405 134.8853,-193.162 134.8853,-193.162 134.8853,-193.162 138.0092,-194.7405 136.306,-190.3505 141.133,-196.319 141.133,-196.319\"/>\n",
"<text text-anchor=\"middle\" x=\"105.5\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"157.5\" cy=\"-66\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"157.5\" y=\"-62.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M71.4157,-121.1279C88.7301,-110.0398 116.938,-91.9757 136.3156,-79.5663\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.2718,-75.752 138.0758,-82.1798 139.3244,-77.6396 136.377,-79.5271 136.377,-79.5271 136.377,-79.5271 139.3244,-77.6396 134.6782,-76.8744 142.2718,-75.752 142.2718,-75.752\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a | b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"273\" cy=\"-123\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"273\" y=\"-119.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M73.8762,-133.5352C106.5278,-137.693 177.8966,-144.5912 237,-135 241.0827,-134.3375 245.328,-133.2782 249.4107,-132.0566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"256.0705,-129.8889 250.3892,-135.0509 252.7424,-130.9722 249.4142,-132.0555 249.4142,-132.0555 249.4142,-132.0555 252.7424,-130.9722 248.4392,-129.0602 256.0705,-129.8889 256.0705,-129.8889\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"273\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"273\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M62.9803,-114.288C74.3548,-89.4767 99.4559,-43.7111 137,-24 171.9602,-5.6454 219.2129,-8.6925 247.8236,-13.0243\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.025,-14.2021 247.6084,-16.1809 251.5709,-13.6371 248.1168,-13.0722 248.1168,-13.0722 248.1168,-13.0722 251.5709,-13.6371 248.6252,-9.9635 255.025,-14.2021 255.025,-14.2021\"/>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M152.8583,-221.4099C151.9918,-231.0879 153.5391,-240 157.5,-240 160.4088,-240 162.0159,-235.1936 162.3213,-228.8073\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"162.1417,-221.4099 165.4607,-228.3314 162.2267,-224.9089 162.3117,-228.4078 162.3117,-228.4078 162.3117,-228.4078 162.2267,-224.9089 159.1626,-228.4843 162.1417,-221.4099 162.1417,-221.4099\"/>\n",
"<text text-anchor=\"start\" x=\"151\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M150.0375,-220.5858C145.3641,-238.1697 147.8516,-258 157.5,-258 165.867,-258 168.8489,-243.0873 166.4456,-227.659\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"164.9625,-220.5858 169.482,-226.7903 165.6808,-224.0113 166.3991,-227.4368 166.3991,-227.4368 166.3991,-227.4368 165.6808,-224.0113 163.3161,-228.0833 164.9625,-220.5858 164.9625,-220.5858\"/>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"149.5\" y=\"-261.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M148.5212,-81.916C146.179,-92.1504 149.1719,-102 157.5,-102 163.8762,-102 167.125,-96.2263 167.2465,-88.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"166.4788,-81.916 170.3721,-88.5315 166.8598,-85.3952 167.2408,-88.8744 167.2408,-88.8744 167.2408,-88.8744 166.8598,-85.3952 164.1095,-89.2174 166.4788,-81.916 166.4788,-81.916\"/>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M169.5081,-79.6266C176.5738,-86.8977 186.0558,-95.463 196,-101 212.0757,-109.9511 232.1088,-115.527 247.7114,-118.8252\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"254.9781,-120.2661 247.4991,-121.9943 251.545,-119.5853 248.1118,-118.9045 248.1118,-118.9045 248.1118,-118.9045 251.545,-119.5853 248.7245,-115.8146 254.9781,-120.2661 254.9781,-120.2661\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M173.8794,-58.0519C180.6773,-54.8292 188.6741,-51.1356 196,-48 213.7285,-40.4118 234.0677,-32.5216 249.3886,-26.7384\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"256.0474,-24.2382 250.6014,-29.6478 252.7708,-25.4685 249.4941,-26.6988 249.4941,-26.6988 249.4941,-26.6988 252.7708,-25.4685 248.3868,-23.7499 256.0474,-24.2382 256.0474,-24.2382\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M263.1685,-107.4615C256.7763,-98.6424 247.6594,-88.166 237,-82 220.5135,-72.4634 199.2509,-68.5379 182.8638,-66.9562\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.7123,-66.3828 182.9418,-63.8025 179.2011,-66.6626 182.6899,-66.9424 182.6899,-66.9424 182.6899,-66.9424 179.2011,-66.6626 182.4381,-70.0823 175.7123,-66.3828 175.7123,-66.3828\"/>\n",
"<text text-anchor=\"start\" x=\"203\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M263.4254,-138.5414C260.7303,-148.9087 263.9219,-159 273,-159 279.9504,-159 283.4503,-153.0847 283.4995,-145.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"282.5746,-138.5414 286.6004,-145.0771 283.0256,-142.0123 283.4767,-145.4831 283.4767,-145.4831 283.4767,-145.4831 283.0256,-142.0123 280.353,-145.889 282.5746,-138.5414 282.5746,-138.5414\"/>\n",
"<text text-anchor=\"start\" x=\"252.5\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M263.4254,-33.5414C260.7303,-43.9087 263.9219,-54 273,-54 279.9504,-54 283.4503,-48.0847 283.4995,-40.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"282.5746,-33.5414 286.6004,-40.0771 283.0256,-37.0123 283.4767,-40.4831 283.4767,-40.4831 283.4767,-40.4831 283.0256,-37.0123 280.353,-40.889 282.5746,-33.5414 282.5746,-33.5414\"/>\n",
"<text text-anchor=\"start\" x=\"252.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"265\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0d1c03ec90> >"
]
},
"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.40.1 (20161225.0304)\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 1) rotate(0) translate(4 259)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-259 161,-259 161,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"57.5\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"79.5\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"55.5\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-69C4.178,-69 17.9448,-69 30.9241,-69\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-69 30.9808,-72.1501 34.4807,-69 30.9807,-69.0001 30.9807,-69.0001 30.9807,-69.0001 34.4807,-69 30.9807,-65.8501 37.9807,-69 37.9807,-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=\"#000000\" d=\"M49.6208,-86.0373C48.3189,-95.8579 50.4453,-105 56,-105 60.166,-105 62.4036,-99.8576 62.7128,-93.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-86.0373 65.8541,-92.8818 62.5434,-89.5335 62.7076,-93.0296 62.7076,-93.0296 62.7076,-93.0296 62.5434,-89.5335 59.561,-93.1774 62.3792,-86.0373 62.3792,-86.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M71.6117,-78.5927C84.4799,-86.4997 102.8775,-97.8042 117.1993,-106.6044\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"123.4583,-110.4503 115.8451,-109.4694 120.4763,-108.6179 117.4942,-106.7856 117.4942,-106.7856 117.4942,-106.7856 120.4763,-108.6179 119.1434,-104.1017 123.4583,-110.4503 123.4583,-110.4503\"/>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M71.6117,-59.4073C84.4799,-51.5003 102.8775,-40.1958 117.1993,-31.3956\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"123.4583,-27.5497 119.1434,-33.8983 120.4763,-29.3821 117.4942,-31.2144 117.4942,-31.2144 117.4942,-31.2144 120.4763,-29.3821 115.8451,-28.5306 123.4583,-27.5497 123.4583,-27.5497\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M135.4047,-137.7817C134.7938,-147.3149 135.9922,-156 139,-156 141.2089,-156 142.4419,-151.3161 142.6991,-145.0521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.5953,-137.7817 145.845,-144.736 142.6453,-141.2814 142.6954,-144.781 142.6954,-144.781 142.6954,-144.781 142.6453,-141.2814 139.5457,-144.8261 142.5953,-137.7817 142.5953,-137.7817\"/>\n",
"<text text-anchor=\"start\" x=\"132.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M133.1479,-137.1418C129.7056,-154.585 131.6563,-174 139,-174 145.3684,-174 147.6812,-159.3996 145.9382,-144.146\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"144.8521,-137.1418 149.0376,-143.5763 145.3884,-140.6004 145.9248,-144.0591 145.9248,-144.0591 145.9248,-144.0591 145.3884,-140.6004 142.812,-144.5418 144.8521,-137.1418 144.8521,-137.1418\"/>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M131.9688,-34.6641C130.4063,-44.625 132.75,-54 139,-54 143.6875,-54 146.1777,-48.7266 146.4707,-41.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.0313,-34.6641 149.6006,-41.4598 146.2438,-38.1576 146.4564,-41.6511 146.4564,-41.6511 146.4564,-41.6511 146.2438,-38.1576 143.3122,-41.8425 146.0313,-34.6641 146.0313,-34.6641\"/>\n",
"<text text-anchor=\"start\" x=\"133.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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 0x7f0d1c03edb0> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"258pt\" height=\"220pt\"\n",
" viewBox=\"0.00 0.00 258.00 219.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 215.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-215.8 254,-215.8 254,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"102\" y=\"-181.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-69C4.178,-69 17.9448,-69 30.9241,-69\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-69 30.9808,-72.1501 34.4807,-69 30.9807,-69.0001 30.9807,-69.0001 30.9807,-69.0001 34.4807,-69 30.9807,-65.8501 37.9807,-69 37.9807,-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=\"#000000\" d=\"M49.6208,-86.0373C48.3189,-95.8579 50.4453,-105 56,-105 60.166,-105 62.4036,-99.8576 62.7128,-93.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-86.0373 65.8541,-92.8818 62.5434,-89.5335 62.7076,-93.0296 62.7076,-93.0296 62.7076,-93.0296 62.5434,-89.5335 59.561,-93.1774 62.3792,-86.0373 62.3792,-86.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"143\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M71.9571,-77.8039C84.5489,-84.7511 102.3714,-94.5842 117.0149,-102.6634\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"123.489,-106.2353 115.8383,-105.6118 120.4245,-104.5445 117.36,-102.8537 117.36,-102.8537 117.36,-102.8537 120.4245,-104.5445 118.8817,-100.0957 123.489,-106.2353 123.489,-106.2353\"/>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"143\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M71.9571,-60.3795C84.5489,-53.577 102.3714,-43.9488 117.0149,-36.0379\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"123.489,-32.5404 118.8275,-38.639 120.4097,-34.204 117.3303,-35.8676 117.3303,-35.8676 117.3303,-35.8676 120.4097,-34.204 115.8331,-33.0961 123.489,-32.5404 123.489,-32.5404\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M134.9937,-137.5808C133.8859,-147.8447 136.5547,-157 143,-157 147.834,-157 150.5437,-151.8502 151.129,-144.9451\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"151.0063,-137.5808 154.2726,-144.5273 151.0647,-141.0803 151.123,-144.5798 151.123,-144.5798 151.123,-144.5798 151.0647,-141.0803 147.9735,-144.6324 151.0063,-137.5808 151.0063,-137.5808\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"232\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"232\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M165,-117C177.5648,-117 193.3774,-117 206.4852,-117\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"213.8453,-117 206.8454,-120.1501 210.3453,-117 206.8453,-117.0001 206.8453,-117.0001 206.8453,-117.0001 210.3453,-117 206.8453,-113.8501 213.8453,-117 213.8453,-117\"/>\n",
"<text text-anchor=\"start\" x=\"183\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M134.9937,-42.5808C133.8859,-52.8447 136.5547,-62 143,-62 147.834,-62 150.5437,-56.8502 151.129,-49.9451\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"151.0063,-42.5808 154.2726,-49.5273 151.0647,-46.0803 151.123,-49.5798 151.123,-49.5798 151.123,-49.5798 151.0647,-46.0803 147.9735,-49.6324 151.0063,-42.5808 151.0063,-42.5808\"/>\n",
"<text text-anchor=\"start\" x=\"137.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M216.8943,-106.93C210.6932,-103.3682 203.2713,-99.8011 196,-98 186.6246,-95.6777 176.5905,-97.9789 167.8031,-101.6804\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.3578,-104.7304 166.3377,-98.8889 164.5214,-103.2333 167.6851,-101.7361 167.6851,-101.7361 167.6851,-101.7361 164.5214,-103.2333 169.0325,-104.5834 161.3578,-104.7304 161.3578,-104.7304\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M224.6172,-133.6641C222.9766,-143.625 225.4375,-153 232,-153 236.9219,-153 239.5366,-147.7266 239.8442,-140.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"239.3828,-133.6641 242.9727,-140.449 239.606,-137.1569 239.8291,-140.6498 239.8291,-140.6498 239.8291,-140.6498 239.606,-137.1569 236.6855,-140.8507 239.3828,-133.6641 239.3828,-133.6641\"/>\n",
"<text text-anchor=\"start\" x=\"225.5\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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 0x7f0d1c03ecf0> >"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = spot.translate('GFa -> GFb', 'sbacc')\n",
"a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some example of running the self-loopization algorithm on an automaton:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.is_empty()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Reading from file (see `automaton-io.ipynb` for more examples)."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Writing example1.aut\n"
]
}
],
"source": [
"%%file example1.aut\n",
"HOA: v1\n",
"States: 3\n",
"Start: 0\n",
"AP: 2 \"a\" \"b\"\n",
"acc-name: Buchi\n",
"Acceptance: 4 Inf(0)&Fin(1)&Fin(3) | Inf(2)&Inf(3) | Inf(1)\n",
"--BODY--\n",
"State: 0 {3}\n",
"[t] 0\n",
"[0] 1 {1}\n",
"[!0] 2 {0}\n",
"State: 1 {3}\n",
"[1] 0\n",
"[0&1] 1 {0}\n",
"[!0&1] 2 {2}\n",
"State: 2\n",
"[!1] 0\n",
"[0&!1] 1 {0}\n",
"[!0&!1] 2 {0}\n",
"--END--"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"361pt\" height=\"178pt\"\n",
" viewBox=\"0.00 0.00 361.00 178.45\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 174.4517)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-174.4517 357,-174.4517 357,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Inf(</text>\n",
"<text text-anchor=\"start\" x=\"33\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"49\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"157\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"217\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"233\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"269\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"285\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"325\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"341\" y=\"-156.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"87.75\" cy=\"-24.4517\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"87.75\" y=\"-20.7517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M32.8733,-24.4517C35.928,-24.4517 49.6948,-24.4517 62.6741,-24.4517\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"69.7307,-24.4517 62.7308,-27.6018 66.2307,-24.4517 62.7307,-24.4518 62.7307,-24.4518 62.7307,-24.4518 66.2307,-24.4517 62.7307,-21.3018 69.7307,-24.4517 69.7307,-24.4517\"/>\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=\"#000000\" d=\"M81.3708,-41.489C80.0689,-51.3096 82.1953,-60.4517 87.75,-60.4517 91.916,-60.4517 94.1536,-55.3093 94.4628,-48.595\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"94.1292,-41.489 97.6041,-48.3335 94.2934,-44.9852 94.4576,-48.4813 94.4576,-48.4813 94.4576,-48.4813 94.2934,-44.9852 91.311,-48.6291 94.1292,-41.489 94.1292,-41.489\"/>\n",
"<text text-anchor=\"start\" x=\"83.25\" y=\"-79.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"79.75\" y=\"-64.2517\" 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=\"#000000\" cx=\"191.75\" cy=\"-83.4517\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"191.75\" y=\"-79.7517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M95.8043,-40.9041C101.9487,-51.6466 111.4489,-65.0138 123.75,-72.4517 136.5293,-80.1788 153.0214,-82.9848 166.5633,-83.8321\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"173.7408,-84.1201 166.6201,-86.9868 170.2436,-83.9797 166.7464,-83.8393 166.7464,-83.8393 166.7464,-83.8393 170.2436,-83.9797 166.8728,-80.6919 173.7408,-84.1201 173.7408,-84.1201\"/>\n",
"<text text-anchor=\"start\" x=\"136.25\" y=\"-100.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"123.75\" y=\"-86.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"139.75\" y=\"-86.2517\" 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=\"#000000\" cx=\"300.75\" cy=\"-24.4517\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"300.75\" y=\"-20.7517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M106.0559,-23.2377C111.7249,-22.9147 117.9934,-22.6115 123.75,-22.4517 186.3925,-20.713 202.1075,-20.713 264.75,-22.4517 268.168,-22.5466 271.7665,-22.692 275.3127,-22.8621\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"282.4441,-23.2377 275.2881,-26.0151 278.9489,-23.0536 275.4538,-22.8695 275.4538,-22.8695 275.4538,-22.8695 278.9489,-23.0536 275.6194,-19.7238 282.4441,-23.2377 282.4441,-23.2377\"/>\n",
"<text text-anchor=\"start\" x=\"186.25\" y=\"-38.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"175.75\" y=\"-24.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"191.75\" y=\"-24.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M182.8041,-67.3035C176.5102,-57.4552 167.1826,-45.454 155.75,-38.4517 143.0015,-30.6434 126.6441,-27.115 113.1673,-25.5522\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"106.0178,-24.8714 113.2849,-22.3992 109.502,-25.2032 112.9863,-25.535 112.9863,-25.535 112.9863,-25.535 109.502,-25.2032 112.6877,-28.6708 106.0178,-24.8714 106.0178,-24.8714\"/>\n",
"<text text-anchor=\"start\" x=\"135.25\" y=\"-57.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"131.75\" y=\"-42.2517\" 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=\"#000000\" d=\"M182.7712,-99.3677C180.429,-109.6021 183.4219,-119.4517 191.75,-119.4517 198.1262,-119.4517 201.375,-113.678 201.4965,-106.3785\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"200.7288,-99.3677 204.6221,-105.9832 201.1098,-102.8469 201.4908,-106.3261 201.4908,-106.3261 201.4908,-106.3261 201.1098,-102.8469 198.3595,-106.6691 200.7288,-99.3677 200.7288,-99.3677\"/>\n",
"<text text-anchor=\"start\" x=\"174.75\" y=\"-137.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"175.75\" y=\"-123.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"191.75\" y=\"-123.2517\" 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=\"#000000\" d=\"M209.8238,-84.4266C225.4255,-84.4463 248.0249,-82.4415 264.75,-72.4517 274.8736,-66.4049 283.0834,-56.32 289.0923,-46.9506\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"292.7212,-40.9465 291.7961,-48.5667 290.9108,-43.9419 289.1003,-46.9373 289.1003,-46.9373 289.1003,-46.9373 290.9108,-43.9419 286.4044,-45.3079 292.7212,-40.9465 292.7212,-40.9465\"/>\n",
"<text text-anchor=\"start\" x=\"227.75\" y=\"-100.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"230.25\" y=\"-86.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"246.25\" y=\"-86.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M283.578,-17.9C259.2471,-9.4045 213.295,3.745 173.75,-1.4517 152.4311,-4.2532 128.8843,-10.8027 111.8276,-16.199\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"104.9403,-18.4268 110.6311,-13.2752 108.2704,-17.3496 111.6006,-16.2724 111.6006,-16.2724 111.6006,-16.2724 108.2704,-17.3496 112.5701,-19.2695 104.9403,-18.4268 104.9403,-18.4268\"/>\n",
"<text text-anchor=\"start\" x=\"185.25\" y=\"-5.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M282.7113,-24.4898C267.1321,-25.2845 244.5459,-28.3204 227.75,-38.4517 218.602,-43.9697 210.8221,-52.7138 204.8606,-61.0325\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"200.6637,-67.2505 201.969,-59.6862 202.6218,-64.3495 204.5799,-61.4485 204.5799,-61.4485 204.5799,-61.4485 202.6218,-64.3495 207.1908,-63.2107 200.6637,-67.2505 200.6637,-67.2505\"/>\n",
"<text text-anchor=\"start\" x=\"227.75\" y=\"-57.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"238.25\" y=\"-42.2517\" 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=\"#000000\" d=\"M291.5174,-39.9931C288.9185,-50.3604 291.9961,-60.4517 300.75,-60.4517 307.4522,-60.4517 310.827,-54.5364 310.8745,-47.1108\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"309.9826,-39.9931 313.9786,-46.5472 310.4178,-43.466 310.853,-46.9388 310.853,-46.9388 310.853,-46.9388 310.4178,-43.466 307.7275,-47.3305 309.9826,-39.9931 309.9826,-39.9931\"/>\n",
"<text text-anchor=\"start\" x=\"280.25\" y=\"-79.2517\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"292.75\" y=\"-64.2517\" 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 0x7f0d077c1540> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"411pt\" height=\"189pt\"\n",
" viewBox=\"0.00 0.00 410.50 188.51\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184.5147)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184.5147 406.5,-184.5147 406.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"97.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"119.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"135.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"172.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"188.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"228.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"244.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"280.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"296.75\" y=\"-166.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"166.25\" y=\"-152.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Fin&#45;less 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-25.5147\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.8147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-25.5147C4.178,-25.5147 17.9448,-25.5147 30.9241,-25.5147\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-25.5147 30.9808,-28.6648 34.4807,-25.5148 30.9807,-25.5148 30.9807,-25.5148 30.9807,-25.5148 34.4807,-25.5148 30.9807,-22.3648 37.9807,-25.5147 37.9807,-25.5147\"/>\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=\"#000000\" d=\"M49.6208,-42.552C48.3189,-52.3726 50.4453,-61.5147 56,-61.5147 60.166,-61.5147 62.4036,-56.3723 62.7128,-49.658\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-42.552 65.8541,-49.3966 62.5434,-46.0482 62.7076,-49.5443 62.7076,-49.5443 62.7076,-49.5443 62.5434,-46.0482 59.561,-49.6921 62.3792,-42.552 62.3792,-42.552\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-80.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-65.3147\" 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=\"#000000\" cx=\"160\" cy=\"-78.5147\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"160\" y=\"-74.8147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M63.5945,-41.8403C69.6373,-52.8191 79.2043,-66.5187 92,-73.5147 104.97,-80.6061 121.4667,-81.9689 134.9634,-81.5046\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.1115,-81.0834 135.3089,-84.6398 138.6175,-81.2893 135.1236,-81.4952 135.1236,-81.4952 135.1236,-81.4952 138.6175,-81.2893 134.9382,-78.3507 142.1115,-81.0834 142.1115,-81.0834\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-98.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-84.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-84.3147\" 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=\"#000000\" cx=\"269\" cy=\"-25.5147\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"269\" y=\"-21.8147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.1113,-24.4274C91.5094,-23.4409 118.54,-22.06 142,-21.5147 182.4433,-20.5747 192.5884,-21.6576 233,-23.5147 236.4157,-23.6717 240.0129,-23.8527 243.5585,-24.0404\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"250.6893,-24.4295 243.5281,-27.1934 247.1945,-24.2388 243.6997,-24.048 243.6997,-24.048 243.6997,-24.048 247.1945,-24.2388 243.8714,-20.9027 250.6893,-24.4295 250.6893,-24.4295\"/>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-40.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-25.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M149.702,-63.3656C143.2693,-55.0658 134.2693,-45.3158 124,-39.5147 110.9836,-32.1617 94.6179,-28.6474 81.2037,-26.9782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.0951,-26.2279 81.3871,-23.8301 77.5758,-26.5953 81.0564,-26.9627 81.0564,-26.9627 81.0564,-26.9627 77.5758,-26.5953 80.7258,-30.0953 74.0951,-26.2279 74.0951,-26.2279\"/>\n",
"<text text-anchor=\"start\" x=\"103.5\" y=\"-58.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-43.3147\" 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=\"#000000\" d=\"M151.0212,-94.4307C148.679,-104.6651 151.6719,-114.5147 160,-114.5147 166.3762,-114.5147 169.625,-108.7411 169.7465,-101.4415\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"168.9788,-94.4307 172.8721,-101.0462 169.3598,-97.91 169.7408,-101.3892 169.7408,-101.3892 169.7408,-101.3892 169.3598,-97.91 166.6095,-101.7321 168.9788,-94.4307 168.9788,-94.4307\"/>\n",
"<text text-anchor=\"start\" x=\"143\" y=\"-133.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-118.3147\" 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=\"#000000\" d=\"M178.0023,-76.0231C193.3545,-73.3434 215.6314,-68.109 233,-58.5147 239.6794,-54.8251 246.1118,-49.651 251.6453,-44.4923\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"256.8551,-39.3943 254.0551,-46.5416 254.3535,-41.8422 251.8519,-44.2901 251.8519,-44.2901 251.8519,-44.2901 254.3535,-41.8422 249.6488,-42.0387 256.8551,-39.3943 256.8551,-39.3943\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-89.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"198.5\" y=\"-75.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-75.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M252.2434,-18.8283C228.0299,-9.9708 181.7943,3.9339 142,-1.5147 120.6335,-4.4402 97.0908,-11.2742 80.0478,-16.9045\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.1669,-19.2289 78.7906,-14.0043 76.4828,-18.1087 79.7987,-16.9886 79.7987,-16.9886 79.7987,-16.9886 76.4828,-18.1087 80.8069,-19.9729 73.1669,-19.2289 73.1669,-19.2289\"/>\n",
"<text text-anchor=\"start\" x=\"153.5\" y=\"-5.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M250.8271,-25.8695C235.3683,-26.8765 213.0306,-30.0459 196,-39.5147 187.9466,-43.9923 180.6917,-50.9227 174.8404,-57.7065\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"170.2687,-63.3132 172.251,-55.8975 172.4805,-60.6007 174.6923,-57.8881 174.6923,-57.8881 174.6923,-57.8881 172.4805,-60.6007 177.1336,-59.8787 170.2687,-63.3132 170.2687,-63.3132\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-43.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M259.7674,-41.0562C257.1685,-51.4234 260.2461,-61.5147 269,-61.5147 275.7022,-61.5147 279.077,-55.5994 279.1245,-48.1738\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"278.2326,-41.0562 282.2286,-47.6102 278.6678,-44.529 279.103,-48.0019 279.103,-48.0019 279.103,-48.0019 278.6678,-44.529 275.9775,-48.3935 278.2326,-41.0562 278.2326,-41.0562\"/>\n",
"<text text-anchor=\"start\" x=\"248.5\" y=\"-65.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"382\" cy=\"-25.5147\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"382\" y=\"-21.8147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M287.1554,-25.5147C306.0184,-25.5147 335.6779,-25.5147 356.8045,-25.5147\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"363.8897,-25.5147 356.8897,-28.6648 360.3897,-25.5148 356.8897,-25.5148 356.8897,-25.5148 356.8897,-25.5148 360.3897,-25.5148 356.8896,-22.3648 363.8897,-25.5147 363.8897,-25.5147\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-29.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M372.4254,-41.0562C369.7303,-51.4234 372.9219,-61.5147 382,-61.5147 388.9504,-61.5147 392.4503,-55.5994 392.4995,-48.1738\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"391.5746,-41.0562 395.6004,-47.5919 392.0256,-44.527 392.4767,-47.9978 392.4767,-47.9978 392.4767,-47.9978 392.0256,-44.527 389.353,-48.4038 391.5746,-41.0562 391.5746,-41.0562\"/>\n",
"<text text-anchor=\"start\" x=\"361.5\" y=\"-80.3147\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"374\" y=\"-65.3147\" 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 0x7f0d1c02c630> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"491pt\" height=\"215pt\"\n",
" viewBox=\"0.00 0.00 491.00 215.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 211)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-211 487,-211 487,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"220.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"242.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"258.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"218.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-63C4.178,-63 17.9448,-63 30.9241,-63\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-63 30.9808,-66.1501 34.4807,-63 30.9807,-63.0001 30.9807,-63.0001 30.9807,-63.0001 34.4807,-63 30.9807,-59.8501 37.9807,-63 37.9807,-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=\"#000000\" d=\"M49.6208,-80.0373C48.3189,-89.8579 50.4453,-99 56,-99 60.166,-99 62.4036,-93.8576 62.7128,-87.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-80.0373 65.8541,-86.8818 62.5434,-83.5335 62.7076,-87.0296 62.7076,-87.0296 62.7076,-87.0296 62.5434,-83.5335 59.561,-87.1774 62.3792,-80.0373 62.3792,-80.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"144\" cy=\"-118\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-114.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M68.438,-76.3884C74.9952,-82.9056 83.4403,-90.5003 92,-96 100.6747,-101.5736 110.9999,-106.2812 120.1547,-109.8935\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"126.8805,-112.4385 119.2187,-112.9073 123.607,-111.1998 120.3335,-109.9611 120.3335,-109.9611 120.3335,-109.9611 123.607,-111.1998 121.4484,-107.015 126.8805,-112.4385 126.8805,-112.4385\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-122.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"253\" cy=\"-63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"253\" y=\"-59.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.1802,-63C109.5105,-63 187.4987,-63 227.7967,-63\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"234.8638,-63 227.8638,-66.1501 231.3638,-63 227.8638,-63.0001 227.8638,-63.0001 227.8638,-63.0001 231.3638,-63 227.8637,-59.8501 234.8638,-63 234.8638,-63\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M134.0203,-102.7085C127.5755,-93.977 118.4554,-83.5059 108,-77 99.8574,-71.9333 89.8912,-68.6792 80.8703,-66.5986\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.8911,-65.1694 81.3808,-63.4878 77.32,-65.8716 80.7488,-66.5738 80.7488,-66.5738 80.7488,-66.5738 77.32,-65.8716 80.1168,-69.6598 73.8911,-65.1694 73.8911,-65.1694\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-80.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M136.3321,-134.2903C134.4831,-144.3892 137.0391,-154 144,-154 149.2207,-154 151.9636,-148.5939 152.2287,-141.6304\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"151.6679,-134.2903 155.3421,-141.0299 151.9346,-137.7801 152.2013,-141.2699 152.2013,-141.2699 152.2013,-141.2699 151.9346,-137.7801 149.0604,-141.5099 151.6679,-134.2903 151.6679,-134.2903\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M154.8422,-103.4105C161.3284,-95.6662 170.2024,-86.6153 180,-81 194.5624,-72.6539 212.9132,-68.1508 227.5727,-65.7358\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"234.8625,-64.6539 228.4008,-68.7975 231.4005,-65.1678 227.9384,-65.6816 227.9384,-65.6816 227.9384,-65.6816 231.4005,-65.1678 227.4759,-62.5657 234.8625,-64.6539 234.8625,-64.6539\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"465\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"465\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M158.6205,-128.896C164.8704,-132.9044 172.4563,-136.9606 180,-139 195.8745,-143.2917 200.5672,-139.6192 217,-139 298.7511,-135.9194 395.3258,-126.9926 440.0106,-122.5597\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"446.9794,-121.8629 440.3276,-125.6938 443.4968,-122.2112 440.0141,-122.5594 440.0141,-122.5594 440.0141,-122.5594 443.4968,-122.2112 439.7007,-119.4251 446.9794,-121.8629 446.9794,-121.8629\"/>\n",
"<text text-anchor=\"start\" x=\"303\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M235.7696,-57.3229C211.3693,-49.9905 165.3354,-38.7565 126,-44 110.413,-46.0778 93.3765,-50.6494 80.0135,-54.7875\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73,-57.0233 78.7126,-51.896 76.3347,-55.9602 79.6693,-54.8972 79.6693,-54.8972 79.6693,-54.8972 76.3347,-55.9602 80.6261,-57.8984 73,-57.0233 73,-57.0233\"/>\n",
"<text text-anchor=\"start\" x=\"137.5\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M245.0951,-79.7087C239.0174,-90.5657 229.5355,-103.9643 217,-111 202.6291,-119.0658 184.1283,-120.7647 169.3477,-120.4732\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.9991,-120.1625 169.126,-117.3111 165.496,-120.3104 168.9929,-120.4583 168.9929,-120.4583 168.9929,-120.4583 165.496,-120.3104 168.8598,-123.6055 161.9991,-120.1625 161.9991,-120.1625\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M243.7674,-78.5414C241.1685,-88.9087 244.2461,-99 253,-99 259.7022,-99 263.077,-93.0847 263.1245,-85.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"262.2326,-78.5414 266.2286,-85.0955 262.6678,-82.0143 263.103,-85.4871 263.103,-85.4871 263.103,-85.4871 262.6678,-82.0143 259.9775,-85.8788 262.2326,-78.5414 262.2326,-78.5414\"/>\n",
"<text text-anchor=\"start\" x=\"232.5\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M270.0413,-68.8299C288.9615,-75.1973 320.468,-85.4887 348,-93 379.5308,-101.6022 416.3238,-109.7948 440.1074,-114.8531\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"447.0506,-116.3192 439.5508,-117.9549 443.6261,-115.5961 440.2016,-114.8729 440.2016,-114.8729 440.2016,-114.8729 443.6261,-115.5961 440.8525,-111.7908 447.0506,-116.3192 447.0506,-116.3192\"/>\n",
"<text text-anchor=\"start\" x=\"361.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"366\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"366\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M270.1623,-56.1655C289.4385,-48.4891 320.8422,-35.9832 342.4154,-27.3921\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"349.0465,-24.7514 343.7086,-30.2678 345.7948,-26.0463 342.5432,-27.3413 342.5432,-27.3413 342.5432,-27.3413 345.7948,-26.0463 341.3777,-24.4148 349.0465,-24.7514 349.0465,-24.7514\"/>\n",
"<text text-anchor=\"start\" x=\"289\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M456.635,-136.2903C454.6179,-146.3892 457.4063,-156 465,-156 470.6953,-156 473.6876,-150.5939 473.9768,-143.6304\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"473.365,-136.2903 477.0856,-143.0044 473.6558,-139.7782 473.9465,-143.2661 473.9465,-143.2661 473.9465,-143.2661 473.6558,-139.7782 470.8074,-143.5278 473.365,-136.2903 473.365,-136.2903\"/>\n",
"<text text-anchor=\"start\" x=\"460.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M378.5384,-30.9184C395.9239,-48.8306 427.4421,-81.304 447.2418,-101.7037\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"452.2507,-106.8643 445.1149,-104.0352 449.813,-104.3528 447.3753,-101.8412 447.3753,-101.8412 447.3753,-101.8412 449.813,-104.3528 449.6357,-99.6473 452.2507,-106.8643 452.2507,-106.8643\"/>\n",
"<text text-anchor=\"start\" x=\"402\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a | b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M357.635,-34.2903C355.6179,-44.3892 358.4063,-54 366,-54 371.6953,-54 374.6876,-48.5939 374.9768,-41.6304\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"374.365,-34.2903 378.0856,-41.0044 374.6558,-37.7782 374.9465,-41.2661 374.9465,-41.2661 374.9465,-41.2661 374.6558,-37.7782 371.8074,-41.5278 374.365,-34.2903 374.365,-34.2903\"/>\n",
"<text text-anchor=\"start\" x=\"345.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"358\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0d077c1780> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"527pt\" height=\"219pt\"\n",
" viewBox=\"0.00 0.00 527.00 218.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 214.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-214.8 523,-214.8 523,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"236.5\" y=\"-180.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-88\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-84.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-88C4.178,-88 17.9448,-88 30.9241,-88\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-88 30.9808,-91.1501 34.4807,-88 30.9807,-88.0001 30.9807,-88.0001 30.9807,-88.0001 34.4807,-88 30.9807,-84.8501 37.9807,-88 37.9807,-88\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-105.0373C48.3189,-114.8579 50.4453,-124 56,-124 60.166,-124 62.4036,-118.8576 62.7128,-112.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-105.0373 65.8541,-111.8818 62.5434,-108.5335 62.7076,-112.0296 62.7076,-112.0296 62.7076,-112.0296 62.5434,-108.5335 59.561,-112.1774 62.3792,-105.0373 62.3792,-105.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"141\" cy=\"-135\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"141\" cy=\"-135\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"136.5\" y=\"-131.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M68.1677,-101.8386C74.656,-108.4706 83.1211,-116.0321 92,-121 98.254,-124.4992 105.4559,-127.1857 112.3798,-129.2234\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"119.1656,-131.0509 111.5872,-132.2721 115.786,-130.1407 112.4064,-129.2305 112.4064,-129.2305 112.4064,-129.2305 115.786,-130.1407 113.2256,-126.1888 119.1656,-131.0509 119.1656,-131.0509\"/>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-128.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"377.5\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"377.5\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M73.4735,-83.5244C105.4568,-75.5747 175.6758,-59.241 236,-53 276.38,-48.8224 323.5828,-49.2044 351.9786,-50.0005\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"359.1222,-50.2209 352.0284,-53.1534 355.6239,-50.1129 352.1255,-50.0049 352.1255,-50.0049 352.1255,-50.0049 355.6239,-50.1129 352.2227,-46.8564 359.1222,-50.2209 359.1222,-50.2209\"/>\n",
"<text text-anchor=\"start\" x=\"194\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M124.9262,-119.3015C118.0081,-113.2207 109.5526,-106.6248 101,-102 94.7633,-98.6276 87.5927,-95.9341 80.8349,-93.8464\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.7279,-91.8153 81.3241,-90.7101 77.0932,-92.7771 80.4584,-93.7389 80.4584,-93.7389 80.4584,-93.7389 77.0932,-92.7771 79.5928,-96.7676 73.7279,-91.8153 73.7279,-91.8153\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"497\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"497\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M163.0166,-137.8618C207.4624,-143.2527 311.0813,-153.866 398,-148 424.4021,-146.2182 431.7135,-147.8001 457,-140 463.0791,-138.1248 469.3645,-135.4011 475.1013,-132.5642\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"481.5387,-129.2259 476.7747,-135.2448 478.4316,-130.8372 475.3246,-132.4484 475.3246,-132.4484 475.3246,-132.4484 478.4316,-130.8372 473.8744,-129.6521 481.5387,-129.2259 481.5387,-129.2259\"/>\n",
"<text text-anchor=\"start\" x=\"301.5\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"258\" cy=\"-84\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"258\" cy=\"-84\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"258\" y=\"-80.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M161.3798,-126.1165C180.6391,-117.7214 209.6618,-105.0705 230.8716,-95.8252\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"237.4611,-92.9528 232.303,-98.6376 234.2527,-94.3514 231.0443,-95.75 231.0443,-95.75 231.0443,-95.75 234.2527,-94.3514 229.7855,-92.8624 237.4611,-92.9528 237.4611,-92.9528\"/>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M395.3858,-53.8351C412.2965,-57.1337 437.8615,-63.7644 457,-76 466.6113,-82.1447 475.3779,-91.1826 482.2383,-99.4712\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"486.6702,-105.045 479.848,-101.5264 484.4919,-102.3054 482.3136,-99.5659 482.3136,-99.5659 482.3136,-99.5659 484.4919,-102.3054 484.7792,-97.6054 486.6702,-105.045 486.6702,-105.045\"/>\n",
"<text text-anchor=\"start\" x=\"418\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"497\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"497\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"497\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M394.5527,-44.1103C401.1712,-41.619 408.8633,-38.944 416,-37 432.9575,-32.3809 452.3,-28.7399 467.83,-26.2024\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"475.1205,-25.0459 468.7005,-29.2538 471.6637,-25.5943 468.2069,-26.1427 468.2069,-26.1427 468.2069,-26.1427 471.6637,-25.5943 467.7134,-23.0316 475.1205,-25.0459 475.1205,-25.0459\"/>\n",
"<text text-anchor=\"start\" x=\"416\" y=\"-40.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M486.8486,-135.1666C483.7725,-145.6641 487.1563,-156 497,-156 504.5366,-156 508.2865,-149.9413 508.2497,-142.39\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"507.1514,-135.1666 511.318,-141.6135 507.6776,-138.6269 508.2037,-142.0871 508.2037,-142.0871 508.2037,-142.0871 507.6776,-138.6269 505.0895,-142.5607 507.1514,-135.1666 507.1514,-135.1666\"/>\n",
"<text text-anchor=\"start\" x=\"480\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.1356,-117.5708C444.2645,-112.7905 364.7058,-101.695 298,-91 294.4368,-90.4287 290.6993,-89.806 286.9997,-89.1753\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"279.9876,-87.964 287.4217,-86.0516 283.4365,-88.5598 286.8854,-89.1557 286.8854,-89.1557 286.8854,-89.1557 283.4365,-88.5598 286.3492,-92.2597 279.9876,-87.964 279.9876,-87.964\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M235.973,-84.4362C198.1815,-85.1845 121.2115,-86.7087 81.2881,-87.4992\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.2824,-87.638 81.2186,-84.3499 77.7817,-87.5686 81.2811,-87.4993 81.2811,-87.4993 81.2811,-87.4993 77.7817,-87.5686 81.3435,-90.6487 74.2824,-87.638 74.2824,-87.638\"/>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-89.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M279.3642,-78.1003C299.9921,-72.4039 331.2052,-63.7843 352.8693,-57.8018\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"359.8212,-55.882 353.9122,-60.7818 356.4474,-56.8137 353.0737,-57.7454 353.0737,-57.7454 353.0737,-57.7454 356.4474,-56.8137 352.2352,-54.7091 359.8212,-55.882 359.8212,-55.882\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M276.5863,-96.5223C283.1553,-100.5736 290.7227,-104.8329 298,-108 363.1657,-136.3601 386.0679,-129.4161 457,-125 461.8807,-124.6961 467.0771,-124.1856 472.0533,-123.604\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"479.1238,-122.7166 472.5706,-126.7138 475.6511,-123.1525 472.1783,-123.5884 472.1783,-123.5884 472.1783,-123.5884 475.6511,-123.1525 471.786,-120.4629 479.1238,-122.7166 479.1238,-122.7166\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M272.8794,-67.5962C290.7564,-49.2325 322.6613,-20.5385 357,-9 394.3293,3.5434 440.2088,-4.8854 469.0372,-12.835\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"475.9835,-14.8327 468.3855,-15.9252 472.6199,-13.8653 469.2562,-12.8979 469.2562,-12.8979 469.2562,-12.8979 472.6199,-13.8653 470.1268,-9.8706 475.9835,-14.8327 475.9835,-14.8327\"/>\n",
"<text text-anchor=\"start\" x=\"357\" y=\"-12.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M486.2883,-41.3443C484.2888,-52.0977 487.8594,-62 497,-62 503.9983,-62 507.7315,-56.1954 508.1997,-48.6485\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"507.7117,-41.3443 511.3214,-48.1187 507.945,-44.8365 508.1784,-48.3288 508.1784,-48.3288 508.1784,-48.3288 507.945,-44.8365 505.0354,-48.5388 507.7117,-41.3443 507.7117,-41.3443\"/>\n",
"<text text-anchor=\"start\" x=\"476.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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 0x7f0d077c1660> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"376pt\" height=\"187pt\"\n",
" viewBox=\"0.00 0.00 376.00 186.64\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 182.637)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-182.637 372,-182.637 372,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"15.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Inf(</text>\n",
"<text text-anchor=\"start\" x=\"40.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"56.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"102.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"118.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"164.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"180.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"224.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"240.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"276.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"292.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"348.5\" y=\"-164.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-23.637\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-19.937\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-23.637C4.178,-23.637 17.9448,-23.637 30.9241,-23.637\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-23.637 30.9808,-26.7871 34.4807,-23.637 30.9807,-23.6371 30.9807,-23.6371 30.9807,-23.6371 34.4807,-23.637 30.9807,-20.4871 37.9807,-23.637 37.9807,-23.637\"/>\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=\"#000000\" d=\"M49.6208,-40.6743C48.3189,-50.4949 50.4453,-59.637 56,-59.637 60.166,-59.637 62.4036,-54.4945 62.7128,-47.7802\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-40.6743 65.8541,-47.5188 62.5434,-44.1704 62.7076,-47.6666 62.7076,-47.6666 62.7076,-47.6666 62.5434,-44.1704 59.561,-47.8143 62.3792,-40.6743 62.3792,-40.6743\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-78.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-63.437\" 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=\"#000000\" cx=\"160\" cy=\"-91.637\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"160\" y=\"-87.937\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M64.3675,-39.6063C70.6517,-50.1333 80.1902,-63.4412 92,-71.637 104.6244,-80.398 121.1127,-85.3708 134.6914,-88.1664\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"141.8928,-89.5057 134.4348,-91.3226 138.4518,-88.8657 135.0108,-88.2257 135.0108,-88.2257 135.0108,-88.2257 138.4518,-88.8657 135.5868,-85.1288 141.8928,-89.5057 141.8928,-89.5057\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-102.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-88.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-88.437\" 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=\"#000000\" cx=\"269\" cy=\"-34.637\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"269\" y=\"-30.937\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.3059,-22.4229C79.9749,-22.1 86.2434,-21.7967 92,-21.637 154.6992,-19.8966 170.7545,-19.9091 233,-27.637 236.6193,-28.0863 240.4214,-28.685 244.1431,-29.3438\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"251.1322,-30.6611 243.6698,-32.46 247.6927,-30.0128 244.2533,-29.3645 244.2533,-29.3645 244.2533,-29.3645 247.6927,-30.0128 244.8368,-26.269 251.1322,-30.6611 251.1322,-30.6611\"/>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-39.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-25.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-25.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M153.0839,-74.8791C147.1643,-62.6559 137.4556,-46.7032 124,-37.637 111.5177,-29.2265 95.0329,-25.6899 81.4204,-24.2736\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.1971,-23.6874 81.429,-21.1141 77.6857,-23.9706 81.1742,-24.2537 81.1742,-24.2537 81.1742,-24.2537 77.6857,-23.9706 80.9194,-27.3934 74.1971,-23.6874 74.1971,-23.6874\"/>\n",
"<text text-anchor=\"start\" x=\"103.5\" y=\"-56.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-41.437\" 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=\"#000000\" d=\"M151.0212,-107.553C148.679,-117.7873 151.6719,-127.637 160,-127.637 166.3762,-127.637 169.625,-121.8633 169.7465,-114.5638\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"168.9788,-107.553 172.8721,-114.1685 169.3598,-111.0322 169.7408,-114.5114 169.7408,-114.5114 169.7408,-114.5114 169.3598,-111.0322 166.6095,-114.8543 168.9788,-107.553 168.9788,-107.553\"/>\n",
"<text text-anchor=\"start\" x=\"143\" y=\"-145.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-131.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-131.437\" 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=\"#000000\" d=\"M167.4767,-74.7351C173.4641,-63.3478 183.0132,-49.0932 196,-41.637 210.2916,-33.4316 228.7934,-31.7342 243.5942,-32.0614\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"250.9548,-32.3933 243.82,-35.2247 247.4584,-32.2356 243.9619,-32.0779 243.9619,-32.0779 243.9619,-32.0779 247.4584,-32.2356 244.1038,-28.9311 250.9548,-32.3933 250.9548,-32.3933\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-59.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"198.5\" y=\"-45.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-45.437\" 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=\"#000000\" cx=\"350\" cy=\"-85.637\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"350\" y=\"-81.937\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M173.2224,-104.2653C179.5838,-109.4812 187.6374,-114.9329 196,-117.637 241.6543,-132.3995 297.1872,-111.8215 327.53,-97.4617\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"333.967,-94.3283 329.0518,-100.2244 330.8201,-95.8602 327.6731,-97.3921 327.6731,-97.3921 327.6731,-97.3921 330.8201,-95.8602 326.2944,-94.5598 333.967,-94.3283 333.967,-94.3283\"/>\n",
"<text text-anchor=\"start\" x=\"262.5\" y=\"-124.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M252.7479,-26.5089C234.9336,-18.1382 205.2517,-5.7525 178,-1.637 143.717,3.5405 104.2694,-6.5103 79.7334,-14.6738\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.9226,-17.0197 78.5151,-11.7617 76.2318,-15.8798 79.541,-14.74 79.541,-14.74 79.541,-14.74 76.2318,-15.8798 80.5668,-17.7183 72.9226,-17.0197 72.9226,-17.0197\"/>\n",
"<text text-anchor=\"start\" x=\"153.5\" y=\"-5.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M257.5863,-48.5837C251.0524,-55.7709 242.3151,-64.1539 233,-69.637 218.0994,-78.4078 199.3988,-83.9559 184.6556,-87.2864\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"177.7699,-88.7477 183.9634,-84.213 181.1936,-88.021 184.6174,-87.2944 184.6174,-87.2944 184.6174,-87.2944 181.1936,-88.021 185.2714,-90.3758 177.7699,-88.7477 177.7699,-88.7477\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-102.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"206.5\" y=\"-87.437\" 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=\"#000000\" d=\"M261.9688,-51.301C260.4063,-61.262 262.75,-70.637 269,-70.637 273.6875,-70.637 276.1777,-65.3635 276.4707,-58.5245\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"276.0313,-51.301 279.6006,-58.0968 276.2438,-54.7946 276.4564,-58.2881 276.4564,-58.2881 276.4564,-58.2881 276.2438,-54.7946 273.3122,-58.4794 276.0313,-51.301 276.0313,-51.301\"/>\n",
"<text text-anchor=\"start\" x=\"248.5\" y=\"-89.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-74.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M284.2355,-44.2297C296.7142,-52.0866 314.5208,-63.2982 328.4588,-72.074\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"334.5574,-75.9139 326.9554,-74.8498 331.5956,-74.049 328.6338,-72.1841 328.6338,-72.1841 328.6338,-72.1841 331.5956,-74.049 330.3122,-69.5185 334.5574,-75.9139 334.5574,-75.9139\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-65.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M342.9688,-102.301C341.4063,-112.262 343.75,-121.637 350,-121.637 354.6875,-121.637 357.1777,-116.3635 357.4707,-109.5245\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"357.0313,-102.301 360.6006,-109.0968 357.2438,-105.7946 357.4564,-109.2881 357.4564,-109.2881 357.4564,-109.2881 357.2438,-105.7946 354.3122,-109.4794 357.0313,-102.301 357.0313,-102.301\"/>\n",
"<text text-anchor=\"middle\" x=\"350\" y=\"-125.437\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d077c1810> >"
]
},
"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.40.1 (20161225.0304)\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 1) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 169,-120.8 169,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"59.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"60\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1682,-22C4.2491,-22 17.4946,-22 30.6388,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8655,-22 30.8656,-25.1501 34.3655,-22 30.8655,-22.0001 30.8655,-22.0001 30.8655,-22.0001 34.3655,-22 30.8655,-18.8501 37.8655,-22 37.8655,-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=\"#000000\" d=\"M52.6831,-42.9908C51.7798,-53.0872 54.2188,-62 60,-62 64.3359,-62 66.7918,-56.9866 67.3677,-50.2204\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"67.3169,-42.9908 70.5161,-49.9684 67.3415,-46.4907 67.3662,-49.9906 67.3662,-49.9906 67.3662,-49.9906 67.3415,-46.4907 64.2163,-50.0128 67.3169,-42.9908 67.3169,-42.9908\"/>\n",
"<text text-anchor=\"start\" x=\"56.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M82.4047,-22C94.4414,-22 109.3216,-22 121.7651,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"128.7702,-22 121.7703,-25.1501 125.2702,-22 121.7702,-22.0001 121.7702,-22.0001 121.7702,-22.0001 125.2702,-22 121.7702,-18.8501 128.7702,-22 128.7702,-22\"/>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M139.9688,-38.6641C138.4063,-48.625 140.75,-58 147,-58 151.6875,-58 154.1777,-52.7266 154.4707,-45.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.0313,-38.6641 157.6006,-45.4598 154.2438,-42.1576 154.4564,-45.6511 154.4564,-45.6511 154.4564,-45.6511 154.2438,-42.1576 151.3122,-45.8425 154.0313,-38.6641 154.0313,-38.6641\"/>\n",
"<text text-anchor=\"middle\" x=\"147\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d077c1930> >"
]
},
"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;'><svg height=\"130pt\" viewBox=\"0.00 0.00 165.00 130.40\" width=\"165pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 126.3966)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-126.3966 161,-126.3966 161,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"57.5\" y=\"-108.1966\">Inf(</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"79.5\" y=\"-108.1966\">⓿</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"95.5\" y=\"-108.1966\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"55.5\" y=\"-94.1966\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"56\" cy=\"-20.3966\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-16.6966\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;0</title>\n",
"<path d=\"M1.1233,-20.3966C4.178,-20.3966 17.9448,-20.3966 30.9241,-20.3966\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.9807,-20.3966 30.9808,-23.5467 34.4807,-20.3967 30.9807,-20.3967 30.9807,-20.3967 30.9807,-20.3967 34.4807,-20.3967 30.9807,-17.2467 37.9807,-20.3966 37.9807,-20.3966\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;0</title>\n",
"<path d=\"M49.6208,-37.4339C48.3189,-47.2545 50.4453,-56.3966 56,-56.3966 60.166,-56.3966 62.4036,-51.2542 62.7128,-44.5399\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"62.3792,-37.4339 65.8541,-44.2785 62.5434,-40.9301 62.7076,-44.4262 62.7076,-44.4262 62.7076,-44.4262 62.5434,-40.9301 59.561,-44.574 62.3792,-37.4339 62.3792,-37.4339\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"52.5\" y=\"-75.1966\">a</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"48\" y=\"-60.1966\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"139\" cy=\"-20.3966\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"139\" y=\"-16.6966\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M74.0098,-20.3966C85.5679,-20.3966 100.7507,-20.3966 113.5345,-20.3966\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"120.7388,-20.3966 113.7388,-23.5467 117.2388,-20.3967 113.7388,-20.3967 113.7388,-20.3967 113.7388,-20.3967 117.2388,-20.3967 113.7387,-17.2467 120.7388,-20.3966 120.7388,-20.3966\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-24.1966\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>1-&gt;0</title>\n",
"<path d=\"M124.5385,-9.3757C115.4203,-3.7422 103.2768,1.3966 92,-1.3966 87.1146,-2.6067 82.1612,-4.614 77.5558,-6.8813\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"71.1057,-10.3266 75.7959,-4.25 74.1929,-8.6776 77.2801,-7.0285 77.2801,-7.0285 77.2801,-7.0285 74.1929,-8.6776 78.7642,-9.807 71.1057,-10.3266 71.1057,-10.3266\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"94\" y=\"-5.1966\">a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M131.9688,-37.0607C130.4063,-47.0216 132.75,-56.3966 139,-56.3966 143.6875,-56.3966 146.1777,-51.1232 146.4707,-44.2842\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"146.0313,-37.0607 149.6006,-43.8564 146.2438,-40.5542 146.4564,-44.0478 146.4564,-44.0478 146.4564,-44.0478 146.2438,-40.5542 143.3122,-44.2391 146.0313,-37.0607 146.0313,-37.0607\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"133.5\" y=\"-75.1966\">!a</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"131\" y=\"-60.1966\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg></div><div style='vertical-align:text-top;display:inline-block;'><svg height=\"161pt\" viewBox=\"0.00 0.00 163.00 161.00\" width=\"163pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 157)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-157 159,-157 159,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"56.5\" y=\"-138.8\">Inf(</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-138.8\">❶</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"94.5\" y=\"-138.8\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"54.5\" y=\"-124.8\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"56\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-14.3\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;0</title>\n",
"<path d=\"M1.1233,-18C4.178,-18 17.9448,-18 30.9241,-18\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.9807,-18 30.9808,-21.1501 34.4807,-18 30.9807,-18.0001 30.9807,-18.0001 30.9807,-18.0001 34.4807,-18 30.9807,-14.8501 37.9807,-18 37.9807,-18\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;0</title>\n",
"<path d=\"M49.6208,-35.0373C48.3189,-44.8579 50.4453,-54 56,-54 60.166,-54 62.4036,-48.8576 62.7128,-42.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"62.3792,-35.0373 65.8541,-41.8818 62.5434,-38.5335 62.7076,-42.0296 62.7076,-42.0296 62.7076,-42.0296 62.5434,-38.5335 59.561,-42.1774 62.3792,-35.0373 62.3792,-35.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"37.5\" y=\"-57.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"137\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"137\" y=\"-14.3\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M74.3802,-18C85.4352,-18 99.6622,-18 111.7609,-18\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"118.9716,-18 111.9716,-21.1501 115.4716,-18 111.9716,-18.0001 111.9716,-18.0001 111.9716,-18.0001 115.4716,-18 111.9716,-14.8501 118.9716,-18 118.9716,-18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-21.8\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M133.4047,-35.7817C132.7938,-45.3149 133.9922,-54 137,-54 139.2089,-54 140.4419,-49.3161 140.6991,-43.0521\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"140.5953,-35.7817 143.845,-42.736 140.6453,-39.2814 140.6954,-42.781 140.6954,-42.781 140.6954,-42.781 140.6453,-39.2814 137.5457,-42.8261 140.5953,-35.7817 140.5953,-35.7817\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"131.5\" y=\"-57.8\">!c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M131.1479,-35.1418C127.7056,-52.585 129.6563,-72 137,-72 143.3684,-72 145.6812,-57.3996 143.9382,-42.146\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"142.8521,-35.1418 147.0376,-41.5763 143.3884,-38.6004 143.9248,-42.0591 143.9248,-42.0591 143.9248,-42.0591 143.3884,-38.6004 140.812,-42.5418 142.8521,-35.1418 142.8521,-35.1418\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"133.5\" y=\"-90.8\">c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"129\" y=\"-75.8\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg></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%;'><svg height=\"244pt\" viewBox=\"0.00 0.00 354.00 244.00\" width=\"354pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 240)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-240 350,-240 350,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"126\" y=\"-221.8\">Inf(</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"148\" y=\"-221.8\">⓿</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"164\" y=\"-221.8\">)&amp;Inf(</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"200\" y=\"-221.8\">❶</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-221.8\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"129\" y=\"-207.8\">[gen. Büchi 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"65\" cy=\"-18\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"55\" y=\"-14.3\">0,0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;0</title>\n",
"<path d=\"M1.2244,-18C4.383,-18 17.3969,-18 30.8528,-18\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.8798,-18 30.8799,-21.1501 34.3798,-18 30.8798,-18.0001 30.8798,-18.0001 30.8798,-18.0001 34.3798,-18 30.8798,-14.8501 37.8798,-18 37.8798,-18\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;0</title>\n",
"<path d=\"M57.1448,-35.4099C55.6785,-45.0879 58.2969,-54 65,-54 69.9226,-54 72.6423,-49.1936 73.1591,-42.8073\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"72.8552,-35.4099 76.2899,-42.2747 72.9989,-38.9069 73.1426,-42.404 73.1426,-42.404 73.1426,-42.404 72.9989,-38.9069 69.9953,-42.5333 72.8552,-35.4099 72.8552,-35.4099\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"46.5\" y=\"-72.8\">a &amp; !b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"57\" y=\"-57.8\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"189\" cy=\"-88\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"179\" y=\"-84.3\">0,1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M85.7548,-29.7164C106.6774,-41.5276 139.0687,-59.813 161.9831,-72.7485\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"168.1775,-76.2453 160.5331,-75.5472 165.1296,-74.5247 162.0817,-72.8041 162.0817,-72.8041 162.0817,-72.8041 165.1296,-74.5247 163.6302,-70.061 168.1775,-76.2453 168.1775,-76.2453\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"110\" y=\"-79.8\">a &amp; b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"119\" y=\"-64.8\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>2</title>\n",
"<ellipse cx=\"319\" cy=\"-88\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"309\" y=\"-84.3\">1,1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;2</title>\n",
"<path d=\"M92.0179,-15.3093C133.4782,-12.3841 214.2574,-11.5218 274,-41 285.4096,-46.6297 295.4898,-56.4027 303.202,-65.5838\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"307.6886,-71.1815 300.8527,-67.6895 305.4996,-68.4504 303.3106,-65.7194 303.3106,-65.7194 303.3106,-65.7194 305.4996,-68.4504 305.7686,-63.7493 307.6886,-71.1815 307.6886,-71.1815\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"170.5\" y=\"-25.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M183.4273,-105.7817C182.4803,-115.3149 184.3379,-124 189,-124 192.4237,-124 194.335,-119.3161 194.7337,-113.0521\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"194.5727,-105.7817 197.877,-112.7102 194.6502,-109.2809 194.7277,-112.78 194.7277,-112.78 194.7277,-112.78 194.6502,-109.2809 191.5785,-112.8498 194.5727,-105.7817 194.5727,-105.7817\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"171\" y=\"-142.8\">a &amp; !c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"181\" y=\"-127.8\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M180.4657,-105.249C174.4091,-126.4346 177.2539,-154 189,-154 199.5072,-154 202.8918,-131.9425 199.1536,-112.1253\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"197.5343,-105.249 202.205,-111.3406 198.3366,-108.6558 199.1389,-112.0627 199.1389,-112.0627 199.1389,-112.0627 198.3366,-108.6558 196.0727,-112.7847 197.5343,-105.249 197.5343,-105.249\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"173\" y=\"-171.8\">a &amp; c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"173\" y=\"-157.8\">⓿</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"189\" y=\"-157.8\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M194.9997,-105.8615C201.6466,-122.4762 214.1313,-146.2372 234,-157 249.6317,-165.4676 258.3683,-165.4676 274,-157 291.3851,-147.5825 303.1168,-128.2133 310.231,-112.3876\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"313.0003,-105.8615 313.1656,-113.5358 311.6331,-109.0834 310.2659,-112.3053 310.2659,-112.3053 310.2659,-112.3053 311.6331,-109.0834 307.3662,-111.0748 313.0003,-105.8615 313.0003,-105.8615\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"234\" y=\"-166.8\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M211.9489,-97.8578C218.9011,-100.3774 226.6461,-102.7315 234,-104 251.5191,-107.0218 256.4809,-107.0218 274,-104 279.0558,-103.1279 284.2965,-101.7427 289.3373,-100.1434\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"296.0511,-97.8578 290.4397,-103.0957 292.7378,-98.9858 289.4246,-100.1137 289.4246,-100.1137 289.4246,-100.1137 292.7378,-98.9858 288.4094,-97.1318 296.0511,-97.8578 296.0511,-97.8578\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"236\" y=\"-124.8\">!a &amp; c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"246\" y=\"-109.8\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M291.8871,-85.8995C285.994,-85.5248 279.7909,-85.1928 274,-85 256.2321,-84.4084 251.7679,-84.4084 234,-85 230.4712,-85.1175 226.7893,-85.2867 223.1178,-85.4857\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"216.1129,-85.8995 222.9149,-82.3421 219.6068,-85.693 223.1007,-85.4866 223.1007,-85.4866 223.1007,-85.4866 219.6068,-85.693 223.2865,-88.6311 216.1129,-85.8995 216.1129,-85.8995\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"236\" y=\"-88.8\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M305.3336,-71.9784C297.1903,-63.7001 286.1001,-54.4255 274,-50 257.3039,-43.8935 250.6961,-43.8935 234,-50 224.3577,-53.5266 215.3568,-60.1324 207.9773,-66.8595\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"202.6664,-71.9784 205.5204,-64.8525 205.1864,-69.5495 207.7064,-67.1205 207.7064,-67.1205 207.7064,-67.1205 205.1864,-69.5495 209.8925,-69.3885 202.6664,-71.9784 202.6664,-71.9784\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"238\" y=\"-68.8\">a &amp; c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"246\" y=\"-53.8\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M313.2476,-105.7817C312.27,-115.3149 314.1875,-124 319,-124 322.5342,-124 324.5071,-119.3161 324.9186,-113.0521\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"324.7524,-105.7817 328.0617,-112.7079 324.8325,-109.2808 324.9125,-112.7799 324.9125,-112.7799 324.9125,-112.7799 324.8325,-109.2808 321.7633,-112.8519 324.7524,-105.7817 324.7524,-105.7817\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-142.8\">!a &amp; !c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"311\" y=\"-127.8\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M310.1904,-105.249C303.9385,-126.4346 306.875,-154 319,-154 329.8462,-154 333.3399,-131.9425 329.4811,-112.1253\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"327.8096,-105.249 332.524,-111.3069 328.6363,-108.65 329.4631,-112.051 329.4631,-112.051 329.4631,-112.051 328.6363,-108.65 326.4022,-112.795 327.8096,-105.249 327.8096,-105.249\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"301\" y=\"-171.8\">!a &amp; c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"303\" y=\"-157.8\">⓿</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"319\" y=\"-157.8\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg></div><div style='vertical-align:text-top;display:inline-block;width:50%;'><svg height=\"244pt\" viewBox=\"0.00 0.00 303.00 244.00\" width=\"303pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 240)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-240 299,-240 299,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"100.5\" y=\"-221.8\">Inf(</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"122.5\" y=\"-221.8\">⓿</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"138.5\" y=\"-221.8\">)&amp;Inf(</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"174.5\" y=\"-221.8\">❶</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"190.5\" y=\"-221.8\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"103.5\" y=\"-207.8\">[gen. Büchi 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<g id=\"a_node2\"><a xlink:title=\"0,0\">\n",
"<ellipse cx=\"56\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-14.3\">0</text>\n",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;0</title>\n",
"<path d=\"M1.1233,-18C4.178,-18 17.9448,-18 30.9241,-18\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.9807,-18 30.9808,-21.1501 34.4807,-18 30.9807,-18.0001 30.9807,-18.0001 30.9807,-18.0001 34.4807,-18 30.9807,-14.8501 37.9807,-18 37.9807,-18\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;0</title>\n",
"<path d=\"M49.6208,-35.0373C48.3189,-44.8579 50.4453,-54 56,-54 60.166,-54 62.4036,-48.8576 62.7128,-42.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"62.3792,-35.0373 65.8541,-41.8818 62.5434,-38.5335 62.7076,-42.0296 62.7076,-42.0296 62.7076,-42.0296 62.5434,-38.5335 59.561,-42.1774 62.3792,-35.0373 62.3792,-35.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"37.5\" y=\"-72.8\">a &amp; !b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"48\" y=\"-57.8\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<g id=\"a_node3\"><a xlink:title=\"0,1\">\n",
"<ellipse cx=\"162.5\" cy=\"-88\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"162.5\" y=\"-84.3\">1</text>\n",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M71.2589,-28.0293C89.6065,-40.0888 120.5099,-60.4009 141.2011,-74.0007\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"147.2695,-77.9893 139.6897,-76.7768 144.3447,-76.0669 141.4199,-74.1445 141.4199,-74.1445 141.4199,-74.1445 144.3447,-76.0669 143.15,-71.5122 147.2695,-77.9893 147.2695,-77.9893\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-81.8\">a &amp; b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"101\" y=\"-66.8\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>2</title>\n",
"<g id=\"a_node4\"><a xlink:title=\"1,1\">\n",
"<ellipse cx=\"275\" cy=\"-88\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"275\" y=\"-84.3\">2</text>\n",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;2</title>\n",
"<path d=\"M74.0755,-15.7322C108.6608,-12.3006 185.511,-9.1273 239,-40 249.2129,-45.8947 257.433,-55.9621 263.4257,-65.3591\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"267.0406,-71.387 260.7389,-67.0039 265.2405,-68.3854 263.4404,-65.3838 263.4404,-65.3838 263.4404,-65.3838 265.2405,-68.3854 266.1418,-63.7637 267.0406,-71.387 267.0406,-71.387\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"144\" y=\"-23.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M157.8583,-105.4099C156.9918,-115.0879 158.5391,-124 162.5,-124 165.4088,-124 167.0159,-119.1936 167.3213,-112.8073\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"167.1417,-105.4099 170.4607,-112.3314 167.2267,-108.9089 167.3117,-112.4078 167.3117,-112.4078 167.3117,-112.4078 167.2267,-108.9089 164.1626,-112.4843 167.1417,-105.4099 167.1417,-105.4099\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"144.5\" y=\"-142.8\">a &amp; !c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-127.8\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M155.5017,-104.5959C150.2141,-125.8633 152.5469,-154 162.5,-154 171.4034,-154 174.2091,-131.4854 170.917,-111.5132\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"169.4983,-104.5959 173.9906,-110.8202 170.2015,-108.0245 170.9048,-111.4531 170.9048,-111.4531 170.9048,-111.4531 170.2015,-108.0245 167.819,-112.0861 169.4983,-104.5959 169.4983,-104.5959\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"146.5\" y=\"-171.8\">a &amp; c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"146.5\" y=\"-157.8\">⓿</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"162.5\" y=\"-157.8\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M166.3877,-105.7363C171.0533,-122.2582 180.658,-145.9525 199,-157 214.2288,-166.1724 223.7973,-166.2156 239,-157 254.8314,-147.4033 264.0288,-128.3136 269.1584,-112.6417\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"271.2383,-105.7279 272.2381,-113.3387 270.23,-109.0796 269.2217,-112.4312 269.2217,-112.4312 269.2217,-112.4312 270.23,-109.0796 266.2052,-111.5237 271.2383,-105.7279 271.2383,-105.7279\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"199\" y=\"-166.8\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M178.3742,-96.6628C184.6129,-99.6068 191.9573,-102.5242 199,-104 216.3998,-107.6462 221.6095,-107.6905 239,-104 243.4784,-103.0496 248.0762,-101.5023 252.4246,-99.7353\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"258.9997,-96.8317 253.8688,-102.5411 255.798,-98.2456 252.5963,-99.6595 252.5963,-99.6595 252.5963,-99.6595 255.798,-98.2456 251.3238,-96.778 258.9997,-96.8317 258.9997,-96.8317\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-124.8\">!a &amp; c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"211\" y=\"-109.8\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M257.0731,-86.2107C251.3086,-85.7146 244.8903,-85.245 239,-85 221.2376,-84.2612 216.7628,-84.2712 199,-85 195.361,-85.1493 191.5231,-85.382 187.7575,-85.6533\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"180.6764,-86.2107 187.4075,-82.521 184.1656,-85.936 187.6548,-85.6612 187.6548,-85.6612 187.6548,-85.6612 184.1656,-85.936 187.9021,-88.8015 180.6764,-86.2107 180.6764,-86.2107\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-88.8\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M265.0142,-72.4472C258.6857,-64.0962 249.6857,-54.5962 239,-50 222.6689,-42.9755 215.3552,-43.0318 199,-50 190.4529,-53.6415 182.9427,-60.3746 176.9919,-67.1731\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"172.3715,-72.8328 174.3582,-65.4182 174.5849,-70.1215 176.7983,-67.4102 176.7983,-67.4102 176.7983,-67.4102 174.5849,-70.1215 179.2385,-69.4023 172.3715,-72.8328 172.3715,-72.8328\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"203\" y=\"-68.8\">a &amp; c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"211\" y=\"-53.8\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M270.0012,-105.4099C269.0681,-115.0879 270.7344,-124 275,-124 278.1326,-124 279.8633,-119.1936 280.1921,-112.8073\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"279.9988,-105.4099 283.3307,-112.3252 280.0903,-108.9087 280.1818,-112.4075 280.1818,-112.4075 280.1818,-112.4075 280.0903,-108.9087 277.0329,-112.4899 279.9988,-105.4099 279.9988,-105.4099\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-142.8\">!a &amp; !c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"267\" y=\"-127.8\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M267.4634,-104.5959C261.769,-125.8633 264.2813,-154 275,-154 284.5883,-154 287.6098,-131.4854 284.0645,-111.5132\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"282.5366,-104.5959 287.1223,-110.7517 283.2915,-108.0135 284.0464,-111.4311 284.0464,-111.4311 284.0464,-111.4311 283.2915,-108.0135 280.9706,-112.1106 282.5366,-104.5959 282.5366,-104.5959\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"257\" y=\"-171.8\">!a &amp; c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"259\" y=\"-157.8\">⓿</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"275\" y=\"-157.8\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg></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.40.1 (20161225.0304)\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 1) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 165,-120.8 165,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"57.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-22C4.178,-22 17.9448,-22 30.9241,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-22 30.9808,-25.1501 34.4807,-22 30.9807,-22.0001 30.9807,-22.0001 30.9807,-22.0001 34.4807,-22 30.9807,-18.8501 37.9807,-22 37.9807,-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=\"#000000\" d=\"M49.6208,-39.0373C48.3189,-48.8579 50.4453,-58 56,-58 60.166,-58 62.4036,-52.8576 62.7128,-46.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-39.0373 65.8541,-45.8818 62.5434,-42.5335 62.7076,-46.0296 62.7076,-46.0296 62.7076,-46.0296 62.5434,-42.5335 59.561,-46.1774 62.3792,-39.0373 62.3792,-39.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"139\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M74.0098,-22C84.4333,-22 97.8048,-22 109.7062,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"116.887,-22 109.887,-25.1501 113.387,-22 109.887,-22.0001 109.887,-22.0001 109.887,-22.0001 113.387,-22 109.8869,-18.8501 116.887,-22 116.887,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M131.3173,-42.9908C130.3688,-53.0872 132.9297,-62 139,-62 143.5527,-62 146.1314,-56.9866 146.7361,-50.2204\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.6827,-42.9908 149.8844,-49.9673 146.7086,-46.4907 146.7345,-49.9906 146.7345,-49.9906 146.7345,-49.9906 146.7086,-46.4907 143.5846,-50.0139 146.6827,-42.9908 146.6827,-42.9908\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d077c1e40> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"141pt\"\n",
" viewBox=\"0.00 0.00 170.00 140.57\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 136.5706)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-136.5706 166,-136.5706 166,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"29\" y=\"-118.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"54\" y=\"-118.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"70\" y=\"-118.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"113\" y=\"-118.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-118.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"52\" y=\"-104.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-30.5706\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-26.8706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-30.5706C4.178,-30.5706 17.9448,-30.5706 30.9241,-30.5706\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-30.5706 30.9808,-33.7207 34.4807,-30.5707 30.9807,-30.5707 30.9807,-30.5707 30.9807,-30.5707 34.4807,-30.5707 30.9807,-27.4207 37.9807,-30.5706 37.9807,-30.5706\"/>\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=\"#000000\" d=\"M49.6208,-47.6079C48.3189,-57.4285 50.4453,-66.5706 56,-66.5706 60.166,-66.5706 62.4036,-61.4282 62.7128,-54.7139\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-47.6079 65.8541,-54.4525 62.5434,-51.1041 62.7076,-54.6002 62.7076,-54.6002 62.7076,-54.6002 62.5434,-51.1041 59.561,-54.748 62.3792,-47.6079 62.3792,-47.6079\"/>\n",
"<text text-anchor=\"start\" x=\"50.5\" y=\"-70.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"144\" cy=\"-30.5706\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"144\" y=\"-26.8706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M73.7898,-33.7388C83.8247,-35.1596 96.5997,-36.3585 108,-35.5706 111.6058,-35.3214 115.4004,-34.9334 119.1187,-34.4812\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"126.1056,-33.552 119.5819,-37.5974 122.6361,-34.0134 119.1666,-34.4749 119.1666,-34.4749 119.1666,-34.4749 122.6361,-34.0134 118.7513,-31.3524 126.1056,-33.552 126.1056,-33.552\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-54.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-39.3706\" 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=\"#000000\" d=\"M131.7475,-16.7246C121.5531,-6.97 106.4275,3.5176 92,-1.5706 85.4412,-3.8838 79.1978,-7.9538 73.8077,-12.3263\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-17.1208 71.5187,-10.1432 70.9552,-14.8181 73.5911,-12.5155 73.5911,-12.5155 73.5911,-12.5155 70.9552,-14.8181 75.6635,-14.8878 68.3193,-17.1208 68.3193,-17.1208\"/>\n",
"<text text-anchor=\"start\" x=\"94.5\" y=\"-20.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-5.3706\" 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=\"#000000\" d=\"M136.3321,-46.8609C134.4831,-56.9598 137.0391,-66.5706 144,-66.5706 149.2207,-66.5706 151.9636,-61.1645 152.2287,-54.201\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"151.6679,-46.8609 155.3421,-53.6006 151.9346,-50.3507 152.2013,-53.8406 152.2013,-53.8406 152.2013,-53.8406 151.9346,-50.3507 149.0604,-54.0806 151.6679,-46.8609 151.6679,-46.8609\"/>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-85.3706\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-70.3706\" 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 0x7f0d1c02c750> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"89pt\" height=\"161pt\"\n",
" viewBox=\"0.00 0.00 89.00 161.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 157)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-157 85,-157 85,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"18\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"43\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"59\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"59.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"59.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M4.6233,-18C7.678,-18 21.4448,-18 34.4241,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"41.4807,-18 34.4808,-21.1501 37.9807,-18 34.4807,-18.0001 34.4807,-18.0001 34.4807,-18.0001 37.9807,-18 34.4807,-14.8501 41.4807,-18 41.4807,-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=\"#000000\" d=\"M56.2643,-35.7817C55.7144,-45.3149 56.793,-54 59.5,-54 61.488,-54 62.5977,-49.3161 62.8292,-43.0521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.7357,-35.7817 65.9756,-42.7406 62.7808,-39.2814 62.8258,-42.7812 62.8258,-42.7812 62.8258,-42.7812 62.7808,-39.2814 59.6761,-42.8217 62.7357,-35.7817 62.7357,-35.7817\"/>\n",
"<text text-anchor=\"start\" x=\"56\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M54.1841,-35.4203C51.1538,-52.791 52.9258,-72 59.5,-72 65.2011,-72 67.2908,-57.5545 65.7691,-42.3894\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"64.8159,-35.4203 68.8856,-41.9288 65.2902,-38.888 65.7646,-42.3557 65.7646,-42.3557 65.7646,-42.3557 65.2902,-38.888 62.6437,-42.7826 64.8159,-35.4203 64.8159,-35.4203\"/>\n",
"<text text-anchor=\"start\" x=\"54\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0d1c02c780> >"
]
},
"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": [
"<svg height=\"131pt\" viewBox=\"0.00 0.00 182.74 130.74\" width=\"183pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 126.7401)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-126.7401 178.7401,-126.7401 178.7401,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"64.8701\" y=\"-108.5401\">Fin(</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"89.8701\" y=\"-108.5401\">⓿</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"105.8701\" y=\"-108.5401\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"54.8701\" y=\"-94.5401\">[co-Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>1</title>\n",
"<ellipse cx=\"64.8701\" cy=\"-26.8701\" fill=\"#ffffaa\" rx=\"26.7407\" ry=\"26.7407\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"60.3701\" y=\"-30.6701\">1</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"56.8701\" y=\"-15.6701\">⓿</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>I-&gt;1</title>\n",
"<path d=\"M1.2229,-26.8701C4.3751,-26.8701 17.3629,-26.8701 30.7917,-26.8701\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.8045,-26.8701 30.8046,-30.0202 34.3045,-26.8701 30.8045,-26.8702 30.8045,-26.8702 30.8045,-26.8702 34.3045,-26.8701 30.8045,-23.7202 37.8045,-26.8701 37.8045,-26.8701\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M56.6704,-52.6914C56.2072,-63.0476 58.9404,-71.7401 64.8701,-71.7401 69.3173,-71.7401 71.9666,-66.8506 72.8178,-60.0368\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"73.0697,-52.6914 75.9779,-59.7953 72.9497,-56.1893 72.8297,-59.6873 72.8297,-59.6873 72.8297,-59.6873 72.9497,-56.1893 69.6816,-59.5793 73.0697,-52.6914 73.0697,-52.6914\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"59.3701\" y=\"-75.5401\">!a</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>0</title>\n",
"<ellipse cx=\"156.7401\" cy=\"-26.8701\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"156.7401\" y=\"-23.1701\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>1-&gt;0</title>\n",
"<path d=\"M91.9372,-26.8701C104.3853,-26.8701 119.071,-26.8701 131.3119,-26.8701\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"138.5758,-26.8701 131.5759,-30.0202 135.0758,-26.8701 131.5758,-26.8702 131.5758,-26.8702 131.5758,-26.8702 135.0758,-26.8701 131.5758,-23.7202 138.5758,-26.8701 138.5758,-26.8701\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"111.7401\" y=\"-30.6701\">a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M141.2173,-17.1343C135.0805,-13.8235 127.8129,-10.5397 120.7401,-8.8701 112.2943,-6.8763 103.2853,-8.2006 95.0223,-10.8562\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"88.2856,-13.3564 93.7522,-7.9676 91.5669,-12.1386 94.8482,-10.9208 94.8482,-10.9208 94.8482,-10.9208 91.5669,-12.1386 95.9443,-13.874 88.2856,-13.3564 88.2856,-13.3564\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"109.7401\" y=\"-12.6701\">!a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;0</title>\n",
"<path d=\"M149.7089,-43.5341C148.1464,-53.4951 150.4901,-62.8701 156.7401,-62.8701 161.4276,-62.8701 163.9178,-57.5966 164.2108,-50.7576\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"163.7714,-43.5341 167.3407,-50.3299 163.9839,-47.0277 164.1965,-50.5212 164.1965,-50.5212 164.1965,-50.5212 163.9839,-47.0277 161.0523,-50.7125 163.7714,-43.5341 163.7714,-43.5341\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"153.2401\" y=\"-66.6701\">a</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"192pt\" height=\"176pt\"\n",
" viewBox=\"0.00 0.00 192.00 176.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 172)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-172 188,-172 188,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"33\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"49\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"112\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"168\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"34.5\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 3]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"111\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"111\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M56.1233,-18C59.178,-18 72.9448,-18 85.9241,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"92.9807,-18 85.9808,-21.1501 89.4807,-18 85.9807,-18.0001 85.9807,-18.0001 85.9807,-18.0001 89.4807,-18 85.9807,-14.8501 92.9807,-18 92.9807,-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=\"#000000\" d=\"M107.7643,-35.7817C107.2144,-45.3149 108.293,-54 111,-54 112.988,-54 114.0977,-49.3161 114.3292,-43.0521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"114.2357,-35.7817 117.4756,-42.7406 114.2808,-39.2814 114.3258,-42.7812 114.3258,-42.7812 114.3258,-42.7812 114.2808,-39.2814 111.1761,-42.8217 114.2357,-35.7817 114.2357,-35.7817\"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M105.9906,-35.5771C102.5451,-56.718 104.2148,-84 111,-84 117.043,-84 119.0285,-62.3596 116.9564,-42.6907\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"116.0094,-35.5771 120.0556,-42.1002 116.4713,-39.0465 116.9332,-42.5159 116.9332,-42.5159 116.9332,-42.5159 116.4713,-39.0465 113.8107,-42.9316 116.0094,-35.5771 116.0094,-35.5771\"/>\n",
"<text text-anchor=\"start\" x=\"105.5\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-87.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0d1c03ed80> >"
]
},
"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.40.1 (20161225.0304)\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 1) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 165,-120.8 165,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"57.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-22C4.178,-22 17.9448,-22 30.9241,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-22 30.9808,-25.1501 34.4807,-22 30.9807,-22.0001 30.9807,-22.0001 30.9807,-22.0001 34.4807,-22 30.9807,-18.8501 37.9807,-22 37.9807,-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=\"#000000\" d=\"M49.6208,-39.0373C48.3189,-48.8579 50.4453,-58 56,-58 60.166,-58 62.4036,-52.8576 62.7128,-46.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-39.0373 65.8541,-45.8818 62.5434,-42.5335 62.7076,-46.0296 62.7076,-46.0296 62.7076,-46.0296 62.5434,-42.5335 59.561,-46.1774 62.3792,-39.0373 62.3792,-39.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"139\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M74.0098,-22C84.4333,-22 97.8048,-22 109.7062,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"116.887,-22 109.887,-25.1501 113.387,-22 109.887,-22.0001 109.887,-22.0001 109.887,-22.0001 113.387,-22 109.8869,-18.8501 116.887,-22 116.887,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M131.3173,-42.9908C130.3688,-53.0872 132.9297,-62 139,-62 143.5527,-62 146.1314,-56.9866 146.7361,-50.2204\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.6827,-42.9908 149.8844,-49.9673 146.7086,-46.4907 146.7345,-49.9906 146.7345,-49.9906 146.7345,-49.9906 146.7086,-46.4907 143.5846,-50.0139 146.6827,-42.9908 146.6827,-42.9908\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d077c1e40> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"196pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 196.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 192,-120.8 192,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"71\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-22C4.178,-22 17.9448,-22 30.9241,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-22 30.9808,-25.1501 34.4807,-22 30.9807,-22.0001 30.9807,-22.0001 30.9807,-22.0001 34.4807,-22 30.9807,-18.8501 37.9807,-22 37.9807,-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=\"#000000\" d=\"M49.6208,-39.0373C48.3189,-48.8579 50.4453,-58 56,-58 60.166,-58 62.4036,-52.8576 62.7128,-46.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-39.0373 65.8541,-45.8818 62.5434,-42.5335 62.7076,-46.0296 62.7076,-46.0296 62.7076,-46.0296 62.5434,-42.5335 59.561,-46.1774 62.3792,-39.0373 62.3792,-39.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"166\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"166\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"166\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.1643,-22C91.1207,-22 116.722,-22 136.5901,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"143.6239,-22 136.6239,-25.1501 140.1239,-22 136.6239,-22.0001 136.6239,-22.0001 136.6239,-22.0001 140.1239,-22 136.6238,-18.8501 143.6239,-22 143.6239,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M155.9332,-41.7575C154.2225,-52.3499 157.5781,-62 166,-62 172.448,-62 175.9262,-56.3433 176.4347,-48.9379\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"176.0668,-41.7575 179.571,-48.5871 176.2459,-45.2529 176.4251,-48.7483 176.4251,-48.7483 176.4251,-48.7483 176.2459,-45.2529 173.2792,-48.9095 176.0668,-41.7575 176.0668,-41.7575\"/>\n",
"<text text-anchor=\"start\" x=\"149\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d077c1e40> >"
]
},
"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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"220pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 220.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 216,-120.8 216,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"83\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-22C4.178,-22 17.9448,-22 30.9241,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-22 30.9808,-25.1501 34.4807,-22 30.9807,-22.0001 30.9807,-22.0001 30.9807,-22.0001 34.4807,-22 30.9807,-18.8501 37.9807,-22 37.9807,-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=\"#000000\" d=\"M49.6208,-39.0373C48.3189,-48.8579 50.4453,-58 56,-58 60.166,-58 62.4036,-52.8576 62.7128,-46.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-39.0373 65.8541,-45.8818 62.5434,-42.5335 62.7076,-46.0296 62.7076,-46.0296 62.7076,-46.0296 62.5434,-42.5335 59.561,-46.1774 62.3792,-39.0373 62.3792,-39.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"190\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"190\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"190\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.0718,-22C96.2734,-22 134.2354,-22 160.6448,-22\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"167.7645,-22 160.7646,-25.1501 164.2645,-22 160.7645,-22.0001 160.7645,-22.0001 160.7645,-22.0001 164.2645,-22 160.7645,-18.8501 167.7645,-22 167.7645,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M178.0469,-40.5156C175.3906,-51.5833 179.375,-62 190,-62 198.3008,-62 202.5484,-55.6422 202.743,-47.5831\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"201.9531,-40.5156 205.8612,-47.1224 202.3419,-43.994 202.7307,-47.4723 202.7307,-47.4723 202.7307,-47.4723 202.3419,-43.994 199.6002,-47.8222 201.9531,-40.5156 201.9531,-40.5156\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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 0x7f0d077c1e40> >"
]
},
"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.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}