spot/tests/python/automata.ipynb
Alexandre Duret-Lutz a738801edf product: optimize product with weak automata
Fixes #350.

* spot/twaalgos/product.cc: Implement this change.
* NEWS, spot/twaalgos/product.hh: Mention it.
* spot/twa/acc.cc, spot/twa/acc.hh (acc_cond::sat_mark): New method.
* tests/python/_product_weak.ipynb: New file.
* tests/Makefile.am: Add it.
* tests/python/automata.ipynb, tests/python/highlighting.ipynb,
tests/python/product.ipynb, tests/core/prodor.test: Adjust test cases.
2018-05-23 22:07:50 +02:00

4353 lines
317 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, 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=\"419pt\" height=\"242pt\"\n",
" viewBox=\"0.00 0.00 419.00 241.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 237.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-237.8 415,-237.8 415,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"182.5\" y=\"-203.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=\"-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=\"37.5\" y=\"-102.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=\"173\" cy=\"-109\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"173\" cy=\"-109\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"173\" y=\"-105.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=\"M72.7632,-69.5907C91.7745,-77.0652 123.0566,-89.3641 145.6225,-98.2362\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"152.3227,-100.8705 144.6555,-101.2407 149.0654,-99.5898 145.8081,-98.3091 145.8081,-98.3091 145.8081,-98.3091 149.0654,-99.5898 146.9607,-95.3775 152.3227,-100.8705 152.3227,-100.8705\"/>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"173\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"173\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.0128,-56.4566C93.1156,-48.7248 126.6847,-35.8136 149.32,-27.1077\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"155.9667,-24.5513 150.564,-30.0042 152.6999,-25.8077 149.4332,-27.0642 149.4332,-27.0642 149.4332,-27.0642 152.6999,-25.8077 148.3024,-24.1242 155.9667,-24.5513 155.9667,-24.5513\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M162.9332,-128.7575C161.2225,-139.3499 164.5781,-149 173,-149 179.448,-149 182.9262,-143.3433 183.4347,-135.9379\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.0668,-128.7575 186.571,-135.5871 183.2459,-132.2529 183.4251,-135.7483 183.4251,-135.7483 183.4251,-135.7483 183.2459,-132.2529 180.2792,-135.9095 183.0668,-128.7575 183.0668,-128.7575\"/>\n",
"<text text-anchor=\"start\" x=\"156\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"283.5\" cy=\"-143\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"283.5\" y=\"-139.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M188.2292,-125.0657C195.139,-131.2494 203.8158,-137.6313 213,-141 227.3552,-146.2653 244.4805,-146.8697 258.2579,-146.1075\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"265.5286,-145.5644 258.7828,-149.2272 262.0383,-145.8252 258.5481,-146.0859 258.5481,-146.0859 258.5481,-146.0859 262.0383,-145.8252 258.3134,-142.9447 265.5286,-145.5644 265.5286,-145.5644\"/>\n",
"<text text-anchor=\"start\" x=\"223.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!d</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"393\" cy=\"-92\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"393\" y=\"-88.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M194.9262,-106.9907C213.5602,-105.3077 241.0253,-102.8851 265,-101 300.5753,-98.2027 341.7466,-95.3823 367.5815,-93.6629\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"374.7638,-93.187 367.9874,-96.793 371.2714,-93.4185 367.7791,-93.6499 367.7791,-93.6499 367.7791,-93.6499 371.2714,-93.4185 367.5708,-90.5068 374.7638,-93.187 374.7638,-93.187\"/>\n",
"<text text-anchor=\"start\" x=\"265\" y=\"-104.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!c &amp; d</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=\"M163.4254,-33.5414C160.7303,-43.9087 163.9219,-54 173,-54 179.9504,-54 183.4503,-48.0847 183.4995,-40.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"182.5746,-33.5414 186.6004,-40.0771 183.0256,-37.0123 183.4767,-40.4831 183.4767,-40.4831 183.4767,-40.4831 183.0256,-37.0123 180.353,-40.889 182.5746,-33.5414 182.5746,-33.5414\"/>\n",
"<text text-anchor=\"middle\" x=\"173\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M268.4497,-132.7588C262.0783,-128.8508 254.4223,-124.6925 247,-122 232.6946,-116.8106 216.0593,-113.6511 202.1887,-111.7492\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"195.2143,-110.8652 202.5549,-108.6205 198.6865,-111.3054 202.1587,-111.7455 202.1587,-111.7455 202.1587,-111.7455 198.6865,-111.3054 201.7626,-114.8705 195.2143,-110.8652 195.2143,-110.8652\"/>\n",
"<text text-anchor=\"start\" x=\"213\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M274.5212,-158.916C272.179,-169.1504 275.1719,-179 283.5,-179 289.8762,-179 293.125,-173.2263 293.2465,-165.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"292.4788,-158.916 296.3721,-165.5315 292.8598,-162.3952 293.2408,-165.8744 293.2408,-165.8744 293.2408,-165.8744 292.8598,-162.3952 290.1095,-166.2174 292.4788,-158.916 292.4788,-158.916\"/>\n",
"<text text-anchor=\"start\" x=\"277\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M300.1307,-135.2542C318.8099,-126.5543 349.2409,-112.3809 370.1459,-102.6444\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"376.5716,-99.6516 371.556,-105.4626 373.3988,-101.1293 370.2261,-102.6071 370.2261,-102.6071 370.2261,-102.6071 373.3988,-101.1293 368.8961,-99.7516 376.5716,-99.6516 376.5716,-99.6516\"/>\n",
"<text text-anchor=\"start\" x=\"320\" y=\"-128.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M375.5284,-87.3769C350.8107,-81.4822 304.2663,-72.7596 265,-79 242.5895,-82.5616 218.2163,-90.7163 200.1902,-97.6258\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"193.3666,-100.2979 198.736,-94.8123 196.6256,-99.0217 199.8847,-97.7454 199.8847,-97.7454 199.8847,-97.7454 196.6256,-99.0217 201.0333,-100.6785 193.3666,-100.2979 193.3666,-100.2979\"/>\n",
"<text text-anchor=\"start\" x=\"280\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</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=\"M383.7674,-107.5414C381.1685,-117.9087 384.2461,-128 393,-128 399.7022,-128 403.077,-122.0847 403.1245,-114.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"402.2326,-107.5414 406.2286,-114.0955 402.6678,-111.0143 403.103,-114.4871 403.103,-114.4871 403.103,-114.4871 402.6678,-111.0143 399.9775,-114.8788 402.2326,-107.5414 402.2326,-107.5414\"/>\n",
"<text text-anchor=\"start\" x=\"387.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!c</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec60d690> >"
]
},
"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 218.77 360.00\" width=\"219pt\" 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 233,-386 233,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"114.5\" y=\"-350.8\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"131\" 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=\"131\" 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=\"M131,-341.8767C131,-338.822 131,-325.0552 131,-312.0759\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"131,-305.0193 134.1501,-312.0192 131,-308.5193 131.0001,-312.0193 131.0001,-312.0193 131.0001,-312.0193 131,-308.5193 127.8501,-312.0193 131,-305.0193 131,-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=\"M148.0373,-293.3792C157.8579,-294.6811 167,-292.5547 167,-287 167,-282.834 161.8576,-280.5964 155.1433,-280.2872\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"148.0373,-280.6208 154.8818,-277.1459 151.5335,-280.4566 155.0296,-280.2924 155.0296,-280.2924 155.0296,-280.2924 151.5335,-280.4566 155.1774,-283.439 148.0373,-280.6208 148.0373,-280.6208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"185.5\" y=\"-283.3\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"78\" cy=\"-196\" fill=\"none\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<ellipse cx=\"78\" 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=\"78\" 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=\"M121.7681,-271.149C113.7563,-257.3929 102.0146,-237.2327 92.7093,-221.2556\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"89.1469,-215.139 95.3919,-219.6025 90.9084,-218.1634 92.6699,-221.1879 92.6699,-221.1879 92.6699,-221.1879 90.9084,-218.1634 89.9479,-222.7732 89.1469,-215.139 89.1469,-215.139\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"113.5\" y=\"-239.8\">b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>4</title>\n",
"<ellipse cx=\"186\" 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=\"186\" y=\"-192.3\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;4</title>\n",
"<path d=\"M140.33,-271.5631C149.2586,-256.7903 162.8126,-234.3646 172.8376,-217.7778\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"176.6242,-211.5126 175.6992,-219.1328 174.8138,-214.508 173.0034,-217.5035 173.0034,-217.5035 173.0034,-217.5035 174.8138,-214.508 170.3075,-215.8741 176.6242,-211.5126 176.6242,-211.5126\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"181.5\" y=\"-239.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=\"M98.5808,-204.3702C108.8447,-205.5284 118,-202.7383 118,-196 118,-190.9463 112.8502,-188.1134 105.9451,-187.5015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"98.5808,-187.6298 105.5248,-184.3582 102.0803,-187.5688 105.5797,-187.5077 105.5797,-187.5077 105.5797,-187.5077 102.0803,-187.5688 105.6347,-190.6573 98.5808,-187.6298 98.5808,-187.6298\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"134\" y=\"-192.3\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>2</title>\n",
"<ellipse cx=\"18\" 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=\"18\" y=\"-101.3\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M57.4481,-187.3375C44.5958,-180.7503 29.0095,-170.3587 21,-156 16.6792,-148.2541 15.2763,-138.7777 15.1709,-130.1047\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"15.3521,-123.064 18.3209,-130.1427 15.262,-126.5628 15.1719,-130.0617 15.1719,-130.0617 15.1719,-130.0617 15.262,-126.5628 12.023,-129.9806 15.3521,-123.064 15.3521,-123.064\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"27\" y=\"-144.8\">!d</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node6\">\n",
"<title>3</title>\n",
"<ellipse cx=\"102\" 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=\"102\" y=\"-14.3\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M83.9704,-174.5319C85.4637,-168.568 86.9401,-162.0641 88,-156 94.8219,-116.9704 98.6578,-71.1067 100.5281,-43.3152\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"101.0043,-35.9764 103.6943,-43.1658 100.7776,-39.4691 100.5509,-42.9618 100.5509,-42.9618 100.5509,-42.9618 100.7776,-39.4691 97.4075,-42.7577 101.0043,-35.9764 101.0043,-35.9764\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"115.5\" y=\"-101.3\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>4-&gt;4</title>\n",
"<path d=\"M202.2903,-204.0164C212.3892,-205.9495 222,-203.2773 222,-196 222,-190.542 216.5939,-187.6744 209.6304,-187.3972\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"202.2903,-187.9836 209.0172,-184.2861 205.7792,-187.7048 209.268,-187.4261 209.268,-187.4261 209.268,-187.4261 205.7792,-187.7048 209.5189,-190.5661 202.2903,-187.9836 202.2903,-187.9836\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"225.5\" y=\"-192.3\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M27.9393,-120.0747C37.1258,-134.0075 50.9447,-154.9661 61.7378,-171.3357\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"65.8581,-177.5848 59.375,-173.4747 63.9315,-174.6628 62.0049,-171.7407 62.0049,-171.7407 62.0049,-171.7407 63.9315,-174.6628 64.6347,-170.0068 65.8581,-177.5848 65.8581,-177.5848\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"68\" y=\"-144.8\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M34.6641,-112.3828C44.625,-114.0234 54,-111.5625 54,-105 54,-100.0781 48.7266,-97.4634 41.8876,-97.1558\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"34.6641,-97.6172 41.449,-94.0273 38.1569,-97.394 41.6498,-97.1709 41.6498,-97.1709 41.6498,-97.1709 38.1569,-97.394 41.8507,-100.3145 34.6641,-97.6172 34.6641,-97.6172\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"60\" y=\"-101.3\">!d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>2-&gt;3</title>\n",
"<path d=\"M26.4061,-88.7063C32.3724,-78.0914 41.0649,-64.3444 51,-54 59.4985,-45.1514 70.4535,-37.089 80.0307,-30.8478\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"86.0856,-27.0195 81.8524,-33.4228 83.1273,-28.8899 80.169,-30.7604 80.169,-30.7604 80.169,-30.7604 83.1273,-28.8899 78.4856,-28.0979 86.0856,-27.0195 86.0856,-27.0195\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"69.5\" y=\"-57.8\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>3-&gt;1</title>\n",
"<path d=\"M113.2113,-32.3093C127.6447,-52.5584 149.568,-90.7074 138,-123 130.4785,-143.9967 114.0239,-163.2804 100.2457,-176.7489\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"94.9274,-181.7954 97.837,-174.692 97.4663,-179.3862 100.0052,-176.977 100.0052,-176.977 100.0052,-176.977 97.4663,-179.3862 102.1735,-179.2621 94.9274,-181.7954 94.9274,-181.7954\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"144.5\" y=\"-101.3\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M118.6641,-25.3828C128.625,-27.0234 138,-24.5625 138,-18 138,-13.0781 132.7266,-10.4634 125.8876,-10.1558\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"118.6641,-10.6172 125.449,-7.0273 122.1569,-10.394 125.6498,-10.1709 125.6498,-10.1709 125.6498,-10.1709 122.1569,-10.394 125.8507,-13.3145 118.6641,-10.6172 118.6641,-10.6172\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"143.5\" y=\"-14.3\">!c</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=\"355pt\" viewBox=\"0.00 0.00 503.00 355.00\" width=\"503pt\" 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 351)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-351 499,-351 499,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"226.5\" y=\"-332.8\">Inf(</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-332.8\">⓿</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"264.5\" y=\"-332.8\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"224.5\" y=\"-318.8\">[Büchi]</text>\n",
"<g class=\"cluster\" id=\"clust1\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" points=\"143,-101 143,-303 487,-303 487,-101 143,-101\" stroke=\"#00ff00\"/>\n",
"</g>\n",
"<g class=\"cluster\" id=\"clust2\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" points=\"143,-8 143,-93 195,-93 195,-8 143,-8\" stroke=\"#c0c0c0\"/>\n",
"</g>\n",
"<g class=\"cluster\" id=\"clust3\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" points=\"30,-27 30,-112 82,-112 82,-27 30,-27\" stroke=\"#ff0000\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"56\" cy=\"-53\" 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=\"-49.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,-53C4.178,-53 17.9448,-53 30.9241,-53\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.9807,-53 30.9808,-56.1501 34.4807,-53 30.9807,-53.0001 30.9807,-53.0001 30.9807,-53.0001 34.4807,-53 30.9807,-49.8501 37.9807,-53 37.9807,-53\" 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,-70.0373C48.3189,-79.8579 50.4453,-89 56,-89 60.166,-89 62.4036,-83.8576 62.7128,-77.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"62.3792,-70.0373 65.8541,-76.8818 62.5434,-73.5335 62.7076,-77.0296 62.7076,-77.0296 62.7076,-77.0296 62.5434,-73.5335 59.561,-77.1774 62.3792,-70.0373 62.3792,-70.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"37.5\" y=\"-92.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"169\" cy=\"-164\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"169\" y=\"-160.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=\"M68.9625,-65.7331C89.0347,-85.4501 127.7082,-123.4391 150.6452,-145.9701\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"155.8406,-151.0735 148.6394,-148.4153 153.3437,-148.6208 150.8468,-146.1681 150.8468,-146.1681 150.8468,-146.1681 153.3437,-148.6208 153.0542,-143.9209 155.8406,-151.0735 155.8406,-151.0735\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"108\" y=\"-131.8\">b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node6\">\n",
"<title>4</title>\n",
"<ellipse cx=\"169\" 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=\"169\" y=\"-30.3\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;4</title>\n",
"<path d=\"M73.9052,-49.9894C92.8326,-46.8069 122.8289,-41.7633 144.065,-38.1926\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"151.1786,-36.9965 144.7978,-41.2637 147.727,-37.5769 144.2755,-38.1573 144.2755,-38.1573 144.2755,-38.1573 147.727,-37.5769 143.7531,-35.0509 151.1786,-36.9965 151.1786,-36.9965\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-50.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=\"M162.6208,-181.0373C161.3189,-190.8579 163.4453,-200 169,-200 173.166,-200 175.4036,-194.8576 175.7128,-188.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"175.3792,-181.0373 178.8541,-187.8818 175.5434,-184.5335 175.7076,-188.0296 175.7076,-188.0296 175.7076,-188.0296 175.5434,-184.5335 172.561,-188.1774 175.3792,-181.0373 175.3792,-181.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"152\" y=\"-218.8\">c &amp; d</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-203.8\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>2</title>\n",
"<ellipse cx=\"313.5\" cy=\"-193\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"313.5\" y=\"-189.3\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M187.1737,-166.2739C205.235,-168.6707 233.6765,-172.8158 258,-178 268.3689,-180.21 279.688,-183.1684 289.3838,-185.8737\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"296.12,-187.7845 288.5261,-188.9046 292.7529,-186.8294 289.3857,-185.8742 289.3857,-185.8742 289.3857,-185.8742 292.7529,-186.8294 290.2454,-182.8437 296.12,-187.7845 296.12,-187.7845\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"234.5\" y=\"-196.8\">!d</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"233\" y=\"-181.8\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>3</title>\n",
"<ellipse cx=\"461\" cy=\"-193\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"461\" y=\"-189.3\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M182.553,-152.0893C196.2916,-141.273 218.6543,-127 241,-127 241,-127 241,-127 387.5,-127 414.4268,-127 435.9717,-151.826 448.6077,-171.0258\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"452.3928,-177.0232 445.9929,-172.7848 450.5247,-174.0634 448.6567,-171.1036 448.6567,-171.1036 448.6567,-171.1036 450.5247,-174.0634 451.3206,-169.4224 452.3928,-177.0232 452.3928,-177.0232\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"295\" y=\"-145.8\">!c &amp; d</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"305.5\" y=\"-130.8\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M296.9116,-200.6004C278.6196,-207.8861 248.5302,-216.6047 224,-208 209.5908,-202.9455 196.1522,-192.3527 186.1659,-182.8273\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"180.9888,-177.6872 188.1757,-180.3839 183.4726,-180.1532 185.9563,-182.6192 185.9563,-182.6192 185.9563,-182.6192 183.4726,-180.1532 183.7369,-184.8546 180.9888,-177.6872 180.9888,-177.6872\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"224\" y=\"-214.8\">c &amp; d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M307.1208,-210.0373C305.8189,-219.8579 307.9453,-229 313.5,-229 317.666,-229 319.9036,-223.8576 320.2128,-217.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"319.8792,-210.0373 323.3541,-216.8818 320.0434,-213.5335 320.2076,-217.0296 320.2076,-217.0296 320.2076,-217.0296 320.0434,-213.5335 317.061,-217.1774 319.8792,-210.0373 319.8792,-210.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"307\" y=\"-232.8\">!d</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>2-&gt;3</title>\n",
"<path d=\"M331.5864,-193C357.684,-193 406.0143,-193 435.657,-193\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"442.7657,-193 435.7657,-196.1501 439.2657,-193 435.7657,-193.0001 435.7657,-193.0001 435.7657,-193.0001 439.2657,-193 435.7656,-189.8501 442.7657,-193 442.7657,-193\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"369\" y=\"-196.8\">!c &amp; d</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>3-&gt;1</title>\n",
"<path d=\"M455.3056,-210.1884C445.6949,-235.5429 423.6842,-280 387.5,-280 241,-280 241,-280 241,-280 198.402,-280 180.1294,-222.8317 173.022,-188.7615\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"171.6701,-181.8708 176.1089,-188.1334 172.344,-185.3053 173.0179,-188.7398 173.0179,-188.7398 173.0179,-188.7398 172.344,-185.3053 169.9268,-189.3463 171.6701,-181.8708 171.6701,-181.8708\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"310\" y=\"-283.8\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M454.6208,-210.0373C453.3189,-219.8579 455.4453,-229 461,-229 465.166,-229 467.4036,-223.8576 467.7128,-217.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"467.3792,-210.0373 470.8541,-216.8818 467.5434,-213.5335 467.7076,-217.0296 467.7076,-217.0296 467.7076,-217.0296 467.5434,-213.5335 464.561,-217.1774 467.3792,-210.0373 467.3792,-210.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"455.5\" y=\"-232.8\">!c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>4-&gt;4</title>\n",
"<path d=\"M162.6208,-51.0373C161.3189,-60.8579 163.4453,-70 169,-70 173.166,-70 175.4036,-64.8576 175.7128,-58.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"175.3792,-51.0373 178.8541,-57.8818 175.5434,-54.5335 175.7076,-58.0296 175.7076,-58.0296 175.7076,-58.0296 175.5434,-54.5335 172.561,-58.1774 175.3792,-51.0373 175.3792,-51.0373\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"169\" 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": [
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec57bc90> >"
]
},
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec58a9f0> >"
]
},
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec58ab10> >"
]
},
"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": [
"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=\"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\">1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge15\">\n",
"<title>6-&gt;1</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",
"<!-- 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=\"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\">3</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge17\">\n",
"<title>6-&gt;3</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",
"<!-- 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;0 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>1-&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",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>1-&gt;1</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",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>1-&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",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge6\">\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;3 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>3-&gt;3</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",
"<!-- 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;3 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>4-&gt;3</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;2 -->\n",
"<g class=\"edge\" id=\"edge11\">\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;3 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>5-&gt;3</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;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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59c840> >"
]
},
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59ca20> >"
]
},
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cab0> >"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.translate('GFa -> GFb', 'sbacc')"
]
},
{
"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": {
"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=\"325pt\" height=\"128pt\"\n",
" viewBox=\"0.00 0.00 325.00 128.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 124)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-124 321,-124 321,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"137.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"159.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"175.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-91.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=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" 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=\"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",
"<!-- 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,-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=\"51.5\" y=\"-57.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=\"135\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"130.5\" y=\"-14.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.3228,-18C84.7921,-18 98.0794,-18 109.5495,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"116.7766,-18 109.7767,-21.1501 113.2766,-18 109.7766,-18.0001 109.7766,-18.0001 109.7766,-18.0001 113.2766,-18 109.7766,-14.8501 116.7766,-18 116.7766,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.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=\"218\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"218\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M153.0098,-18C164.5679,-18 179.7507,-18 192.5345,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"199.7388,-18 192.7388,-21.1501 196.2388,-18 192.7388,-18.0001 192.7388,-18.0001 192.7388,-18.0001 196.2388,-18 192.7387,-14.8501 199.7388,-18 199.7388,-18\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"299\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"299\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M236.3802,-18C247.4352,-18 261.6622,-18 273.7609,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"280.9716,-18 273.9716,-21.1501 277.4716,-18 273.9716,-18.0001 273.9716,-18.0001 273.9716,-18.0001 277.4716,-18 273.9716,-14.8501 280.9716,-18 280.9716,-18\"/>\n",
"<text text-anchor=\"start\" x=\"254\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M291.9688,-34.6641C290.4063,-44.625 292.75,-54 299,-54 303.6875,-54 306.1777,-48.7266 306.4707,-41.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"306.0313,-34.6641 309.6006,-41.4598 306.2438,-38.1576 306.4564,-41.6511 306.4564,-41.6511 306.4564,-41.6511 306.2438,-38.1576 303.3122,-41.8425 306.0313,-34.6641 306.0313,-34.6641\"/>\n",
"<text text-anchor=\"start\" x=\"294.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cb10> >"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = spot.translate('F(a & X(!a &Xb))', \"any\"); a"
]
},
{
"cell_type": "code",
"execution_count": 16,
"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=\"734pt\" height=\"356pt\"\n",
" viewBox=\"0.00 0.00 734.00 356.26\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.6018 .6018) rotate(0) translate(4 588)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-588 1215.6886,-588 1215.6886,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"584.8443\" y=\"-569.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"606.8443\" y=\"-569.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"622.8443\" y=\"-569.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"582.8443\" y=\"-555.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=\"-290\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-286.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,-290C4.178,-290 17.9448,-290 30.9241,-290\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-290 30.9808,-293.1501 34.4807,-290 30.9807,-290.0001 30.9807,-290.0001 30.9807,-290.0001 34.4807,-290 30.9807,-286.8501 37.9807,-290 37.9807,-290\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"162.5\" cy=\"-225\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"162.5\" y=\"-221.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=\"M71.7144,-280.409C90.0672,-269.2078 120.5231,-250.6197 141.0426,-238.0961\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.0673,-234.419 142.7333,-240.7546 144.0798,-236.2424 141.0923,-238.0658 141.0923,-238.0658 141.0923,-238.0658 144.0798,-236.2424 139.4512,-235.377 147.0673,-234.419 147.0673,-234.419\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-270.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"274.5\" cy=\"-282\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274.5\" y=\"-278.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=\"M73.9967,-292.1378C106.5249,-295.5944 177.1907,-301.2365 236,-293 240.8104,-292.3263 245.8631,-291.2008 250.6675,-289.9204\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"257.4716,-287.9682 251.6118,-292.9267 254.1073,-288.9335 250.743,-289.8988 250.743,-289.8988 250.743,-289.8988 254.1073,-288.9335 249.8743,-286.871 257.4716,-287.9682 257.4716,-287.9682\"/>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-300.8\" 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=\"392.5\" cy=\"-182\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"392.5\" y=\"-178.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=\"M65.3149,-274.0563C85.1142,-241.9392 134.868,-170.1265 199,-142 262.1722,-114.2944 291.8086,-104.1578 354,-134 365.3258,-139.4346 374.3702,-150.0046 380.8393,-159.8453\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"384.5319,-165.8259 378.1741,-161.5246 382.6931,-162.8478 380.8544,-159.8697 380.8544,-159.8697 380.8544,-159.8697 382.6931,-162.8478 383.5347,-158.2148 384.5319,-165.8259 384.5319,-165.8259\"/>\n",
"<text text-anchor=\"start\" x=\"199\" y=\"-145.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=\"508.5\" cy=\"-279\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"508.5\" y=\"-275.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=\"M57.1677,-308.1014C61.4177,-357.3332 80.4798,-490 162.5,-490 162.5,-490 162.5,-490 333.5,-490 409.9474,-490 436.3354,-455.6183 472,-388 486.4497,-360.6042 496.7945,-326.3631 502.7006,-303.6462\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"504.4618,-296.6988 505.7951,-304.2583 503.6017,-300.0915 502.7416,-303.4842 502.7416,-303.4842 502.7416,-303.4842 503.6017,-300.0915 499.6882,-302.7101 504.4618,-296.6988 504.4618,-296.6988\"/>\n",
"<text text-anchor=\"start\" x=\"254\" y=\"-493.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=\"618\" cy=\"-159\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"618\" y=\"-155.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M58.6103,-271.8592C68.2465,-208.3711 104.3061,0 162.5,0 162.5,0 162.5,0 508.5,0 572.7926,0 602.2152,-89.2711 612.9268,-134.0313\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"614.5446,-141.0698 609.9065,-134.9533 613.7606,-137.6587 612.9765,-134.2476 612.9765,-134.2476 612.9765,-134.2476 613.7606,-137.6587 616.0464,-133.542 614.5446,-141.0698 614.5446,-141.0698\"/>\n",
"<text text-anchor=\"start\" x=\"316.5\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"618\" cy=\"-279\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"618\" y=\"-275.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M57.967,-307.9296C62.6576,-348.4672 75.3613,-445.8347 92,-474 112.7816,-509.1783 121.6419,-533 162.5,-533 162.5,-533 162.5,-533 508.5,-533 558.0907,-533 598.938,-367.666 612.8706,-303.7799\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"614.3605,-296.8608 615.9663,-304.3671 613.6237,-300.2824 612.8869,-303.7039 612.8869,-303.7039 612.8869,-303.7039 613.6237,-300.2824 609.8075,-303.0408 614.3605,-296.8608 614.3605,-296.8608\"/>\n",
"<text text-anchor=\"start\" x=\"315\" y=\"-536.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M153.5212,-240.916C151.179,-251.1504 154.1719,-261 162.5,-261 168.8762,-261 172.125,-255.2263 172.2465,-247.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"171.4788,-240.916 175.3721,-247.5315 171.8598,-244.3952 172.2408,-247.8744 172.2408,-247.8744 172.2408,-247.8744 171.8598,-244.3952 169.1095,-248.2174 171.4788,-240.916 171.4788,-240.916\"/>\n",
"<text text-anchor=\"start\" x=\"145.5\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M174.0871,-238.9756C180.716,-246.1713 189.5741,-254.5532 199,-260 214.5428,-268.9816 234.0363,-274.5406 249.3222,-277.8235\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"256.4523,-279.2573 248.9687,-280.9654 253.021,-278.5672 249.5897,-277.8772 249.5897,-277.8772 249.5897,-277.8772 253.021,-278.5672 250.2107,-274.789 256.4523,-279.2573 256.4523,-279.2573\"/>\n",
"<text text-anchor=\"start\" x=\"199\" y=\"-277.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M180.5477,-221.6259C221.3594,-213.9958 320.8165,-195.4017 367.5119,-186.6717\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"374.5361,-185.3585 368.2343,-189.7413 371.0957,-186.0017 367.6553,-186.645 367.6553,-186.645 367.6553,-186.645 371.0957,-186.0017 367.0764,-183.5486 374.5361,-185.3585 374.5361,-185.3585\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M172.1179,-209.2286C178.5921,-199.9303 187.951,-188.7076 199,-182 280.9467,-132.2521 320.8699,-128.5015 413,-155 442.746,-163.5556 452.5049,-167.9591 472,-192 486.6129,-210.0204 480.9107,-219.6539 490,-241 492.1344,-246.0126 494.587,-251.3142 496.9936,-256.3154\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"500.2126,-262.8937 494.3064,-257.9907 498.6742,-259.75 497.1358,-256.6062 497.1358,-256.6062 497.1358,-256.6062 498.6742,-259.75 499.9652,-255.2216 500.2126,-262.8937 500.2126,-262.8937\"/>\n",
"<text text-anchor=\"start\" x=\"313\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M167.8873,-207.7075C173.4455,-192.4677 183.507,-170.6283 199,-157 218.6464,-139.7182 228.5416,-142.0426 254,-136 372.0607,-107.9779 406.1919,-121.6443 527,-133 551.4816,-135.3012 558.5668,-131.5484 582,-139 586.9654,-140.5789 592.0211,-142.8797 596.7133,-145.3633\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"602.8439,-148.8127 595.1986,-148.1254 599.7936,-147.0964 596.7433,-145.3801 596.7433,-145.3801 596.7433,-145.3801 599.7936,-147.0964 598.288,-142.6348 602.8439,-148.8127 602.8439,-148.8127\"/>\n",
"<text text-anchor=\"start\" x=\"375.5\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;6 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>1&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M167.411,-242.4856C174.7196,-267.6791 188.7015,-312.6339 199,-326 234.0727,-371.5196 256.571,-376.1422 313,-387 382.3951,-400.3527 403.1053,-403.7319 472,-388 524.9059,-375.9191 541.3528,-370.9555 582,-335 592.4208,-325.782 601.0013,-312.8512 607.168,-301.7373\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"610.5157,-295.4453 610.0085,-303.1047 608.8716,-298.5352 607.2276,-301.6251 607.2276,-301.6251 607.2276,-301.6251 608.8716,-298.5352 604.4468,-300.1455 610.5157,-295.4453 610.5157,-295.4453\"/>\n",
"<text text-anchor=\"start\" x=\"374\" y=\"-401.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M264.0447,-266.9335C257.099,-258.0569 247.2134,-247.3549 236,-241 221.2938,-232.6657 202.669,-228.669 187.8477,-226.7542\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.4847,-225.9306 187.7915,-223.5783 183.963,-226.3197 187.4413,-226.7088 187.4413,-226.7088 187.4413,-226.7088 183.963,-226.3197 187.0912,-229.8393 180.4847,-225.9306 180.4847,-225.9306\"/>\n",
"<text text-anchor=\"start\" x=\"200.5\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M264.9254,-297.5414C262.2303,-307.9087 265.4219,-318 274.5,-318 281.4504,-318 284.9503,-312.0847 284.9995,-304.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"284.0746,-297.5414 288.1004,-304.0771 284.5256,-301.0123 284.9767,-304.4831 284.9767,-304.4831 284.9767,-304.4831 284.5256,-301.0123 281.853,-304.889 284.0746,-297.5414 284.0746,-297.5414\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-321.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M283.3651,-265.9079C290.3166,-254.3395 300.8312,-238.9192 313,-228 328.5509,-214.046 335.9189,-215.4698 354,-205 359.424,-201.8593 365.2437,-198.4195 370.6739,-195.1793\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"376.8226,-191.4972 372.4355,-197.7961 373.8199,-193.2954 370.8171,-195.0936 370.8171,-195.0936 370.8171,-195.0936 373.8199,-193.2954 369.1987,-192.3912 376.8226,-191.4972 376.8226,-191.4972\"/>\n",
"<text text-anchor=\"start\" x=\"315\" y=\"-231.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M292.8142,-281.7715C308.9276,-281.5701 333.0209,-281.2677 354,-281 399.4985,-280.4194 452.5336,-279.7301 483.1424,-279.3311\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"490.4228,-279.2362 483.4646,-282.4773 486.9231,-279.2818 483.4234,-279.3275 483.4234,-279.3275 483.4234,-279.3275 486.9231,-279.2818 483.3823,-276.1778 490.4228,-279.2362 490.4228,-279.2362\"/>\n",
"<text text-anchor=\"start\" x=\"372\" y=\"-283.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M280.1047,-264.5687C286.2686,-247.2142 297.4102,-220.4314 313,-201 333.8076,-175.065 341.2485,-167.6461 372,-155 447.7459,-123.8506 548.0292,-141.6065 593.6004,-152.4828\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"600.4324,-154.1608 592.8831,-155.5502 597.0335,-153.3259 593.6345,-152.4911 593.6345,-152.4911 593.6345,-152.4911 597.0335,-153.3259 594.3858,-149.432 600.4324,-154.1608 600.4324,-154.1608\"/>\n",
"<text text-anchor=\"start\" x=\"434.5\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M287.7023,-294.8692C294.6894,-300.9719 303.7284,-307.8247 313,-312 400.4105,-351.3641 435.1779,-366.5466 527,-339 554.8468,-330.646 582.0443,-310.7097 599.3427,-296.1016\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"604.8162,-291.3762 601.5761,-298.335 602.1669,-293.6634 599.5176,-295.9506 599.5176,-295.9506 599.5176,-295.9506 602.1669,-293.6634 597.4591,-293.5662 604.8162,-291.3762 604.8162,-291.3762\"/>\n",
"<text text-anchor=\"start\" x=\"433\" y=\"-356.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M374.2939,-179.2816C347.5473,-175.8662 296.2316,-171.5209 254,-181 228.4196,-186.7417 201.6771,-200.664 183.7577,-211.323\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"177.5734,-215.0811 181.9196,-208.7539 180.5645,-213.2634 183.5555,-211.4458 183.5555,-211.4458 183.5555,-211.4458 180.5645,-213.2634 185.1914,-214.1377 177.5734,-215.0811 177.5734,-215.0811\"/>\n",
"<text text-anchor=\"start\" x=\"257.5\" y=\"-184.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M385.2195,-198.5259C378.6456,-211.9112 367.8806,-230.5297 354,-243 345.1639,-250.9384 318.0273,-263.5037 297.9036,-272.2174\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"291.3845,-275.0126 296.5767,-269.3589 294.6013,-273.6333 297.8181,-272.254 297.8181,-272.254 297.8181,-272.254 294.6013,-273.6333 299.0594,-275.1491 291.3845,-275.0126 291.3845,-275.0126\"/>\n",
"<text text-anchor=\"start\" x=\"315\" y=\"-268.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M382.687,-197.1666C379.7134,-207.6641 382.9844,-218 392.5,-218 399.7854,-218 403.4103,-211.9413 403.3747,-204.39\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"402.313,-197.1666 406.4476,-203.6341 402.822,-200.6294 403.331,-204.0922 403.331,-204.0922 403.331,-204.0922 402.822,-200.6294 400.2145,-204.5503 402.313,-197.1666 402.313,-197.1666\"/>\n",
"<text text-anchor=\"start\" x=\"374\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M401.844,-197.633C408.8825,-208.4907 419.2999,-222.7858 431,-233 446.7396,-246.7407 454.0446,-245.316 472,-256 476.9784,-258.9623 482.2802,-262.234 487.2557,-265.3578\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"493.3345,-269.2011 485.7345,-268.1228 490.3762,-267.3307 487.4179,-265.4603 487.4179,-265.4603 487.4179,-265.4603 490.3762,-267.3307 489.1012,-262.7978 493.3345,-269.2011 493.3345,-269.2011\"/>\n",
"<text text-anchor=\"start\" x=\"431\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M410.0214,-177.3001C416.5617,-175.7058 424.0794,-174.0614 431,-173 488.382,-164.1993 556.5539,-160.8663 592.6438,-159.6539\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"599.8426,-159.4262 592.9457,-162.796 596.3443,-159.5369 592.8461,-159.6476 592.8461,-159.6476 592.8461,-159.6476 596.3443,-159.5369 592.7464,-156.4992 599.8426,-159.4262 599.8426,-159.4262\"/>\n",
"<text text-anchor=\"start\" x=\"491.5\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M410.6144,-184.0305C427.0161,-186.244 451.6522,-190.5134 472,-198 519.2944,-215.4012 569.6861,-246.524 597.1568,-264.7063\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"602.9851,-268.5981 595.4143,-267.3304 600.0743,-266.6544 597.1636,-264.7108 597.1636,-264.7108 597.1636,-264.7108 600.0743,-266.6544 598.9129,-262.0911 602.9851,-268.5981 602.9851,-268.5981\"/>\n",
"<text text-anchor=\"start\" x=\"490\" y=\"-225.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M504.0612,-296.8062C497.5609,-321.2711 484.8262,-363.2552 472,-372 456.9441,-382.2649 449.1581,-373.5279 431,-372 351.4924,-365.3098 325.9205,-376.5495 254,-342 224.49,-327.8238 219.2742,-318.7052 199,-293 188.1613,-279.2579 178.8805,-261.8353 172.3896,-248.066\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"169.4328,-241.6322 175.2182,-246.6772 170.8944,-244.8124 172.356,-247.9927 172.356,-247.9927 172.356,-247.9927 170.8944,-244.8124 169.4938,-249.3081 169.4328,-241.6322 169.4328,-241.6322\"/>\n",
"<text text-anchor=\"start\" x=\"316.5\" y=\"-371.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M492.0913,-286.4238C485.9126,-288.916 478.7476,-291.4528 472,-293 403.1154,-308.795 382.4241,-308.2237 313,-295 308.1575,-294.0776 303.0903,-292.6902 298.2817,-291.1604\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"291.478,-288.8548 299.1187,-288.1182 294.7928,-289.9781 298.1076,-291.1015 298.1076,-291.1015 298.1076,-291.1015 294.7928,-289.9781 297.0966,-294.0849 291.478,-288.8548 291.478,-288.8548\"/>\n",
"<text text-anchor=\"start\" x=\"374\" y=\"-307.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M500.8351,-262.5635C492.7097,-245.7109 479.9723,-221.005 472,-214 467.5625,-210.1009 438.0353,-198.7244 416.2555,-190.6484\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"409.498,-188.1559 417.1556,-187.623 412.7817,-189.3671 416.0655,-190.5784 416.0655,-190.5784 416.0655,-190.5784 412.7817,-189.3671 414.9754,-193.5337 409.498,-188.1559 409.498,-188.1559\"/>\n",
"<text text-anchor=\"start\" x=\"433\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M499.2674,-294.5414C496.6685,-304.9087 499.7461,-315 508.5,-315 515.2022,-315 518.577,-309.0847 518.6245,-301.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"517.7326,-294.5414 521.7286,-301.0955 518.1678,-298.0143 518.603,-301.4871 518.603,-301.4871 518.603,-301.4871 518.1678,-298.0143 515.4775,-301.8788 517.7326,-294.5414 517.7326,-294.5414\"/>\n",
"<text text-anchor=\"start\" x=\"488\" y=\"-318.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M520.6368,-265.6994C540.205,-244.2548 578.7794,-201.9815 601.0507,-177.5746\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"605.8088,-172.3602 603.4173,-179.6543 603.4497,-174.9456 601.0905,-177.531 601.0905,-177.531 601.0905,-177.531 603.4497,-174.9456 598.7636,-175.4077 605.8088,-172.3602 605.8088,-172.3602\"/>\n",
"<text text-anchor=\"start\" x=\"546.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M526.5817,-279C544.6512,-279 572.5828,-279 592.8174,-279\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"599.8914,-279 592.8915,-282.1501 596.3914,-279 592.8914,-279.0001 592.8914,-279.0001 592.8914,-279.0001 596.3914,-279 592.8914,-275.8501 599.8914,-279 599.8914,-279\"/>\n",
"<text text-anchor=\"start\" x=\"545\" y=\"-282.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M608.7674,-174.5414C606.1685,-184.9087 609.2461,-195 618,-195 624.7022,-195 628.077,-189.0847 628.1245,-181.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"627.2326,-174.5414 631.2286,-181.0955 627.6678,-178.0143 628.103,-181.4871 628.103,-181.4871 628.103,-181.4871 627.6678,-178.0143 624.9775,-181.8788 627.2326,-174.5414 627.2326,-174.5414\"/>\n",
"<text text-anchor=\"start\" x=\"601\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"731\" cy=\"-178\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"731\" y=\"-174.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M636.222,-159.4723C651.9358,-160.1603 675.1604,-161.85 695,-166 699.0485,-166.8468 703.2764,-168 707.3522,-169.2584\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"714.0095,-171.4399 706.3766,-172.2535 710.6835,-170.35 707.3575,-169.2601 707.3575,-169.2601 707.3575,-169.2601 710.6835,-170.35 708.3384,-166.2667 714.0095,-171.4399 714.0095,-171.4399\"/>\n",
"<text text-anchor=\"start\" x=\"656\" y=\"-169.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"731\" cy=\"-272\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"731\" y=\"-268.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;8 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>5&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M625.5018,-175.5538C631.8548,-188.376 641.8563,-206.0737 654,-219 669.8915,-235.9158 692.0586,-250.4724 708.5299,-260.0265\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"714.7601,-263.5606 707.1173,-262.8467 711.7158,-261.8337 708.6715,-260.1068 708.6715,-260.1068 708.6715,-260.1068 711.7158,-261.8337 710.2257,-257.3669 714.7601,-263.5606 714.7601,-263.5606\"/>\n",
"<text text-anchor=\"start\" x=\"654\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M608.7674,-294.5414C606.1685,-304.9087 609.2461,-315 618,-315 624.7022,-315 628.077,-309.0847 628.1245,-301.6591\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"627.2326,-294.5414 631.2286,-301.0955 627.6678,-298.0143 628.103,-301.4871 628.103,-301.4871 628.103,-301.4871 627.6678,-298.0143 624.9775,-301.8788 627.2326,-294.5414 627.2326,-294.5414\"/>\n",
"<text text-anchor=\"start\" x=\"599.5\" y=\"-318.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M622.1818,-261.4118C627.0805,-244.4652 636.8028,-219.2193 654,-204 668.3855,-191.269 689.2487,-184.7255 705.6306,-181.389\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"712.8027,-180.071 706.4874,-184.4344 709.3604,-180.7036 705.918,-181.3363 705.918,-181.3363 705.918,-181.3363 709.3604,-180.7036 705.3486,-178.2382 712.8027,-180.071 712.8027,-180.071\"/>\n",
"<text text-anchor=\"start\" x=\"656\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M636.1554,-277.8753C655.0184,-276.7068 684.6779,-274.8695 705.8045,-273.5608\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"712.8897,-273.1219 706.0978,-276.6987 709.3963,-273.3383 705.903,-273.5548 705.903,-273.5548 705.903,-273.5548 709.3963,-273.3383 705.7082,-270.4108 712.8897,-273.1219 712.8897,-273.1219\"/>\n",
"<text text-anchor=\"start\" x=\"654\" y=\"-279.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M722.0212,-193.916C719.679,-204.1504 722.6719,-214 731,-214 737.3762,-214 740.625,-208.2263 740.7465,-200.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"739.9788,-193.916 743.8721,-200.5315 740.3598,-197.3952 740.7408,-200.8744 740.7408,-200.8744 740.7408,-200.8744 740.3598,-197.3952 737.6095,-201.2174 739.9788,-193.916 739.9788,-193.916\"/>\n",
"<text text-anchor=\"start\" x=\"712.5\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"837.5\" cy=\"-320\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"837.5\" y=\"-316.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">9</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;9 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>7&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M742.3089,-192.3825C756.2789,-210.2219 780.6881,-241.6297 801,-269 808.3454,-278.8979 816.3317,-290.0147 822.9559,-299.3369\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"827.0917,-305.173 820.4742,-301.283 825.068,-302.3173 823.0443,-299.4617 823.0443,-299.4617 823.0443,-299.4617 825.068,-302.3173 825.6144,-297.6403 827.0917,-305.173 827.0917,-305.173\"/>\n",
"<text text-anchor=\"start\" x=\"767\" y=\"-272.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"950.4481\" cy=\"-225\" rx=\"21.3963\" ry=\"21.3963\"/>\n",
"<text text-anchor=\"middle\" x=\"950.4481\" y=\"-221.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">10</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;10 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>7&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M749.0175,-175.102C773.5063,-171.7199 818.5413,-167.4831 856,-175 882.3124,-180.2801 909.0437,-195.5565 927.3201,-207.8469\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"933.1812,-211.8817 925.6291,-210.5071 930.2982,-209.8971 927.4153,-207.9124 927.4153,-207.9124 927.4153,-207.9124 930.2982,-209.8971 929.2015,-205.3178 933.1812,-211.8817 933.1812,-211.8817\"/>\n",
"<text text-anchor=\"start\" x=\"819\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M722.0212,-287.916C719.679,-298.1504 722.6719,-308 731,-308 737.3762,-308 740.625,-302.2263 740.7465,-294.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"739.9788,-287.916 743.8721,-294.5315 740.3598,-291.3952 740.7408,-294.8744 740.7408,-294.8744 740.7408,-294.8744 740.3598,-291.3952 737.6095,-295.2174 739.9788,-287.916 739.9788,-287.916\"/>\n",
"<text text-anchor=\"start\" x=\"710.5\" y=\"-311.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;9 -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>8&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M747.6406,-279.5C765.6163,-287.6017 794.3798,-300.5655 814.5089,-309.6378\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"820.9762,-312.5527 813.3001,-312.5481 817.7853,-311.1145 814.5945,-309.6763 814.5945,-309.6763 814.5945,-309.6763 817.7853,-311.1145 815.8888,-306.8045 820.9762,-312.5527 820.9762,-312.5527\"/>\n",
"<text text-anchor=\"start\" x=\"767\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M738.8867,-255.6187C744.9563,-245.0494 754.436,-232.1639 767,-226 817.2618,-201.3415 884.992,-210.0748 922.5039,-217.9693\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"929.5892,-219.5269 922.0761,-221.1004 926.1708,-218.7754 922.7525,-218.0239 922.7525,-218.0239 922.7525,-218.0239 926.1708,-218.7754 923.4288,-214.9473 929.5892,-219.5269 929.5892,-219.5269\"/>\n",
"<text text-anchor=\"start\" x=\"819\" y=\"-214.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;9 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>9&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M828.5212,-335.916C826.179,-346.1504 829.1719,-356 837.5,-356 843.8762,-356 847.125,-350.2263 847.2465,-342.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"846.4788,-335.916 850.3721,-342.5315 846.8598,-339.3952 847.2408,-342.8744 847.2408,-342.8744 847.2408,-342.8744 846.8598,-339.3952 844.1095,-343.2174 846.4788,-335.916 846.4788,-335.916\"/>\n",
"<text text-anchor=\"start\" x=\"820.5\" y=\"-374.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"829.5\" y=\"-359.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;10 -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>9&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M841.6857,-302.4256C846.6113,-285.5374 856.4382,-260.504 874,-246 887.3153,-235.0031 905.9423,-229.7412 921.4757,-227.2343\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"928.8159,-226.2119 922.3175,-230.2975 925.3494,-226.6948 921.8829,-227.1777 921.8829,-227.1777 921.8829,-227.1777 925.3494,-226.6948 921.4483,-224.0578 928.8159,-226.2119 928.8159,-226.2119\"/>\n",
"<text text-anchor=\"start\" x=\"874\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"884.5\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>11</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1190.2405\" cy=\"-320\" rx=\"21.3963\" ry=\"21.3963\"/>\n",
"<text text-anchor=\"middle\" x=\"1190.2405\" y=\"-316.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">11</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;11 -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>9&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M839.0651,-338.08C842.7297,-375.9557 853.1763,-461.7267 874,-481 912.2073,-516.3626 937.9736,-494.2122 989.8962,-498 1061.6131,-503.2318 1097.4821,-529.2565 1150.7924,-481 1170.1646,-463.4643 1181.903,-389.7926 1187.0899,-348.4503\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1187.9536,-341.3723 1190.2325,-348.7023 1187.5296,-344.8465 1187.1057,-348.3208 1187.1057,-348.3208 1187.1057,-348.3208 1187.5296,-344.8465 1183.9789,-347.9392 1187.9536,-341.3723 1187.9536,-341.3723\"/>\n",
"<text text-anchor=\"start\" x=\"991.8962\" y=\"-521.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1002.3962\" y=\"-506.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>12</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1070.3443\" cy=\"-321\" rx=\"21.3963\" ry=\"21.3963\"/>\n",
"<text text-anchor=\"middle\" x=\"1070.3443\" y=\"-317.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">12</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;12 -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>9&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M854.7927,-325.1717C860.8136,-326.7291 867.6506,-328.2287 874,-329 943.2228,-337.4084 961.5132,-335.9645 1030.8962,-329 1034.5401,-328.6342 1038.3452,-328.083 1042.0928,-327.4375\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1049.1714,-326.104 1042.8756,-330.4955 1045.7319,-326.752 1042.2924,-327.4 1042.2924,-327.4 1042.2924,-327.4 1045.7319,-326.752 1041.7093,-324.3044 1049.1714,-326.104 1049.1714,-326.104\"/>\n",
"<text text-anchor=\"start\" x=\"929.9481\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"942.4481\" y=\"-337.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;9 -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>10&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M938.7608,-243.3665C931.5777,-253.7387 921.7157,-266.4887 911,-276 906.609,-279.8974 879.6693,-295.7281 859.6693,-307.2875\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"853.457,-310.8698 857.9474,-304.6441 856.489,-309.1214 859.521,-307.3729 859.521,-307.3729 859.521,-307.3729 856.489,-309.1214 861.0946,-310.1017 853.457,-310.8698 853.457,-310.8698\"/>\n",
"<text text-anchor=\"start\" x=\"875.5\" y=\"-315.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"884.5\" y=\"-300.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;10 -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>10&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M940.4505,-244.0774C938.5843,-254.6824 941.9168,-264.4481 950.4481,-264.4481 956.9798,-264.4481 960.4642,-258.7236 960.9011,-251.2808\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"960.4457,-244.0774 964.0312,-250.8647 960.6666,-247.5704 960.8875,-251.0635 960.8875,-251.0635 960.8875,-251.0635 960.6666,-247.5704 957.7437,-251.2623 960.4457,-244.0774 960.4457,-244.0774\"/>\n",
"<text text-anchor=\"start\" x=\"931.9481\" y=\"-283.2481\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"942.4481\" y=\"-268.2481\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;11 -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>10&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M965.9722,-209.52C991.3882,-186.1233 1043.8561,-145.8987 1091.7924,-160 1121.715,-168.8022 1131.776,-173.2772 1150.7924,-198 1172.0058,-225.579 1182.0207,-264.9608 1186.6038,-291.4515\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1187.7573,-298.5609 1183.5268,-292.1557 1187.1967,-295.106 1186.6362,-291.6512 1186.6362,-291.6512 1186.6362,-291.6512 1187.1967,-295.106 1189.7455,-291.1467 1187.7573,-298.5609 1187.7573,-298.5609\"/>\n",
"<text text-anchor=\"start\" x=\"1051.8443\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1062.3443\" y=\"-163.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;12 -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>10&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M962.0313,-243.4855C969.1797,-253.8973 979.0418,-266.6473 989.8962,-276 990.1992,-276.2611 1021.5332,-293.7654 1045.0007,-306.8623\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1051.3788,-310.4214 1043.7311,-309.7611 1048.3224,-308.7159 1045.2661,-307.0104 1045.2661,-307.0104 1045.2661,-307.0104 1048.3224,-308.7159 1046.8011,-304.2596 1051.3788,-310.4214 1051.3788,-310.4214\"/>\n",
"<text text-anchor=\"start\" x=\"989.8962\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1002.3962\" y=\"-301.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;9 -->\n",
"<g id=\"edge52\" class=\"edge\">\n",
"<title>11&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1176.3355,-336.7541C1158.9426,-356.2203 1127.1214,-387.1788 1091.7924,-399 1042.7012,-415.4261 958.0796,-414.0687 929,-405 895.133,-394.4383 867.1803,-362.6558 851.4161,-341.0925\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"847.2982,-335.3077 853.9239,-339.1837 849.3279,-338.1591 851.3577,-341.0104 851.3577,-341.0104 851.3577,-341.0104 849.3279,-338.1591 848.7914,-342.8372 847.2982,-335.3077 847.2982,-335.3077\"/>\n",
"<text text-anchor=\"start\" x=\"993.3962\" y=\"-429.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"1002.3962\" y=\"-414.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;10 -->\n",
"<g id=\"edge53\" class=\"edge\">\n",
"<title>11&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1174.3808,-305.3238C1167.4243,-299.2664 1158.9884,-292.4125 1150.7924,-287 1100.9019,-254.0535 1088.9481,-240.3008 1030.8962,-226 1014.1128,-221.8655 994.757,-221.4946 979.2375,-222.2147\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"971.9551,-222.6441 978.7575,-219.0874 975.449,-222.4381 978.9429,-222.232 978.9429,-222.232 978.9429,-222.232 975.449,-222.4381 979.1284,-225.3765 971.9551,-222.6441 971.9551,-222.6441\"/>\n",
"<text text-anchor=\"start\" x=\"1051.8443\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"1062.3443\" y=\"-251.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;11 -->\n",
"<g id=\"edge54\" class=\"edge\">\n",
"<title>11&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1179.8859,-339.0774C1177.953,-349.6824 1181.4045,-359.4481 1190.2405,-359.4481 1197.0055,-359.4481 1200.6143,-353.7236 1201.0668,-346.2808\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1200.5951,-339.0774 1204.1959,-345.8566 1200.8239,-342.5699 1201.0526,-346.0625 1201.0526,-346.0625 1201.0526,-346.0625 1200.8239,-342.5699 1197.9093,-346.2683 1200.5951,-339.0774 1200.5951,-339.0774\"/>\n",
"<text text-anchor=\"start\" x=\"1171.7405\" y=\"-378.2481\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1182.2405\" y=\"-363.2481\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;12 -->\n",
"<g id=\"edge55\" class=\"edge\">\n",
"<title>11&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1173.2122,-306.246C1166.6108,-301.7418 1158.735,-297.3049 1150.7924,-295 1133.2921,-289.9216 1127.2466,-289.7654 1109.7924,-295 1103.9195,-296.7613 1098.113,-299.7108 1092.8348,-303.0044\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1086.909,-306.9783 1090.9683,-300.4633 1089.8159,-305.0289 1092.7228,-303.0795 1092.7228,-303.0795 1092.7228,-303.0795 1089.8159,-305.0289 1094.4772,-305.6957 1086.909,-306.9783 1086.909,-306.9783\"/>\n",
"<text text-anchor=\"start\" x=\"1109.7924\" y=\"-313.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1122.2924\" y=\"-298.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;9 -->\n",
"<g id=\"edge56\" class=\"edge\">\n",
"<title>12&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1051.7798,-332.5506C1045.2826,-336.3969 1037.8677,-340.5711 1030.8962,-344 989.1463,-364.5343 974.5453,-377.5044 929,-368 902.7255,-362.517 875.9073,-347.0461 858.1565,-335.1357\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"852.0448,-330.9338 859.5977,-332.3039 854.929,-332.9167 857.8131,-334.8996 857.8131,-334.8996 857.8131,-334.8996 854.929,-332.9167 856.0285,-337.4954 852.0448,-330.9338 852.0448,-330.9338\"/>\n",
"<text text-anchor=\"start\" x=\"933.4481\" y=\"-389.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"942.4481\" y=\"-374.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;10 -->\n",
"<g id=\"edge57\" class=\"edge\">\n",
"<title>12&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1065.3381,-299.8906C1059.9206,-281.7598 1049.4548,-256.3429 1030.8962,-242 1016.3018,-230.7208 995.9455,-226.4967 979.3617,-225.0792\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"972.0418,-224.6102 979.2289,-221.9144 975.5346,-224.8341 979.0275,-225.0579 979.0275,-225.0579 979.0275,-225.0579 975.5346,-224.8341 978.826,-228.2015 972.0418,-224.6102 972.0418,-224.6102\"/>\n",
"<text text-anchor=\"start\" x=\"991.8962\" y=\"-260.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"1002.3962\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;11 -->\n",
"<g id=\"edge58\" class=\"edge\">\n",
"<title>12&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1092.0172,-323.5951C1097.7851,-324.1769 1104.0174,-324.708 1109.7924,-325 1127.9914,-325.9203 1132.6064,-326.1479 1150.7924,-325 1154.403,-324.7721 1158.1885,-324.428 1161.926,-324.0247\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1168.9955,-323.1915 1162.4124,-327.1393 1165.5196,-323.6012 1162.0436,-324.011 1162.0436,-324.011 1162.0436,-324.011 1165.5196,-323.6012 1161.6749,-320.8826 1168.9955,-323.1915 1168.9955,-323.1915\"/>\n",
"<text text-anchor=\"start\" x=\"1111.7924\" y=\"-343.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1122.2924\" y=\"-328.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;12 -->\n",
"<g id=\"edge59\" class=\"edge\">\n",
"<title>12&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1059.9897,-340.0774C1058.0568,-350.6824 1061.5084,-360.4481 1070.3443,-360.4481 1077.1093,-360.4481 1080.7181,-354.7236 1081.1706,-347.2808\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1080.6989,-340.0774 1084.2997,-346.8566 1080.9277,-343.5699 1081.1564,-347.0625 1081.1564,-347.0625 1081.1564,-347.0625 1080.9277,-343.5699 1078.0132,-347.2683 1080.6989,-340.0774 1080.6989,-340.0774\"/>\n",
"<text text-anchor=\"start\" x=\"1049.8443\" y=\"-379.2481\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1062.3443\" y=\"-364.2481\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59c210> >"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.sl(a)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 17,
"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": 18,
"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": 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=\"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cbd0> >"
]
},
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec57b9c0> >"
]
},
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59ce40> >"
]
},
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cc90> >"
]
},
"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": 20,
"metadata": {},
"outputs": [],
"source": [
"!rm example1.aut"
]
},
{
"cell_type": "code",
"execution_count": 21,
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cf00> >"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.complete(a)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59c8d0> >"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.complete(spot.translate('Ga'))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.formula('(a W c) & FGa').is_syntactic_persistence()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"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=\"50.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=\"94\" 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=\"92\" 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=\"135.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=\"279pt\" viewBox=\"0.00 0.00 484.00 279.06\" width=\"484pt\" 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 275.0638)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-275.0638 480,-275.0638 480,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"191\" y=\"-256.8638\">Inf(</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"213\" y=\"-256.8638\">⓿</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"229\" y=\"-256.8638\">)&amp;Inf(</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"265\" y=\"-256.8638\">❶</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-256.8638\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"194\" y=\"-242.8638\">[gen. Büchi 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>0</title>\n",
"<ellipse cx=\"65\" cy=\"-29.0638\" 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=\"-25.3638\">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,-29.0638C4.383,-29.0638 17.3969,-29.0638 30.8528,-29.0638\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.8798,-29.0638 30.8799,-32.2139 34.3798,-29.0638 30.8798,-29.0639 30.8798,-29.0639 30.8798,-29.0639 34.3798,-29.0638 30.8798,-25.9139 37.8798,-29.0638 37.8798,-29.0638\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>1</title>\n",
"<ellipse cx=\"319\" cy=\"-123.0638\" 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=\"-119.3638\">0,1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M80.0121,-44.4121C98.2989,-62.0597 130.9836,-90.3536 165,-104.0638 203.8607,-119.7263 252.3451,-123.3706 284.4157,-123.8186\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"291.799,-123.8693 284.7775,-126.9711 288.2991,-123.8452 284.7992,-123.8212 284.7992,-123.8212 284.7992,-123.8212 288.2991,-123.8452 284.8208,-120.6712 291.799,-123.8693 291.799,-123.8693\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"173.5\" y=\"-136.8638\">!a &amp; b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"184\" y=\"-121.8638\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>2</title>\n",
"<ellipse cx=\"192\" cy=\"-29.0638\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"182\" y=\"-25.3638\">1,0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;2</title>\n",
"<path d=\"M92.2447,-29.0638C111.4127,-29.0638 137.2089,-29.0638 157.7667,-29.0638\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"164.8004,-29.0638 157.8004,-32.2139 161.3004,-29.0638 157.8004,-29.0639 157.8004,-29.0639 157.8004,-29.0639 161.3004,-29.0638 157.8003,-25.9139 164.8004,-29.0638 164.8004,-29.0638\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"110\" y=\"-32.8638\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>3</title>\n",
"<ellipse cx=\"449\" cy=\"-88.0638\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"439\" y=\"-84.3638\">1,1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;3</title>\n",
"<path d=\"M89.2895,-20.5704C109.3161,-14.0403 138.6165,-5.5629 165,-2.0638 188.7917,1.0916 195.0789,-.1195 219,-2.0638 302.9404,-8.8862 330.6391,-1.7029 404,-43.0638 414.322,-48.8833 423.8935,-57.7249 431.5317,-66.035\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"436.4962,-71.6595 429.5023,-68.4959 434.1801,-69.0355 431.8639,-66.4114 431.8639,-66.4114 431.8639,-66.4114 434.1801,-69.0355 434.2256,-64.3269 436.4962,-71.6595 436.4962,-71.6595\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-9.8638\">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=\"M313.4273,-140.8455C312.4803,-150.3787 314.3379,-159.0638 319,-159.0638 322.4237,-159.0638 324.335,-154.3798 324.7337,-148.1159\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"324.5727,-140.8455 327.877,-147.774 324.6502,-144.3446 324.7277,-147.8438 324.7277,-147.8438 324.7277,-147.8438 324.6502,-144.3446 321.5785,-147.9135 324.5727,-140.8455 324.5727,-140.8455\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-177.8638\">!a &amp; !c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"311\" y=\"-162.8638\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M310.4657,-140.3128C304.4091,-161.4983 307.2539,-189.0638 319,-189.0638 329.5072,-189.0638 332.8918,-167.0063 329.1536,-147.1891\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"327.5343,-140.3128 332.205,-146.4043 328.3366,-143.7196 329.1389,-147.1264 329.1389,-147.1264 329.1389,-147.1264 328.3366,-143.7196 326.0727,-147.8485 327.5343,-140.3128 327.5343,-140.3128\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"301\" y=\"-206.8638\">!a &amp; c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"303\" y=\"-192.8638\">⓿</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"319\" y=\"-192.8638\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M326.4052,-140.6219C333.6277,-155.2329 346.144,-175.0472 364,-184.0638 379.8693,-192.0771 388.9968,-193.6007 404,-184.0638 428.3898,-168.5601 439.7893,-135.9631 444.9584,-113.0715\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"446.4264,-106.0142 448.0848,-113.509 445.7136,-109.4409 445.0008,-112.8675 445.0008,-112.8675 445.0008,-112.8675 445.7136,-109.4409 441.9168,-112.226 446.4264,-106.0142 446.4264,-106.0142\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"366\" y=\"-193.8638\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M343.3042,-131.1652C360.7865,-135.6248 384.602,-138.8417 404,-131.0638 414.9197,-126.6853 424.6906,-118.2535 432.3148,-110.0081\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"437.2378,-104.3815 434.999,-111.724 434.9331,-107.0156 432.6283,-109.6497 432.6283,-109.6497 432.6283,-109.6497 434.9331,-107.0156 430.2577,-107.5754 437.2378,-104.3815 437.2378,-104.3815\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"368\" y=\"-153.8638\">a &amp; c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"376\" y=\"-138.8638\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M210.196,-42.5317C232.5468,-59.0748 270.5227,-87.1829 295.1794,-105.4327\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"300.8378,-109.6208 293.3372,-107.9882 298.0245,-107.5386 295.2113,-105.4563 295.2113,-105.4563 295.2113,-105.4563 298.0245,-107.5386 297.0853,-102.9244 300.8378,-109.6208 300.8378,-109.6208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"237\" y=\"-90.8638\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M181.1016,-45.7278C178.6797,-55.6888 182.3125,-65.0638 192,-65.0638 199.2656,-65.0638 203.1255,-59.7903 203.5796,-52.9513\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"202.8984,-45.7278 206.6918,-52.4011 203.2271,-49.2124 203.5557,-52.6969 203.5557,-52.6969 203.5557,-52.6969 203.2271,-49.2124 200.4196,-52.9927 202.8984,-45.7278 202.8984,-45.7278\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"173.5\" y=\"-83.8638\">a &amp; !b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"184\" y=\"-68.8638\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>2-&gt;3</title>\n",
"<path d=\"M219.0517,-28.9307C260.2943,-29.5646 340.7713,-34.1216 404,-58.0638 411.5297,-60.915 419.0641,-65.222 425.7551,-69.6898\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"431.6385,-73.8008 424.0963,-72.3735 428.7695,-71.7961 425.9005,-69.7914 425.9005,-69.7914 425.9005,-69.7914 428.7695,-71.7961 427.7048,-67.2093 431.6385,-73.8008 431.6385,-73.8008\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"302\" y=\"-60.8638\">a &amp; b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"311\" y=\"-45.8638\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>3-&gt;1</title>\n",
"<path d=\"M423.5681,-94.9108C402.8262,-100.4952 373.4072,-108.4157 351.0544,-114.4337\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"344.0653,-116.3154 350.0057,-111.4538 347.445,-115.4055 350.8246,-114.4955 350.8246,-114.4955 350.8246,-114.4955 347.445,-115.4055 351.6436,-117.5372 344.0653,-116.3154 344.0653,-116.3154\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"364\" y=\"-113.8638\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>3-&gt;1</title>\n",
"<path d=\"M429.332,-75.4937C411.5934,-65.8674 385.1248,-55.8266 364,-66.0638 349.6039,-73.0401 338.4238,-87.1034 330.8082,-99.5147\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"327.1525,-105.8081 327.9447,-98.173 328.9105,-102.7816 330.6685,-99.7552 330.6685,-99.7552 330.6685,-99.7552 328.9105,-102.7816 333.3923,-101.3374 327.1525,-105.8081 327.1525,-105.8081\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"366\" y=\"-84.8638\">!a &amp; c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"376\" y=\"-69.8638\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge14\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M443.2476,-105.8455C442.27,-115.3787 444.1875,-124.0638 449,-124.0638 452.5342,-124.0638 454.5071,-119.3798 454.9186,-113.1159\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"454.7524,-105.8455 458.0617,-112.7716 454.8325,-109.3446 454.9125,-112.8437 454.9125,-112.8437 454.9125,-112.8437 454.8325,-109.3446 451.7633,-112.9157 454.7524,-105.8455 454.7524,-105.8455\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-142.8638\">a &amp; !c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"441\" y=\"-127.8638\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge15\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M440.1904,-105.3128C433.9385,-126.4983 436.875,-154.0638 449,-154.0638 459.8462,-154.0638 463.3399,-132.0063 459.4811,-112.1891\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"457.8096,-105.3128 462.524,-111.3706 458.6363,-108.7137 459.4631,-112.1147 459.4631,-112.1147 459.4631,-112.1147 458.6363,-108.7137 456.4022,-112.8588 457.8096,-105.3128 457.8096,-105.3128\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"433\" y=\"-171.8638\">a &amp; c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"433\" y=\"-157.8638\">⓿</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"449\" y=\"-157.8638\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg></div><div style='vertical-align:text-top;display:inline-block;width:50%;'><svg height=\"278pt\" viewBox=\"0.00 0.00 413.00 278.48\" width=\"413pt\" 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 274.4783)\">\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-274.4783 409,-274.4783 409,4 -4,4\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"155.5\" y=\"-256.2783\">Inf(</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"177.5\" y=\"-256.2783\">⓿</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"193.5\" y=\"-256.2783\">)&amp;Inf(</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"229.5\" y=\"-256.2783\">❶</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"245.5\" y=\"-256.2783\">)</text>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"158.5\" y=\"-242.2783\">[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=\"-28.4783\" 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=\"-24.7783\">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,-28.4783C4.178,-28.4783 17.9448,-28.4783 30.9241,-28.4783\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"37.9807,-28.4783 30.9808,-31.6284 34.4807,-28.4784 30.9807,-28.4784 30.9807,-28.4784 30.9807,-28.4784 34.4807,-28.4784 30.9807,-25.3284 37.9807,-28.4783 37.9807,-28.4783\" stroke=\"#000000\"/>\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=\"275\" cy=\"-122.4783\" 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=\"-118.7783\">1</text>\n",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M68.0094,-42.1794C84.1073,-59.5594 114.4491,-89.0069 147,-103.4783 180.4004,-118.3274 223.0486,-121.9763 249.6981,-122.6637\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"256.7693,-122.7859 249.7159,-125.8144 253.2698,-122.7254 249.7704,-122.6649 249.7704,-122.6649 249.7704,-122.6649 253.2698,-122.7254 249.8248,-119.5153 256.7693,-122.7859 256.7693,-122.7859\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"147\" y=\"-133.2783\">!a &amp; b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"157.5\" y=\"-118.2783\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>2</title>\n",
"<g id=\"a_node4\"><a xlink:title=\"1,0\">\n",
"<ellipse cx=\"165.5\" cy=\"-28.4783\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"165.5\" y=\"-24.7783\">2</text>\n",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>0-&gt;2</title>\n",
"<path d=\"M74.0817,-28.4783C92.1512,-28.4783 120.0828,-28.4783 140.3174,-28.4783\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"147.3914,-28.4783 140.3915,-31.6284 143.8914,-28.4784 140.3914,-28.4784 140.3914,-28.4784 140.3914,-28.4784 143.8914,-28.4784 140.3914,-25.3284 147.3914,-28.4783 147.3914,-28.4783\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-32.2783\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>3</title>\n",
"<g id=\"a_node5\"><a xlink:title=\"1,1\">\n",
"<ellipse cx=\"387\" cy=\"-87.4783\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"387\" y=\"-83.7783\">3</text>\n",
"</a>\n",
"</g>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>0-&gt;3</title>\n",
"<path d=\"M72.7785,-21.9058C90.7938,-15.2292 120.4175,-5.3387 147,-1.4783 163.2737,.885 167.5984,-.2917 184,-1.4783 259.7293,-6.9571 288.1583,5.1346 351,-37.4783 361.1671,-44.3726 369.4571,-55.1437 375.508,-64.9258\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"379.1583,-71.1605 372.9031,-66.7112 377.3899,-68.1401 375.6215,-65.1197 375.6215,-65.1197 375.6215,-65.1197 377.3899,-68.1401 378.3399,-63.5281 379.1583,-71.1605 379.1583,-71.1605\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"203.5\" y=\"-8.2783\">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=\"M270.1797,-139.8882C269.28,-149.5662 270.8867,-158.4783 275,-158.4783 278.0207,-158.4783 279.6896,-153.6719 280.0067,-147.2856\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"279.8203,-139.8882 283.1457,-146.8066 279.9085,-143.3871 279.9967,-146.886 279.9967,-146.886 279.9967,-146.886 279.9085,-143.3871 276.8477,-146.9654 279.8203,-139.8882 279.8203,-139.8882\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-177.2783\">!a &amp; !c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"267\" y=\"-162.2783\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>1-&gt;1</title>\n",
"<path d=\"M267.7325,-139.0742C262.2416,-160.3416 264.6641,-188.4783 275,-188.4783 284.2458,-188.4783 287.1594,-165.9637 283.7408,-145.9915\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"282.2675,-139.0742 286.8066,-145.2644 282.9966,-142.4974 283.7257,-145.9206 283.7257,-145.9206 283.7257,-145.9206 282.9966,-142.4974 280.6448,-146.5768 282.2675,-139.0742 282.2675,-139.0742\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"257\" y=\"-206.2783\">!a &amp; c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"259\" y=\"-192.2783\">⓿</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"275\" y=\"-192.2783\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M279.9602,-139.9118C285.1203,-154.443 294.7683,-174.21 311,-183.4783 326.4383,-192.2935 336.388,-193.6044 351,-183.4783 363.0357,-175.1376 374.471,-137.8639 381.1061,-112.293\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"382.8468,-105.4248 384.1805,-112.9841 381.9869,-108.8175 381.127,-112.2102 381.127,-112.2102 381.127,-112.2102 381.9869,-108.8175 378.0736,-111.4363 382.8468,-105.4248 382.8468,-105.4248\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"313\" y=\"-194.2783\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>1-&gt;3</title>\n",
"<path d=\"M291.8393,-129.0964C307.8181,-134.2861 332.1267,-139.2918 351,-130.4783 360.4199,-126.0794 368.2449,-117.8688 374.1666,-109.7918\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"378.3188,-103.7066 376.9753,-111.2642 376.346,-106.5977 374.3733,-109.4887 374.3733,-109.4887 374.3733,-109.4887 376.346,-106.5977 371.7713,-107.7133 378.3188,-103.7066 378.3188,-103.7066\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"315\" y=\"-153.2783\">a &amp; c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"323\" y=\"-138.2783\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>2-&gt;1</title>\n",
"<path d=\"M179.3683,-40.3835C198.7033,-56.9816 233.8422,-87.1465 255.7182,-105.9259\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"261.2444,-110.6698 253.8812,-108.5004 258.5887,-108.39 255.933,-106.1102 255.933,-106.1102 255.933,-106.1102 258.5887,-108.39 257.9848,-103.7201 261.2444,-110.6698 261.2444,-110.6698\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"202\" y=\"-92.2783\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>2-&gt;2</title>\n",
"<path d=\"M156.2674,-44.0198C153.6685,-54.387 156.7461,-64.4783 165.5,-64.4783 172.2022,-64.4783 175.577,-58.563 175.6245,-51.1374\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"174.7326,-44.0198 178.7286,-50.5738 175.1678,-47.4926 175.603,-50.9654 175.603,-50.9654 175.603,-50.9654 175.1678,-47.4926 172.4775,-51.3571 174.7326,-44.0198 174.7326,-44.0198\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"147\" y=\"-83.2783\">a &amp; !b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"157.5\" y=\"-68.2783\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>2-&gt;3</title>\n",
"<path d=\"M183.594,-27.7587C217.9351,-27.0979 294.2023,-29.0444 351,-55.4783 357.8232,-58.6539 364.2983,-63.5517 369.8268,-68.5683\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"375.0175,-73.5652 367.7898,-70.9798 372.496,-71.1378 369.9744,-68.7105 369.9744,-68.7105 369.9744,-68.7105 372.496,-71.1378 372.1591,-66.4411 375.0175,-73.5652 375.0175,-73.5652\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"258\" y=\"-56.2783\">a &amp; b</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"267\" y=\"-41.2783\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>3-&gt;1</title>\n",
"<path d=\"M369.6229,-92.9087C350.7682,-98.8008 320.5243,-108.252 299.3164,-114.8795\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"292.5,-117.0096 298.2418,-111.915 295.8407,-115.9656 299.1814,-114.9216 299.1814,-114.9216 299.1814,-114.9216 295.8407,-115.9656 300.121,-117.9282 292.5,-117.0096 292.5,-117.0096\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"311\" y=\"-114.2783\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>3-&gt;1</title>\n",
"<path d=\"M372.8693,-75.8011C366.5789,-71.3346 358.8309,-66.7663 351,-64.4783 333.9357,-59.4925 326.5358,-55.8361 311,-64.4783 297.9795,-71.7213 289.0654,-85.8382 283.3646,-98.3307\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"280.5224,-105.05 280.3484,-97.3758 281.886,-101.8265 283.2495,-98.603 283.2495,-98.603 283.2495,-98.603 281.886,-101.8265 286.1506,-99.8302 280.5224,-105.05 280.5224,-105.05\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"313\" y=\"-83.2783\">!a &amp; c</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"323\" y=\"-68.2783\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge14\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M382.0012,-104.8882C381.0681,-114.5662 382.7344,-123.4783 387,-123.4783 390.1326,-123.4783 391.8633,-118.6719 392.1921,-112.2856\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"391.9988,-104.8882 395.3307,-111.8035 392.0903,-108.387 392.1818,-111.8858 392.1818,-111.8858 392.1818,-111.8858 392.0903,-108.387 389.0329,-111.9682 391.9988,-104.8882 391.9988,-104.8882\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"369\" y=\"-142.2783\">a &amp; !c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"379\" y=\"-127.2783\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge15\">\n",
"<title>3-&gt;3</title>\n",
"<path d=\"M379.4634,-104.0742C373.769,-125.3416 376.2813,-153.4783 387,-153.4783 396.5883,-153.4783 399.6098,-130.9637 396.0645,-110.9915\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"394.5366,-104.0742 399.1223,-110.23 395.2915,-107.4918 396.0464,-110.9094 396.0464,-110.9094 396.0464,-110.9094 395.2915,-107.4918 392.9706,-111.5889 394.5366,-104.0742 394.5366,-104.0742\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-171.2783\">a &amp; c</text>\n",
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-157.2783\">⓿</text>\n",
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-157.2783\">❶</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": 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=\"161pt\" height=\"128pt\"\n",
" viewBox=\"0.00 0.00 161.00 128.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 124)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-124 157,-124 157,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"55.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"77.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"93.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"53.5\" y=\"-91.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=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" 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=\"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",
"<!-- 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,-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=\"51.5\" y=\"-57.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=\"135\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"130.5\" y=\"-14.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.3228,-18C84.7921,-18 98.0794,-18 109.5495,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"116.7766,-18 109.7767,-21.1501 113.2766,-18 109.7766,-18.0001 109.7766,-18.0001 109.7766,-18.0001 113.2766,-18 109.7766,-14.8501 116.7766,-18 116.7766,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.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=\"M128.2664,-35.0373C126.8922,-44.8579 129.1367,-54 135,-54 139.3975,-54 141.7594,-48.8576 142.0858,-42.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"141.7336,-35.0373 145.2263,-41.8728 141.9069,-38.533 142.0802,-42.0287 142.0802,-42.0287 142.0802,-42.0287 141.9069,-38.533 138.934,-42.1847 141.7336,-35.0373 141.7336,-35.0373\"/>\n",
"<text text-anchor=\"start\" x=\"131.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52abd0> >"
]
},
"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": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52ae40> >"
]
},
"execution_count": 26,
"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": 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=\"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52ab10> >"
]
},
"execution_count": 27,
"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": 28,
"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": 28,
"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": 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=\"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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec53da50> >"
]
},
"execution_count": 29,
"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": 30,
"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=\"161pt\" height=\"128pt\"\n",
" viewBox=\"0.00 0.00 161.00 128.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 124)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-124 157,-124 157,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"55.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"77.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"93.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"53.5\" y=\"-91.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=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" 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=\"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",
"<!-- 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,-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=\"51.5\" y=\"-57.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=\"135\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"130.5\" y=\"-14.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.3228,-18C84.7921,-18 98.0794,-18 109.5495,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"116.7766,-18 109.7767,-21.1501 113.2766,-18 109.7766,-18.0001 109.7766,-18.0001 109.7766,-18.0001 113.2766,-18 109.7766,-14.8501 116.7766,-18 116.7766,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.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=\"M128.2664,-35.0373C126.8922,-44.8579 129.1367,-54 135,-54 139.3975,-54 141.7594,-48.8576 142.0858,-42.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"141.7336,-35.0373 145.2263,-41.8728 141.9069,-38.533 142.0802,-42.0287 142.0802,-42.0287 142.0802,-42.0287 141.9069,-38.533 138.934,-42.1847 141.7336,-35.0373 141.7336,-35.0373\"/>\n",
"<text text-anchor=\"start\" x=\"131.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52abd0> >"
]
},
"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=\"188pt\" height=\"128pt\"\n",
" viewBox=\"0.00 0.00 188.00 128.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 124)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-124 184,-124 184,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"69\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"91\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"67\" y=\"-91.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=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" 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=\"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",
"<!-- 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,-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=\"51.5\" y=\"-57.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=\"162\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"162\" y=\"-14.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.4638,-18C91.6394,-18 117.386,-18 136.5153,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"143.7478,-18 136.7478,-21.1501 140.2478,-18 136.7478,-18.0001 136.7478,-18.0001 136.7478,-18.0001 140.2478,-18 136.7478,-14.8501 143.7478,-18 143.7478,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.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=\"M153.0212,-33.916C150.679,-44.1504 153.6719,-54 162,-54 168.3762,-54 171.625,-48.2263 171.7465,-40.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"170.9788,-33.916 174.8721,-40.5315 171.3598,-37.3952 171.7408,-40.8744 171.7408,-40.8744 171.7408,-40.8744 171.3598,-37.3952 168.6095,-41.2174 170.9788,-33.916 170.9788,-33.916\"/>\n",
"<text text-anchor=\"start\" x=\"145\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"154\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52abd0> >"
]
},
"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": 31,
"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=\"212pt\" height=\"128pt\"\n",
" viewBox=\"0.00 0.00 212.00 128.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 124)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-124 208,-124 208,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"81\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-91.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=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" 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=\"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",
"<!-- 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,-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=\"51.5\" y=\"-57.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=\"186\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"186\" y=\"-14.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.0759,-18C96.5544,-18 135.0643,-18 160.5273,-18\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"167.6585,-18 160.6585,-21.1501 164.1585,-18 160.6585,-18.0001 160.6585,-18.0001 160.6585,-18.0001 164.1585,-18 160.6584,-14.8501 167.6585,-18 167.6585,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.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=\"M175.292,-32.7917C171.8057,-43.4165 175.375,-54 186,-54 194.1348,-54 198.1336,-47.7961 197.9966,-40.1197\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"196.708,-32.7917 201.0228,-39.1403 197.3142,-36.2388 197.9204,-39.6859 197.9204,-39.6859 197.9204,-39.6859 197.3142,-36.2388 194.818,-40.2315 196.708,-32.7917 196.708,-32.7917\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"178\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52abd0> >"
]
},
"execution_count": 31,
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}