spot/tests/python/decompose.ipynb
Alexandre Duret-Lutz 6cec43294d dot: name the digraph
* spot/twaalgos/dot.cc: Here.
* NEWS: Mention the change.
* tests/core/alternating.test, tests/core/det.test,
tests/core/dstar.test, tests/core/monitor.test,
tests/core/neverclaimread.test, tests/core/readsave.test,
tests/core/sccdot.test, tests/core/tgbagraph.test,
tests/python/_altscc.ipynb, tests/python/_autparserr.ipynb,
tests/python/alternation.ipynb, tests/python/atva16-fig2a.ipynb,
tests/python/atva16-fig2b.ipynb, tests/python/automata-io.ipynb,
tests/python/automata.ipynb, tests/python/decompose.ipynb,
tests/python/gen.ipynb, tests/python/highlighting.ipynb,
tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
tests/python/parity.ipynb, tests/python/product.ipynb,
tests/python/randaut.ipynb, tests/python/satmin.ipynb,
tests/python/stutter-inv.ipynb, tests/python/testingaut.ipynb,
tests/python/word.ipynb: Adjust test cases.
2018-04-07 18:58:58 +02:00

6111 lines
466 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import display\n",
"import spot\n",
"spot.setup(show_default='.bans')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook demonstrates how to use the `decompose_scc()` function to split an automaton in up to three automata capturing different behaviors. This is based on the paper [Strength-based decomposition of the property Büchi automaton for faster model checking](https://www.lrde.epita.fr/~adl/dl/adl/renault.13.tacas.pdf) (TACAS'13).\n",
"\n",
"This page uses the Python bindings, but the same decompositions can be performed from the shell using [`autfilt`](https://spot.lrde.epita.fr/autfilt.html) and its `--decompose-scc` option.\n",
"\n",
"# Basics\n",
"\n",
"Let's define the following strengths of accepting SCCs:\n",
"\n",
"- an accepting SCC is **inherently weak** if it does not contain any rejecting cycle\n",
"- an accepting SCC is **inherently terminal** if it is *inherently weak* and complete (i.e. from any state, you can stay in the SCC by reading any word)\n",
"- an accepting SCC is **strictly inherently weak** if it is *inherently weak* and not complete (in other words: *weak* but not *terminal*)\n",
"- an accepting SCC is **strong** if it is not inherently weak.\n",
"\n",
"The strengths **strong**, **stricly inherently weak**, and **inherently terminal** define a partition of all accepting SCCs. The following Büchi automaton has 4 SCCs, and its 3 accepting SCCs show an example of each strength.\n",
"\n",
"Note: the reason we use the word *inherently* is that the *weak* and *terminal* properties are usually defined syntactically: an accepting SCC would be weak if all its transitions belong to the same acceptance sets. This syntactic criterion is a sufficient condition for an accepting SCC to not have any rejecting cycle, but it is not necessary. Hence a *weak* SCC is *inherently weak*; but while an *inherently weak* SCC is not necessarily *weak*, it can be modified to be *weak* without alterning the langage."
]
},
{
"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=\"496pt\" height=\"315pt\"\n",
" viewBox=\"0.00 0.00 496.00 315.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 311)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-311 492,-311 492,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"223\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"245\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"221\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"428,-148 428,-248 480,-248 480,-148 428,-148\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"166,-8 166,-108 218,-108 218,-8 166,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"345,-148 345,-233 397,-233 397,-148 345,-148\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-148 30,-263 293,-263 293,-148 30,-148\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-170.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,-174C4.178,-174 17.9448,-174 30.9241,-174\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-174 30.9808,-177.1501 34.4807,-174 30.9807,-174.0001 30.9807,-174.0001 30.9807,-174.0001 34.4807,-174 30.9807,-170.8501 37.9807,-174 37.9807,-174\"/>\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,-191.0373C48.3189,-200.8579 50.4453,-210 56,-210 60.166,-210 62.4036,-204.8576 62.7128,-198.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-191.0373 65.8541,-197.8818 62.5434,-194.5335 62.7076,-198.0296 62.7076,-198.0296 62.7076,-198.0296 62.5434,-194.5335 59.561,-198.1774 62.3792,-191.0373 62.3792,-191.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"454\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"454\" y=\"-170.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.7423,-164.9119C96.4901,-151.5061 146.387,-128 192,-128 192,-128 192,-128 371,-128 395.5036,-128 419.5513,-143.5275 435.4016,-156.5397\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"440.8559,-161.1864 433.4846,-159.0447 438.1916,-158.9167 435.5274,-156.6469 435.5274,-156.6469 435.5274,-156.6469 438.1916,-158.9167 437.5702,-154.249 440.8559,-161.1864 440.8559,-161.1864\"/>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-30.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=\"M61.2718,-156.6681C66.8826,-140.3827 77.0314,-116.0332 92,-99 113.6775,-74.3325 146.8751,-55.2821 168.9997,-44.3562\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.4855,-41.2291 170.5482,-47.1067 172.3328,-42.7492 169.1801,-44.2693 169.1801,-44.2693 169.1801,-44.2693 172.3328,-42.7492 167.812,-41.4319 175.4855,-41.2291 175.4855,-41.2291\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"267\" cy=\"-192\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-188.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.9897,-175.5347C111.6735,-178.7494 198.968,-186.1963 242.0423,-189.8709\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"249.0558,-190.4692 241.8133,-193.0127 245.5685,-190.1717 242.0811,-189.8741 242.0811,-189.8741 242.0811,-189.8741 245.5685,-190.1717 242.3489,-186.7355 249.0558,-190.4692 249.0558,-190.4692\"/>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M446.9688,-190.6641C445.4063,-200.625 447.75,-210 454,-210 458.6875,-210 461.1777,-204.7266 461.4707,-197.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"461.0313,-190.6641 464.6006,-197.4598 461.2438,-194.1576 461.4564,-197.6511 461.4564,-197.6511 461.4564,-197.6511 461.2438,-194.1576 458.3122,-197.8425 461.0313,-190.6641 461.0313,-190.6641\"/>\n",
"<text text-anchor=\"start\" x=\"449.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-213.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=\"M185.2664,-51.0373C183.8922,-60.8579 186.1367,-70 192,-70 196.3975,-70 198.7594,-64.8576 199.0858,-58.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.7336,-51.0373 202.2263,-57.8728 198.9069,-54.533 199.0802,-58.0287 199.0802,-58.0287 199.0802,-58.0287 198.9069,-54.533 195.934,-58.1847 198.7336,-51.0373 198.7336,-51.0373\"/>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.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=\"371\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"371\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M389.0098,-174C400.5679,-174 415.7507,-174 428.5345,-174\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"435.7388,-174 428.7388,-177.1501 432.2388,-174 428.7388,-174.0001 428.7388,-174.0001 428.7388,-174.0001 432.2388,-174 428.7387,-170.8501 435.7388,-174 435.7388,-174\"/>\n",
"<text text-anchor=\"start\" x=\"407\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</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=\"M363.9688,-190.6641C362.4063,-200.625 364.75,-210 371,-210 375.6875,-210 378.1777,-204.7266 378.4707,-197.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"378.0313,-190.6641 381.6006,-197.4598 378.2438,-194.1576 378.4564,-197.6511 378.4564,-197.6511 378.4564,-197.6511 378.2438,-194.1576 375.3122,-197.8425 378.0313,-190.6641 378.0313,-190.6641\"/>\n",
"<text text-anchor=\"start\" x=\"367.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M249.4684,-196.923C240.196,-199.2748 228.572,-201.8279 218,-203 161.7118,-209.2404 146.7131,-198.6215 92,-184 88.24,-182.9952 84.2649,-181.912 80.3822,-180.8425\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.5593,-178.9519 81.1463,-177.7856 76.9322,-179.8866 80.3051,-180.8212 80.3051,-180.8212 80.3051,-180.8212 76.9322,-179.8866 79.4639,-183.8568 73.5593,-178.9519 73.5593,-178.9519\"/>\n",
"<text text-anchor=\"start\" x=\"172\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M280.9572,-203.6937C305.0872,-222.4071 355.9593,-255.2135 397,-237 415.8745,-228.6237 431.1522,-210.5674 441.1221,-195.9237\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"445.0651,-189.895 443.8698,-197.4775 443.1493,-192.8242 441.2336,-195.7533 441.2336,-195.7533 441.2336,-195.7533 443.1493,-192.8242 438.5973,-194.0292 445.0651,-189.895 445.0651,-189.895\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M285.1154,-188.8646C301.967,-185.948 327.2278,-181.576 345.9961,-178.3276\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"353.0922,-177.0994 346.732,-181.3972 349.6434,-177.6964 346.1947,-178.2933 346.1947,-178.2933 346.1947,-178.2933 349.6434,-177.6964 345.6575,-175.1894 353.0922,-177.0994 353.0922,-177.0994\"/>\n",
"<text text-anchor=\"start\" x=\"303\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</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=\"M260.6208,-209.0373C259.3189,-218.8579 261.4453,-228 267,-228 271.166,-228 273.4036,-222.8576 273.7128,-216.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"273.3792,-209.0373 276.8541,-215.8818 273.5434,-212.5335 273.7076,-216.0296 273.7076,-216.0296 273.7076,-216.0296 273.5434,-212.5335 270.561,-216.1774 273.3792,-209.0373 273.3792,-209.0373\"/>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-231.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42fa8f00> >"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut = spot.translate('(Ga -> Gb) W c')\n",
"aut"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `decompose_strength()` function takes an automaton, and a string specifying which strength to preserve. \n",
"\n",
"The letters used for this specification are as follows:\n",
"\n",
"- `t`: (inherently) terminal\n",
"- `w`: (strictly inherently) weak\n",
"- `s`: strong\n",
"\n",
"For instance if we want to preserve only the **strictly inherently weak** part of this automaton, we should get only the SCC with the self-loop on $b$, and the SCC above it so that we can reach it. However the SCC above is not stricly weak, so it should not accept any word in the new automaton."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"309pt\" height=\"268pt\"\n",
" viewBox=\"0.00 0.00 309.00 268.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 264)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-264 305,-264 305,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"129.5\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"151.5\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"167.5\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-231.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"166,-8 166,-108 218,-108 218,-8 166,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-116 30,-216 293,-216 293,-116 30,-116\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-142\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-138.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,-142C4.178,-142 17.9448,-142 30.9241,-142\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-142 30.9808,-145.1501 34.4807,-142 30.9807,-142.0001 30.9807,-142.0001 30.9807,-142.0001 34.4807,-142 30.9807,-138.8501 37.9807,-142 37.9807,-142\"/>\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,-159.0373C48.3189,-168.8579 50.4453,-178 56,-178 60.166,-178 62.4036,-172.8576 62.7128,-166.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-159.0373 65.8541,-165.8818 62.5434,-162.5335 62.7076,-166.0296 62.7076,-166.0296 62.7076,-166.0296 62.5434,-162.5335 59.561,-166.1774 62.3792,-159.0373 62.3792,-159.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-30.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=\"M70.2973,-130.6462C94.7464,-111.2308 144.6248,-71.6215 172.3348,-49.6165\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"177.8942,-45.2016 174.3714,-52.0217 175.1533,-47.3782 172.4124,-49.5549 172.4124,-49.5549 172.4124,-49.5549 175.1533,-47.3782 170.4535,-47.088 177.8942,-45.2016 177.8942,-45.2016\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"267\" cy=\"-150\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-146.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.9897,-142.6821C111.5793,-144.1073 198.5319,-147.4041 241.7184,-149.0415\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"248.7561,-149.3083 241.6417,-152.1907 245.2586,-149.1756 241.7611,-149.043 241.7611,-149.043 241.7611,-149.043 245.2586,-149.1756 241.8805,-145.8952 248.7561,-149.3083 248.7561,-149.3083\"/>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M185.2664,-51.0373C183.8922,-60.8579 186.1367,-70 192,-70 196.3975,-70 198.7594,-64.8576 199.0858,-58.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.7336,-51.0373 202.2263,-57.8728 198.9069,-54.533 199.0802,-58.0287 199.0802,-58.0287 199.0802,-58.0287 198.9069,-54.533 195.934,-58.1847 198.7336,-51.0373 198.7336,-51.0373\"/>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M250.1337,-157.4182C240.8505,-161.0978 229.0101,-165.1443 218,-167 168.9526,-175.2665 111.3649,-160.592 79.761,-150.4486\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0512,-148.2368 80.6855,-147.4367 76.3753,-149.3325 79.6993,-150.4283 79.6993,-150.4283 79.6993,-150.4283 76.3753,-149.3325 78.7131,-153.42 73.0512,-148.2368 73.0512,-148.2368\"/>\n",
"<text text-anchor=\"start\" x=\"172\" y=\"-172.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M260.6208,-167.0373C259.3189,-176.8579 261.4453,-186 267,-186 271.166,-186 273.4036,-180.8576 273.7128,-174.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"273.3792,-167.0373 276.8541,-173.8818 273.5434,-170.5335 273.7076,-174.0296 273.7076,-174.0296 273.7076,-174.0296 273.5434,-170.5335 270.561,-174.1774 273.3792,-167.0373 273.3792,-167.0373\"/>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42f5f4b0> >"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.decompose_scc(aut, 'w')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Similarly, we can extract all the behaviors captured by the **inherently terminal** part of the automaton:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"435pt\" height=\"173pt\"\n",
" viewBox=\"0.00 0.00 435.00 173.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 169)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-169 431,-169 431,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"192.5\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"230.5\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"367,-20 367,-120 419,-120 419,-20 367,-20\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"284,-20 284,-105 336,-105 336,-20 284,-20\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-20 30,-120 232,-120 232,-20 30,-20\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-42.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,-46C4.178,-46 17.9448,-46 30.9241,-46\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-46 30.9808,-49.1501 34.4807,-46 30.9807,-46.0001 30.9807,-46.0001 30.9807,-46.0001 34.4807,-46 30.9807,-42.8501 37.9807,-46 37.9807,-46\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-63.0373C48.3189,-72.8579 50.4453,-82 56,-82 60.166,-82 62.4036,-76.8576 62.7128,-70.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-63.0373 65.8541,-69.8818 62.5434,-66.5335 62.7076,-70.0296 62.7076,-70.0296 62.7076,-70.0296 62.5434,-66.5335 59.561,-70.1774 62.3792,-63.0373 62.3792,-63.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"393\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"393\" y=\"-42.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.1391,-32.6949C81.9254,-19.1093 105.7965,0 131,0 131,0 131,0 310,0 334.5036,0 358.5513,-15.5275 374.4016,-28.5397\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"379.8559,-33.1864 372.4846,-31.0447 377.1916,-30.9167 374.5274,-28.6469 374.5274,-28.6469 374.5274,-28.6469 377.1916,-30.9167 376.5702,-26.249 379.8559,-33.1864 379.8559,-33.1864\"/>\n",
"<text text-anchor=\"start\" x=\"202.5\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"206\" cy=\"-56\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"206\" y=\"-52.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.0935,-47.2062C100.6718,-48.9781 150.3801,-52.292 180.604,-54.3069\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"187.8423,-54.7895 180.6483,-57.4668 184.3501,-54.5566 180.8578,-54.3238 180.8578,-54.3238 180.8578,-54.3238 184.3501,-54.5566 181.0674,-51.1807 187.8423,-54.7895 187.8423,-54.7895\"/>\n",
"<text text-anchor=\"start\" x=\"113\" y=\"-55.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M385.9688,-62.6641C384.4063,-72.625 386.75,-82 393,-82 397.6875,-82 400.1777,-76.7266 400.4707,-69.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"400.0313,-62.6641 403.6006,-69.4598 400.2438,-66.1576 400.4564,-69.6511 400.4564,-69.6511 400.4564,-69.6511 400.2438,-66.1576 397.3122,-69.8425 400.0313,-62.6641 400.0313,-62.6641\"/>\n",
"<text text-anchor=\"start\" x=\"388.5\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"385\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"310\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"310\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M328.0098,-46C339.5679,-46 354.7507,-46 367.5345,-46\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"374.7388,-46 367.7388,-49.1501 371.2388,-46 367.7388,-46.0001 367.7388,-46.0001 367.7388,-46.0001 371.2388,-46 367.7387,-42.8501 374.7388,-46 374.7388,-46\"/>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M302.9688,-62.6641C301.4063,-72.625 303.75,-82 310,-82 314.6875,-82 317.1777,-76.7266 317.4707,-69.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"317.0313,-62.6641 320.6006,-69.4598 317.2438,-66.1576 317.4564,-69.6511 317.4564,-69.6511 317.4564,-69.6511 317.2438,-66.1576 314.3122,-69.8425 317.0313,-62.6641 317.0313,-62.6641\"/>\n",
"<text text-anchor=\"start\" x=\"306.5\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M189.0754,-62.434C169.992,-68.8187 138.0894,-76.8678 111,-71 99.6726,-68.5464 87.8767,-63.5531 78.1272,-58.6697\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.7353,-55.339 79.3988,-55.7804 74.8392,-56.9564 77.9431,-58.5739 77.9431,-58.5739 77.9431,-58.5739 74.8392,-56.9564 76.4875,-61.3673 71.7353,-55.339 71.7353,-55.339\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M219.0266,-68.4976C242.5652,-89.4912 293.6722,-127.7847 336,-109 354.8745,-100.6237 370.1522,-82.5674 380.1221,-67.9237\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"384.0651,-61.895 382.8698,-69.4775 382.1493,-64.8242 380.2336,-67.7533 380.2336,-67.7533 380.2336,-67.7533 382.1493,-64.8242 377.5973,-66.0292 384.0651,-61.895 384.0651,-61.895\"/>\n",
"<text text-anchor=\"start\" x=\"292\" y=\"-117.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M224.1154,-54.2581C240.8642,-52.6477 265.92,-50.2385 284.6521,-48.4373\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"291.7432,-47.7555 285.0769,-51.5611 288.2593,-48.0905 284.7754,-48.4255 284.7754,-48.4255 284.7754,-48.4255 288.2593,-48.0905 284.4738,-45.29 291.7432,-47.7555 291.7432,-47.7555\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-55.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</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=\"M199.6208,-73.0373C198.3189,-82.8579 200.4453,-92 206,-92 210.166,-92 212.4036,-86.8576 212.7128,-80.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.3792,-73.0373 215.8541,-79.8818 212.5434,-76.5335 212.7076,-80.0296 212.7076,-80.0296 212.7076,-80.0296 212.5434,-76.5335 209.561,-80.1774 212.3792,-73.0373 212.3792,-73.0373\"/>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42f5f720> >"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.decompose_scc(aut, 't')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is the **strong** part:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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=\"248pt\" height=\"175pt\"\n",
" viewBox=\"0.00 0.00 248.00 175.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 171)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-171 244,-171 244,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"99\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"97\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-8 30,-123 232,-123 232,-8 30,-8\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-38.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,-42C4.178,-42 17.9448,-42 30.9241,-42\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-42 30.9808,-45.1501 34.4807,-42 30.9807,-42.0001 30.9807,-42.0001 30.9807,-42.0001 34.4807,-42 30.9807,-38.8501 37.9807,-42 37.9807,-42\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-59.0373C48.3189,-68.8579 50.4453,-78 56,-78 60.166,-78 62.4036,-72.8576 62.7128,-66.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-59.0373 65.8541,-65.8818 62.5434,-62.5335 62.7076,-66.0296 62.7076,-66.0296 62.7076,-66.0296 62.5434,-62.5335 59.561,-66.1774 62.3792,-59.0373 62.3792,-59.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-96.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-81.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"206\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"206\" y=\"-45.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.0935,-42.8444C100.6718,-44.0847 150.3801,-46.4044 180.604,-47.8149\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"187.8423,-48.1526 180.7031,-50.9728 184.3461,-47.9894 180.8499,-47.8262 180.8499,-47.8262 180.8499,-47.8262 184.3461,-47.9894 180.9968,-44.6797 187.8423,-48.1526 187.8423,-48.1526\"/>\n",
"<text text-anchor=\"start\" x=\"113\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M188.7765,-54.9405C169.6967,-60.7308 138.0513,-67.9887 111,-63 100.1617,-61.0012 88.696,-56.9606 79.0542,-52.9528\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.3909,-50.0699 80.0663,-49.9585 75.6032,-51.4597 78.8154,-52.8495 78.8154,-52.8495 78.8154,-52.8495 75.6032,-51.4597 77.5646,-55.7405 72.3909,-50.0699 72.3909,-50.0699\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-67.8\" 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=\"M199.6208,-66.0373C198.3189,-75.8579 200.4453,-85 206,-85 210.166,-85 212.4036,-79.8576 212.7128,-73.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.3792,-66.0373 215.8541,-72.8818 212.5434,-69.5335 212.7076,-73.0296 212.7076,-73.0296 212.7076,-73.0296 212.5434,-69.5335 209.561,-73.1774 212.3792,-66.0373 212.3792,-66.0373\"/>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42f5fae0> >"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"strong = spot.decompose_scc(aut, 's'); strong"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The union of these three automata recognize the same language as the original automaton.\n",
"\n",
"\n",
"The application proposed in the aforementioned TACAS'13 paper is for parallelizing model checking. Instead of testing the emptiness of the product between `aut` and a system, one could test the emptiness **3** products in parallel: each with a sub-automaton of different strength. Model checking using weak and terminal automata can be done with much more simpler emptiness check procedures than needed for the general case. So in effect, we have isolated the \"hard\" (i.e. strong) part of the original automaton in a smaller automaton, and we only need to use a full-fledged emptiness check for this case.\n",
"\n",
"An additional bonus is that it is possible that the simplification algorithms will do a better job at simplifying the sub-automata than at simplifying the original `aut`. For instance here the `strong` automaton can be further simplified:"
]
},
{
"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=\"98pt\" height=\"193pt\"\n",
" viewBox=\"0.00 0.00 98.00 193.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 189)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-189 94,-189 94,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"24\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"46\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"62\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"22\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-8 30,-141 82,-141 82,-8 30,-8\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-30.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,-34C4.178,-34 17.9448,-34 30.9241,-34\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-34 30.9808,-37.1501 34.4807,-34 30.9807,-34.0001 30.9807,-34.0001 30.9807,-34.0001 34.4807,-34 30.9807,-30.8501 37.9807,-34 37.9807,-34\"/>\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.7643,-51.7817C52.2144,-61.3149 53.293,-70 56,-70 57.988,-70 59.0977,-65.3161 59.3292,-59.0521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"59.2357,-51.7817 62.4756,-58.7406 59.2808,-55.2814 59.3258,-58.7812 59.3258,-58.7812 59.3258,-58.7812 59.2808,-55.2814 56.1761,-58.8217 59.2357,-51.7817 59.2357,-51.7817\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M50.9906,-51.5771C47.5451,-72.718 49.2148,-100 56,-100 62.043,-100 64.0285,-78.3596 61.9564,-58.6907\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"61.0094,-51.5771 65.0556,-58.1002 61.4713,-55.0465 61.9332,-58.5159 61.9332,-58.5159 61.9332,-58.5159 61.4713,-55.0465 58.8107,-58.9316 61.0094,-51.5771 61.0094,-51.5771\"/>\n",
"<text text-anchor=\"start\" x=\"38\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42f50bd0> >"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"strong.postprocess('small')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Multi-strength extraction\n",
"\n",
"The string passed to `decompose_strength()` can include multiple letters to extract multiple strengths at once."
]
},
{
"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",
"<!-- Title: option: sw Pages: 1 -->\n",
"<svg width=\"309pt\" height=\"297pt\"\n",
" viewBox=\"0.00 0.00 309.00 297.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 293)\">\n",
"<title>option: sw</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-293 305,-293 305,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"117\" y=\"-274.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">option: sw</text>\n",
"<text text-anchor=\"start\" x=\"129.5\" y=\"-260.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"151.5\" y=\"-260.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"167.5\" y=\"-260.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"166,-8 166,-108 218,-108 218,-8 166,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-116 30,-231 293,-231 293,-116 30,-116\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-142\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-138.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,-142C4.178,-142 17.9448,-142 30.9241,-142\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-142 30.9808,-145.1501 34.4807,-142 30.9807,-142.0001 30.9807,-142.0001 30.9807,-142.0001 34.4807,-142 30.9807,-138.8501 37.9807,-142 37.9807,-142\"/>\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,-159.0373C48.3189,-168.8579 50.4453,-178 56,-178 60.166,-178 62.4036,-172.8576 62.7128,-166.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-159.0373 65.8541,-165.8818 62.5434,-162.5335 62.7076,-166.0296 62.7076,-166.0296 62.7076,-166.0296 62.5434,-162.5335 59.561,-166.1774 62.3792,-159.0373 62.3792,-159.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-196.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-30.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=\"M70.2973,-130.6462C94.7464,-111.2308 144.6248,-71.6215 172.3348,-49.6165\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"177.8942,-45.2016 174.3714,-52.0217 175.1533,-47.3782 172.4124,-49.5549 172.4124,-49.5549 172.4124,-49.5549 175.1533,-47.3782 170.4535,-47.088 177.8942,-45.2016 177.8942,-45.2016\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"267\" cy=\"-157\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-153.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.9897,-143.2789C111.5793,-145.9511 198.5319,-152.1326 241.7184,-155.2027\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"248.7561,-155.703 241.5503,-158.3486 245.2649,-155.4548 241.7737,-155.2066 241.7737,-155.2066 241.7737,-155.2066 245.2649,-155.4548 241.9971,-152.0645 248.7561,-155.703 248.7561,-155.703\"/>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M185.2664,-51.0373C183.8922,-60.8579 186.1367,-70 192,-70 196.3975,-70 198.7594,-64.8576 199.0858,-58.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.7336,-51.0373 202.2263,-57.8728 198.9069,-54.533 199.0802,-58.0287 199.0802,-58.0287 199.0802,-58.0287 198.9069,-54.533 195.934,-58.1847 198.7336,-51.0373 198.7336,-51.0373\"/>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M250.0177,-163.1143C240.7005,-166.1461 228.8647,-169.4783 218,-171 168.544,-177.9266 111.1056,-161.8772 79.6376,-150.9963\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.9582,-148.6284 80.6084,-147.9985 76.257,-149.7979 79.5559,-150.9674 79.5559,-150.9674 79.5559,-150.9674 76.257,-149.7979 78.5033,-153.9364 72.9582,-148.6284 72.9582,-148.6284\"/>\n",
"<text text-anchor=\"start\" x=\"172\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-175.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=\"M260.6208,-174.0373C259.3189,-183.8579 261.4453,-193 267,-193 271.166,-193 273.4036,-187.8576 273.7128,-181.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"273.3792,-174.0373 276.8541,-180.8818 273.5434,-177.5335 273.7076,-181.0296 273.7076,-181.0296 273.7076,-181.0296 273.5434,-177.5335 270.561,-181.1774 273.3792,-174.0373 273.3792,-174.0373\"/>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-196.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b437fb030> >"
]
},
"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",
"<!-- Title: option: st Pages: 1 -->\n",
"<svg width=\"435pt\" height=\"201pt\"\n",
" viewBox=\"0.00 0.00 435.00 201.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 197)\">\n",
"<title>option: st</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-197 431,-197 431,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"183\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">option: st</text>\n",
"<text text-anchor=\"start\" x=\"192.5\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"230.5\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"367,-20 367,-120 419,-120 419,-20 367,-20\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"284,-20 284,-105 336,-105 336,-20 284,-20\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-20 30,-135 232,-135 232,-20 30,-20\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-42.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,-46C4.178,-46 17.9448,-46 30.9241,-46\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-46 30.9808,-49.1501 34.4807,-46 30.9807,-46.0001 30.9807,-46.0001 30.9807,-46.0001 34.4807,-46 30.9807,-42.8501 37.9807,-46 37.9807,-46\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-63.0373C48.3189,-72.8579 50.4453,-82 56,-82 60.166,-82 62.4036,-76.8576 62.7128,-70.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-63.0373 65.8541,-69.8818 62.5434,-66.5335 62.7076,-70.0296 62.7076,-70.0296 62.7076,-70.0296 62.5434,-66.5335 59.561,-70.1774 62.3792,-63.0373 62.3792,-63.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"393\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"393\" y=\"-42.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.1391,-32.6949C81.9254,-19.1093 105.7965,0 131,0 131,0 131,0 310,0 334.5036,0 358.5513,-15.5275 374.4016,-28.5397\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"379.8559,-33.1864 372.4846,-31.0447 377.1916,-30.9167 374.5274,-28.6469 374.5274,-28.6469 374.5274,-28.6469 377.1916,-30.9167 376.5702,-26.249 379.8559,-33.1864 379.8559,-33.1864\"/>\n",
"<text text-anchor=\"start\" x=\"202.5\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"206\" cy=\"-64\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"206\" y=\"-60.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.0935,-48.1712C100.6718,-51.3606 150.3801,-57.3256 180.604,-60.9525\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"187.8423,-61.8211 180.5168,-64.1145 184.3673,-61.404 180.8922,-60.987 180.8922,-60.987 180.8922,-60.987 184.3673,-61.404 181.2675,-57.8594 187.8423,-61.8211 187.8423,-61.8211\"/>\n",
"<text text-anchor=\"start\" x=\"113\" y=\"-60.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M385.9688,-62.6641C384.4063,-72.625 386.75,-82 393,-82 397.6875,-82 400.1777,-76.7266 400.4707,-69.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"400.0313,-62.6641 403.6006,-69.4598 400.2438,-66.1576 400.4564,-69.6511 400.4564,-69.6511 400.4564,-69.6511 400.2438,-66.1576 397.3122,-69.8425 400.0313,-62.6641 400.0313,-62.6641\"/>\n",
"<text text-anchor=\"start\" x=\"388.5\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"385\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"310\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"310\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M328.0098,-46C339.5679,-46 354.7507,-46 367.5345,-46\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"374.7388,-46 367.7388,-49.1501 371.2388,-46 367.7388,-46.0001 367.7388,-46.0001 367.7388,-46.0001 371.2388,-46 367.7387,-42.8501 374.7388,-46 374.7388,-46\"/>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M302.9688,-62.6641C301.4063,-72.625 303.75,-82 310,-82 314.6875,-82 317.1777,-76.7266 317.4707,-69.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"317.0313,-62.6641 320.6006,-69.4598 317.2438,-66.1576 317.4564,-69.6511 317.4564,-69.6511 317.4564,-69.6511 317.2438,-66.1576 314.3122,-69.8425 317.0313,-62.6641 317.0313,-62.6641\"/>\n",
"<text text-anchor=\"start\" x=\"306.5\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M188.6028,-69.6765C169.3709,-75.1094 137.593,-81.5815 111,-75 99.138,-72.0643 87.012,-66.0542 77.175,-60.2629\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.067,-56.5232 78.6818,-57.4919 74.052,-58.3508 77.037,-60.1784 77.037,-60.1784 77.037,-60.1784 74.052,-58.3508 75.3921,-62.8648 71.067,-56.5232 71.067,-56.5232\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-80.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M219.9572,-75.6937C244.0872,-94.4071 294.9593,-127.2135 336,-109 354.8745,-100.6237 370.1522,-82.5674 380.1221,-67.9237\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"384.0651,-61.895 382.8698,-69.4775 382.1493,-64.8242 380.2336,-67.7533 380.2336,-67.7533 380.2336,-67.7533 382.1493,-64.8242 377.5973,-66.0292 384.0651,-61.895 384.0651,-61.895\"/>\n",
"<text text-anchor=\"start\" x=\"292\" y=\"-117.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M224.1154,-60.8646C240.967,-57.948 266.2278,-53.576 284.9961,-50.3276\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"292.0922,-49.0994 285.732,-53.3972 288.6434,-49.6964 285.1947,-50.2933 285.1947,-50.2933 285.1947,-50.2933 288.6434,-49.6964 284.6575,-47.1894 292.0922,-49.0994 292.0922,-49.0994\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-60.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</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=\"M199.6208,-81.0373C198.3189,-90.8579 200.4453,-100 206,-100 210.166,-100 212.4036,-94.8576 212.7128,-88.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.3792,-81.0373 215.8541,-87.8818 212.5434,-84.5335 212.7076,-88.0296 212.7076,-88.0296 212.7076,-88.0296 212.5434,-84.5335 209.561,-88.1774 212.3792,-81.0373 212.3792,-81.0373\"/>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42fb30c0> >"
]
},
"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",
"<!-- Title: option: wt Pages: 1 -->\n",
"<svg width=\"496pt\" height=\"315pt\"\n",
" viewBox=\"0.00 0.00 496.00 315.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 311)\">\n",
"<title>option: wt</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-311 492,-311 492,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"210.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">option: wt</text>\n",
"<text text-anchor=\"start\" x=\"223\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"245\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"221\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"428,-148 428,-248 480,-248 480,-148 428,-148\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"166,-8 166,-108 218,-108 218,-8 166,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"345,-148 345,-233 397,-233 397,-148 345,-148\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-148 30,-248 293,-248 293,-148 30,-148\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-170.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,-174C4.178,-174 17.9448,-174 30.9241,-174\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-174 30.9808,-177.1501 34.4807,-174 30.9807,-174.0001 30.9807,-174.0001 30.9807,-174.0001 34.4807,-174 30.9807,-170.8501 37.9807,-174 37.9807,-174\"/>\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,-191.0373C48.3189,-200.8579 50.4453,-210 56,-210 60.166,-210 62.4036,-204.8576 62.7128,-198.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-191.0373 65.8541,-197.8818 62.5434,-194.5335 62.7076,-198.0296 62.7076,-198.0296 62.7076,-198.0296 62.5434,-194.5335 59.561,-198.1774 62.3792,-191.0373 62.3792,-191.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"454\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"454\" y=\"-170.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.7423,-164.9119C96.4901,-151.5061 146.387,-128 192,-128 192,-128 192,-128 371,-128 395.5036,-128 419.5513,-143.5275 435.4016,-156.5397\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"440.8559,-161.1864 433.4846,-159.0447 438.1916,-158.9167 435.5274,-156.6469 435.5274,-156.6469 435.5274,-156.6469 438.1916,-158.9167 437.5702,-154.249 440.8559,-161.1864 440.8559,-161.1864\"/>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-30.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=\"M61.2718,-156.6681C66.8826,-140.3827 77.0314,-116.0332 92,-99 113.6775,-74.3325 146.8751,-55.2821 168.9997,-44.3562\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.4855,-41.2291 170.5482,-47.1067 172.3328,-42.7492 169.1801,-44.2693 169.1801,-44.2693 169.1801,-44.2693 172.3328,-42.7492 167.812,-41.4319 175.4855,-41.2291 175.4855,-41.2291\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"267\" cy=\"-184\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-180.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.9897,-174.8526C111.5793,-176.6341 198.5319,-180.7551 241.7184,-182.8018\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"248.7561,-183.1354 241.6148,-185.9504 245.26,-182.9696 241.7639,-182.8039 241.7639,-182.8039 241.7639,-182.8039 245.26,-182.9696 241.9131,-179.6574 248.7561,-183.1354 248.7561,-183.1354\"/>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-184.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M446.9688,-190.6641C445.4063,-200.625 447.75,-210 454,-210 458.6875,-210 461.1777,-204.7266 461.4707,-197.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"461.0313,-190.6641 464.6006,-197.4598 461.2438,-194.1576 461.4564,-197.6511 461.4564,-197.6511 461.4564,-197.6511 461.2438,-194.1576 458.3122,-197.8425 461.0313,-190.6641 461.0313,-190.6641\"/>\n",
"<text text-anchor=\"start\" x=\"449.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-213.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=\"M185.2664,-51.0373C183.8922,-60.8579 186.1367,-70 192,-70 196.3975,-70 198.7594,-64.8576 199.0858,-58.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.7336,-51.0373 202.2263,-57.8728 198.9069,-54.533 199.0802,-58.0287 199.0802,-58.0287 199.0802,-58.0287 198.9069,-54.533 195.934,-58.1847 198.7336,-51.0373 198.7336,-51.0373\"/>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.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=\"371\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"371\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M389.0098,-174C400.5679,-174 415.7507,-174 428.5345,-174\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"435.7388,-174 428.7388,-177.1501 432.2388,-174 428.7388,-174.0001 428.7388,-174.0001 428.7388,-174.0001 432.2388,-174 428.7387,-170.8501 435.7388,-174 435.7388,-174\"/>\n",
"<text text-anchor=\"start\" x=\"407\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</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=\"M363.9688,-190.6641C362.4063,-200.625 364.75,-210 371,-210 375.6875,-210 378.1777,-204.7266 378.4707,-197.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"378.0313,-190.6641 381.6006,-197.4598 378.2438,-194.1576 378.4564,-197.6511 378.4564,-197.6511 378.4564,-197.6511 378.2438,-194.1576 375.3122,-197.8425 378.0313,-190.6641 378.0313,-190.6641\"/>\n",
"<text text-anchor=\"start\" x=\"367.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M250.0928,-190.9839C240.7976,-194.4477 228.9588,-198.2561 218,-200 168.8323,-207.8241 111.2885,-192.8451 79.7247,-182.5531\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0238,-180.3102 80.6617,-179.545 76.3428,-181.4212 79.6619,-182.5321 79.6619,-182.5321 79.6619,-182.5321 76.3428,-181.4212 78.662,-185.5192 73.0238,-180.3102 73.0238,-180.3102\"/>\n",
"<text text-anchor=\"start\" x=\"172\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M280.0266,-196.4976C303.5652,-217.4912 354.6722,-255.7847 397,-237 415.8745,-228.6237 431.1522,-210.5674 441.1221,-195.9237\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"445.0651,-189.895 443.8698,-197.4775 443.1493,-192.8242 441.2336,-195.7533 441.2336,-195.7533 441.2336,-195.7533 443.1493,-192.8242 438.5973,-194.0292 445.0651,-189.895 445.0651,-189.895\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M285.1154,-182.2581C301.8642,-180.6477 326.92,-178.2385 345.6521,-176.4373\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.7432,-175.7555 346.0769,-179.5611 349.2593,-176.0905 345.7754,-176.4255 345.7754,-176.4255 345.7754,-176.4255 349.2593,-176.0905 345.4738,-173.29 352.7432,-175.7555 352.7432,-175.7555\"/>\n",
"<text text-anchor=\"start\" x=\"303\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</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=\"M260.6208,-201.0373C259.3189,-210.8579 261.4453,-220 267,-220 271.166,-220 273.4036,-214.8576 273.7128,-208.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"273.3792,-201.0373 276.8541,-207.8818 273.5434,-204.5335 273.7076,-208.0296 273.7076,-208.0296 273.7076,-208.0296 273.5434,-204.5335 270.561,-208.1774 273.3792,-201.0373 273.3792,-201.0373\"/>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-223.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b437fb030> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for opt in ('sw', 'st', 'wt'):\n",
" a = spot.decompose_scc(aut, opt)\n",
" a.set_name(\"option: \" + opt)\n",
" display(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Generalized acceptance\n",
"\n",
"There is nothing that prevents the above decomposition to work with other types of acceptance.\n",
"\n",
"## Rabin\n",
"\n",
"The following Rabin automaton was generated with\n",
"\n",
" ltldo -f '(Ga -> Gb) W c' 'ltl2dstar --ltl2nba=spin:ltl2tgba@-Ds' -H | autfilt -H --merge-transitions\n",
" \n",
"(The `autfilt -H --merge-transitions` pass is just here to reduce the size of the file and make the automaton more readable.)"
]
},
{
"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=\"658pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 657.76 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.5302 .5302) rotate(0) translate(4 675)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-675 1236.6072,-675 1236.6072,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"499.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"527.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"543.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"586.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"602.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"649.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"665.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"708.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"724.8036\" y=\"-656.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"587.3036\" y=\"-642.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 2]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"1140.725,-272 1140.725,-389 1224.6072,-389 1224.6072,-272 1140.725,-272\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"1039.9848,-215 1039.9848,-318 1109.725,-318 1109.725,-215 1039.9848,-215\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"888.2447,-20 888.2447,-123 957.9848,-123 957.9848,-20 888.2447,-20\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"355.6224,-277 355.6224,-445 957.9848,-445 957.9848,-277 355.6224,-277\"/>\n",
"</g>\n",
"<g id=\"clust5\" class=\"cluster\">\n",
"<title>cluster_4</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"185.7401,-469 185.7401,-553 269.6224,-553 269.6224,-469 185.7401,-469\"/>\n",
"</g>\n",
"<g id=\"clust6\" class=\"cluster\">\n",
"<title>cluster_5</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"185.7401,-177 185.7401,-261 269.6224,-261 269.6224,-177 185.7401,-177\"/>\n",
"</g>\n",
"<g id=\"clust7\" class=\"cluster\">\n",
"<title>cluster_6</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30,-437 30,-507 99.7401,-507 99.7401,-437 30,-437\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-472\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-475.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-460.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2229,-472C4.3751,-472 17.3629,-472 30.7917,-472\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-472 30.8046,-475.1501 34.3045,-472 30.8045,-472.0001 30.8045,-472.0001 30.8045,-472.0001 34.3045,-472 30.8045,-468.8501 37.8045,-472 37.8045,-472\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1182.6661\" cy=\"-314\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"1178.1661\" y=\"-317.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"<text text-anchor=\"start\" x=\"1166.6661\" y=\"-303.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1182.6661\" y=\"-303.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M77.0996,-496.1081C100.288,-538.0457 154.9122,-620 227.6812,-620 227.6812,-620 227.6812,-620 1074.8549,-620 1130.4065,-620 1164.358,-438.3314 1177.0154,-354.9498\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1178.0678,-347.9165 1180.1471,-355.3057 1177.5498,-351.378 1177.0318,-354.8394 1177.0318,-354.8394 1177.0318,-354.8394 1177.5498,-351.378 1173.9165,-354.3732 1178.0678,-347.9165 1178.0678,-347.9165\"/>\n",
"<text text-anchor=\"start\" x=\"687.8036\" y=\"-623.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"691.3036\" cy=\"-370\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"686.8036\" y=\"-373.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"<text text-anchor=\"start\" x=\"675.3036\" y=\"-359.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"691.3036\" y=\"-359.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M91.696,-469.1165C166.0462,-461.0797 381.0316,-437.5356 559.3625,-415 594.9694,-410.5004 605.7493,-416.5799 639.3625,-404 645.6633,-401.6419 651.9796,-398.4122 657.9292,-394.8763\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"664.2232,-390.946 659.9542,-397.3256 661.2544,-392.7999 658.2857,-394.6537 658.2857,-394.6537 658.2857,-394.6537 661.2544,-392.7999 656.6172,-391.9819 664.2232,-390.946 664.2232,-390.946\"/>\n",
"<text text-anchor=\"start\" x=\"370.4924\" y=\"-442.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"227.6812\" cy=\"-511\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"223.1812\" y=\"-514.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"211.6812\" y=\"-500.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"227.6812\" y=\"-500.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M91.0285,-478.266C117.0755,-484.5053 157.4103,-494.1672 187.5174,-501.3791\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"194.5485,-503.0633 187.0072,-504.4959 191.1448,-502.248 187.741,-501.4326 187.741,-501.4326 187.741,-501.4326 191.1448,-502.248 188.4749,-498.3693 194.5485,-503.0633 194.5485,-503.0633\"/>\n",
"<text text-anchor=\"start\" x=\"109.7401\" y=\"-501.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"227.6812\" cy=\"-219\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"223.1812\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"211.6812\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"227.6812\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M79.6056,-449.1017C108.1887,-404.6851 171.3195,-306.5832 205.1807,-253.9646\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.1608,-247.7798 208.0216,-255.371 207.2667,-250.7231 205.3727,-253.6663 205.3727,-253.6663 205.3727,-253.6663 207.2667,-250.7231 202.7237,-251.9617 209.1608,-247.7798 209.1608,-247.7798\"/>\n",
"<text text-anchor=\"start\" x=\"111.7401\" y=\"-400.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1172.1661,-346.4632C1172.1661,-357.2843 1175.6661,-365.9411 1182.6661,-365.9411 1188.0255,-365.9411 1191.3332,-360.8666 1192.5893,-353.6315\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1193.1661,-346.4632 1195.7444,-353.6933 1192.8853,-349.9519 1192.6046,-353.4407 1192.6046,-353.4407 1192.6046,-353.4407 1192.8853,-349.9519 1189.4647,-353.188 1193.1661,-346.4632 1193.1661,-346.4632\"/>\n",
"<text text-anchor=\"middle\" x=\"1182.6661\" y=\"-369.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1074.8549\" cy=\"-250\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"1070.3549\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"1066.8549\" y=\"-238.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;6 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1097.9831,-263.7296C1112.2939,-272.2249 1130.9569,-283.3039 1147.1194,-292.8984\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1153.4075,-296.6312 1145.7802,-295.7666 1150.3979,-294.8446 1147.3882,-293.0579 1147.3882,-293.0579 1147.3882,-293.0579 1150.3979,-294.8446 1148.9962,-290.3492 1153.4075,-296.6312 1153.4075,-296.6312\"/>\n",
"<text text-anchor=\"start\" x=\"1119.725\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</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=\"M1065.5623,-275.37C1064.9214,-285.9238 1068.019,-294.8701 1074.8549,-294.8701 1080.0887,-294.8701 1083.1311,-289.6259 1083.982,-282.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1084.1475,-275.37 1087.1326,-282.4419 1084.0655,-278.869 1083.9834,-282.3681 1083.9834,-282.3681 1083.9834,-282.3681 1084.0655,-278.869 1080.8343,-282.2943 1084.1475,-275.37 1084.1475,-275.37\"/>\n",
"<text text-anchor=\"start\" x=\"1071.3549\" y=\"-298.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"923.1148\" cy=\"-55\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"918.6148\" y=\"-58.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
"<text text-anchor=\"start\" x=\"915.1148\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;6 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>8&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M950.3154,-56.3267C972.7236,-58.3389 1004.794,-63.3829 1029.9848,-76 1083.9322,-103.0201 1097.2618,-116.7942 1130.725,-167 1152.5666,-199.7697 1166.3589,-242.7737 1174.1962,-273.7936\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1175.8732,-280.6165 1171.1434,-274.5707 1175.0377,-277.2177 1174.2023,-273.8188 1174.2023,-273.8188 1174.2023,-273.8188 1175.0377,-277.2177 1177.2613,-273.067 1175.8732,-280.6165 1175.8732,-280.6165\"/>\n",
"<text text-anchor=\"start\" x=\"1069.3549\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;1 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>8&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M947.1733,-67.0983C976.8427,-82.198 1024.0986,-106.9046 1029.9848,-114 1054.2778,-143.2833 1065.561,-186.1548 1070.7075,-215.9051\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1071.8879,-223.1697 1067.6559,-216.7656 1071.3265,-219.715 1070.7651,-216.2603 1070.7651,-216.2603 1070.7651,-216.2603 1071.3265,-219.715 1073.8744,-215.7551 1071.8879,-223.1697 1071.8879,-223.1697\"/>\n",
"<text text-anchor=\"start\" x=\"980.4848\" y=\"-117.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M914.9151,-80.8213C914.4519,-91.1776 917.1851,-99.8701 923.1148,-99.8701 927.5621,-99.8701 930.2113,-94.9805 931.0625,-88.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"931.3144,-80.8213 934.2226,-87.9252 931.1944,-84.3193 931.0744,-87.8172 931.0744,-87.8172 931.0744,-87.8172 931.1944,-84.3193 927.9263,-87.7092 931.3144,-80.8213 931.3144,-80.8213\"/>\n",
"<text text-anchor=\"start\" x=\"906.1148\" y=\"-103.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"390.4924\" cy=\"-312\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"385.9924\" y=\"-315.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"382.4924\" y=\"-300.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M401.9009,-287.6669C421.5449,-249.7827 465.58,-181 526.3625,-181 526.3625,-181 526.3625,-181 1074.8549,-181 1123.6052,-181 1154.1418,-235.5911 1169.7926,-274.8234\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1172.3601,-281.4645 1166.8978,-276.0713 1171.098,-278.2 1169.8359,-274.9355 1169.8359,-274.9355 1169.8359,-274.9355 1171.098,-278.2 1172.774,-273.7996 1172.3601,-281.4645 1172.3601,-281.4645\"/>\n",
"<text text-anchor=\"start\" x=\"810.2447\" y=\"-184.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M416.979,-306.1612C423,-304.9808 429.3836,-303.8445 435.3625,-303 665.4293,-270.5033 945.0867,-255.7784 1040.8222,-251.4374\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1047.926,-251.1192 1041.074,-254.5794 1044.4295,-251.2759 1040.933,-251.4326 1040.933,-251.4326 1040.933,-251.4326 1044.4295,-251.2759 1040.7919,-248.2857 1047.926,-251.1192 1047.926,-251.1192\"/>\n",
"<text text-anchor=\"start\" x=\"745.2447\" y=\"-273.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M378.6799,-336.4616C377.5549,-347.4053 381.4924,-356.8701 390.4924,-356.8701 397.383,-356.8701 401.3061,-351.322 402.2617,-343.8099\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"402.3049,-336.4616 405.4136,-343.4801 402.2843,-339.9616 402.2636,-343.4615 402.2636,-343.4615 402.2636,-343.4615 402.2843,-339.9616 399.1137,-343.4429 402.3049,-336.4616 402.3049,-336.4616\"/>\n",
"<text text-anchor=\"start\" x=\"372.4924\" y=\"-360.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M415.9648,-321.6091C422.2623,-323.8388 429.0219,-326.11 435.3625,-328 509.19,-350.0061 598.6502,-361.3571 649.8747,-366.4662\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"657.1485,-367.1752 649.8759,-369.6311 653.665,-366.8356 650.1815,-366.496 650.1815,-366.496 650.1815,-366.496 653.665,-366.8356 650.4872,-363.3609 657.1485,-367.1752 657.1485,-367.1752\"/>\n",
"<text text-anchor=\"start\" x=\"506.3625\" y=\"-357.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M718.1657,-391.1334C744.6041,-409.7751 786.9123,-434 828.2447,-434 828.2447,-434 828.2447,-434 1074.8549,-434 1119.5444,-434 1150.4095,-387.3776 1167.3214,-352.2535\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1170.317,-345.8427 1170.2074,-353.5181 1168.8353,-349.0136 1167.3536,-352.1846 1167.3536,-352.1846 1167.3536,-352.1846 1168.8353,-349.0136 1164.4998,-350.851 1170.317,-345.8427 1170.317,-345.8427\"/>\n",
"<text text-anchor=\"start\" x=\"919.6148\" y=\"-437.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;0 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M659.9762,-356.4323C633.6526,-345.6806 594.7642,-331.2944 559.3625,-324 513.2714,-314.5031 458.7775,-312.1916 424.4211,-311.7923\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"417.4057,-311.7343 424.4316,-308.6424 420.9056,-311.7633 424.4055,-311.7923 424.4055,-311.7923 424.4055,-311.7923 420.9056,-311.7633 424.3794,-314.9422 417.4057,-311.7343 417.4057,-311.7343\"/>\n",
"<text text-anchor=\"start\" x=\"493.3625\" y=\"-327.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M678.5606,-401.6989C678.3567,-412.8737 682.6044,-421.9411 691.3036,-421.9411 697.9639,-421.9411 702.0149,-416.626 703.4564,-409.1193\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"704.0466,-401.6989 706.6316,-408.9266 703.769,-405.1878 703.4915,-408.6768 703.4915,-408.6768 703.4915,-408.6768 703.769,-405.1878 700.3514,-408.427 704.0466,-401.6989 704.0466,-401.6989\"/>\n",
"<text text-anchor=\"start\" x=\"671.3036\" y=\"-425.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"923.1148\" cy=\"-335\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"918.6148\" y=\"-338.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"<text text-anchor=\"start\" x=\"915.1148\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M725.483,-370.6777C759.7067,-370.6776 813.6881,-368.8255 859.2447,-359 870.1682,-356.6441 881.7141,-352.7655 891.9404,-348.8063\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"898.4502,-346.2081 893.1166,-351.7286 895.1995,-347.5055 891.9489,-348.803 891.9489,-348.803 891.9489,-348.803 895.1995,-347.5055 890.7812,-345.8774 898.4502,-346.2081 898.4502,-346.2081\"/>\n",
"<text text-anchor=\"start\" x=\"797.2447\" y=\"-370.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;6 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>7&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M950.0311,-333.5082C986.3302,-331.4089 1052.9713,-327.246 1109.725,-322 1120.1348,-321.0378 1131.3659,-319.8704 1141.8221,-318.7283\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1148.9176,-317.9444 1142.3059,-321.8441 1145.4388,-318.3288 1141.9599,-318.7131 1141.9599,-318.7131 1141.9599,-318.7131 1145.4388,-318.3288 1141.614,-315.5822 1148.9176,-317.9444 1148.9176,-317.9444\"/>\n",
"<text text-anchor=\"start\" x=\"1056.8549\" y=\"-330.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;1 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M946.9633,-322.018C968.6735,-310.1564 1001.5771,-292.0698 1029.9848,-276 1034.9438,-273.1948 1040.1928,-270.1878 1045.2856,-267.2501\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1051.6192,-263.5865 1047.1371,-269.8182 1048.5895,-265.339 1045.5598,-267.0915 1045.5598,-267.0915 1045.5598,-267.0915 1048.5895,-265.339 1043.9826,-264.3648 1051.6192,-263.5865 1051.6192,-263.5865\"/>\n",
"<text text-anchor=\"start\" x=\"967.9848\" y=\"-312.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;8 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>7&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M923.1148,-307.8831C923.1148,-256.646 923.1148,-145.7094 923.1148,-89.3525\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"923.1148,-82.102 926.2649,-89.1019 923.1148,-85.602 923.1149,-89.102 923.1149,-89.102 923.1149,-89.102 923.1148,-85.602 919.9649,-89.102 923.1148,-82.102 923.1148,-82.102\"/>\n",
"<text text-anchor=\"start\" x=\"883.6148\" y=\"-191.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M896.3082,-331.0239C858.3381,-325.5884 786.6703,-316.0515 725.2447,-312 614.4125,-304.6898 586.4319,-308.8889 475.3625,-308 457.5853,-307.8577 453.1227,-307.2099 435.3625,-308 431.8393,-308.1567 428.165,-308.3824 424.5023,-308.6477\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"417.5156,-309.1994 424.2459,-305.5081 421.0047,-308.9239 424.4939,-308.6483 424.4939,-308.6483 424.4939,-308.6483 421.0047,-308.9239 424.7419,-311.7885 417.5156,-309.1994 417.5156,-309.1994\"/>\n",
"<text text-anchor=\"start\" x=\"658.3036\" y=\"-315.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;5 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>7&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M895.9242,-334.2381C870.3074,-333.9541 830.9374,-334.6378 797.2447,-340 774.7849,-343.5745 750.3196,-350.306 730.5639,-356.4882\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"723.7834,-358.6459 729.4986,-353.5214 727.1186,-357.5845 730.4538,-356.5231 730.4538,-356.5231 730.4538,-356.5231 727.1186,-357.5845 731.4091,-359.5248 723.7834,-358.6459 723.7834,-358.6459\"/>\n",
"<text text-anchor=\"start\" x=\"808.2447\" y=\"-343.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M914.9151,-360.8213C914.4519,-371.1776 917.1851,-379.8701 923.1148,-379.8701 927.5621,-379.8701 930.2113,-374.9805 931.0625,-368.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"931.3144,-360.8213 934.2226,-367.9252 931.1944,-364.3193 931.0744,-367.8172 931.0744,-367.8172 931.0744,-367.8172 931.1944,-364.3193 927.9263,-367.7092 931.3144,-360.8213 931.3144,-360.8213\"/>\n",
"<text text-anchor=\"start\" x=\"892.1148\" y=\"-383.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M256.391,-529.5613C287.9489,-548.1448 340.787,-574 390.4924,-574 390.4924,-574 390.4924,-574 1074.8549,-574 1121.7438,-574 1158.919,-427.8883 1174.5942,-354.7288\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1176.1326,-347.4582 1177.7652,-354.9587 1175.408,-350.8824 1174.6834,-354.3065 1174.6834,-354.3065 1174.6834,-354.3065 1175.408,-350.8824 1171.6017,-353.6544 1176.1326,-347.4582 1176.1326,-347.4582\"/>\n",
"<text text-anchor=\"start\" x=\"743.2447\" y=\"-577.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M261.1108,-517.5451C267.2463,-518.5316 273.6106,-519.4138 279.6224,-520 492.7219,-540.7793 547.1345,-531 761.2447,-531 761.2447,-531 761.2447,-531 923.1148,-531 930.1785,-531 1022.2054,-352.8287 1059.4077,-280.2345\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1062.6225,-273.9579 1062.235,-281.6243 1061.0269,-277.0731 1059.4314,-280.1883 1059.4314,-280.1883 1059.4314,-280.1883 1061.0269,-277.0731 1056.6277,-278.7522 1062.6225,-273.9579 1062.6225,-273.9579\"/>\n",
"<text text-anchor=\"start\" x=\"675.3036\" y=\"-534.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M249.3013,-484.5743C280.3378,-446.6392 337.2141,-377.1207 368.4714,-338.9157\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"373.2602,-333.0626 371.2656,-340.475 371.0439,-335.7715 368.8276,-338.4804 368.8276,-338.4804 368.8276,-338.4804 371.0439,-335.7715 366.3896,-336.4857 373.2602,-333.0626 373.2602,-333.0626\"/>\n",
"<text text-anchor=\"start\" x=\"294.6224\" y=\"-449.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M261.7374,-509.3655C354.7689,-504.6452 608.3422,-489.9791 639.3625,-469 659.6732,-455.2638 672.5868,-430.9767 680.4579,-409.8967\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"682.8392,-403.1827 683.468,-410.833 681.6692,-406.4814 680.4992,-409.78 680.4992,-409.78 680.4992,-409.78 681.6692,-406.4814 677.5304,-408.727 682.8392,-403.1827 682.8392,-403.1827\"/>\n",
"<text text-anchor=\"start\" x=\"435.3625\" y=\"-501.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M233.4468,-185.26C240.186,-153.8262 253.8618,-106.9796 279.6224,-74 316.0909,-27.3116 331.2492,0 390.4924,0 390.4924,0 390.4924,0 1074.8549,0 1131.9103,0 1165.1972,-187.7981 1177.3549,-272.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1178.3641,-280.0982 1174.2696,-273.6053 1177.8765,-276.6323 1177.3889,-273.1664 1177.3889,-273.1664 1177.3889,-273.1664 1177.8765,-276.6323 1180.5082,-272.7276 1178.3641,-280.0982 1178.3641,-280.0982\"/>\n",
"<text text-anchor=\"start\" x=\"743.2447\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M252.9571,-196.2684C283.3214,-171.3914 336.8991,-135 390.4924,-135 390.4924,-135 390.4924,-135 761.2447,-135 871.8611,-135 991.7456,-198.8453 1045.6752,-231.3935\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1051.92,-235.2012 1044.3035,-234.2464 1048.9317,-233.3791 1045.9434,-231.5569 1045.9434,-231.5569 1045.9434,-231.5569 1048.9317,-233.3791 1047.5833,-228.8675 1051.92,-235.2012 1051.92,-235.2012\"/>\n",
"<text text-anchor=\"start\" x=\"660.3036\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M238.5869,-186.3519C246.9958,-165.3895 260.4571,-138.8467 279.6224,-121 319.0488,-84.2861 336.6189,-72 390.4924,-72 390.4924,-72 390.4924,-72 828.2447,-72 849.0732,-72 872.0763,-67.9808 890.2148,-63.8509\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"897.1646,-62.2095 891.076,-66.8842 893.7583,-63.014 890.352,-63.8186 890.352,-63.8186 890.352,-63.8186 893.7583,-63.014 889.6279,-60.7529 897.1646,-62.2095 897.1646,-62.2095\"/>\n",
"<text text-anchor=\"start\" x=\"579.3625\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M257.1651,-235.8416C286.4715,-252.5818 331.1863,-278.1235 360.6259,-294.9399\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"367.0301,-298.598 359.3894,-297.8612 363.991,-296.862 360.9519,-295.126 360.9519,-295.126 360.9519,-295.126 363.991,-296.862 362.5143,-292.3908 367.0301,-298.598 367.0301,-298.598\"/>\n",
"<text text-anchor=\"start\" x=\"279.6224\" y=\"-287.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M240.8062,-250.4123C259.4883,-290.2526 298.0014,-356.6931 355.6224,-381 455.4066,-423.0931 587.0948,-398.3175 651.8692,-381.5453\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"658.6785,-379.7474 652.7147,-384.5801 655.2945,-380.6409 651.9105,-381.5345 651.9105,-381.5345 651.9105,-381.5345 655.2945,-380.6409 651.1063,-378.4888 658.6785,-379.7474 658.6785,-379.7474\"/>\n",
"<text text-anchor=\"start\" x=\"435.3625\" y=\"-407.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M261.6707,-219C294.6077,-219 345.9737,-219 390.4924,-219 390.4924,-219 390.4924,-219 608.3625,-219 719.7279,-219 840.3427,-283.7254 894.2494,-316.4791\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"900.4876,-320.3085 892.8739,-319.3309 897.5047,-318.4775 894.5219,-316.6464 894.5219,-316.6464 894.5219,-316.6464 897.5047,-318.4775 896.1699,-313.9618 900.4876,-320.3085 900.4876,-320.3085\"/>\n",
"<text text-anchor=\"start\" x=\"577.3625\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f7a780> >"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut = spot.automaton(\"\"\"\n",
"HOA: v1\n",
"States: 9\n",
"Start: 2\n",
"AP: 3 \"a\" \"b\" \"c\"\n",
"acc-name: Rabin 2\n",
"Acceptance: 4 (Fin(0) & Inf(1)) | (Fin(2) & Inf(3))\n",
"properties: trans-labels explicit-labels state-acc complete\n",
"properties: deterministic\n",
"--BODY--\n",
"State: 0 {2}\n",
"[0&!2] 0\n",
"[0&2] 1\n",
"[!0&!2] 5\n",
"[!0&2] 6\n",
"State: 1 {2}\n",
"[0] 1\n",
"[!0] 6\n",
"State: 2 {2}\n",
"[0&!1&!2] 3\n",
"[0&1&!2] 4\n",
"[!0&!2] 5\n",
"[2] 6\n",
"State: 3 {1 2}\n",
"[0&!2] 0\n",
"[0&2] 1\n",
"[!0&!2] 5\n",
"[!0&2] 6\n",
"State: 4 {1 2}\n",
"[0&!1&!2] 0\n",
"[0&!1&2] 1\n",
"[!0&!2] 5\n",
"[!0&2] 6\n",
"[0&1&!2] 7\n",
"[0&1&2] 8\n",
"State: 5 {1 2}\n",
"[0&!1&!2] 0\n",
"[!0&!2] 5\n",
"[2] 6\n",
"[0&1&!2] 7\n",
"State: 6 {1 2}\n",
"[t] 6\n",
"State: 7 {3}\n",
"[0&!1&!2] 0\n",
"[0&!1&2] 1\n",
"[!0&!2] 5\n",
"[!0&2] 6\n",
"[0&1&!2] 7\n",
"[0&1&2] 8\n",
"State: 8 {3}\n",
"[0&!1] 1\n",
"[!0] 6\n",
"[0&1] 8\n",
"--END--\n",
"\"\"\")\n",
"aut"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's decompose it into three strengths:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"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",
"<!-- Title: terminal Pages: 1 -->\n",
"<svg width=\"600pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 600.39 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.5333 .5333) rotate(0) translate(4 671)\">\n",
"<title>terminal</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-671 1121.7401,-671 1121.7401,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"532.8701\" y=\"-652.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">terminal</text>\n",
"<text text-anchor=\"start\" x=\"537.8701\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"559.8701\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"575.8701\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"535.8701\" y=\"-624.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"1040,-252 1040,-355 1109.7401,-355 1109.7401,-252 1040,-252\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"957,-204 957,-289 1009,-289 1009,-204 957,-204\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"823,-20 823,-105 875,-105 875,-20 823,-20\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"308,-259 308,-395 875,-395 875,-259 308,-259\"/>\n",
"</g>\n",
"<g id=\"clust5\" class=\"cluster\">\n",
"<title>cluster_4</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"168,-467 168,-519 220,-519 220,-467 168,-467\"/>\n",
"</g>\n",
"<g id=\"clust6\" class=\"cluster\">\n",
"<title>cluster_5</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"168,-175 168,-227 220,-227 220,-175 168,-175\"/>\n",
"</g>\n",
"<g id=\"clust7\" class=\"cluster\">\n",
"<title>cluster_6</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30,-459 30,-511 82,-511 82,-459 30,-459\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-485\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-481.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,-485C4.178,-485 17.9448,-485 30.9241,-485\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-485 30.9808,-488.1501 34.4807,-485 30.9807,-485.0001 30.9807,-485.0001 30.9807,-485.0001 34.4807,-485 30.9807,-481.8501 37.9807,-485 37.9807,-485\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1074.8701\" cy=\"-287\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"1070.3701\" y=\"-290.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"1066.8701\" y=\"-275.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M64.7512,-500.7791C83.7575,-532.7151 132.1219,-602 194,-602 194,-602 194,-602 983,-602 1041.0618,-602 1064.908,-402.2706 1072.2142,-320.8928\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1072.831,-313.8567 1075.3576,-321.1051 1072.5253,-317.3434 1072.2196,-320.83 1072.2196,-320.83 1072.2196,-320.83 1072.5253,-317.3434 1069.0817,-320.5548 1072.831,-313.8567 1072.831,-313.8567\"/>\n",
"<text text-anchor=\"start\" x=\"623.5\" y=\"-605.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"627\" cy=\"-336\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"627\" y=\"-332.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.7565,-480.6877C105.2034,-473.0794 172.77,-456.8611 230,-444 383.4289,-409.5203 431.1184,-431.1441 576,-370 586.8335,-365.428 597.8166,-358.4682 606.8018,-352.0339\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"612.6767,-347.699 608.9143,-354.3899 609.8603,-349.7771 607.044,-351.8552 607.044,-351.8552 607.044,-351.8552 609.8603,-349.7771 605.1737,-349.3205 612.6767,-347.699 612.6767,-347.699\"/>\n",
"<text text-anchor=\"start\" x=\"314\" y=\"-432.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"194\" cy=\"-493\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"194\" y=\"-489.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=\"M74.0411,-486.0459C98.2158,-487.4473 141.2465,-489.9418 168.664,-491.5312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.9545,-491.9539 168.7839,-494.6934 172.4603,-491.7513 168.9662,-491.5487 168.9662,-491.5487 168.9662,-491.5487 172.4603,-491.7513 169.1486,-488.404 175.9545,-491.9539 175.9545,-491.9539\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-493.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"194\" cy=\"-201\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"194\" y=\"-197.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=\"M62.8459,-468.1194C69.8579,-451.0526 81.2273,-423.9868 92,-401 122.6751,-335.5456 162.4368,-259.9639 182.0208,-223.2796\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"185.4361,-216.8937 184.9125,-224.552 183.7854,-219.9801 182.1348,-223.0664 182.1348,-223.0664 182.1348,-223.0664 183.7854,-219.9801 179.3571,-221.5809 185.4361,-216.8937 185.4361,-216.8937\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-404.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1065.5775,-312.37C1064.9366,-322.9238 1068.0341,-331.8701 1074.8701,-331.8701 1080.1038,-331.8701 1083.1462,-326.6259 1083.9972,-319.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1084.1627,-312.37 1087.1477,-319.4419 1084.0806,-315.869 1083.9986,-319.3681 1083.9986,-319.3681 1083.9986,-319.3681 1084.0806,-315.869 1080.8494,-319.2943 1084.1627,-312.37 1084.1627,-312.37\"/>\n",
"<text text-anchor=\"middle\" x=\"1074.8701\" y=\"-335.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"983\" cy=\"-230\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"983\" y=\"-226.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>7&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M998.5845,-239.6693C1011.51,-247.6888 1030.2387,-259.3088 1045.9038,-269.0281\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1051.9595,-272.7853 1044.3506,-271.7715 1048.9854,-270.9401 1046.0113,-269.0948 1046.0113,-269.0948 1046.0113,-269.0948 1048.9854,-270.9401 1047.672,-266.4181 1051.9595,-272.7853 1051.9595,-272.7853\"/>\n",
"<text text-anchor=\"start\" x=\"1019\" y=\"-261.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M975.9688,-246.6641C974.4063,-256.625 976.75,-266 983,-266 987.6875,-266 990.1777,-260.7266 990.4707,-253.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"990.0313,-246.6641 993.6006,-253.4598 990.2438,-250.1576 990.4564,-253.6511 990.4564,-253.6511 990.4564,-253.6511 990.2438,-250.1576 987.3122,-253.8425 990.0313,-246.6641 990.0313,-246.6641\"/>\n",
"<text text-anchor=\"start\" x=\"979.5\" y=\"-269.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"849\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"849\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;4 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>8&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M867.0536,-46.0891C887.5679,-46.8961 921.5036,-50.4177 947,-64 993.6011,-88.8251 1002.6754,-103.8191 1030,-149 1049.771,-181.6911 1061.8636,-224.0769 1068.437,-253.2\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1069.9906,-260.3044 1065.4178,-254.139 1069.2428,-256.8852 1068.4951,-253.466 1068.4951,-253.466 1068.4951,-253.466 1069.2428,-256.8852 1071.5724,-252.793 1069.9906,-260.3044 1069.9906,-260.3044\"/>\n",
"<text text-anchor=\"start\" x=\"977.5\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;7 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>8&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M865.4785,-54.3017C893.2126,-68.2882 946.29,-95.1233 947,-96 960.4957,-112.6637 972.6317,-170.9591 978.7719,-204.9212\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"980.0602,-212.1808 975.7355,-205.8389 979.4486,-208.7346 978.837,-205.2885 978.837,-205.2885 978.837,-205.2885 979.4486,-208.7346 981.9386,-204.738 980.0602,-212.1808 980.0602,-212.1808\"/>\n",
"<text text-anchor=\"start\" x=\"897.5\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M842.6208,-63.0373C841.3189,-72.8579 843.4453,-82 849,-82 853.166,-82 855.4036,-76.8576 855.7128,-70.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"855.3792,-63.0373 858.8541,-69.8818 855.5434,-66.5335 855.7076,-70.0296 855.7076,-70.0296 855.7076,-70.0296 855.5434,-66.5335 852.561,-70.1774 855.3792,-63.0373 855.3792,-63.0373\"/>\n",
"<text text-anchor=\"start\" x=\"832\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"334\" cy=\"-285\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"334\" y=\"-281.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M341.7211,-268.5465C358.6183,-235.2458 402.2745,-163 463,-163 463,-163 463,-163 983,-163 1028.2123,-163 1053.7377,-216.8802 1065.8851,-253.6072\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1068.1381,-260.7028 1063.0173,-254.9843 1067.0788,-257.3669 1066.0196,-254.031 1066.0196,-254.031 1066.0196,-254.031 1067.0788,-257.3669 1069.0219,-253.0777 1068.1381,-260.7028 1068.1381,-260.7028\"/>\n",
"<text text-anchor=\"start\" x=\"745\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M352.1611,-283.0076C358.4421,-282.34 365.5277,-281.6107 372,-281 599.3424,-259.549 874.7242,-238.2359 957.9864,-231.893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"964.9936,-231.36 958.2527,-235.0319 961.5037,-231.6255 958.0138,-231.891 958.0138,-231.891 958.0138,-231.891 961.5037,-231.6255 957.7749,-228.7501 964.9936,-231.36 964.9936,-231.36\"/>\n",
"<text text-anchor=\"start\" x=\"680\" y=\"-256.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M324.187,-300.1666C321.2134,-310.6641 324.4844,-321 334,-321 341.2854,-321 344.9103,-314.9413 344.8747,-307.39\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"343.813,-300.1666 347.9476,-306.6341 344.322,-303.6294 344.831,-307.0922 344.831,-307.0922 344.831,-307.0922 344.322,-303.6294 341.7145,-307.5503 343.813,-300.1666 343.813,-300.1666\"/>\n",
"<text text-anchor=\"start\" x=\"316\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M349.1659,-295.0356C367.4466,-306.496 399.5213,-324.6127 430,-332 490.31,-346.6177 564.068,-342.5272 601.931,-338.9024\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"609.0103,-338.1893 602.3613,-342.025 605.528,-338.5401 602.0456,-338.8909 602.0456,-338.8909 602.0456,-338.8909 605.528,-338.5401 601.7298,-335.7568 609.0103,-338.1893 609.0103,-338.1893\"/>\n",
"<text text-anchor=\"start\" x=\"443\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M639.4657,-349.4013C661.8586,-371.9403 711.3925,-415 763,-415 763,-415 763,-415 983,-415 1029.7378,-415 1055.0122,-357.9787 1066.6537,-320.0529\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1068.6709,-313.2116 1069.7125,-320.8167 1067.681,-316.5687 1066.6911,-319.9258 1066.6911,-319.9258 1066.6911,-319.9258 1067.681,-316.5687 1063.6697,-319.0349 1068.6709,-313.2116 1068.6709,-313.2116\"/>\n",
"<text text-anchor=\"start\" x=\"845.5\" y=\"-418.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M608.9744,-332.8624C558.6433,-324.1017 416.5206,-299.3636 358.8146,-289.3193\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"351.8874,-288.1135 359.3239,-286.2106 355.3356,-288.7137 358.7837,-289.314 358.7837,-289.314 358.7837,-289.314 355.3356,-288.7137 358.2435,-292.4173 351.8874,-288.1135 351.8874,-288.1135\"/>\n",
"<text text-anchor=\"start\" x=\"430\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M615.7566,-350.4167C611.8303,-361.166 615.5781,-372 627,-372 635.9233,-372 640.1628,-365.3875 639.7184,-357.3688\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"638.2434,-350.4167 642.7777,-356.6105 638.9698,-353.8405 639.6963,-357.2643 639.6963,-357.2643 639.6963,-357.2643 638.9698,-353.8405 636.6149,-357.918 638.2434,-350.4167 638.2434,-350.4167\"/>\n",
"<text text-anchor=\"start\" x=\"607\" y=\"-375.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"849\" cy=\"-304\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"849\" y=\"-300.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M645.0296,-339.9945C676.1783,-346.1194 741.7507,-355.5795 794,-340 806.9818,-336.1291 819.7499,-328.1079 829.7113,-320.6174\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"835.2325,-316.3039 831.6557,-323.0958 832.4744,-318.4587 829.7163,-320.6135 829.7163,-320.6135 829.7163,-320.6135 832.4744,-318.4587 827.777,-318.1312 835.2325,-316.3039 835.2325,-316.3039\"/>\n",
"<text text-anchor=\"start\" x=\"732\" y=\"-351.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M867.0862,-304.4329C886.7701,-304.76 919.159,-304.8777 947,-303 979.0339,-300.8395 1015.3356,-296.0733 1041.0537,-292.3017\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1048.0146,-291.2673 1041.5536,-295.4121 1044.5526,-291.7818 1041.0906,-292.2963 1041.0906,-292.2963 1041.0906,-292.2963 1044.5526,-291.7818 1040.6275,-289.1806 1048.0146,-291.2673 1048.0146,-291.2673\"/>\n",
"<text text-anchor=\"start\" x=\"965\" y=\"-305.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M865.7229,-296.3961C891.7105,-284.5427 939.5891,-262.5432 947,-258 952.5311,-254.6092 958.2095,-250.5206 963.3743,-246.5282\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"969.1618,-241.9332 965.6383,-248.7529 966.4207,-244.1095 963.6796,-246.2858 963.6796,-246.2858 963.6796,-246.2858 966.4207,-244.1095 961.7209,-243.8188 969.1618,-241.9332 969.1618,-241.9332\"/>\n",
"<text text-anchor=\"start\" x=\"885\" y=\"-290.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M849,-285.878C849,-240.7489 849,-123.2458 849,-71.3122\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"849,-64.1421 852.1501,-71.142 849,-67.6421 849.0001,-71.1421 849.0001,-71.1421 849.0001,-71.1421 849,-67.6421 845.8501,-71.1421 849,-64.1421 849,-64.1421\"/>\n",
"<text text-anchor=\"start\" x=\"809.5\" y=\"-171.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M831.026,-302.8974C797.4416,-300.871 722.8729,-296.5308 660,-294 547.8844,-289.4871 413.9869,-286.5678 359.2212,-285.4793\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.0291,-285.3379 359.0898,-282.3262 355.5285,-285.4068 359.0278,-285.4756 359.0278,-285.4756 359.0278,-285.4756 355.5285,-285.4068 358.9658,-288.625 352.0291,-285.3379 352.0291,-285.3379\"/>\n",
"<text text-anchor=\"start\" x=\"594\" y=\"-297.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M830.8931,-306.61C791.4166,-312.3003 697.5226,-325.8346 652.2571,-332.3593\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"645.1672,-333.3813 651.6461,-329.2648 648.6314,-332.8819 652.0956,-332.3825 652.0956,-332.3825 652.0956,-332.3825 648.6314,-332.8819 652.545,-335.5003 645.1672,-333.3813 645.1672,-333.3813\"/>\n",
"<text text-anchor=\"start\" x=\"743\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M842.6208,-321.0373C841.3189,-330.8579 843.4453,-340 849,-340 853.166,-340 855.4036,-334.8576 855.7128,-328.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"855.3792,-321.0373 858.8541,-327.8818 855.5434,-324.5335 855.7076,-328.0296 855.7076,-328.0296 855.7076,-328.0296 855.5434,-324.5335 852.561,-328.1774 855.3792,-321.0373 855.3792,-321.0373\"/>\n",
"<text text-anchor=\"start\" x=\"818\" y=\"-343.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M207.6012,-505.3458C214.0391,-510.7098 222.0478,-516.7294 230,-521 272.9657,-544.0742 285.2304,-556 334,-556 334,-556 334,-556 983,-556 1032.1427,-556 1060.4254,-393.1914 1070.5621,-320.8944\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1071.5424,-313.7762 1073.7079,-321.1405 1071.0649,-317.2435 1070.5873,-320.7107 1070.5873,-320.7107 1070.5873,-320.7107 1071.0649,-317.2435 1067.4668,-320.281 1071.5424,-313.7762 1071.5424,-313.7762\"/>\n",
"<text text-anchor=\"start\" x=\"678\" y=\"-559.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M211.3898,-498.7728C217.2366,-500.4598 223.8393,-502.0928 230,-503 434.9487,-533.1791 488.8412,-513 696,-513 696,-513 696,-513 849,-513 863.3216,-513 944.8872,-321.1817 973.2672,-253.3885\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"975.9982,-246.8554 976.2047,-254.5288 974.6483,-250.0847 973.2984,-253.3139 973.2984,-253.3139 973.2984,-253.3139 974.6483,-250.0847 970.3921,-252.099 975.9982,-246.8554 975.9982,-246.8554\"/>\n",
"<text text-anchor=\"start\" x=\"611\" y=\"-517.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M204.0685,-478.0412C228.5786,-441.6261 291.4088,-348.2784 319.7522,-306.1682\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.8347,-300.1028 322.5392,-307.6688 321.8803,-303.0063 319.926,-305.9099 319.926,-305.9099 319.926,-305.9099 321.8803,-303.0063 317.3128,-304.151 323.8347,-300.1028 323.8347,-300.1028\"/>\n",
"<text text-anchor=\"start\" x=\"245\" y=\"-440.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M212.2875,-492.0535C284.366,-488.1806 546.3129,-472.711 576,-451 605.0055,-429.7875 617.7935,-388.3392 623.229,-361.4284\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"624.5744,-354.2526 626.3804,-361.7132 623.9294,-357.6926 623.2843,-361.1327 623.2843,-361.1327 623.2843,-361.1327 623.9294,-357.6926 620.1883,-360.5521 624.5744,-354.2526 624.5744,-354.2526\"/>\n",
"<text text-anchor=\"start\" x=\"372\" y=\"-484.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M196.6939,-183.1057C202.0713,-149.2954 214.9246,-77.6529 230,-58 262.2119,-16.0073 281.0756,0 334,0 334,0 334,0 983,0 1035.646,0 1062.2958,-177.3811 1071.286,-253.2423\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1072.1011,-260.2575 1068.1641,-253.6679 1071.6971,-256.7809 1071.2931,-253.3042 1071.2931,-253.3042 1071.2931,-253.3042 1071.6971,-256.7809 1074.422,-252.9406 1072.1011,-260.2575 1072.1011,-260.2575\"/>\n",
"<text text-anchor=\"start\" x=\"678\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;7 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M206.0227,-187.5039C228.5758,-163.7591 279.8612,-117 334,-117 334,-117 334,-117 696,-117 802.3792,-117 916.4826,-185.0461 962.2631,-215.5306\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"968.2616,-219.5718 960.6961,-218.273 965.3588,-217.6162 962.4561,-215.6606 962.4561,-215.6606 962.4561,-215.6606 965.3588,-217.6162 964.2162,-213.0481 968.2616,-219.5718 968.2616,-219.5718\"/>\n",
"<text text-anchor=\"start\" x=\"596\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M196.2618,-182.804C199.8427,-161.2035 208.743,-125.3071 230,-103 264.6234,-66.6663 283.8112,-59 334,-59 334,-59 334,-59 763,-59 783.876,-59 807.2855,-55.2087 824.4038,-51.7209\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"831.3293,-50.2567 825.1324,-54.7866 827.905,-50.9807 824.4807,-51.7047 824.4807,-51.7047 824.4807,-51.7047 827.905,-50.9807 823.8291,-48.6229 831.3293,-50.2567 831.3293,-50.2567\"/>\n",
"<text text-anchor=\"start\" x=\"516\" y=\"-62.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M209.5174,-210.3104C234.5361,-225.3216 283.8549,-254.913 312.3297,-271.9978\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"318.4131,-275.6479 310.79,-274.7475 315.4119,-273.8471 312.4107,-272.0464 312.4107,-272.0464 312.4107,-272.0464 315.4119,-273.8471 314.0314,-269.3453 318.4131,-275.6479 318.4131,-275.6479\"/>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-263.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</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=\"M199.5142,-218.2957C205.3614,-234.9306 215.7301,-260.2472 230,-279 257.4997,-315.1385 266.3937,-326.8029 308,-345 409.7754,-389.513 547.8038,-358.7807 602.8703,-343.3626\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"609.7749,-341.3867 603.9117,-346.3411 606.41,-342.3496 603.045,-343.3126 603.045,-343.3126 603.045,-343.3126 606.41,-342.3496 602.1784,-340.2842 609.7749,-341.3867 609.7749,-341.3867\"/>\n",
"<text text-anchor=\"start\" x=\"372\" y=\"-370.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M212.1227,-201C238.8096,-201 290.25,-201 334,-201 334,-201 334,-201 545,-201 656.1939,-201 778.7423,-263.578 827.3882,-291.1803\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"833.4859,-294.6778 825.8465,-293.9273 830.4499,-292.9363 827.4138,-291.1949 827.4138,-291.1949 827.4138,-291.1949 830.4499,-292.9363 828.9811,-288.4625 833.4859,-294.6778 833.4859,-294.6778\"/>\n",
"<text text-anchor=\"start\" x=\"514\" y=\"-204.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f7a8a0> >"
]
},
"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",
"<!-- Title: strictly weak Pages: 1 -->\n",
"<svg width=\"734pt\" height=\"277pt\"\n",
" viewBox=\"0.00 0.00 734.00 277.15\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.7313 .7313) rotate(0) translate(4 375)\">\n",
"<title>strictly weak</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-375 999.7401,-375 999.7401,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"457.8701\" y=\"-356.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">strictly weak</text>\n",
"<text text-anchor=\"start\" x=\"476.8701\" y=\"-342.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"498.8701\" y=\"-342.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"514.8701\" y=\"-342.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"474.8701\" y=\"-328.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"918,-32 918,-135 987.7401,-135 987.7401,-32 918,-32\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"308,-85 308,-221 840,-221 840,-85 308,-85\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"168,-261 168,-313 220,-313 220,-261 168,-261\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"168,-55 168,-107 220,-107 220,-55 168,-55\"/>\n",
"</g>\n",
"<g id=\"clust5\" class=\"cluster\">\n",
"<title>cluster_4</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30,-215 30,-267 82,-267 82,-215 30,-215\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-241\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-237.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,-241C4.178,-241 17.9448,-241 30.9241,-241\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-241 30.9808,-244.1501 34.4807,-241 30.9807,-241.0001 30.9807,-241.0001 30.9807,-241.0001 34.4807,-241 30.9807,-237.8501 37.9807,-241 37.9807,-241\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"627\" cy=\"-162\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"627\" y=\"-158.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=\"M74.3045,-241C100.7326,-241 151.1146,-241 194,-241 194,-241 194,-241 463,-241 520.1824,-241 578.4591,-201.5357 607.7179,-178.3928\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"613.1738,-173.9984 609.6982,-180.8426 610.448,-176.1939 607.7222,-178.3894 607.7222,-178.3894 607.7222,-178.3894 610.448,-176.1939 605.7463,-175.9361 613.1738,-173.9984 613.1738,-173.9984\"/>\n",
"<text text-anchor=\"start\" x=\"314\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"194\" cy=\"-287\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"194\" y=\"-283.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=\"M72.7628,-247.7869C78.7949,-250.1579 85.6722,-252.7798 92,-255 118.3182,-264.2342 148.8873,-273.6543 169.6469,-279.8599\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"176.5577,-281.9153 168.9501,-282.939 173.2029,-280.9175 169.8481,-279.9197 169.8481,-279.9197 169.8481,-279.9197 173.2029,-280.9175 170.7461,-276.9004 176.5577,-281.9153 176.5577,-281.9153\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-279.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"194\" cy=\"-81\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"194\" y=\"-77.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=\"M67.7658,-227.3585C92.2888,-198.926 148.9351,-133.2492 177.2522,-100.4178\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"181.8706,-95.0631 179.684,-102.4212 179.5846,-97.7135 177.2987,-100.3638 177.2987,-100.3638 177.2987,-100.3638 179.5846,-97.7135 174.9133,-98.3065 181.8706,-95.0631 181.8706,-95.0631\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"952.8701\" cy=\"-67\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"948.3701\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"<text text-anchor=\"start\" x=\"944.8701\" y=\"-55.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M939.6996,-90.5464C938.0737,-101.8722 942.4638,-111.8701 952.8701,-111.8701 960.9999,-111.8701 965.4579,-105.7678 966.2439,-97.6976\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"966.0405,-90.5464 969.3883,-97.454 966.14,-94.045 966.2396,-97.5436 966.2396,-97.5436 966.2396,-97.5436 966.14,-94.045 963.0909,-97.6332 966.0405,-90.5464 966.0405,-90.5464\"/>\n",
"<text text-anchor=\"start\" x=\"935.8701\" y=\"-115.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"334\" cy=\"-147\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"334\" y=\"-143.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M324.187,-162.1666C321.2134,-172.6641 324.4844,-183 334,-183 341.2854,-183 344.9103,-176.9413 344.8747,-169.39\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"343.813,-162.1666 347.9476,-168.6341 344.322,-165.6294 344.831,-169.0922 344.831,-169.0922 344.831,-169.0922 344.322,-165.6294 341.7145,-169.5503 343.813,-162.1666 343.813,-162.1666\"/>\n",
"<text text-anchor=\"start\" x=\"316\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M351.0398,-153.3297C370.0008,-160.0083 401.701,-170.0962 430,-174 491.5753,-182.4943 564.8054,-172.9245 602.2533,-166.6263\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"609.2517,-165.4167 602.8905,-169.713 605.8028,-166.0128 602.354,-166.609 602.354,-166.609 602.354,-166.609 605.8028,-166.0128 601.8174,-163.5051 609.2517,-165.4167 609.2517,-165.4167\"/>\n",
"<text text-anchor=\"start\" x=\"443\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M608.6785,-161.062C558.3289,-158.4844 417.7524,-151.2877 359.6413,-148.3127\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.3285,-147.9383 359.4804,-145.1504 355.8239,-148.1173 359.3193,-148.2963 359.3193,-148.2963 359.3193,-148.2963 355.8239,-148.1173 359.1582,-151.4422 352.3285,-147.9383 352.3285,-147.9383\"/>\n",
"<text text-anchor=\"start\" x=\"430\" y=\"-158.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !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=\"M618.3666,-177.916C616.1144,-188.1504 618.9922,-198 627,-198 633.131,-198 636.2548,-192.2263 636.3716,-184.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"635.6334,-177.916 639.4992,-184.5477 636,-181.3968 636.3665,-184.8775 636.3665,-184.8775 636.3665,-184.8775 636,-181.3968 633.2338,-185.2074 635.6334,-177.916 635.6334,-177.916\"/>\n",
"<text text-anchor=\"start\" x=\"607\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"814\" cy=\"-111\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"814\" y=\"-107.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M644.5925,-157.202C678.0909,-148.0661 751.1025,-128.1539 789.413,-117.7055\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"796.5905,-115.7481 790.666,-120.629 793.2138,-116.669 789.8371,-117.5899 789.8371,-117.5899 789.8371,-117.5899 793.2138,-116.669 789.0083,-114.5509 796.5905,-115.7481 796.5905,-115.7481\"/>\n",
"<text text-anchor=\"start\" x=\"697\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M831.3072,-105.5163C853.4934,-98.4868 892.4125,-86.1556 920.2393,-77.3388\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"927.058,-75.1784 921.3364,-80.2956 923.7215,-76.2356 920.3849,-77.2928 920.3849,-77.2928 920.3849,-77.2928 923.7215,-76.2356 919.4335,-74.2899 927.058,-75.1784 927.058,-75.1784\"/>\n",
"<text text-anchor=\"start\" x=\"850\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M795.7248,-111.361C757.989,-112.1915 668.7286,-114.5966 594,-120 507.6038,-126.247 405.5022,-138.1883 359.1447,-143.8598\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"351.9331,-144.7466 358.4963,-140.7657 355.407,-144.3194 358.8808,-143.8921 358.8808,-143.8921 358.8808,-143.8921 355.407,-144.3194 359.2653,-147.0186 351.9331,-144.7466 351.9331,-144.7466\"/>\n",
"<text text-anchor=\"start\" x=\"594\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M803.1887,-125.5149C793.2327,-137.5699 777.2684,-153.8577 759,-161 723.8824,-174.7298 679.3806,-171.2244 652.0628,-166.9666\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"644.8356,-165.7595 652.2589,-163.8058 648.2878,-166.3361 651.7399,-166.9128 651.7399,-166.9128 651.7399,-166.9128 648.2878,-166.3361 651.2209,-170.0197 644.8356,-165.7595 644.8356,-165.7595\"/>\n",
"<text text-anchor=\"start\" x=\"708\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M807.6208,-128.0373C806.3189,-137.8579 808.4453,-147 814,-147 818.166,-147 820.4036,-141.8576 820.7128,-135.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"820.3792,-128.0373 823.8541,-134.8818 820.5434,-131.5335 820.7076,-135.0296 820.7076,-135.0296 820.7076,-135.0296 820.5434,-131.5335 817.561,-135.1774 820.3792,-128.0373 820.3792,-128.0373\"/>\n",
"<text text-anchor=\"start\" x=\"783\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M206.9199,-274.0801C232.0278,-248.9722 287.4509,-193.5491 316.089,-164.911\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"321.1113,-159.8887 318.3889,-167.0659 318.6364,-162.3636 316.1615,-164.8385 316.1615,-164.8385 316.1615,-164.8385 318.6364,-162.3636 313.9341,-162.6111 321.1113,-159.8887 321.1113,-159.8887\"/>\n",
"<text text-anchor=\"start\" x=\"245\" y=\"-252.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M211.8301,-290.9663C269.8799,-302.8299 456.5889,-332.6186 576,-255 600.1015,-239.3338 613.7733,-208.1925 620.7732,-186.2745\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"622.8163,-179.5137 623.8067,-187.1257 621.8038,-182.8641 620.7913,-186.2144 620.7913,-186.2144 620.7913,-186.2144 621.8038,-182.8641 617.776,-185.3032 622.8163,-179.5137 622.8163,-179.5137\"/>\n",
"<text text-anchor=\"start\" x=\"372\" y=\"-309.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M205.122,-66.5729C211.6956,-58.7934 220.564,-49.4866 230,-43 271.2177,-14.6658 283.9827,0 334,0 334,0 334,0 814,0 856.556,0 899.8116,-25.8381 926.4865,-45.4233\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"932.2468,-49.7458 924.7572,-48.0639 929.4473,-47.6451 926.6478,-45.5444 926.6478,-45.5444 926.6478,-45.5444 929.4473,-47.6451 928.5385,-43.0248 932.2468,-49.7458 932.2468,-49.7458\"/>\n",
"<text text-anchor=\"start\" x=\"598\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M210.3338,-88.7002C235.1746,-100.4109 282.5494,-122.7447 310.9048,-136.1123\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"317.3363,-139.1443 309.6614,-139.0085 314.1705,-137.6518 311.0046,-136.1593 311.0046,-136.1593 311.0046,-136.1593 314.1705,-137.6518 312.3479,-133.31 317.3363,-139.1443 317.3363,-139.1443\"/>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</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=\"M211.9919,-80.0468C249.5325,-78.428 338.799,-76.513 412,-90 483.9767,-103.2615 564.8118,-135.2386 603.6714,-151.7506\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"610.4272,-154.6458 602.7523,-154.7838 607.2102,-153.2671 603.9931,-151.8884 603.9931,-151.8884 603.9931,-151.8884 607.2102,-153.2671 605.2339,-148.9931 610.4272,-154.6458 610.4272,-154.6458\"/>\n",
"<text text-anchor=\"start\" x=\"372\" y=\"-93.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M210.4166,-73.4924C236.1749,-62.4181 287.9115,-43 334,-43 334,-43 334,-43 728,-43 758.6633,-43 784.7908,-69.9282 799.9484,-89.8934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"804.1102,-95.5697 797.4308,-91.7871 802.0407,-92.7471 799.9711,-89.9245 799.9711,-89.9245 799.9711,-89.9245 802.0407,-92.7471 802.5115,-88.0619 804.1102,-95.5697 804.1102,-95.5697\"/>\n",
"<text text-anchor=\"start\" x=\"514\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b437fb030> >"
]
},
"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",
"<!-- Title: strong Pages: 1 -->\n",
"<svg width=\"734pt\" height=\"262pt\"\n",
" viewBox=\"0.00 0.00 734.00 261.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.8253 .8253) rotate(0) translate(4 313)\">\n",
"<title>strong</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-313 885.3625,-313 885.3625,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"420.1812\" y=\"-294.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">strong</text>\n",
"<text text-anchor=\"start\" x=\"324.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"352.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"368.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"411.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"427.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"474.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"490.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"533.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"549.1812\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"411.6812\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 2]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"306,-24 306,-192 873.3625,-192 873.3625,-24 306,-24\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"168,-158 168,-210 220,-210 220,-158 168,-158\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"168,-45 168,-97 220,-97 220,-45 168,-45\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30,-158 30,-210 82,-210 82,-158 30,-158\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-184\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-180.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,-184C4.178,-184 17.9448,-184 30.9241,-184\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-184 30.9808,-187.1501 34.4807,-184 30.9807,-184.0001 30.9807,-184.0001 30.9807,-184.0001 34.4807,-184 30.9807,-180.8501 37.9807,-184 37.9807,-184\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"641.6812\" cy=\"-66\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"637.1812\" y=\"-69.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"625.6812\" y=\"-55.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"641.6812\" y=\"-55.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M70.4119,-195.0049C94.5769,-212.3264 145.4077,-244 194,-244 194,-244 194,-244 476.7401,-244 552.2928,-244 602.9335,-156.6533 626.4897,-104.3341\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"629.3634,-97.8228 629.4188,-105.4988 627.9502,-101.0249 626.537,-104.2269 626.537,-104.2269 626.537,-104.2269 627.9502,-101.0249 623.6551,-102.955 629.3634,-97.8228 629.3634,-97.8228\"/>\n",
"<text text-anchor=\"start\" x=\"320.8701\" y=\"-247.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"194\" cy=\"-184\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"194\" y=\"-180.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=\"M74.0411,-184C98.2158,-184 141.2465,-184 168.664,-184\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.9545,-184 168.9545,-187.1501 172.4545,-184 168.9545,-184.0001 168.9545,-184.0001 168.9545,-184.0001 172.4545,-184 168.9544,-180.8501 175.9545,-184 175.9545,-184\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"194\" cy=\"-71\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"194\" y=\"-67.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=\"M69.9916,-172.5431C94.6849,-152.3232 146.0508,-110.2627 174.3098,-87.1231\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"179.9714,-82.4872 176.5511,-89.3592 177.2634,-84.7046 174.5554,-86.9221 174.5554,-86.9221 174.5554,-86.9221 177.2634,-84.7046 172.5597,-84.4849 179.9714,-82.4872 179.9714,-82.4872\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"340.8701\" cy=\"-110\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"336.3701\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"332.8701\" y=\"-98.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M329.0576,-134.4616C327.9326,-145.4053 331.8701,-154.8701 340.8701,-154.8701 347.7607,-154.8701 351.6838,-149.322 352.6393,-141.8099\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.6826,-134.4616 355.7912,-141.4801 352.6619,-137.9616 352.6413,-141.4615 352.6413,-141.4615 352.6413,-141.4615 352.6619,-137.9616 349.4913,-141.4429 352.6826,-134.4616 352.6826,-134.4616\"/>\n",
"<text text-anchor=\"start\" x=\"322.8701\" y=\"-158.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M366.8979,-102.9498C387.5836,-97.5844 417.3286,-90.3966 443.7401,-86 497.465,-77.0567 560.1052,-71.5427 600.2943,-68.6265\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"607.53,-68.112 600.7711,-71.7507 604.0388,-68.3603 600.5476,-68.6086 600.5476,-68.6086 600.5476,-68.6086 604.0388,-68.3603 600.3241,-65.4666 607.53,-68.112 607.53,-68.112\"/>\n",
"<text text-anchor=\"start\" x=\"456.7401\" y=\"-89.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M611.1155,-81.0088C604.2055,-83.9845 596.8171,-86.8492 589.7401,-89 515.5539,-111.5469 423.5782,-112.8414 374.8629,-111.5727\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"367.7108,-111.3596 374.8016,-108.4196 371.2093,-111.4639 374.7077,-111.5682 374.7077,-111.5682 374.7077,-111.5682 371.2093,-111.4639 374.6138,-114.7168 367.7108,-111.3596 367.7108,-111.3596\"/>\n",
"<text text-anchor=\"start\" x=\"443.7401\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M631.9318,-98.7164C631.9822,-109.419 635.232,-117.9411 641.6812,-117.9411 646.6189,-117.9411 649.6812,-112.9456 650.868,-105.8007\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"651.4306,-98.7164 654.0164,-105.9439 651.1535,-102.2054 650.8763,-105.6944 650.8763,-105.6944 650.8763,-105.6944 651.1535,-102.2054 647.7362,-105.445 651.4306,-98.7164 651.4306,-98.7164\"/>\n",
"<text text-anchor=\"start\" x=\"621.6812\" y=\"-121.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"838.4924\" cy=\"-84\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"833.9924\" y=\"-87.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"<text text-anchor=\"start\" x=\"830.4924\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M675.6639,-66.2199C702.5875,-66.7104 741.1156,-68.1157 774.6224,-72 784.6329,-73.1605 795.4333,-74.972 805.2537,-76.839\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"812.2059,-78.1997 804.7312,-79.9464 808.7711,-77.5274 805.3363,-76.855 805.3363,-76.855 805.3363,-76.855 808.7711,-77.5274 805.9414,-73.7637 812.2059,-78.1997 812.2059,-78.1997\"/>\n",
"<text text-anchor=\"start\" x=\"712.6224\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M825.4568,-107.6772C809.6731,-132.828 780.5533,-169 743.6224,-169 476.7401,-169 476.7401,-169 476.7401,-169 436.7429,-169 395.1948,-147.2225 368.7437,-130.1291\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"362.6817,-126.122 370.2583,-127.3543 365.6015,-128.0521 368.5213,-129.9821 368.5213,-129.9821 368.5213,-129.9821 365.6015,-128.0521 366.7842,-132.6099 362.6817,-126.122 362.6817,-126.122\"/>\n",
"<text text-anchor=\"start\" x=\"608.6812\" y=\"-172.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M811.3267,-87.2541C785.7276,-89.7063 746.3694,-91.89 712.6224,-87 702.0875,-85.4735 690.9389,-82.7345 680.6779,-79.728\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"673.7344,-77.6155 681.3482,-76.6395 677.0828,-78.6343 680.4313,-79.6531 680.4313,-79.6531 680.4313,-79.6531 677.0828,-78.6343 679.5144,-82.6667 673.7344,-77.6155 673.7344,-77.6155\"/>\n",
"<text text-anchor=\"start\" x=\"723.6224\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M830.2928,-109.8213C829.8295,-120.1776 832.5627,-128.8701 838.4924,-128.8701 842.9397,-128.8701 845.5889,-123.9805 846.4402,-117.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"846.6921,-109.8213 849.6002,-116.9252 846.5721,-113.3193 846.4521,-116.8172 846.4521,-116.8172 846.4521,-116.8172 846.5721,-113.3193 843.3039,-116.7092 846.6921,-109.8213 846.6921,-109.8213\"/>\n",
"<text text-anchor=\"start\" x=\"807.4924\" y=\"-132.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M210.2788,-175.798C234.3033,-163.6933 279.6869,-140.8269 310.1084,-125.4992\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"316.7383,-122.1587 311.9043,-128.1216 313.6126,-123.7336 310.4869,-125.3085 310.4869,-125.3085 310.4869,-125.3085 313.6126,-123.7336 309.0695,-122.4954 316.7383,-122.1587 316.7383,-122.1587\"/>\n",
"<text text-anchor=\"start\" x=\"245\" y=\"-167.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M212.062,-184.073C232.4531,-184.0973 266.6185,-183.9626 296,-183 327.9169,-181.9543 335.8862,-181.2605 367.7401,-179 393.5486,-177.1685 400.7029,-180.5247 425.7401,-174 503.1211,-153.8344 519.6303,-138.4588 589.7401,-100 595.5692,-96.8024 601.605,-93.1717 607.4095,-89.5022\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"613.5964,-85.5238 609.4123,-91.9594 610.6525,-87.4168 607.7086,-89.3099 607.7086,-89.3099 607.7086,-89.3099 610.6525,-87.4168 606.0048,-86.6604 613.5964,-85.5238 613.5964,-85.5238\"/>\n",
"<text text-anchor=\"start\" x=\"385.7401\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M211.4247,-75.627C235.1311,-81.922 278.0108,-93.3083 307.8947,-101.2437\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"314.8149,-103.0813 307.2409,-104.3292 311.4321,-102.183 308.0493,-101.2847 308.0493,-101.2847 308.0493,-101.2847 311.4321,-102.183 308.8578,-98.2402 314.8149,-103.0813 314.8149,-103.0813\"/>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</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=\"M212.0869,-70.5606C262.22,-69.3672 407.2082,-66.0834 527.7401,-65 555.2946,-64.7523 562.1858,-64.7348 589.7401,-65 593.2575,-65.0339 596.9086,-65.0806 600.5711,-65.1355\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"607.5962,-65.25 600.5458,-68.2854 604.0967,-65.1929 600.5972,-65.1359 600.5972,-65.1359 600.5972,-65.1359 604.0967,-65.1929 600.6485,-61.9863 607.5962,-65.25 607.5962,-65.25\"/>\n",
"<text text-anchor=\"start\" x=\"385.7401\" y=\"-69.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M207.9151,-58.9558C232.7989,-38.6992 287.3426,0 340.8701,0 340.8701,0 340.8701,0 743.6224,0 777.2875,0 804.6048,-30.0165 821.1337,-54.163\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"825.1007,-60.1537 818.6095,-56.0566 823.1683,-57.2355 821.2358,-54.3173 821.2358,-54.3173 821.2358,-54.3173 823.1683,-57.2355 823.8622,-52.5781 825.1007,-60.1537 825.1007,-60.1537\"/>\n",
"<text text-anchor=\"start\" x=\"527.7401\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f5f5a0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for (name, opt) in (('terminal', 't'), ('strictly weak', 'w'), ('strong', 's')):\n",
" a = spot.decompose_scc(aut, opt)\n",
" a.set_name(name)\n",
" display(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note how the two weak automata (i.e., stricly weak and terminal) are now using a Büchi acceptance condition (because that is sufficient for weak automata) while the strong automaton inherited the original acceptance condition.\n",
"\n",
"When extracting multiple strengths and one of the strength is **strong**, we preserve the original acceptance. For instance extracting **strong** and **inherently terminal** gives the following automaton, where only **stricly inherently weak** SCCs have become rejecting."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"639pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 638.98 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.5446 .5446) rotate(0) translate(4 657)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-657 1169.2447,-657 1169.2447,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"466.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"494.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"510.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"553.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"569.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"616.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"632.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"675.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"691.1224\" y=\"-638.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"553.6224\" y=\"-624.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 2]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"1073.3625,-254 1073.3625,-371 1157.2447,-371 1157.2447,-254 1073.3625,-254\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"990.3625,-213 990.3625,-298 1042.3625,-298 1042.3625,-213 990.3625,-213\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"847.4924,-20 847.4924,-105 899.4924,-105 899.4924,-20 847.4924,-20\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"306,-259 306,-427 908.3625,-427 908.3625,-259 306,-259\"/>\n",
"</g>\n",
"<g id=\"clust5\" class=\"cluster\">\n",
"<title>cluster_4</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"168,-467 168,-519 220,-519 220,-467 168,-467\"/>\n",
"</g>\n",
"<g id=\"clust6\" class=\"cluster\">\n",
"<title>cluster_5</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"168,-175 168,-227 220,-227 220,-175 168,-175\"/>\n",
"</g>\n",
"<g id=\"clust7\" class=\"cluster\">\n",
"<title>cluster_6</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30,-428 30,-480 82,-480 82,-428 30,-428\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-454\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-450.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,-454C4.178,-454 17.9448,-454 30.9241,-454\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-454 30.9808,-457.1501 34.4807,-454 30.9807,-454.0001 30.9807,-454.0001 30.9807,-454.0001 34.4807,-454 30.9807,-450.8501 37.9807,-454 37.9807,-454\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1115.3036\" cy=\"-296\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"1110.8036\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"1099.3036\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1115.3036\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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.3576,-470.9775C78.1401,-509.8523 123.0348,-602 194,-602 194,-602 194,-602 1016.3625,-602 1071.4281,-602 1100.3765,-420.3314 1110.7631,-336.9498\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1111.6242,-329.9165 1113.9001,-337.2475 1111.1988,-333.3906 1110.7734,-336.8646 1110.7734,-336.8646 1110.7734,-336.8646 1111.1988,-333.3906 1107.6468,-336.4818 1111.6242,-329.9165 1111.6242,-329.9165\"/>\n",
"<text text-anchor=\"start\" x=\"638.1812\" y=\"-605.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"641.6812\" cy=\"-352\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"637.1812\" y=\"-355.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"625.6812\" y=\"-341.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"641.6812\" y=\"-341.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M74.1662,-451.8495C135.4982,-444.5697 340.5241,-420.0747 509.7401,-398 545.3287,-393.3574 556.2117,-399.8042 589.7401,-387 596.2922,-384.4978 602.8399,-381.0347 608.9694,-377.2537\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"614.9443,-373.3905 610.7763,-379.8366 612.0051,-375.2909 609.066,-377.1913 609.066,-377.1913 609.066,-377.1913 612.0051,-375.2909 607.3556,-374.5461 614.9443,-373.3905 614.9443,-373.3905\"/>\n",
"<text text-anchor=\"start\" x=\"320.8701\" y=\"-426.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"194\" cy=\"-493\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"194\" y=\"-489.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=\"M73.4778,-458.9394C97.8452,-465.8258 142.13,-478.3411 169.6997,-486.1325\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"176.6641,-488.1007 169.0713,-489.2282 173.296,-487.1488 169.9279,-486.197 169.9279,-486.197 169.9279,-486.197 173.296,-487.1488 170.7846,-483.1657 176.6641,-488.1007 176.6641,-488.1007\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-485.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"194\" cy=\"-201\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"194\" y=\"-197.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=\"M64.6325,-438.1737C88.3506,-394.6907 154.5608,-273.3052 181.927,-223.1339\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"185.3707,-216.8203 184.7841,-224.474 183.6947,-219.8929 182.0187,-222.9656 182.0187,-222.9656 182.0187,-222.9656 183.6947,-219.8929 179.2534,-221.4572 185.3707,-216.8203 185.3707,-216.8203\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-389.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1104.8036,-328.4632C1104.8036,-339.2843 1108.3036,-347.9411 1115.3036,-347.9411 1120.663,-347.9411 1123.9707,-342.8666 1125.2268,-335.6315\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1125.8036,-328.4632 1128.3819,-335.6933 1125.5229,-331.9519 1125.2421,-335.4407 1125.2421,-335.4407 1125.2421,-335.4407 1125.5229,-331.9519 1122.1022,-335.188 1125.8036,-328.4632 1125.8036,-328.4632\"/>\n",
"<text text-anchor=\"middle\" x=\"1115.3036\" y=\"-351.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1016.3625\" cy=\"-239\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1016.3625\" y=\"-235.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>7&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1032.2591,-248.158C1044.9903,-255.4925 1063.3384,-266.0628 1079.5518,-275.4034\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1085.8775,-279.0476 1078.2396,-278.2827 1082.8448,-277.3005 1079.8121,-275.5533 1079.8121,-275.5533 1079.8121,-275.5533 1082.8448,-277.3005 1081.3845,-272.8238 1085.8775,-279.0476 1085.8775,-279.0476\"/>\n",
"<text text-anchor=\"start\" x=\"1052.3625\" y=\"-268.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1009.3312,-255.6641C1007.7687,-265.625 1010.1125,-275 1016.3625,-275 1021.05,-275 1023.5402,-269.7266 1023.8332,-262.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1023.3937,-255.6641 1026.9631,-262.4598 1023.6063,-259.1576 1023.8189,-262.6511 1023.8189,-262.6511 1023.8189,-262.6511 1023.6063,-259.1576 1020.6747,-262.8425 1023.3937,-255.6641 1023.3937,-255.6641\"/>\n",
"<text text-anchor=\"start\" x=\"1012.8625\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"873.4924\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"873.4924\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;4 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>8&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M891.5858,-45.702C913.7485,-46.0631 951.8554,-49.0834 980.3625,-64 1027.1459,-88.4799 1035.4689,-104.1681 1063.3625,-149 1084.0133,-182.1909 1097.8948,-224.7173 1106.0724,-255.4826\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1107.9298,-262.6442 1103.1233,-256.6591 1107.0511,-259.2562 1106.1724,-255.8683 1106.1724,-255.8683 1106.1724,-255.8683 1107.0511,-259.2562 1109.2215,-255.0775 1107.9298,-262.6442 1107.9298,-262.6442\"/>\n",
"<text text-anchor=\"start\" x=\"1010.8625\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;7 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>8&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M890.3556,-52.9478C918.8875,-64.8395 974.2023,-88.5348 980.3625,-96 995.0802,-113.8358 1006.9531,-177.7082 1012.6672,-213.7628\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1013.7919,-221.0076 1009.6053,-214.5737 1013.2549,-217.549 1012.718,-214.0904 1012.718,-214.0904 1012.718,-214.0904 1013.2549,-217.549 1015.8307,-213.6072 1013.7919,-221.0076 1013.7919,-221.0076\"/>\n",
"<text text-anchor=\"start\" x=\"930.8625\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M865.8245,-62.2903C863.9755,-72.3892 866.5315,-82 873.4924,-82 878.7131,-82 881.456,-76.5939 881.7211,-69.6304\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"881.1603,-62.2903 884.8345,-69.0299 881.427,-65.7801 881.6937,-69.2699 881.6937,-69.2699 881.6937,-69.2699 881.427,-65.7801 878.5529,-69.5099 881.1603,-62.2903 881.1603,-62.2903\"/>\n",
"<text text-anchor=\"start\" x=\"856.4924\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"340.8701\" cy=\"-294\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"336.3701\" y=\"-297.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"<text text-anchor=\"start\" x=\"332.8701\" y=\"-282.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M352.2785,-269.6669C371.9225,-231.7827 415.9576,-163 476.7401,-163 476.7401,-163 476.7401,-163 1016.3625,-163 1063.4271,-163 1090.7372,-217.2769 1104.3252,-256.4838\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1106.5469,-263.1236 1101.3384,-257.4849 1105.4362,-259.8045 1104.3256,-256.4853 1104.3256,-256.4853 1104.3256,-256.4853 1105.4362,-259.8045 1107.3129,-255.4858 1106.5469,-263.1236 1106.5469,-263.1236\"/>\n",
"<text text-anchor=\"start\" x=\"760.6224\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M367.8902,-290.1405C373.7672,-289.37 379.9564,-288.6109 385.7401,-288 620.5437,-263.1981 905.777,-245.4927 991.0973,-240.4588\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"998.2693,-240.0378 991.466,-243.5927 994.7753,-240.2429 991.2813,-240.4481 991.2813,-240.4481 991.2813,-240.4481 994.7753,-240.2429 991.0967,-237.3035 998.2693,-240.0378 998.2693,-240.0378\"/>\n",
"<text text-anchor=\"start\" x=\"695.6224\" y=\"-263.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M329.0576,-318.4616C327.9326,-329.4053 331.8701,-338.8701 340.8701,-338.8701 347.7607,-338.8701 351.6838,-333.322 352.6393,-325.8099\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.6826,-318.4616 355.7912,-325.4801 352.6619,-321.9616 352.6413,-325.4615 352.6413,-325.4615 352.6413,-325.4615 352.6619,-321.9616 349.4913,-325.4429 352.6826,-318.4616 352.6826,-318.4616\"/>\n",
"<text text-anchor=\"start\" x=\"322.8701\" y=\"-342.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M365.1939,-305.6997C385.6573,-314.9906 415.9456,-327.4696 443.7401,-334 496.9779,-346.5084 560.1617,-350.4281 600.5728,-351.5993\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"607.5985,-351.7818 600.519,-354.7489 604.0997,-351.6908 600.6008,-351.5999 600.6008,-351.5999 600.6008,-351.5999 604.0997,-351.6908 600.6827,-348.451 607.5985,-351.7818 607.5985,-351.7818\"/>\n",
"<text text-anchor=\"start\" x=\"456.7401\" y=\"-348.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M668.5433,-373.1334C694.9818,-391.7751 737.29,-416 778.6224,-416 778.6224,-416 778.6224,-416 1016.3625,-416 1059.0166,-416 1086.7037,-370.3076 1101.6537,-335.3133\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1104.4745,-328.4737 1104.7176,-336.146 1103.14,-331.7093 1101.8055,-334.945 1101.8055,-334.945 1101.8055,-334.945 1103.14,-331.7093 1098.8935,-333.7439 1104.4745,-328.4737 1104.4745,-328.4737\"/>\n",
"<text text-anchor=\"start\" x=\"869.9924\" y=\"-419.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M608.8075,-342.8237C582.2361,-335.6381 543.785,-325.7606 509.7401,-319 463.1963,-309.7574 408.8161,-302.2968 374.6082,-298.0047\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"367.6249,-297.1374 374.9598,-294.8742 371.0982,-297.5688 374.5715,-298.0002 374.5715,-298.0002 374.5715,-298.0002 371.0982,-297.5688 374.1832,-301.1262 367.6249,-297.1374 367.6249,-297.1374\"/>\n",
"<text text-anchor=\"start\" x=\"443.7401\" y=\"-322.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M628.9382,-383.6989C628.7344,-394.8737 632.982,-403.9411 641.6812,-403.9411 648.3416,-403.9411 652.3925,-398.626 653.834,-391.1193\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"654.4242,-383.6989 657.0092,-390.9266 654.1467,-387.1878 653.8691,-390.6768 653.8691,-390.6768 653.8691,-390.6768 654.1467,-387.1878 650.729,-390.427 654.4242,-383.6989 654.4242,-383.6989\"/>\n",
"<text text-anchor=\"start\" x=\"621.6812\" y=\"-407.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"873.4924\" cy=\"-310\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"868.9924\" y=\"-313.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"<text text-anchor=\"start\" x=\"865.4924\" y=\"-298.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M675.7521,-353.5639C710.1239,-354.2646 764.427,-352.957 809.6224,-341 821.3649,-337.8934 833.5315,-332.5848 844.0556,-327.2299\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"850.3776,-323.909 845.6455,-329.9529 847.2791,-325.5366 844.1806,-327.1643 844.1806,-327.1643 844.1806,-327.1643 847.2791,-325.5366 842.7157,-324.3756 850.3776,-323.909 850.3776,-323.909\"/>\n",
"<text text-anchor=\"start\" x=\"747.6224\" y=\"-354.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M900.735,-309.1833C922.337,-308.4867 953.2901,-307.3797 980.3625,-306 1007.9395,-304.5946 1014.8237,-304.0208 1042.3625,-302 1052.6586,-301.2445 1063.7665,-300.3641 1074.1339,-299.5143\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1081.1739,-298.9328 1074.457,-302.6484 1077.6858,-299.2209 1074.1977,-299.5091 1074.1977,-299.5091 1074.1977,-299.5091 1077.6858,-299.2209 1073.9383,-296.3698 1081.1739,-298.9328 1081.1739,-298.9328\"/>\n",
"<text text-anchor=\"start\" x=\"998.3625\" y=\"-308.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M897.7974,-298.4533C919.5315,-288.0616 952.2053,-272.2758 980.3625,-258 984.7669,-255.767 989.4489,-253.3374 993.929,-250.985\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1000.2924,-247.6255 995.5728,-253.6793 997.1972,-249.2596 994.1021,-250.8937 994.1021,-250.8937 994.1021,-250.8937 997.1972,-249.2596 992.6314,-248.108 1000.2924,-247.6255 1000.2924,-247.6255\"/>\n",
"<text text-anchor=\"start\" x=\"918.3625\" y=\"-290.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M873.4924,-282.9285C873.4924,-231.6863 873.4924,-121.1953 873.4924,-71.3298\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"873.4924,-64.1458 876.6425,-71.1457 873.4925,-67.6458 873.4925,-71.1458 873.4925,-71.1458 873.4925,-71.1458 873.4925,-67.6458 870.3425,-71.1458 873.4924,-64.1458 873.4924,-64.1458\"/>\n",
"<text text-anchor=\"start\" x=\"833.9924\" y=\"-169.865\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M846.6501,-307.1382C808.6374,-303.2431 736.9194,-296.4742 675.6224,-294 565.6942,-289.5628 435.2949,-291.688 374.8108,-293.0965\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"367.7874,-293.2642 374.7102,-289.9479 371.2864,-293.1806 374.7854,-293.097 374.7854,-293.097 374.7854,-293.097 371.2864,-293.1806 374.8607,-296.2461 367.7874,-293.2642 367.7874,-293.2642\"/>\n",
"<text text-anchor=\"start\" x=\"608.6812\" y=\"-297.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M846.2855,-311.1714C820.6571,-312.6096 781.2793,-315.684 747.6224,-322 725.27,-326.1946 700.8124,-332.9698 681.0339,-339.0211\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"674.2443,-341.1259 679.9977,-336.0444 677.5874,-340.0895 680.9304,-339.0532 680.9304,-339.0532 680.9304,-339.0532 677.5874,-340.0895 681.8632,-342.0619 674.2443,-341.1259 674.2443,-341.1259\"/>\n",
"<text text-anchor=\"start\" x=\"758.6224\" y=\"-325.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M865.2928,-335.8213C864.8295,-346.1776 867.5627,-354.8701 873.4924,-354.8701 877.9397,-354.8701 880.5889,-349.9805 881.4402,-343.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"881.6921,-335.8213 884.6002,-342.9252 881.5721,-339.3193 881.4521,-342.8172 881.4521,-342.8172 881.4521,-342.8172 881.5721,-339.3193 878.3039,-342.7092 881.6921,-335.8213 881.6921,-335.8213\"/>\n",
"<text text-anchor=\"start\" x=\"842.4924\" y=\"-358.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M207.5644,-505.4151C213.9949,-510.7931 222.0079,-516.8045 230,-521 275.7516,-545.0176 289.1975,-556 340.8701,-556 340.8701,-556 340.8701,-556 1016.3625,-556 1062.6471,-556 1095.0868,-410.2561 1108.468,-337.0056\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1109.779,-329.7239 1111.6387,-337.1713 1109.1588,-333.1685 1108.5386,-336.6131 1108.5386,-336.6131 1108.5386,-336.6131 1109.1588,-333.1685 1105.4384,-336.0549 1109.779,-329.7239 1109.779,-329.7239\"/>\n",
"<text text-anchor=\"start\" x=\"693.6224\" y=\"-559.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M211.3894,-498.7753C217.2362,-500.4625 223.8389,-502.095 230,-503 441.8272,-534.1167 497.5218,-513 711.6224,-513 711.6224,-513 711.6224,-513 873.4924,-513 887.5936,-513 974.9234,-328.1329 1005.6679,-262.0983\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1008.63,-255.7275 1008.5351,-263.403 1007.1544,-258.9012 1005.6787,-262.0749 1005.6787,-262.0749 1005.6787,-262.0749 1007.1544,-258.9012 1002.8224,-260.7468 1008.63,-255.7275 1008.63,-255.7275\"/>\n",
"<text text-anchor=\"start\" x=\"625.6812\" y=\"-517.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M204.7997,-478.3671C229.2219,-445.2765 289.0208,-364.2526 320.5893,-321.4792\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"324.8498,-315.7065 323.2275,-323.2093 322.7714,-318.5226 320.693,-321.3387 320.693,-321.3387 320.693,-321.3387 322.7714,-318.5226 318.1585,-319.4681 324.8498,-315.7065 324.8498,-315.7065\"/>\n",
"<text text-anchor=\"start\" x=\"245\" y=\"-442.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M212.3982,-492.0622C286.1788,-488.1657 558.1634,-472.449 589.7401,-451 610.0229,-437.2225 622.9361,-412.9349 630.814,-391.865\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"633.1977,-385.1546 633.8228,-392.8052 632.0261,-388.4526 630.8545,-391.7507 630.8545,-391.7507 630.8545,-391.7507 632.0261,-388.4526 627.8862,-390.6963 633.1977,-385.1546 633.1977,-385.1546\"/>\n",
"<text text-anchor=\"start\" x=\"385.7401\" y=\"-483.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M196.716,-182.9421C202.0845,-149.2146 214.8553,-78.3126 230,-59 264.4443,-15.0764 285.0517,0 340.8701,0 340.8701,0 340.8701,0 1016.3625,0 1069.4848,0 1099.2755,-173.655 1110.3107,-254.9445\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1111.2588,-262.045 1107.21,-255.5235 1110.7955,-258.5758 1110.3323,-255.1066 1110.3323,-255.1066 1110.3323,-255.1066 1110.7955,-258.5758 1113.4546,-254.6897 1111.2588,-262.045 1111.2588,-262.045\"/>\n",
"<text text-anchor=\"start\" x=\"693.6224\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;7 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M206.3738,-187.875C230.0565,-164.25 284.4719,-117 340.8701,-117 340.8701,-117 340.8701,-117 711.6224,-117 825.8832,-117 948.093,-191.8342 995.7135,-224.283\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1001.6692,-228.3867 994.1177,-227.0088 998.7871,-226.4008 995.9051,-224.4149 995.9051,-224.4149 995.9051,-224.4149 998.7871,-226.4008 997.6924,-221.8211 1001.6692,-228.3867 1001.6692,-228.3867\"/>\n",
"<text text-anchor=\"start\" x=\"610.6812\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M196.1163,-183.1038C199.5721,-161.466 208.3675,-125.1969 230,-103 267.0009,-65.0337 287.8559,-59 340.8701,-59 340.8701,-59 340.8701,-59 778.6224,-59 802.6505,-59 829.7875,-54.8561 848.8637,-51.2475\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"855.7568,-49.9004 849.491,-54.3346 852.3218,-50.5717 848.8868,-51.2431 848.8868,-51.2431 848.8868,-51.2431 852.3218,-50.5717 848.2826,-48.1515 855.7568,-49.9004 855.7568,-49.9004\"/>\n",
"<text text-anchor=\"start\" x=\"529.7401\" y=\"-62.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M209.4401,-210.7769C233.643,-226.1025 280.9215,-256.0398 311.6829,-275.5183\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"317.9821,-279.507 310.3828,-278.4235 315.0251,-277.6346 312.068,-275.7621 312.068,-275.7621 312.068,-275.7621 315.0251,-277.6346 313.7532,-273.1008 317.9821,-279.507 317.9821,-279.507\"/>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</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=\"M199.18,-218.2737C211.0615,-254.2136 244.128,-335.943 306,-363 405.2262,-406.3922 537.1661,-381.0307 602.1207,-363.8389\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"608.9494,-361.9959 603.012,-366.8611 605.5703,-362.9079 602.1912,-363.8199 602.1912,-363.8199 602.1912,-363.8199 605.5703,-362.9079 601.3704,-360.7788 608.9494,-361.9959 608.9494,-361.9959\"/>\n",
"<text text-anchor=\"start\" x=\"385.7401\" y=\"-389.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M212.0885,-201C239.8082,-201 294.4632,-201 340.8701,-201 340.8701,-201 340.8701,-201 558.7401,-201 669.0455,-201 789.7166,-261.5143 844.0674,-292.3642\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"850.3616,-295.9733 842.7221,-295.2239 847.3253,-294.2323 844.289,-292.4913 844.289,-292.4913 844.289,-292.4913 847.3253,-294.2323 845.8559,-289.7586 850.3616,-295.9733 850.3616,-295.9733\"/>\n",
"<text text-anchor=\"start\" x=\"527.7401\" y=\"-204.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f0a5a0> >"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.decompose_scc(aut, \"st\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The weak automata seem to be good candidates for further simplification. Let's add a call to `postprocess()` to out decomposition loop, trying to preserve the determinism and state-based acceptance of the original automaton."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Title: inherently terminal Pages: 1 -->\n",
"<svg width=\"453pt\" height=\"187pt\"\n",
" viewBox=\"0.00 0.00 452.74 187.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 183)\">\n",
"<title>inherently terminal</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-183 448.7401,-183 448.7401,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"161.8701\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">inherently terminal</text>\n",
"<text text-anchor=\"start\" x=\"201.3701\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"223.3701\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"239.3701\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"199.3701\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"367,-11 367,-114 436.7401,-114 436.7401,-11 367,-11\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"284,-20 284,-105 336,-105 336,-20 284,-20\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-20 30,-120 232,-120 232,-20 30,-20\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-46C4.178,-46 17.9448,-46 30.9241,-46\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-46 30.9808,-49.1501 34.4807,-46 30.9807,-46.0001 30.9807,-46.0001 30.9807,-46.0001 34.4807,-46 30.9807,-42.8501 37.9807,-46 37.9807,-46\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-63.0373C48.3189,-72.8579 50.4453,-82 56,-82 60.166,-82 62.4036,-76.8576 62.7128,-70.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-63.0373 65.8541,-69.8818 62.5434,-66.5335 62.7076,-70.0296 62.7076,-70.0296 62.7076,-70.0296 62.5434,-66.5335 59.561,-70.1774 62.3792,-63.0373 62.3792,-63.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"401.8701\" cy=\"-46\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"397.3701\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"393.8701\" y=\"-34.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M68.1391,-32.6949C81.9254,-19.1093 105.7965,0 131,0 131,0 131,0 310,0 333.6707,0 357.4873,-12.3606 374.938,-24.2671\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"381.0671,-28.6094 373.5343,-27.133 378.2112,-26.586 375.3553,-24.5627 375.3553,-24.5627 375.3553,-24.5627 378.2112,-26.586 377.1763,-21.9924 381.0671,-28.6094 381.0671,-28.6094\"/>\n",
"<text text-anchor=\"start\" x=\"202.5\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"206\" cy=\"-56\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"206\" y=\"-52.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.0935,-47.2062C100.6718,-48.9781 150.3801,-52.292 180.604,-54.3069\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"187.8423,-54.7895 180.6483,-57.4668 184.3501,-54.5566 180.8578,-54.3238 180.8578,-54.3238 180.8578,-54.3238 184.3501,-54.5566 181.0674,-51.1807 187.8423,-54.7895 187.8423,-54.7895\"/>\n",
"<text text-anchor=\"start\" x=\"113\" y=\"-55.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M392.5775,-71.37C391.9366,-81.9238 395.0341,-90.8701 401.8701,-90.8701 407.1038,-90.8701 410.1462,-85.6259 410.9972,-78.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"411.1627,-71.37 414.1477,-78.4419 411.0806,-74.869 410.9986,-78.3681 410.9986,-78.3681 410.9986,-78.3681 411.0806,-74.869 407.8494,-78.2943 411.1627,-71.37 411.1627,-71.37\"/>\n",
"<text text-anchor=\"middle\" x=\"401.8701\" y=\"-94.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"310\" cy=\"-46\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"310\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</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=\"M328.1506,-46C339.3575,-46 354.0987,-46 367.452,-46\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"374.6963,-46 367.6964,-49.1501 371.1963,-46 367.6963,-46.0001 367.6963,-46.0001 367.6963,-46.0001 371.1963,-46 367.6963,-42.8501 374.6963,-46 374.6963,-46\"/>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-49.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=\"M302.9688,-62.6641C301.4063,-72.625 303.75,-82 310,-82 314.6875,-82 317.1777,-76.7266 317.4707,-69.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"317.0313,-62.6641 320.6006,-69.4598 317.2438,-66.1576 317.4564,-69.6511 317.4564,-69.6511 317.4564,-69.6511 317.2438,-66.1576 314.3122,-69.8425 317.0313,-62.6641 317.0313,-62.6641\"/>\n",
"<text text-anchor=\"start\" x=\"306.5\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M189.0754,-62.434C169.992,-68.8187 138.0894,-76.8678 111,-71 99.6726,-68.5464 87.8767,-63.5531 78.1272,-58.6697\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.7353,-55.339 79.3988,-55.7804 74.8392,-56.9564 77.9431,-58.5739 77.9431,-58.5739 77.9431,-58.5739 74.8392,-56.9564 76.4875,-61.3673 71.7353,-55.339 71.7353,-55.339\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M219.0374,-68.5565C233.5432,-81.575 258.3366,-101.106 284,-109 306.0897,-115.7948 314.551,-117.606 336,-109 353.9906,-101.7817 369.8463,-87.0459 381.491,-73.64\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"386.2176,-68.0019 384.1345,-75.3899 383.9691,-70.684 381.7205,-73.3662 381.7205,-73.3662 381.7205,-73.3662 383.9691,-70.684 379.3065,-71.3425 386.2176,-68.0019 386.2176,-68.0019\"/>\n",
"<text text-anchor=\"start\" x=\"292\" y=\"-117.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M224.1154,-54.2581C240.8642,-52.6477 265.92,-50.2385 284.6521,-48.4373\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"291.7432,-47.7555 285.0769,-51.5611 288.2593,-48.0905 284.7754,-48.4255 284.7754,-48.4255 284.7754,-48.4255 288.2593,-48.0905 284.4738,-45.29 291.7432,-47.7555 291.7432,-47.7555\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-55.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M199.6208,-73.0373C198.3189,-82.8579 200.4453,-92 206,-92 210.166,-92 212.4036,-86.8576 212.7128,-80.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.3792,-73.0373 215.8541,-79.8818 212.5434,-76.5335 212.7076,-80.0296 212.7076,-80.0296 212.7076,-80.0296 212.5434,-76.5335 209.561,-80.1774 212.3792,-73.0373 212.3792,-73.0373\"/>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42fb30c0> >"
]
},
"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",
"<!-- Title: strictly inherently weak Pages: 1 -->\n",
"<svg width=\"516pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 515.81 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.9677 .9677) rotate(0) translate(4 368)\">\n",
"<title>strictly inherently weak</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-368 529,-368 529,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-349.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">strictly inherently weak</text>\n",
"<text text-anchor=\"start\" x=\"241.5\" y=\"-335.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-335.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"279.5\" y=\"-335.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"239.5\" y=\"-321.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"368.1299,-8 368.1299,-111 437.8701,-111 437.8701,-8 368.1299,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-119 30,-306 517,-306 517,-119 30,-119\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-215\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-211.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-215C4.178,-215 17.9448,-215 30.9241,-215\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-215 30.9808,-218.1501 34.4807,-215 30.9807,-215.0001 30.9807,-215.0001 30.9807,-215.0001 34.4807,-215 30.9807,-211.8501 37.9807,-215 37.9807,-215\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-232.0373C48.3189,-241.8579 50.4453,-251 56,-251 60.166,-251 62.4036,-245.8576 62.7128,-239.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-232.0373 65.8541,-238.8818 62.5434,-235.5335 62.7076,-239.0296 62.7076,-239.0296 62.7076,-239.0296 62.5434,-235.5335 59.561,-239.1774 62.3792,-232.0373 62.3792,-232.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-254.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-232\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-228.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.2616,-220.4725C90.4866,-225.4421 117.801,-232 142,-232 142,-232 142,-232 403,-232 424.1215,-232 448.0947,-232 465.6795,-232\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.7978,-232 465.7979,-235.1501 469.2978,-232 465.7978,-232.0001 465.7978,-232.0001 465.7978,-232.0001 469.2978,-232 465.7978,-228.8501 472.7978,-232 472.7978,-232\"/>\n",
"<text text-anchor=\"start\" x=\"210\" y=\"-235.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"243\" cy=\"-145\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"243\" y=\"-141.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M66.315,-200.0652C76.1696,-187.1005 92.2679,-169.0319 111,-160 145.1819,-143.5188 189.9508,-142.0266 217.5788,-143.0643\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"224.8937,-143.4137 217.7514,-146.2261 221.3977,-143.2467 217.9017,-143.0796 217.9017,-143.0796 217.9017,-143.0796 221.3977,-143.2467 218.0521,-139.9332 224.8937,-143.4137 224.8937,-143.4137\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-163.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"403\" cy=\"-43\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"395\" y=\"-31.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M393.7074,-68.37C393.0665,-78.9238 396.1641,-87.8701 403,-87.8701 408.2338,-87.8701 411.2761,-82.6259 412.1271,-75.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"412.2926,-68.37 415.2777,-75.4419 412.2106,-71.869 412.1285,-75.3681 412.1285,-75.3681 412.1285,-75.3681 412.2106,-71.869 408.9794,-75.2943 412.2926,-68.37 412.2926,-68.37\"/>\n",
"<text text-anchor=\"start\" x=\"386\" y=\"-91.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</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=\"M478.3244,-245.1338C462.3156,-260.2447 433.1953,-283 403,-283 142,-283 142,-283 142,-283 111.3367,-283 85.2092,-256.0718 70.0516,-236.1066\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.8898,-230.4303 72.5692,-234.2129 67.9593,-233.2529 70.0289,-236.0755 70.0289,-236.0755 70.0289,-236.0755 67.9593,-233.2529 67.4885,-237.9381 65.8898,-230.4303 65.8898,-230.4303\"/>\n",
"<text text-anchor=\"start\" x=\"223\" y=\"-286.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M484.6208,-249.0373C483.3189,-258.8579 485.4453,-268 491,-268 495.166,-268 497.4036,-262.8576 497.7128,-256.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"497.3792,-249.0373 500.8541,-255.8818 497.5434,-252.5335 497.7076,-256.0296 497.7076,-256.0296 497.7076,-256.0296 497.5434,-252.5335 494.561,-256.1774 497.3792,-249.0373 497.3792,-249.0373\"/>\n",
"<text text-anchor=\"start\" x=\"473\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M226.4556,-152.5092C212.3619,-158.8047 191.5109,-167.8808 173,-175 141.2241,-187.2209 103.9157,-199.6515 80.1248,-207.3417\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.1966,-209.5707 78.8955,-204.4282 76.5284,-208.4987 79.8602,-207.4268 79.8602,-207.4268 79.8602,-207.4268 76.5284,-208.4987 80.8249,-210.4254 73.1966,-209.5707 73.1966,-209.5707\"/>\n",
"<text text-anchor=\"start\" x=\"122\" y=\"-200.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M258.3415,-135.2198C284.9967,-118.2271 340.2561,-82.9992 374.2326,-61.3392\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"380.3174,-57.4602 376.1081,-63.8793 377.3661,-59.3417 374.4148,-61.2231 374.4148,-61.2231 374.4148,-61.2231 377.3661,-59.3417 372.7214,-58.567 380.3174,-57.4602 380.3174,-57.4602\"/>\n",
"<text text-anchor=\"start\" x=\"294\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M260.2631,-150.749C294.3301,-162.1351 372.5693,-188.489 437.8701,-212 447.4764,-215.4587 458.0082,-219.3932 467.1435,-222.8521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"473.8185,-225.3887 466.1561,-225.8466 470.5468,-224.1454 467.2751,-222.9021 467.2751,-222.9021 467.2751,-222.9021 470.5468,-224.1454 468.394,-219.9575 473.8185,-225.3887 473.8185,-225.3887\"/>\n",
"<text text-anchor=\"start\" x=\"370\" y=\"-215.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M234.3666,-160.916C232.1144,-171.1504 234.9922,-181 243,-181 249.131,-181 252.2548,-175.2263 252.3716,-167.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"251.6334,-160.916 255.4992,-167.5477 252,-164.3968 252.3665,-167.8775 252.3665,-167.8775 252.3665,-167.8775 252,-164.3968 249.2338,-168.2074 251.6334,-160.916 251.6334,-160.916\"/>\n",
"<text text-anchor=\"start\" x=\"212\" y=\"-184.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42fa8f30> >"
]
},
"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",
"<!-- Title: strong Pages: 1 -->\n",
"<svg width=\"734pt\" height=\"272pt\"\n",
" viewBox=\"0.00 0.00 734.00 272.33\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.8105 .8105) rotate(0) translate(4 332)\">\n",
"<title>strong</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-332 901.6224,-332 901.6224,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"428.3112\" y=\"-313.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">strong</text>\n",
"<text text-anchor=\"start\" x=\"332.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"360.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"376.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"419.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"435.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"482.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"498.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"541.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"557.3112\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"419.8112\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 2]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"284,-38 284,-243 889.6224,-243 889.6224,-38 284,-38\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"170,-156 170,-208 222,-208 222,-156 170,-156\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"170,-43 170,-95 222,-95 222,-43 170,-43\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30,-105 30,-157 82,-157 82,-105 30,-105\"/>\n",
"</g>\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",
"<!-- 3 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"325.9411\" cy=\"-135\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"321.4411\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"309.9411\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"325.9411\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M74.1308,-131.2687C116.9555,-131.9032 225.2462,-133.5079 284.9198,-134.3921\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"291.9484,-134.4963 284.9024,-137.5421 288.4488,-134.4444 284.9491,-134.3925 284.9491,-134.3925 284.9491,-134.3925 288.4488,-134.4444 284.9959,-131.2428 291.9484,-134.4963 291.9484,-134.4963\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196\" cy=\"-182\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196\" y=\"-178.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=\"M72.8108,-137.6541C78.8474,-140.0126 85.7153,-142.6606 92,-145 119.2701,-155.151 150.7769,-166.2765 171.9016,-173.6496\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"178.6466,-175.9994 170.9999,-176.6711 175.3414,-174.8479 172.0362,-173.6964 172.0362,-173.6964 172.0362,-173.6964 175.3414,-174.8479 173.0726,-170.7218 178.6466,-175.9994 178.6466,-175.9994\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196\" y=\"-65.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=\"M69.1644,-118.4178C75.6369,-112.7707 83.7975,-106.4035 92,-102 117.491,-88.3152 149.5844,-79.2132 171.3283,-74.0967\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"178.2811,-72.5135 172.1552,-77.1391 174.8685,-73.2906 171.4558,-74.0677 171.4558,-74.0677 171.4558,-74.0677 174.8685,-73.2906 170.7564,-70.9964 178.2811,-72.5135 178.2811,-72.5135\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</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=\"M312.8289,-166.4426C312.547,-177.7348 316.9177,-186.9411 325.9411,-186.9411 332.9907,-186.9411 337.2005,-181.322 338.5704,-173.4791\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"339.0533,-166.4426 341.7166,-173.6419 338.8136,-169.9344 338.574,-173.4262 338.574,-173.4262 338.574,-173.4262 338.8136,-169.9344 335.4314,-173.2105 339.0533,-166.4426 339.0533,-166.4426\"/>\n",
"<text text-anchor=\"start\" x=\"305.9411\" y=\"-190.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"854.7523\" cy=\"-169\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"850.2523\" y=\"-172.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"846.7523\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M351.1932,-158.0022C381.5398,-183.1753 435.1204,-220 488.8823,-220 488.8823,-220 488.8823,-220 757.8823,-220 784.0082,-220 810.007,-205.2955 828.4824,-191.678\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"834.4489,-187.1243 830.7955,-193.8753 831.6667,-189.2478 828.8844,-191.3712 828.8844,-191.3712 828.8844,-191.3712 831.6667,-189.2478 826.9733,-188.8672 834.4489,-187.1243 834.4489,-187.1243\"/>\n",
"<text text-anchor=\"start\" x=\"621.8823\" y=\"-223.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"654.8823\" cy=\"-73\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"650.3823\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"<text text-anchor=\"start\" x=\"646.8823\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M358.4194,-124.4483C384.9285,-116.187 423.4901,-104.9651 457.8823,-98 514.5038,-86.533 581.407,-79.3664 620.8715,-75.7835\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"627.9123,-75.1559 621.2197,-78.915 624.4262,-75.4667 620.94,-75.7775 620.94,-75.7775 620.94,-75.7775 624.4262,-75.4667 620.6603,-72.6399 627.9123,-75.1559 627.9123,-75.1559\"/>\n",
"<text text-anchor=\"start\" x=\"457.8823\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M827.6113,-169C808.1909,-169 781.4271,-169 757.8823,-169 488.8823,-169 488.8823,-169 488.8823,-169 445.8512,-169 397.7501,-157.4963 365.0365,-147.8717\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"358.2967,-145.8513 365.9064,-144.8441 361.6493,-146.8564 365.0019,-147.8614 365.0019,-147.8614 365.0019,-147.8614 361.6493,-146.8564 364.0973,-150.8788 358.2967,-145.8513 358.2967,-145.8513\"/>\n",
"<text text-anchor=\"start\" x=\"634.8823\" y=\"-172.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M846.5527,-194.8213C846.0894,-205.1776 848.8226,-213.8701 854.7523,-213.8701 859.1996,-213.8701 861.8488,-208.9805 862.7001,-202.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"862.952,-194.8213 865.8601,-201.9252 862.832,-198.3193 862.712,-201.8172 862.712,-201.8172 862.712,-201.8172 862.832,-198.3193 859.5638,-201.7092 862.952,-194.8213 862.952,-194.8213\"/>\n",
"<text text-anchor=\"start\" x=\"836.7523\" y=\"-217.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M629.3409,-82.0285C602.4421,-91.1899 558.6893,-105.113 519.8823,-113 467.6753,-123.6103 406.4473,-129.4858 366.9679,-132.4403\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"359.8564,-132.9585 366.6089,-129.308 363.3471,-132.7041 366.8379,-132.4497 366.8379,-132.4497 366.8379,-132.4497 363.3471,-132.7041 367.0668,-135.5914 359.8564,-132.9585 359.8564,-132.9585\"/>\n",
"<text text-anchor=\"start\" x=\"468.8823\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M679.3902,-84.7715C715.7514,-102.2362 783.9629,-134.999 823.7489,-154.1087\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"830.3568,-157.2825 822.683,-157.0912 827.2018,-155.7672 824.0469,-154.2518 824.0469,-154.2518 824.0469,-154.2518 827.2018,-155.7672 825.4107,-151.4123 830.3568,-157.2825 830.3568,-157.2825\"/>\n",
"<text text-anchor=\"start\" x=\"724.8823\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M645.5896,-98.37C644.9488,-108.9238 648.0463,-117.8701 654.8823,-117.8701 660.116,-117.8701 663.1584,-112.6259 664.0094,-105.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"664.1749,-98.37 667.1599,-105.4419 664.0928,-101.869 664.0108,-105.3681 664.0108,-105.3681 664.0108,-105.3681 664.0928,-101.869 660.8616,-105.2943 664.1749,-98.37 664.1749,-98.37\"/>\n",
"<text text-anchor=\"start\" x=\"623.8823\" y=\"-121.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M212.9875,-175.8556C231.7261,-169.0778 262.4965,-157.9481 287.1928,-149.0154\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"293.9823,-146.5596 288.4711,-151.9028 290.691,-147.7501 287.3997,-148.9406 287.3997,-148.9406 287.3997,-148.9406 290.691,-147.7501 286.3282,-145.9784 293.9823,-146.5596 293.9823,-146.5596\"/>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M207.7184,-195.7405C228.8167,-218.8502 275.6987,-263 325.9411,-263 325.9411,-263 325.9411,-263 757.8823,-263 794.9805,-263 823.2403,-227.0535 839.4061,-199.6186\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"843.0592,-193.2073 842.3305,-200.8488 841.3264,-196.2483 839.5936,-199.2893 839.5936,-199.2893 839.5936,-199.2893 841.3264,-196.2483 836.8567,-197.7298 843.0592,-193.2073 843.0592,-193.2073\"/>\n",
"<text text-anchor=\"start\" x=\"552.8823\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M213.1089,-75.2945C229.1664,-81.4211 253.6874,-91.3444 274,-102 279.7667,-105.0251 285.7319,-108.4805 291.4742,-111.9897\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"297.5977,-115.8009 289.9902,-114.7764 294.6262,-113.9515 291.6547,-112.102 291.6547,-112.102 291.6547,-112.102 294.6262,-113.9515 293.3192,-109.4277 297.5977,-115.8009 297.5977,-115.8009\"/>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M209.1767,-56.3443C231.3646,-36.4246 278.4321,0 325.9411,0 325.9411,0 325.9411,0 757.8823,0 819.6088,0 842.5588,-85.9101 850.6479,-135.2255\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"851.7364,-142.2214 847.5476,-135.789 851.1982,-138.7631 850.6601,-135.3047 850.6601,-135.3047 850.6601,-135.3047 851.1982,-138.7631 853.7727,-134.8204 851.7364,-142.2214 851.7364,-142.2214\"/>\n",
"<text text-anchor=\"start\" x=\"537.8823\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</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=\"M214.2719,-69.1593C283.4106,-69.7619 529.6825,-71.9087 620.7266,-72.7023\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"627.7753,-72.7637 620.748,-75.8525 624.2754,-72.7332 620.7755,-72.7026 620.7755,-72.7026 620.7755,-72.7026 624.2754,-72.7332 620.803,-69.5527 627.7753,-72.7637 627.7753,-72.7637\"/>\n",
"<text text-anchor=\"start\" x=\"377.8823\" y=\"-74.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f0a4e0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for (name, opt) in (('inherently terminal', 't'), ('strictly inherently weak', 'w'), ('strong', 's')):\n",
" a = spot.decompose_scc(aut, opt).postprocess('deterministic', 'SBAcc')\n",
" a.set_name(name)\n",
" display(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Streett\n",
"\n",
"Since this notebook also serves as a test suite, let's try a Streett automaton. This one was generated with\n",
"\n",
" ltldo -f '(Ga -> Gb) W c' 'ltl2dstar --automata=streett --ltl2nba=spin:ltl2tgba@-Ds' -H | \n",
" autfilt -H --merge-transitions"
]
},
{
"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=\"734pt\" height=\"310pt\"\n",
" viewBox=\"0.00 0.00 734.00 309.63\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.6071 .6071) rotate(0) translate(4 506)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-506 1204.9848,-506 1204.9848,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"486.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"514.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"530.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"567.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"583.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) &amp; (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"637.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"653.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"690.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"706.4924\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"568.4924\" y=\"-473.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Streett 2]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"1109.1026,-80 1109.1026,-197 1192.9848,-197 1192.9848,-80 1109.1026,-80\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"994.2203,-198 994.2203,-315 1078.1026,-315 1078.1026,-198 994.2203,-198\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"863.3503,-147 863.3503,-250 933.0904,-250 933.0904,-147 863.3503,-147\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"863.3503,-328 863.3503,-431 933.0904,-431 933.0904,-328 863.3503,-328\"/>\n",
"</g>\n",
"<g id=\"clust5\" class=\"cluster\">\n",
"<title>cluster_4</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-105 30,-330 781.2203,-330 781.2203,-105 30,-105\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-176\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- I&#45;&gt;7 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2229,-176C4.3751,-176 17.3629,-176 30.7917,-176\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-176 30.8046,-179.1501 34.3045,-176 30.8045,-176.0001 30.8045,-176.0001 30.8045,-176.0001 34.3045,-176 30.8045,-172.8501 37.8045,-176 37.8045,-176\"/>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M56.6704,-201.8213C56.2072,-212.1776 58.9404,-220.8701 64.8701,-220.8701 69.3173,-220.8701 71.9666,-215.9805 72.8178,-209.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0697,-201.8213 75.9779,-208.9252 72.9497,-205.3193 72.8297,-208.8172 72.8297,-208.8172 72.8297,-208.8172 72.9497,-205.3193 69.6816,-208.7092 73.0697,-201.8213 73.0697,-201.8213\"/>\n",
"<text text-anchor=\"start\" x=\"44.8701\" y=\"-224.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1151.0437\" cy=\"-122\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"1146.5437\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"1135.0437\" y=\"-111.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1151.0437\" y=\"-111.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>7&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M67.1517,-148.8857C72.9482,-99.5163 92.9196,0 159.7401,0 159.7401,0 159.7401,0 1036.1615,0 1082.9958,0 1116.356,-48.2421 1134.6684,-84.0542\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1137.9125,-90.582 1131.9763,-85.7153 1136.3548,-87.4477 1134.7972,-84.3134 1134.7972,-84.3134 1134.7972,-84.3134 1136.3548,-87.4477 1137.6181,-82.9115 1137.9125,-90.582 1137.9125,-90.582\"/>\n",
"<text text-anchor=\"start\" x=\"530.9802\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"460.6102\" cy=\"-202\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"456.1102\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"452.6102\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;2 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M89.7304,-186.7253C108.5787,-193.8873 135.3188,-202 159.7401,-202 159.7401,-202 159.7401,-202 363.7401,-202 384.5258,-202 407.8202,-202 426.3561,-202\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"433.4692,-202 426.4692,-205.1501 429.9692,-202 426.4692,-202.0001 426.4692,-202.0001 426.4692,-202.0001 429.9692,-202 426.4691,-198.8501 433.4692,-202 433.4692,-202\"/>\n",
"<text text-anchor=\"start\" x=\"227.7401\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"260.7401\" cy=\"-262\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"256.2401\" y=\"-265.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"<text text-anchor=\"start\" x=\"252.7401\" y=\"-250.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;6 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>7&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M76.1386,-200.5678C86.6632,-220.2991 104.4094,-246.6769 128.7401,-259 159.3381,-274.4974 199.2625,-272.9036 227.1578,-268.9035\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"234.3327,-267.7839 227.902,-271.9755 230.8745,-268.3236 227.4164,-268.8632 227.4164,-268.8632 227.4164,-268.8632 230.8745,-268.3236 226.9307,-265.7509 234.3327,-267.7839 234.3327,-267.7839\"/>\n",
"<text text-anchor=\"start\" x=\"128.7401\" y=\"-274.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1140.5437,-154.4632C1140.5437,-165.2843 1144.0437,-173.9411 1151.0437,-173.9411 1156.4031,-173.9411 1159.7108,-168.8666 1160.9669,-161.6315\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1161.5437,-154.4632 1164.1221,-161.6933 1161.263,-157.9519 1160.9822,-161.4407 1160.9822,-161.4407 1160.9822,-161.4407 1161.263,-157.9519 1157.8424,-161.188 1161.5437,-154.4632 1161.5437,-154.4632\"/>\n",
"<text text-anchor=\"middle\" x=\"1151.0437\" y=\"-177.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1036.1615\" cy=\"-240\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"1031.6615\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"1020.1615\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"1036.1615\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1059.9651,-215.5503C1078.0644,-196.9599 1103.0431,-171.3033 1122.2645,-151.5602\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1127.2705,-146.4184 1124.6445,-153.6313 1124.829,-148.9261 1122.3875,-151.4339 1122.3875,-151.4339 1122.3875,-151.4339 1124.829,-148.9261 1120.1305,-149.2366 1127.2705,-146.4184 1127.2705,-146.4184\"/>\n",
"<text text-anchor=\"start\" x=\"1088.1026\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1025.6615,-272.4632C1025.6615,-283.2843 1029.1615,-291.9411 1036.1615,-291.9411 1041.5208,-291.9411 1044.8286,-286.8666 1046.0847,-279.6315\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1046.6615,-272.4632 1049.2398,-279.6933 1046.3807,-275.9519 1046.1,-279.4407 1046.1,-279.4407 1046.1,-279.4407 1046.3807,-275.9519 1042.9601,-279.188 1046.6615,-272.4632 1046.6615,-272.4632\"/>\n",
"<text text-anchor=\"start\" x=\"1032.6615\" y=\"-295.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"898.2203\" cy=\"-182\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"893.7203\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"890.2203\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M924.799,-175.6924C969.1161,-165.175 1058.3776,-143.9915 1110.5563,-131.6085\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1117.6643,-129.9216 1111.5809,-134.6029 1114.2589,-130.7298 1110.8535,-131.538 1110.8535,-131.538 1110.8535,-131.538 1114.2589,-130.7298 1110.1261,-128.4731 1117.6643,-129.9216 1117.6643,-129.9216\"/>\n",
"<text text-anchor=\"start\" x=\"1030.6615\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M923.2004,-192.5034C944.1355,-201.3059 974.3511,-214.0106 998.2652,-224.0658\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1004.8302,-226.8262 997.1564,-227.0167 1001.6038,-225.4695 998.3774,-224.1129 998.3774,-224.1129 998.3774,-224.1129 1001.6038,-225.4695 999.5983,-221.2091 1004.8302,-226.8262 1004.8302,-226.8262\"/>\n",
"<text text-anchor=\"start\" x=\"947.2203\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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=\"M886.0901,-206.0048C884.7668,-217.1405 888.8102,-226.8701 898.2203,-226.8701 905.572,-226.8701 909.6481,-220.9316 910.4486,-213.0236\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"910.3506,-206.0048 913.5981,-212.9601 910.3995,-209.5045 910.4485,-213.0041 910.4485,-213.0041 910.4485,-213.0041 910.3995,-209.5045 907.2988,-213.0481 910.3506,-206.0048 910.3506,-206.0048\"/>\n",
"<text text-anchor=\"start\" x=\"881.2203\" y=\"-230.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"898.2203\" cy=\"-363\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"893.7203\" y=\"-366.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"<text text-anchor=\"start\" x=\"890.2203\" y=\"-351.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M925.0569,-364.6361C964.4349,-365.4643 1037.5764,-360.7604 1078.1026,-319 1119.8458,-275.9855 1138.0544,-207.0062 1145.7418,-163.1294\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1146.9301,-156.0437 1148.8788,-163.4683 1146.3511,-159.4955 1145.7722,-162.9473 1145.7722,-162.9473 1145.7722,-162.9473 1146.3511,-159.4955 1142.6656,-162.4263 1146.9301,-156.0437 1146.9301,-156.0437\"/>\n",
"<text text-anchor=\"start\" x=\"1030.6615\" y=\"-362.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M922.8779,-352.1016C944.6767,-342.1622 974.4814,-327.7339 984.2203,-319 997.479,-307.1096 1008.8291,-291.1074 1017.5068,-276.6147\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1021.0599,-270.5123 1020.2598,-278.1466 1019.2988,-273.5369 1017.5376,-276.5616 1017.5376,-276.5616 1017.5376,-276.5616 1019.2988,-273.5369 1014.8155,-274.9766 1021.0599,-270.5123 1021.0599,-270.5123\"/>\n",
"<text text-anchor=\"start\" x=\"947.2203\" y=\"-342.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M886.0901,-387.0048C884.7668,-398.1405 888.8102,-407.8701 898.2203,-407.8701 905.572,-407.8701 909.6481,-401.9316 910.4486,-394.0236\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"910.3506,-387.0048 913.5981,-393.9601 910.3995,-390.5045 910.4485,-394.0041 910.4485,-394.0041 910.4485,-394.0041 910.3995,-390.5045 907.2988,-394.0481 910.3506,-387.0048 910.3506,-387.0048\"/>\n",
"<text text-anchor=\"start\" x=\"881.2203\" y=\"-411.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;7 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>2&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M434.6051,-194.3788C402.0269,-185.2635 344.3286,-170.5412 293.7401,-165 224.8166,-157.4505 143.6525,-165.2802 98.8654,-171.0469\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"91.7321,-171.9878 98.26,-167.9494 95.202,-171.5301 98.672,-171.0723 98.672,-171.0723 98.672,-171.0723 95.202,-171.5301 99.084,-174.1953 91.7321,-171.9878 91.7321,-171.9878\"/>\n",
"<text text-anchor=\"start\" x=\"240.7401\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M470.4427,-176.7344C490.1926,-130.7311 539.3243,-38 614.4802,-38 614.4802,-38 614.4802,-38 1036.1615,-38 1072.3023,-38 1104.649,-65.424 1125.7384,-88.9329\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1130.5896,-94.4953 1123.6146,-91.2902 1128.2891,-91.8575 1125.9885,-89.2197 1125.9885,-89.2197 1125.9885,-89.2197 1128.2891,-91.8575 1128.3625,-87.1493 1130.5896,-94.4953 1130.5896,-94.4953\"/>\n",
"<text text-anchor=\"start\" x=\"802.2203\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M487.4341,-206.8411C511.8881,-211.1586 549.0386,-217.4775 581.4802,-222 736.8944,-243.6655 776.5307,-264.584 933.0904,-254 953.6092,-252.6128 976.2696,-249.6893 995.1055,-246.8709\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1002.3905,-245.7578 995.9465,-249.929 998.9306,-246.2865 995.4707,-246.8151 995.4707,-246.8151 995.4707,-246.8151 998.9306,-246.2865 994.995,-243.7013 1002.3905,-245.7578 1002.3905,-245.7578\"/>\n",
"<text text-anchor=\"start\" x=\"730.3503\" y=\"-256.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M452.4105,-227.8213C451.9473,-238.1776 454.6805,-246.8701 460.6102,-246.8701 465.0574,-246.8701 467.7067,-241.9805 468.5579,-235.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"468.8098,-227.8213 471.718,-234.9252 468.6898,-231.3193 468.5698,-234.8172 468.5698,-234.8172 468.5698,-234.8172 468.6898,-231.3193 465.4217,-234.7092 468.8098,-227.8213 468.8098,-227.8213\"/>\n",
"<text text-anchor=\"start\" x=\"427.6102\" y=\"-250.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"746.3503\" cy=\"-168\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"741.8503\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"738.3503\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M487.7322,-203.4533C524.2704,-204.9164 591.2148,-205.8511 647.4802,-197 670.3004,-193.4102 695.257,-186.0624 714.3875,-179.6616\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"721.1572,-177.355 715.5472,-182.5943 717.8442,-178.4838 714.5312,-179.6127 714.5312,-179.6127 714.5312,-179.6127 717.8442,-178.4838 713.5153,-176.631 721.1572,-177.355 721.1572,-177.355\"/>\n",
"<text text-anchor=\"start\" x=\"583.4802\" y=\"-206.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;7 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M721.6492,-156.6977C695.5764,-145.8167 653.0009,-131 614.4802,-131 415.2401,-131 415.2401,-131 415.2401,-131 287.3426,-131 254.471,-134.5579 128.7401,-158 118.3421,-159.9387 107.1871,-162.802 97.1556,-165.6774\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"90.4134,-167.6588 96.2412,-162.6629 93.7714,-166.6719 97.1294,-165.6851 97.1294,-165.6851 97.1294,-165.6851 93.7714,-166.6719 98.0176,-168.7073 90.4134,-167.6588 90.4134,-167.6588\"/>\n",
"<text text-anchor=\"start\" x=\"343.7401\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M761.0816,-145.2041C768.7816,-135.3258 779.1281,-124.728 791.2203,-119 897.6573,-68.5814 1042.4694,-94.049 1111.4122,-110.9768\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1118.2423,-112.6872 1110.6867,-114.0423 1114.8471,-111.837 1111.452,-110.9867 1111.452,-110.9867 1111.452,-110.9867 1114.8471,-111.837 1112.2172,-107.931 1118.2423,-112.6872 1118.2423,-112.6872\"/>\n",
"<text text-anchor=\"start\" x=\"947.7203\" y=\"-94.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M769.6901,-154.1507C805.978,-134.5375 877.528,-103.6229 933.0904,-128 952.2036,-136.3856 986.9749,-177.0685 1010.8025,-206.9966\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1015.4142,-212.8261 1008.6007,-209.2906 1013.2427,-210.0811 1011.0712,-207.3362 1011.0712,-207.3362 1011.0712,-207.3362 1013.2427,-210.0811 1013.5416,-205.3818 1015.4142,-212.8261 1015.4142,-212.8261\"/>\n",
"<text text-anchor=\"start\" x=\"867.2203\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</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=\"M773.152,-170.4707C798.5569,-172.8126 836.82,-176.3399 864.3308,-178.8759\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"871.4316,-179.5305 864.1719,-182.0245 867.9463,-179.2092 864.4611,-178.8878 864.4611,-178.8878 864.4611,-178.8878 867.9463,-179.2092 864.7503,-175.7511 871.4316,-179.5305 871.4316,-179.5305\"/>\n",
"<text text-anchor=\"start\" x=\"791.2203\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</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=\"M719.4385,-169.6277C686.7419,-171.7569 629.9379,-175.9432 581.4802,-182 552.0249,-185.6817 518.7623,-191.2932 494.598,-195.6362\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"487.4051,-196.9398 493.7312,-192.5919 490.849,-196.3156 494.2929,-195.6914 494.2929,-195.6914 494.2929,-195.6914 490.849,-196.3156 494.8547,-198.7909 487.4051,-196.9398 487.4051,-196.9398\"/>\n",
"<text text-anchor=\"start\" x=\"581.4802\" y=\"-185.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=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M734.9069,-192.4616C733.8171,-203.4053 737.6315,-212.8701 746.3503,-212.8701 753.0256,-212.8701 756.8261,-207.322 757.7517,-199.8099\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"757.7936,-192.4616 760.9036,-199.4795 757.7736,-195.9616 757.7536,-199.4615 757.7536,-199.4615 757.7536,-199.4615 757.7736,-195.9616 754.6037,-199.4435 757.7936,-192.4616 757.7936,-192.4616\"/>\n",
"<text text-anchor=\"start\" x=\"715.3503\" y=\"-216.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M234.7887,-254.7608C204.0185,-245.6815 151.6294,-228.6455 109.7401,-207 103.9334,-203.9995 97.9957,-200.3631 92.4198,-196.6519\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"86.5347,-192.6221 94.0902,-193.978 89.4226,-194.5996 92.3105,-196.5771 92.3105,-196.5771 92.3105,-196.5771 89.4226,-194.5996 90.5307,-199.1761 86.5347,-192.6221 86.5347,-192.6221\"/>\n",
"<text text-anchor=\"start\" x=\"139.7401\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M263.0854,-289.0791C269.2513,-341.3393 290.871,-451 363.7401,-451 363.7401,-451 363.7401,-451 1036.1615,-451 1096.552,-451 1132.618,-250.9212 1145.5717,-162.8204\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1146.6094,-155.6626 1148.7224,-163.0422 1146.1072,-159.1264 1145.605,-162.5902 1145.605,-162.5902 1145.605,-162.5902 1146.1072,-159.1264 1142.4876,-162.1382 1146.6094,-155.6626 1146.6094,-155.6626\"/>\n",
"<text text-anchor=\"start\" x=\"665.4802\" y=\"-454.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M282.4007,-278.0886C302.4332,-291.3536 333.5804,-308 363.7401,-308 363.7401,-308 363.7401,-308 898.2203,-308 937.6882,-308 977.5687,-285.3276 1004.2261,-266.166\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1010.0416,-261.8899 1006.268,-268.5745 1007.2218,-263.9633 1004.402,-266.0367 1004.402,-266.0367 1004.402,-266.0367 1007.2218,-263.9633 1002.5359,-263.4988 1010.0416,-261.8899 1010.0416,-261.8899\"/>\n",
"<text text-anchor=\"start\" x=\"583.4802\" y=\"-311.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M273.2165,-285.9725C289.7856,-314.1155 321.8983,-357 363.7401,-357 363.7401,-357 363.7401,-357 746.3503,-357 786.9016,-357 833.496,-359.1622 864.2645,-360.8907\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"871.3481,-361.2967 864.1793,-364.0409 867.8538,-361.0964 864.3596,-360.896 864.3596,-360.896 864.3596,-360.896 867.8538,-361.0964 864.5398,-357.7512 871.3481,-361.2967 871.3481,-361.2967\"/>\n",
"<text text-anchor=\"start\" x=\"505.4802\" y=\"-360.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M286.8696,-254.156C323.0298,-243.301 388.3181,-223.7017 427.7433,-211.8665\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"434.791,-209.7508 428.9923,-214.7805 431.4388,-210.7571 428.0865,-211.7635 428.0865,-211.7635 428.0865,-211.7635 431.4388,-210.7571 427.1808,-208.7465 434.791,-209.7508 434.791,-209.7508\"/>\n",
"<text text-anchor=\"start\" x=\"330.7401\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M251.4475,-287.37C250.8066,-297.9238 253.9042,-306.8701 260.7401,-306.8701 265.9739,-306.8701 269.0163,-301.6259 269.8673,-294.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.0327,-287.37 273.0178,-294.4419 269.9507,-290.869 269.8686,-294.3681 269.8686,-294.3681 269.8686,-294.3681 269.9507,-290.869 266.7195,-294.2943 270.0327,-287.37 270.0327,-287.37\"/>\n",
"<text text-anchor=\"start\" x=\"229.7401\" y=\"-310.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f7a720> >"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut = spot.automaton(\"\"\"\n",
"HOA: v1\n",
"States: 8\n",
"Start: 7\n",
"AP: 3 \"a\" \"b\" \"c\"\n",
"acc-name: Streett 2\n",
"Acceptance: 4 (Fin(0) | Inf(1)) & (Fin(2) | Inf(3))\n",
"properties: trans-labels explicit-labels state-acc complete\n",
"properties: deterministic\n",
"--BODY--\n",
"State: 0 {2}\n",
"[0&1] 0\n",
"[0&!1] 3\n",
"[!0] 4\n",
"State: 1 {2}\n",
"[0&1&2] 0\n",
"[0&1&!2] 1\n",
"[0&!1&!2] 2\n",
"[0&!1&2] 3\n",
"[!0&2] 4\n",
"[!0&!2] 7\n",
"State: 2 {2}\n",
"[0&1&!2] 1\n",
"[0&!1&!2] 2\n",
"[0&2] 3\n",
"[!0&2] 4\n",
"[!0&!2] 7\n",
"State: 3 {0 3}\n",
"[0] 3\n",
"[!0] 4\n",
"State: 4 {1 3}\n",
"[t] 4\n",
"State: 5 {3}\n",
"[0&!1] 3\n",
"[!0] 4\n",
"[0&1] 5\n",
"State: 6 {3}\n",
"[0&!1&!2] 2\n",
"[0&!1&2] 3\n",
"[!0&2] 4\n",
"[0&1&2] 5\n",
"[0&1&!2] 6\n",
"[!0&!2] 7\n",
"State: 7 {3}\n",
"[0&!1&!2] 2\n",
"[2] 4\n",
"[0&1&!2] 6\n",
"[!0&!2] 7\n",
"--END--\n",
"\"\"\")\n",
"aut"
]
},
{
"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",
"<!-- Title: inherently terminal Pages: 1 -->\n",
"<svg width=\"734pt\" height=\"326pt\"\n",
" viewBox=\"0.00 0.00 734.00 325.75\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.6217 .6217) rotate(0) translate(4 520)\">\n",
"<title>inherently terminal</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-520 1176.7006,-520 1176.7006,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"525.8503\" y=\"-501.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">inherently terminal</text>\n",
"<text text-anchor=\"start\" x=\"565.3503\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"587.3503\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"603.3503\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"563.3503\" y=\"-473.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"1094.9605,-87 1094.9605,-190 1164.7006,-190 1164.7006,-87 1094.9605,-87\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"994.2203,-206 994.2203,-309 1063.9605,-309 1063.9605,-206 994.2203,-206\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"863.3503,-147 863.3503,-250 933.0904,-250 933.0904,-147 863.3503,-147\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"863.3503,-328 863.3503,-431 933.0904,-431 933.0904,-328 863.3503,-328\"/>\n",
"</g>\n",
"<g id=\"clust5\" class=\"cluster\">\n",
"<title>cluster_4</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-105 30,-330 781.2203,-330 781.2203,-105 30,-105\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-177\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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.2229,-177C4.3751,-177 17.3629,-177 30.7917,-177\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-177 30.8046,-180.1501 34.3045,-177 30.8045,-177.0001 30.8045,-177.0001 30.8045,-177.0001 34.3045,-177 30.8045,-173.8501 37.8045,-177 37.8045,-177\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M56.6704,-202.8213C56.2072,-213.1776 58.9404,-221.8701 64.8701,-221.8701 69.3173,-221.8701 71.9666,-216.9805 72.8178,-210.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0697,-202.8213 75.9779,-209.9252 72.9497,-206.3193 72.8297,-209.8172 72.8297,-209.8172 72.8297,-209.8172 72.9497,-206.3193 69.6816,-209.7092 73.0697,-202.8213 73.0697,-202.8213\"/>\n",
"<text text-anchor=\"start\" x=\"44.8701\" y=\"-225.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1129.8305\" cy=\"-122\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"1125.3305\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"1121.8305\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M67.0532,-150.1175C72.6995,-100.6023 92.4509,0 159.7401,0 159.7401,0 159.7401,0 1029.0904,0 1075.443,0 1104.4596,-53.0112 1118.8542,-89.1458\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1121.539,-96.1269 1116.0863,-90.7241 1120.2827,-92.8602 1119.0263,-89.5934 1119.0263,-89.5934 1119.0263,-89.5934 1120.2827,-92.8602 1121.9664,-88.4627 1121.539,-96.1269 1121.539,-96.1269\"/>\n",
"<text text-anchor=\"start\" x=\"530.9802\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"460.6102\" cy=\"-202\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"456.1102\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"452.6102\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M89.768,-187.3128C108.6356,-194.1993 135.3833,-202 159.7401,-202 159.7401,-202 159.7401,-202 363.7401,-202 384.5258,-202 407.8202,-202 426.3561,-202\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"433.4692,-202 426.4692,-205.1501 429.9692,-202 426.4692,-202.0001 426.4692,-202.0001 426.4692,-202.0001 429.9692,-202 426.4691,-198.8501 433.4692,-202 433.4692,-202\"/>\n",
"<text text-anchor=\"start\" x=\"227.7401\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"260.7401\" cy=\"-262\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"256.2401\" y=\"-265.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"252.7401\" y=\"-250.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M75.19,-201.8417C85.3191,-222.2219 103.0117,-249.1108 128.7401,-258 160.7672,-269.0654 199.8096,-268.6875 227.0928,-266.3911\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"234.1119,-265.7363 227.4347,-269.5229 230.627,-266.0614 227.1421,-266.3865 227.1421,-266.3865 227.1421,-266.3865 230.627,-266.0614 226.8495,-263.2502 234.1119,-265.7363 234.1119,-265.7363\"/>\n",
"<text text-anchor=\"start\" x=\"128.7401\" y=\"-270.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</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=\"M1120.5379,-147.37C1119.897,-157.9238 1122.9946,-166.8701 1129.8305,-166.8701 1135.0643,-166.8701 1138.1067,-161.6259 1138.9577,-154.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1139.1231,-147.37 1142.1082,-154.4419 1139.0411,-150.869 1138.959,-154.3681 1138.959,-154.3681 1138.959,-154.3681 1139.0411,-150.869 1135.8099,-154.2943 1139.1231,-147.37 1139.1231,-147.37\"/>\n",
"<text text-anchor=\"middle\" x=\"1129.8305\" y=\"-170.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1029.0904\" cy=\"-241\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"1024.5904\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"1021.0904\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1046.638,-220.2718C1063.5079,-200.3441 1089.078,-170.1392 1107.4148,-148.4787\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1112.146,-142.89 1110.0273,-150.2679 1109.8846,-145.5613 1107.6231,-148.2326 1107.6231,-148.2326 1107.6231,-148.2326 1109.8846,-145.5613 1105.2189,-146.1973 1112.146,-142.89 1112.146,-142.89\"/>\n",
"<text text-anchor=\"start\" x=\"1073.9605\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1019.7978,-266.37C1019.1569,-276.9238 1022.2545,-285.8701 1029.0904,-285.8701 1034.3242,-285.8701 1037.3665,-280.6259 1038.2175,-273.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1038.383,-266.37 1041.3681,-273.4419 1038.301,-269.869 1038.2189,-273.3681 1038.2189,-273.3681 1038.2189,-273.3681 1038.301,-269.869 1035.0698,-273.2943 1038.383,-266.37 1038.383,-266.37\"/>\n",
"<text text-anchor=\"start\" x=\"1025.5904\" y=\"-289.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"898.2203\" cy=\"-182\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"893.7203\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"<text text-anchor=\"start\" x=\"890.2203\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;2 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M924.3388,-175.2339C966.7618,-164.2439 1050.5596,-142.5356 1096.9669,-130.5135\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1103.8076,-128.7414 1097.8212,-133.5463 1100.4194,-129.6192 1097.0312,-130.4969 1097.0312,-130.4969 1097.0312,-130.4969 1100.4194,-129.6192 1096.2413,-127.4476 1103.8076,-128.7414 1103.8076,-128.7414\"/>\n",
"<text text-anchor=\"start\" x=\"1023.5904\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>7&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M922.836,-193.0974C944.1314,-202.698 975.0304,-216.6282 998.0238,-226.9943\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1004.5851,-229.9523 996.909,-229.947 1001.3944,-228.5138 998.2036,-227.0753 998.2036,-227.0753 998.2036,-227.0753 1001.3944,-228.5138 999.4983,-224.2036 1004.5851,-229.9523 1004.5851,-229.9523\"/>\n",
"<text text-anchor=\"start\" x=\"947.2203\" y=\"-223.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M886.0901,-206.0048C884.7668,-217.1405 888.8102,-226.8701 898.2203,-226.8701 905.572,-226.8701 909.6481,-220.9316 910.4486,-213.0236\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"910.3506,-206.0048 913.5981,-212.9601 910.3995,-209.5045 910.4485,-213.0041 910.4485,-213.0041 910.4485,-213.0041 910.3995,-209.5045 907.2988,-213.0481 910.3506,-206.0048 910.3506,-206.0048\"/>\n",
"<text text-anchor=\"start\" x=\"881.2203\" y=\"-230.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"898.2203\" cy=\"-363\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"893.7203\" y=\"-366.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"<text text-anchor=\"start\" x=\"890.2203\" y=\"-351.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M925.0932,-364.0781C942.3235,-364.0539 964.9847,-362.676 984.2203,-357 1023.0428,-345.5443 1037.9047,-343.9761 1063.9605,-313 1102.6201,-267.0399 1119.0321,-197.1185 1125.6626,-155.8471\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1126.7538,-148.7344 1128.8058,-156.1311 1126.223,-152.1939 1125.6922,-155.6534 1125.6922,-155.6534 1125.6922,-155.6534 1126.223,-152.1939 1122.5786,-155.1757 1126.7538,-148.7344 1126.7538,-148.7344\"/>\n",
"<text text-anchor=\"start\" x=\"1023.5904\" y=\"-356.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M922.999,-352.2327C944.8834,-342.3858 974.7459,-328.0201 984.2203,-319 997.7838,-306.0869 1008.4834,-288.1643 1016.0271,-272.7551\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1019.0661,-266.3269 1018.922,-274.0017 1017.5701,-269.4911 1016.0742,-272.6554 1016.0742,-272.6554 1016.0742,-272.6554 1017.5701,-269.4911 1013.2264,-271.309 1019.0661,-266.3269 1019.0661,-266.3269\"/>\n",
"<text text-anchor=\"start\" x=\"947.2203\" y=\"-343.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M886.0901,-387.0048C884.7668,-398.1405 888.8102,-407.8701 898.2203,-407.8701 905.572,-407.8701 909.6481,-401.9316 910.4486,-394.0236\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"910.3506,-387.0048 913.5981,-393.9601 910.3995,-390.5045 910.4485,-394.0041 910.4485,-394.0041 910.4485,-394.0041 910.3995,-390.5045 907.2988,-394.0481 910.3506,-387.0048 910.3506,-387.0048\"/>\n",
"<text text-anchor=\"start\" x=\"881.2203\" y=\"-411.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M434.6051,-194.3788C402.0269,-185.2635 344.3286,-170.5412 293.7401,-165 224.8015,-157.4488 143.6428,-165.7427 98.8608,-171.8058\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"91.7283,-172.7946 98.2294,-168.7132 95.1952,-172.314 98.662,-171.8333 98.662,-171.8333 98.662,-171.8333 95.1952,-172.314 99.0946,-174.9535 91.7283,-172.7946 91.7283,-172.7946\"/>\n",
"<text text-anchor=\"start\" x=\"240.7401\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M470.4427,-176.7344C490.1926,-130.7311 539.3243,-38 614.4802,-38 614.4802,-38 614.4802,-38 1029.0904,-38 1064.1485,-38 1093.4735,-68.3792 1111.282,-92.5988\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1115.5579,-98.6013 1108.9309,-94.7276 1113.5272,-95.7506 1111.4965,-92.9 1111.4965,-92.9 1111.4965,-92.9 1113.5272,-95.7506 1114.0621,-91.0723 1115.5579,-98.6013 1115.5579,-98.6013\"/>\n",
"<text text-anchor=\"start\" x=\"802.2203\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M486.9217,-208.1902C558.4343,-224.2994 762.4484,-265.5014 933.0904,-254 953.8303,-252.6021 976.9204,-249.5239 995.2572,-246.7137\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1002.2915,-245.6133 995.8625,-249.8074 998.8336,-246.1542 995.3756,-246.6952 995.3756,-246.6952 995.3756,-246.6952 998.8336,-246.1542 994.8888,-243.5831 1002.2915,-245.6133 1002.2915,-245.6133\"/>\n",
"<text text-anchor=\"start\" x=\"730.3503\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</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=\"M452.4105,-227.8213C451.9473,-238.1776 454.6805,-246.8701 460.6102,-246.8701 465.0574,-246.8701 467.7067,-241.9805 468.5579,-235.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"468.8098,-227.8213 471.718,-234.9252 468.6898,-231.3193 468.5698,-234.8172 468.5698,-234.8172 468.5698,-234.8172 468.6898,-231.3193 465.4217,-234.7092 468.8098,-227.8213 468.8098,-227.8213\"/>\n",
"<text text-anchor=\"start\" x=\"427.6102\" y=\"-250.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"746.3503\" cy=\"-153\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"741.8503\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"<text text-anchor=\"start\" x=\"738.3503\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M487.835,-202.4831C533.382,-202.4738 627.3322,-198.9361 701.4802,-173 706.0237,-171.4107 710.7447,-169.5502 715.344,-167.6152\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"721.9608,-164.7498 716.789,-170.4222 718.749,-166.1407 715.5372,-167.5316 715.5372,-167.5316 715.5372,-167.5316 718.749,-166.1407 714.2854,-164.641 721.9608,-164.7498 721.9608,-164.7498\"/>\n",
"<text text-anchor=\"start\" x=\"583.4802\" y=\"-200.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M720.2929,-146.0391C693.8446,-139.5938 651.6171,-131 614.4802,-131 415.2401,-131 415.2401,-131 415.2401,-131 287.3001,-131 254.472,-135.3326 128.7401,-159 118.5365,-160.9207 107.6012,-163.7199 97.7141,-166.5411\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"90.7254,-168.587 96.5584,-163.5971 94.0844,-167.6036 97.4434,-166.6203 97.4434,-166.6203 97.4434,-166.6203 94.0844,-167.6036 98.3285,-169.6434 90.7254,-168.587 90.7254,-168.587\"/>\n",
"<text text-anchor=\"start\" x=\"343.7401\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M764.5615,-132.8014C772.0708,-125.8554 781.3305,-118.8601 791.2203,-115 896.4406,-73.9313 1034.4111,-98.4381 1096.7357,-113.2321\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1103.5983,-114.895 1096.0533,-116.3078 1100.1967,-114.0707 1096.7952,-113.2464 1096.7952,-113.2464 1096.7952,-113.2464 1100.1967,-114.0707 1097.537,-110.185 1103.5983,-114.895 1103.5983,-114.895\"/>\n",
"<text text-anchor=\"start\" x=\"947.7203\" y=\"-98.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M770.9008,-141.5477C807.863,-126.0591 879.2088,-103.0746 933.0904,-128 969.4275,-144.8094 997.0463,-182.9033 1013.128,-210.2146\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1016.7719,-216.5588 1010.5539,-212.0576 1015.0286,-213.5238 1013.2854,-210.4887 1013.2854,-210.4887 1013.2854,-210.4887 1015.0286,-213.5238 1016.0169,-208.9198 1016.7719,-216.5588 1016.7719,-216.5588\"/>\n",
"<text text-anchor=\"start\" x=\"867.2203\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M772.804,-158.0514C798.3142,-162.9226 837.0208,-170.3138 864.6818,-175.5957\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"871.8154,-176.9579 864.3488,-178.739 868.3775,-176.3014 864.9396,-175.6449 864.9396,-175.6449 864.9396,-175.6449 868.3775,-176.3014 865.5305,-172.5508 871.8154,-176.9579 871.8154,-176.9579\"/>\n",
"<text text-anchor=\"start\" x=\"791.2203\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;1 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>6&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M719.312,-154.214C686.4909,-156.011 629.5642,-160.169 581.4802,-169 551.1033,-174.579 517.2411,-184.1206 493.104,-191.5132\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"486.2531,-193.6337 492.0087,-188.5547 489.5966,-192.5987 492.9402,-191.5638 492.9402,-191.5638 492.9402,-191.5638 489.5966,-192.5987 493.8716,-194.573 486.2531,-193.6337 486.2531,-193.6337\"/>\n",
"<text text-anchor=\"start\" x=\"581.4802\" y=\"-172.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M734.9069,-177.4616C733.8171,-188.4053 737.6315,-197.8701 746.3503,-197.8701 753.0256,-197.8701 756.8261,-192.322 757.7517,-184.8099\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"757.7936,-177.4616 760.9036,-184.4795 757.7736,-180.9616 757.7536,-184.4615 757.7536,-184.4615 757.7536,-184.4615 757.7736,-180.9616 754.6037,-184.4435 757.7936,-177.4616 757.7936,-177.4616\"/>\n",
"<text text-anchor=\"start\" x=\"715.3503\" y=\"-201.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M234.9455,-253.4418C198.0538,-241.0598 132.1974,-218.3884 109.7401,-207 103.9708,-204.0743 98.0503,-200.5451 92.4797,-196.9506\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"86.5959,-193.0499 94.1708,-194.2924 89.5131,-194.9839 92.4303,-196.9179 92.4303,-196.9179 92.4303,-196.9179 89.5131,-194.9839 90.6897,-199.5433 86.5959,-193.0499 86.5959,-193.0499\"/>\n",
"<text text-anchor=\"start\" x=\"139.7401\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M263.0854,-289.0791C269.2513,-341.3393 290.871,-451 363.7401,-451 363.7401,-451 363.7401,-451 1029.0904,-451 1090.3268,-451 1118.0927,-239.9783 1126.7223,-155.9396\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1127.4284,-148.9235 1129.8615,-156.2037 1127.0779,-152.4059 1126.7274,-155.8883 1126.7274,-155.8883 1126.7274,-155.8883 1127.0779,-152.4059 1123.5932,-155.5728 1127.4284,-148.9235 1127.4284,-148.9235\"/>\n",
"<text text-anchor=\"start\" x=\"665.4802\" y=\"-454.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M282.4007,-278.0886C302.4332,-291.3536 333.5804,-308 363.7401,-308 363.7401,-308 363.7401,-308 898.2203,-308 938.1559,-308 978.1596,-282.9744 1003.2315,-263.5124\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1008.9659,-258.9548 1005.4459,-265.7763 1006.2259,-261.1325 1003.4859,-263.3103 1003.4859,-263.3103 1003.4859,-263.3103 1006.2259,-261.1325 1001.5259,-260.8443 1008.9659,-258.9548 1008.9659,-258.9548\"/>\n",
"<text text-anchor=\"start\" x=\"583.4802\" y=\"-311.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M273.2165,-285.9725C289.7856,-314.1155 321.8983,-357 363.7401,-357 363.7401,-357 363.7401,-357 746.3503,-357 786.9016,-357 833.496,-359.1622 864.2645,-360.8907\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"871.3481,-361.2967 864.1793,-364.0409 867.8538,-361.0964 864.3596,-360.896 864.3596,-360.896 864.3596,-360.896 867.8538,-361.0964 864.5398,-357.7512 871.3481,-361.2967 871.3481,-361.2967\"/>\n",
"<text text-anchor=\"start\" x=\"505.4802\" y=\"-360.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M286.8696,-254.156C323.0298,-243.301 388.3181,-223.7017 427.7433,-211.8665\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"434.791,-209.7508 428.9923,-214.7805 431.4388,-210.7571 428.0865,-211.7635 428.0865,-211.7635 428.0865,-211.7635 431.4388,-210.7571 427.1808,-208.7465 434.791,-209.7508 434.791,-209.7508\"/>\n",
"<text text-anchor=\"start\" x=\"330.7401\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M251.4475,-287.37C250.8066,-297.9238 253.9042,-306.8701 260.7401,-306.8701 265.9739,-306.8701 269.0163,-301.6259 269.8673,-294.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.0327,-287.37 273.0178,-294.4419 269.9507,-290.869 269.8686,-294.3681 269.8686,-294.3681 269.8686,-294.3681 269.9507,-290.869 266.7195,-294.2943 270.0327,-287.37 270.0327,-287.37\"/>\n",
"<text text-anchor=\"start\" x=\"229.7401\" y=\"-310.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f7a6f0> >"
]
},
"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",
"<!-- Title: strictly inherently weak Pages: 1 -->\n",
"<svg width=\"669pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 669.27 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.878 .878) rotate(0) translate(4 406)\">\n",
"<title>strictly inherently weak</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-406 758.2203,-406 758.2203,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"303.1102\" y=\"-387.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">strictly inherently weak</text>\n",
"<text text-anchor=\"start\" x=\"356.1102\" y=\"-373.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"378.1102\" y=\"-373.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"394.1102\" y=\"-373.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"354.1102\" y=\"-359.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"385.8701,-8 385.8701,-111 455.6102,-111 455.6102,-8 385.8701,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-119 30,-344 746.2203,-344 746.2203,-119 30,-119\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-250\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-238.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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.2229,-250C4.3751,-250 17.3629,-250 30.7917,-250\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-250 30.8046,-253.1501 34.3045,-250 30.8045,-250.0001 30.8045,-250.0001 30.8045,-250.0001 34.3045,-250 30.8045,-246.8501 37.8045,-250 37.8045,-250\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M56.6704,-275.8213C56.2072,-286.1776 58.9404,-294.8701 64.8701,-294.8701 69.3173,-294.8701 71.9666,-289.9805 72.8178,-283.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0697,-275.8213 75.9779,-282.9252 72.9497,-279.3193 72.8297,-282.8172 72.8297,-282.8172 72.8297,-282.8172 72.9497,-279.3193 69.6816,-282.7092 73.0697,-275.8213 73.0697,-275.8213\"/>\n",
"<text text-anchor=\"start\" x=\"44.8701\" y=\"-298.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"517.6102\" cy=\"-242\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"513.1102\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"509.6102\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M91.5894,-254.0826C123.7862,-258.7782 179.5685,-266.1997 227.7401,-269 336.6228,-275.3295 365.4363,-274.5292 472.7401,-255 476.7272,-254.2743 480.8674,-253.3367 484.9489,-252.2974\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"491.7251,-250.472 485.7854,-255.3344 488.3456,-251.3824 484.966,-252.2929 484.966,-252.2929 484.966,-252.2929 488.3456,-251.3824 484.1467,-249.2513 491.7251,-250.472 491.7251,-250.472\"/>\n",
"<text text-anchor=\"start\" x=\"227.7401\" y=\"-275.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"260.7401\" cy=\"-154\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"256.2401\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"252.7401\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M78.1868,-226.4207C89.3477,-208.9832 106.9433,-186.2248 128.7401,-174 158.8032,-157.139 198.4819,-153.1182 226.46,-152.7096\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.6651,-152.68 226.6781,-155.8588 230.1651,-152.6944 226.6651,-152.7088 226.6651,-152.7088 226.6651,-152.7088 230.1651,-152.6944 226.6521,-149.5589 233.6651,-152.68 233.6651,-152.68\"/>\n",
"<text text-anchor=\"start\" x=\"128.7401\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"420.7401\" cy=\"-43\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"416.2401\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"412.7401\" y=\"-31.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M411.4475,-68.37C410.8066,-78.9238 413.9042,-87.8701 420.7401,-87.8701 425.9739,-87.8701 429.0163,-82.6259 429.8673,-75.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"430.0327,-68.37 433.0178,-75.4419 429.9507,-71.869 429.8686,-75.3681 429.8686,-75.3681 429.8686,-75.3681 429.9507,-71.869 426.7195,-75.2943 430.0327,-68.37 430.0327,-68.37\"/>\n",
"<text text-anchor=\"start\" x=\"403.7401\" y=\"-91.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M490.9331,-245.3927C471.5038,-247.5731 444.5338,-250 420.7401,-250 159.7401,-250 159.7401,-250 159.7401,-250 139.7079,-250 117.2963,-250 99.2879,-250\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"91.8593,-250 98.8594,-246.8501 95.3593,-250 98.8593,-250.0001 98.8593,-250.0001 98.8593,-250.0001 95.3593,-250 98.8593,-253.1501 91.8593,-250 91.8593,-250\"/>\n",
"<text text-anchor=\"start\" x=\"240.7401\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M509.4105,-267.8213C508.9473,-278.1776 511.6805,-286.8701 517.6102,-286.8701 522.0574,-286.8701 524.7067,-281.9805 525.5579,-275.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"525.8098,-267.8213 528.718,-274.9252 525.6898,-271.3193 525.5698,-274.8172 525.5698,-274.8172 525.5698,-274.8172 525.6898,-271.3193 522.4217,-274.7092 525.8098,-267.8213 525.8098,-267.8213\"/>\n",
"<text text-anchor=\"start\" x=\"484.6102\" y=\"-290.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"711.3503\" cy=\"-276\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"706.8503\" y=\"-279.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"703.3503\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M544.1427,-246.6563C578.8276,-252.7432 639.6152,-263.411 677.5585,-270.0698\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"684.8281,-271.3455 677.3889,-273.2381 681.3807,-270.7405 677.9334,-270.1355 677.9334,-270.1355 677.9334,-270.1355 681.3807,-270.7405 678.4779,-267.0329 684.8281,-271.3455 684.8281,-271.3455\"/>\n",
"<text text-anchor=\"start\" x=\"583.4802\" y=\"-267.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M689.9612,-292.5008C671.1525,-305.3438 642.4813,-321 614.4802,-321 472.2401,-321 472.2401,-321 472.2401,-321 330.998,-321 166.2458,-279.0649 97.5424,-259.6513\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"90.8086,-257.7334 98.4037,-256.6214 94.1747,-258.6922 97.5408,-259.6509 97.5408,-259.6509 97.5408,-259.6509 94.1747,-258.6922 96.678,-262.6804 90.8086,-257.7334 90.8086,-257.7334\"/>\n",
"<text text-anchor=\"start\" x=\"400.7401\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M691.0598,-258.2175C679.2224,-249.0445 663.4996,-238.7951 647.4802,-234 615.6952,-224.4857 577.6333,-228.522 550.9596,-233.6919\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"544.0943,-235.0962 550.321,-230.6073 547.5233,-234.3948 550.9523,-233.6934 550.9523,-233.6934 550.9523,-233.6934 547.5233,-234.3948 551.5835,-236.7795 544.0943,-235.0962 544.0943,-235.0962\"/>\n",
"<text text-anchor=\"start\" x=\"581.4802\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</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=\"M703.1506,-301.8213C702.6874,-312.1776 705.4206,-320.8701 711.3503,-320.8701 715.7976,-320.8701 718.4468,-315.9805 719.298,-309.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"719.5499,-301.8213 722.4581,-308.9252 719.4299,-305.3193 719.3099,-308.8172 719.3099,-308.8172 719.3099,-308.8172 719.4299,-305.3193 716.1618,-308.7092 719.5499,-301.8213 719.5499,-301.8213\"/>\n",
"<text text-anchor=\"start\" x=\"680.3503\" y=\"-324.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M236.4801,-166.2223C223.0242,-172.9782 205.9778,-181.4986 190.7401,-189 158.5412,-204.8512 121.5685,-222.731 96.0656,-235.0141\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"89.515,-238.1674 94.456,-232.2929 92.6687,-236.6493 95.8223,-235.1311 95.8223,-235.1311 95.8223,-235.1311 92.6687,-236.6493 97.1886,-237.9694 89.515,-238.1674 89.515,-238.1674\"/>\n",
"<text text-anchor=\"start\" x=\"139.7401\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M282.9874,-138.5659C311.5649,-118.7403 361.1951,-84.3093 392.4336,-62.6376\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"398.4244,-58.4815 394.4685,-65.0598 395.5487,-60.4766 392.6729,-62.4716 392.6729,-62.4716 392.6729,-62.4716 395.5487,-60.4766 390.8774,-59.8835 398.4244,-58.4815 398.4244,-58.4815\"/>\n",
"<text text-anchor=\"start\" x=\"311.7401\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</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=\"M286.3089,-162.7595C333.4301,-178.9025 433.8636,-213.3096 485.4948,-230.9977\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"492.1448,-233.2759 484.5017,-233.9872 488.8337,-232.1416 485.5226,-231.0072 485.5226,-231.0072 485.5226,-231.0072 488.8337,-232.1416 486.5435,-228.0272 492.1448,-233.2759 492.1448,-233.2759\"/>\n",
"<text text-anchor=\"start\" x=\"387.7401\" y=\"-223.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</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=\"M251.4475,-179.37C250.8066,-189.9238 253.9042,-198.8701 260.7401,-198.8701 265.9739,-198.8701 269.0163,-193.6259 269.8673,-186.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.0327,-179.37 273.0178,-186.4419 269.9507,-182.869 269.8686,-186.3681 269.8686,-186.3681 269.8686,-186.3681 269.9507,-182.869 266.7195,-186.2943 270.0327,-179.37 270.0327,-179.37\"/>\n",
"<text text-anchor=\"start\" x=\"229.7401\" y=\"-202.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f0a4e0> >"
]
},
"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",
"<!-- Title: strong Pages: 1 -->\n",
"<svg width=\"705pt\" height=\"299pt\"\n",
" viewBox=\"0.00 0.00 705.22 299.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 295)\">\n",
"<title>strong</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-295 701.2203,-295 701.2203,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"328.1102\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">strong</text>\n",
"<text text-anchor=\"start\" x=\"234.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"262.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"278.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"315.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"331.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) &amp; (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"385.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"401.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"438.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"454.6102\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"316.6102\" y=\"-248.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Streett 2]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-8 30,-233 689.2203,-233 689.2203,-8 30,-8\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-145\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-148.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-133.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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.2229,-145C4.3751,-145 17.3629,-145 30.7917,-145\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-145 30.8046,-148.1501 34.3045,-145 30.8045,-145.0001 30.8045,-145.0001 30.8045,-145.0001 34.3045,-145 30.8045,-141.8501 37.8045,-145 37.8045,-145\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M56.6704,-170.8213C56.2072,-181.1776 58.9404,-189.8701 64.8701,-189.8701 69.3173,-189.8701 71.9666,-184.9805 72.8178,-178.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0697,-170.8213 75.9779,-177.9252 72.9497,-174.3193 72.8297,-177.8172 72.8297,-177.8172 72.8297,-177.8172 72.9497,-174.3193 69.6816,-177.7092 73.0697,-170.8213 73.0697,-170.8213\"/>\n",
"<text text-anchor=\"start\" x=\"44.8701\" y=\"-193.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"460.6102\" cy=\"-104\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"456.1102\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"452.6102\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M91.1487,-151.2631C133.9057,-160.5164 221.0665,-175.4693 293.7401,-163 342.796,-154.583 396.5794,-133.197 429.4686,-118.6234\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"436.1604,-115.624 431.0611,-121.3616 432.9666,-117.0556 429.7727,-118.4871 429.7727,-118.4871 429.7727,-118.4871 432.9666,-117.0556 428.4843,-115.6126 436.1604,-115.624 436.1604,-115.624\"/>\n",
"<text text-anchor=\"start\" x=\"227.7401\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"260.7401\" cy=\"-94\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"256.2401\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"252.7401\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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=\"M91.4224,-138.3814C116.9184,-131.9949 156.503,-121.9979 190.7401,-113 202.7421,-109.8458 215.8767,-106.3044 227.4935,-103.1414\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"234.5068,-101.2278 228.5829,-106.1094 231.1302,-102.1492 227.7536,-103.0705 227.7536,-103.0705 227.7536,-103.0705 231.1302,-102.1492 226.9244,-100.0316 234.5068,-101.2278 234.5068,-101.2278\"/>\n",
"<text text-anchor=\"start\" x=\"128.7401\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M444.292,-82.2353C426.848,-61.6866 397.1462,-34 363.7401,-34 159.7401,-34 159.7401,-34 159.7401,-34 117.9679,-34 90.6651,-79.9884 76.5112,-112.7626\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.6901,-119.5344 73.4744,-111.8613 75.0361,-116.3035 76.3821,-113.0727 76.3821,-113.0727 76.3821,-113.0727 75.0361,-116.3035 79.2899,-114.2841 73.6901,-119.5344 73.6901,-119.5344\"/>\n",
"<text text-anchor=\"start\" x=\"240.7401\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M452.4105,-129.8213C451.9473,-140.1776 454.6805,-148.8701 460.6102,-148.8701 465.0574,-148.8701 467.7067,-143.9805 468.5579,-137.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"468.8098,-129.8213 471.718,-136.9252 468.6898,-133.3193 468.5698,-136.8172 468.5698,-136.8172 468.5698,-136.8172 468.6898,-133.3193 465.4217,-136.7092 468.8098,-129.8213 468.8098,-129.8213\"/>\n",
"<text text-anchor=\"start\" x=\"427.6102\" y=\"-152.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"654.3503\" cy=\"-155\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"649.8503\" y=\"-158.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"646.3503\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M486.3243,-111.9529C497.9423,-115.4678 511.8651,-119.5715 524.4802,-123 557.0477,-131.851 594.4946,-140.966 620.7839,-147.1925\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"627.8897,-148.8695 620.3532,-150.3273 624.4832,-148.0655 621.0768,-147.2616 621.0768,-147.2616 621.0768,-147.2616 624.4832,-148.0655 621.8004,-144.1958 627.8897,-148.8695 627.8897,-148.8695\"/>\n",
"<text text-anchor=\"start\" x=\"526.4802\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M635.0109,-173.9279C616.645,-189.8374 587.4563,-210 557.4802,-210 415.2401,-210 415.2401,-210 415.2401,-210 286.4806,-210 253.1499,-200.1846 128.7401,-167 118.2441,-164.2003 106.982,-160.5465 96.8823,-157.0232\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"90.0996,-154.6169 97.75,-153.9887 93.3982,-155.7872 96.6968,-156.9575 96.6968,-156.9575 96.6968,-156.9575 93.3982,-155.7872 95.6435,-159.9262 90.0996,-154.6169 90.0996,-154.6169\"/>\n",
"<text text-anchor=\"start\" x=\"343.7401\" y=\"-212.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M636.086,-134.7915C624.3375,-123.3556 608.0239,-110.1449 590.4802,-104 559.3593,-93.0994 521.4106,-94.6536 494.5924,-97.9896\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"487.3383,-98.9689 493.8539,-94.9107 490.8069,-98.5006 494.2754,-98.0323 494.2754,-98.0323 494.2754,-98.0323 490.8069,-98.5006 494.6969,-101.154 487.3383,-98.9689 487.3383,-98.9689\"/>\n",
"<text text-anchor=\"start\" x=\"524.4802\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M646.1506,-180.8213C645.6874,-191.1776 648.4206,-199.8701 654.3503,-199.8701 658.7976,-199.8701 661.4468,-194.9805 662.298,-188.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"662.5499,-180.8213 665.4581,-187.9252 662.4299,-184.3193 662.3099,-187.8172 662.3099,-187.8172 662.3099,-187.8172 662.4299,-184.3193 659.1618,-187.7092 662.5499,-180.8213 662.5499,-180.8213\"/>\n",
"<text text-anchor=\"start\" x=\"623.3503\" y=\"-203.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M234.3377,-88.9985C207.0619,-84.9674 163.6698,-81.7653 128.7401,-94 113.6635,-99.2808 99.4954,-109.7798 88.3523,-119.8863\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"83.1344,-124.7915 86.077,-117.7018 85.6845,-122.3942 88.2346,-119.9969 88.2346,-119.9969 88.2346,-119.9969 85.6845,-122.3942 90.3922,-122.292 83.1344,-124.7915 83.1344,-124.7915\"/>\n",
"<text text-anchor=\"start\" x=\"139.7401\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M287.6955,-95.3486C323.7072,-97.1504 387.5188,-100.3431 426.7387,-102.3053\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"433.7634,-102.6568 426.6147,-105.453 430.2678,-102.4818 426.7722,-102.3069 426.7722,-102.3069 426.7722,-102.3069 430.2678,-102.4818 426.9296,-99.1608 433.7634,-102.6568 433.7634,-102.6568\"/>\n",
"<text text-anchor=\"start\" x=\"330.7401\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</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=\"M251.4475,-119.37C250.8066,-129.9238 253.9042,-138.8701 260.7401,-138.8701 265.9739,-138.8701 269.0163,-133.6259 269.8673,-126.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.0327,-119.37 273.0178,-126.4419 269.9507,-122.869 269.8686,-126.3681 269.8686,-126.3681 269.8686,-126.3681 269.9507,-122.869 266.7195,-126.2943 270.0327,-119.37 270.0327,-119.37\"/>\n",
"<text text-anchor=\"start\" x=\"229.7401\" y=\"-142.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f7a840> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for (name, opt) in (('inherently terminal', 't'), ('strictly inherently weak', 'w'), ('strong', 's')):\n",
" a = spot.decompose_strength(aut, opt)\n",
" a.set_name(name)\n",
" display(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The subtlety of Streett acceptance is that if a path that does not visit any accepting set infinitely often *is* accepting. So when disabling SCCs, we must be careful to label them with a combination of rejecting acceptance sets.\n",
"\n",
"This is easy to understand using an example. In the following extraction of the **strong** and **inherently terminal** parts, the rejecting SCCs (that were either rejecting or strictly inherently weak originally) have been labeled by the same acceptance sets, to ensure that they are rejected."
]
},
{
"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=\"734pt\" height=\"313pt\"\n",
" viewBox=\"0.00 0.00 734.00 313.30\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(.6143 .6143) rotate(0) translate(4 506)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-506 1190.8427,-506 1190.8427,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"479.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"507.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"523.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"560.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"576.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)) &amp; (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"630.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"646.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"683.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"699.4214\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"561.4214\" y=\"-473.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Streett 2]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"1094.9605,-80 1094.9605,-197 1178.8427,-197 1178.8427,-80 1094.9605,-80\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"994.2203,-206 994.2203,-309 1063.9605,-309 1063.9605,-206 994.2203,-206\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"863.3503,-147 863.3503,-250 933.0904,-250 933.0904,-147 863.3503,-147\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"863.3503,-328 863.3503,-431 933.0904,-431 933.0904,-328 863.3503,-328\"/>\n",
"</g>\n",
"<g id=\"clust5\" class=\"cluster\">\n",
"<title>cluster_4</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-105 30,-330 781.2203,-330 781.2203,-105 30,-105\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-177\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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.2229,-177C4.3751,-177 17.3629,-177 30.7917,-177\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-177 30.8046,-180.1501 34.3045,-177 30.8045,-177.0001 30.8045,-177.0001 30.8045,-177.0001 34.3045,-177 30.8045,-173.8501 37.8045,-177 37.8045,-177\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M56.6704,-202.8213C56.2072,-213.1776 58.9404,-221.8701 64.8701,-221.8701 69.3173,-221.8701 71.9666,-216.9805 72.8178,-210.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0697,-202.8213 75.9779,-209.9252 72.9497,-206.3193 72.8297,-209.8172 72.8297,-209.8172 72.8297,-209.8172 72.9497,-206.3193 69.6816,-209.7092 73.0697,-202.8213 73.0697,-202.8213\"/>\n",
"<text text-anchor=\"start\" x=\"44.8701\" y=\"-225.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1136.9016\" cy=\"-122\" rx=\"33.8824\" ry=\"33.8824\"/>\n",
"<text text-anchor=\"start\" x=\"1132.4016\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"1120.9016\" y=\"-111.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1136.9016\" y=\"-111.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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=\"M67.0532,-150.1175C72.6995,-100.6023 92.4509,0 159.7401,0 159.7401,0 159.7401,0 1029.0904,0 1074.3266,0 1105.138,-47.6795 1121.8811,-83.4246\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1124.8439,-89.9459 1119.0805,-84.8759 1123.3962,-86.7594 1121.9484,-83.5729 1121.9484,-83.5729 1121.9484,-83.5729 1123.3962,-86.7594 1124.8163,-82.2699 1124.8439,-89.9459 1124.8439,-89.9459\"/>\n",
"<text text-anchor=\"start\" x=\"530.9802\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"460.6102\" cy=\"-202\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"456.1102\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"452.6102\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</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=\"M89.768,-187.3128C108.6356,-194.1993 135.3833,-202 159.7401,-202 159.7401,-202 159.7401,-202 363.7401,-202 384.5258,-202 407.8202,-202 426.3561,-202\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"433.4692,-202 426.4692,-205.1501 429.9692,-202 426.4692,-202.0001 426.4692,-202.0001 426.4692,-202.0001 429.9692,-202 426.4691,-198.8501 433.4692,-202 433.4692,-202\"/>\n",
"<text text-anchor=\"start\" x=\"227.7401\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"260.7401\" cy=\"-262\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"256.2401\" y=\"-265.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"252.7401\" y=\"-250.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</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=\"M75.19,-201.8417C85.3191,-222.2219 103.0117,-249.1108 128.7401,-258 160.7672,-269.0654 199.8096,-268.6875 227.0928,-266.3911\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"234.1119,-265.7363 227.4347,-269.5229 230.627,-266.0614 227.1421,-266.3865 227.1421,-266.3865 227.1421,-266.3865 230.627,-266.0614 226.8495,-263.2502 234.1119,-265.7363 234.1119,-265.7363\"/>\n",
"<text text-anchor=\"start\" x=\"128.7401\" y=\"-270.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</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=\"M1126.4016,-154.4632C1126.4016,-165.2843 1129.9016,-173.9411 1136.9016,-173.9411 1142.261,-173.9411 1145.5687,-168.8666 1146.8248,-161.6315\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1147.4016,-154.4632 1149.9799,-161.6933 1147.1208,-157.9519 1146.8401,-161.4407 1146.8401,-161.4407 1146.8401,-161.4407 1147.1208,-157.9519 1143.7002,-161.188 1147.4016,-154.4632 1147.4016,-154.4632\"/>\n",
"<text text-anchor=\"middle\" x=\"1136.9016\" y=\"-177.7411\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1029.0904\" cy=\"-241\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"1024.5904\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"<text text-anchor=\"start\" x=\"1021.0904\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1047.1356,-221.0821C1064.0453,-202.4174 1089.5713,-174.2423 1109.0858,-152.7025\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1113.9087,-147.3791 1111.5433,-154.6817 1111.5588,-149.9729 1109.2088,-152.5667 1109.2088,-152.5667 1109.2088,-152.5667 1111.5588,-149.9729 1106.8744,-150.4518 1113.9087,-147.3791 1113.9087,-147.3791\"/>\n",
"<text text-anchor=\"start\" x=\"1073.9605\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1019.7978,-266.37C1019.1569,-276.9238 1022.2545,-285.8701 1029.0904,-285.8701 1034.3242,-285.8701 1037.3665,-280.6259 1038.2175,-273.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1038.383,-266.37 1041.3681,-273.4419 1038.301,-269.869 1038.2189,-273.3681 1038.2189,-273.3681 1038.2189,-273.3681 1038.301,-269.869 1035.0698,-273.2943 1038.383,-266.37 1038.383,-266.37\"/>\n",
"<text text-anchor=\"start\" x=\"1025.5904\" y=\"-289.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"898.2203\" cy=\"-182\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"893.7203\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"<text text-anchor=\"start\" x=\"890.2203\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;2 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M924.6754,-175.3497C966.4376,-164.8515 1047.9149,-144.3696 1096.8673,-132.0639\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1103.8452,-130.3097 1097.8244,-135.0713 1100.4508,-131.1631 1097.0565,-132.0164 1097.0565,-132.0164 1097.0565,-132.0164 1100.4508,-131.1631 1096.2885,-128.9614 1103.8452,-130.3097 1103.8452,-130.3097\"/>\n",
"<text text-anchor=\"start\" x=\"1023.5904\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>7&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M922.836,-193.0974C944.1314,-202.698 975.0304,-216.6282 998.0238,-226.9943\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1004.5851,-229.9523 996.909,-229.947 1001.3944,-228.5138 998.2036,-227.0753 998.2036,-227.0753 998.2036,-227.0753 1001.3944,-228.5138 999.4983,-224.2036 1004.5851,-229.9523 1004.5851,-229.9523\"/>\n",
"<text text-anchor=\"start\" x=\"947.2203\" y=\"-223.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M886.0901,-206.0048C884.7668,-217.1405 888.8102,-226.8701 898.2203,-226.8701 905.572,-226.8701 909.6481,-220.9316 910.4486,-213.0236\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"910.3506,-206.0048 913.5981,-212.9601 910.3995,-209.5045 910.4485,-213.0041 910.4485,-213.0041 910.4485,-213.0041 910.3995,-209.5045 907.2988,-213.0481 910.3506,-206.0048 910.3506,-206.0048\"/>\n",
"<text text-anchor=\"start\" x=\"881.2203\" y=\"-230.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"898.2203\" cy=\"-363\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"893.7203\" y=\"-366.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"<text text-anchor=\"start\" x=\"890.2203\" y=\"-351.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M925.0932,-364.0781C942.3235,-364.0539 964.9847,-362.676 984.2203,-357 1023.0428,-345.5443 1037.4018,-343.5459 1063.9605,-313 1101.7183,-269.5736 1120.9062,-204.5492 1129.9016,-162.6983\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1131.362,-155.6763 1133.0206,-163.1711 1130.6493,-159.103 1129.9366,-162.5296 1129.9366,-162.5296 1129.9366,-162.5296 1130.6493,-159.103 1126.8526,-161.8882 1131.362,-155.6763 1131.362,-155.6763\"/>\n",
"<text text-anchor=\"start\" x=\"1023.5904\" y=\"-356.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M922.999,-352.2327C944.8834,-342.3858 974.7459,-328.0201 984.2203,-319 997.7838,-306.0869 1008.4834,-288.1643 1016.0271,-272.7551\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1019.0661,-266.3269 1018.922,-274.0017 1017.5701,-269.4911 1016.0742,-272.6554 1016.0742,-272.6554 1016.0742,-272.6554 1017.5701,-269.4911 1013.2264,-271.309 1019.0661,-266.3269 1019.0661,-266.3269\"/>\n",
"<text text-anchor=\"start\" x=\"947.2203\" y=\"-343.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M886.0901,-387.0048C884.7668,-398.1405 888.8102,-407.8701 898.2203,-407.8701 905.572,-407.8701 909.6481,-401.9316 910.4486,-394.0236\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"910.3506,-387.0048 913.5981,-393.9601 910.3995,-390.5045 910.4485,-394.0041 910.4485,-394.0041 910.4485,-394.0041 910.3995,-390.5045 907.2988,-394.0481 910.3506,-387.0048 910.3506,-387.0048\"/>\n",
"<text text-anchor=\"start\" x=\"881.2203\" y=\"-411.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M434.6051,-194.3788C402.0269,-185.2635 344.3286,-170.5412 293.7401,-165 224.8015,-157.4488 143.6428,-165.7427 98.8608,-171.8058\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"91.7283,-172.7946 98.2294,-168.7132 95.1952,-172.314 98.662,-171.8333 98.662,-171.8333 98.662,-171.8333 95.1952,-172.314 99.0946,-174.9535 91.7283,-172.7946 91.7283,-172.7946\"/>\n",
"<text text-anchor=\"start\" x=\"240.7401\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M470.4427,-176.7344C490.1926,-130.7311 539.3243,-38 614.4802,-38 614.4802,-38 614.4802,-38 1029.0904,-38 1063.3585,-38 1093.2744,-64.7341 1112.8423,-88.0383\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1117.3459,-93.5614 1110.4809,-90.127 1115.1341,-90.8489 1112.9222,-88.1363 1112.9222,-88.1363 1112.9222,-88.1363 1115.1341,-90.8489 1115.3635,-86.1457 1117.3459,-93.5614 1117.3459,-93.5614\"/>\n",
"<text text-anchor=\"start\" x=\"802.2203\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M486.9217,-208.1902C558.4343,-224.2994 762.4484,-265.5014 933.0904,-254 953.8303,-252.6021 976.9204,-249.5239 995.2572,-246.7137\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1002.2915,-245.6133 995.8625,-249.8074 998.8336,-246.1542 995.3756,-246.6952 995.3756,-246.6952 995.3756,-246.6952 998.8336,-246.1542 994.8888,-243.5831 1002.2915,-245.6133 1002.2915,-245.6133\"/>\n",
"<text text-anchor=\"start\" x=\"730.3503\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</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=\"M452.4105,-227.8213C451.9473,-238.1776 454.6805,-246.8701 460.6102,-246.8701 465.0574,-246.8701 467.7067,-241.9805 468.5579,-235.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"468.8098,-227.8213 471.718,-234.9252 468.6898,-231.3193 468.5698,-234.8172 468.5698,-234.8172 468.5698,-234.8172 468.6898,-231.3193 465.4217,-234.7092 468.8098,-227.8213 468.8098,-227.8213\"/>\n",
"<text text-anchor=\"start\" x=\"427.6102\" y=\"-250.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"746.3503\" cy=\"-154\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"741.8503\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"<text text-anchor=\"start\" x=\"738.3503\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M487.7819,-202.3292C533.2518,-202.0959 627.0924,-198.24 701.4802,-173 705.7911,-171.5373 710.2723,-169.85 714.6617,-168.0971\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"721.4462,-165.3116 716.1672,-170.8843 718.2084,-166.641 714.9707,-167.9703 714.9707,-167.9703 714.9707,-167.9703 718.2084,-166.641 713.7743,-165.0564 721.4462,-165.3116 721.4462,-165.3116\"/>\n",
"<text text-anchor=\"start\" x=\"583.4802\" y=\"-200.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M720.3126,-146.7227C693.8796,-139.9844 651.6638,-131 614.4802,-131 415.2401,-131 415.2401,-131 415.2401,-131 287.3001,-131 254.472,-135.3326 128.7401,-159 118.5365,-160.9207 107.6012,-163.7199 97.7141,-166.5411\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"90.7254,-168.587 96.5584,-163.5971 94.0844,-167.6036 97.4434,-166.6203 97.4434,-166.6203 97.4434,-166.6203 94.0844,-167.6036 98.3285,-169.6434 90.7254,-168.587 90.7254,-168.587\"/>\n",
"<text text-anchor=\"start\" x=\"343.7401\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M764.0132,-133.614C771.5818,-126.3421 781.0267,-118.9728 791.2203,-115 895.3684,-74.4104 1030.9061,-96.5745 1097.0615,-111.6745\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1104.0118,-113.2936 1096.4797,-114.7732 1100.6031,-112.4995 1097.1943,-111.7053 1097.1943,-111.7053 1097.1943,-111.7053 1100.6031,-112.4995 1097.909,-108.6375 1104.0118,-113.2936 1104.0118,-113.2936\"/>\n",
"<text text-anchor=\"start\" x=\"947.7203\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M770.891,-142.3384C807.8405,-126.5513 879.1701,-103.0567 933.0904,-128 969.4275,-144.8094 997.0463,-182.9033 1013.128,-210.2146\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1016.7719,-216.5588 1010.5539,-212.0576 1015.0286,-213.5238 1013.2854,-210.4887 1013.2854,-210.4887 1013.2854,-210.4887 1015.0286,-213.5238 1016.0169,-208.9198 1016.7719,-216.5588 1016.7719,-216.5588\"/>\n",
"<text text-anchor=\"start\" x=\"867.2203\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M772.804,-158.8772C798.2361,-163.5661 836.7842,-170.6731 864.4277,-175.7697\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"871.5602,-177.0847 864.105,-178.9132 868.1182,-176.4501 864.6762,-175.8154 864.6762,-175.8154 864.6762,-175.8154 868.1182,-176.4501 865.2474,-172.7177 871.5602,-177.0847 871.5602,-177.0847\"/>\n",
"<text text-anchor=\"start\" x=\"791.2203\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;1 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>6&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M719.3007,-154.7271C686.4683,-155.9696 629.5306,-159.2831 581.4802,-168 551.0264,-173.5247 517.1727,-183.3799 493.0583,-191.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"486.2145,-193.2678 491.911,-188.1226 489.5458,-192.1943 492.8771,-191.1208 492.8771,-191.1208 492.8771,-191.1208 489.5458,-192.1943 493.8433,-194.119 486.2145,-193.2678 486.2145,-193.2678\"/>\n",
"<text text-anchor=\"start\" x=\"581.4802\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M734.9069,-178.4616C733.8171,-189.4053 737.6315,-198.8701 746.3503,-198.8701 753.0256,-198.8701 756.8261,-193.322 757.7517,-185.8099\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"757.7936,-178.4616 760.9036,-185.4795 757.7736,-181.9616 757.7536,-185.4615 757.7536,-185.4615 757.7536,-185.4615 757.7736,-181.9616 754.6037,-185.4435 757.7936,-178.4616 757.7936,-178.4616\"/>\n",
"<text text-anchor=\"start\" x=\"715.3503\" y=\"-202.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M234.9455,-253.4418C198.0538,-241.0598 132.1974,-218.3884 109.7401,-207 103.9708,-204.0743 98.0503,-200.5451 92.4797,-196.9506\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"86.5959,-193.0499 94.1708,-194.2924 89.5131,-194.9839 92.4303,-196.9179 92.4303,-196.9179 92.4303,-196.9179 89.5131,-194.9839 90.6897,-199.5433 86.5959,-193.0499 86.5959,-193.0499\"/>\n",
"<text text-anchor=\"start\" x=\"139.7401\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M263.0854,-289.0791C269.2513,-341.3393 290.871,-451 363.7401,-451 363.7401,-451 363.7401,-451 1029.0904,-451 1089.0151,-451 1120.9958,-251.4083 1132.2088,-163.1428\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1133.1054,-155.9696 1135.3628,-163.3063 1132.6713,-159.4426 1132.2372,-162.9156 1132.2372,-162.9156 1132.2372,-162.9156 1132.6713,-159.4426 1129.1115,-162.5248 1133.1054,-155.9696 1133.1054,-155.9696\"/>\n",
"<text text-anchor=\"start\" x=\"665.4802\" y=\"-454.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M282.4007,-278.0886C302.4332,-291.3536 333.5804,-308 363.7401,-308 363.7401,-308 363.7401,-308 898.2203,-308 938.1559,-308 978.1596,-282.9744 1003.2315,-263.5124\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1008.9659,-258.9548 1005.4459,-265.7763 1006.2259,-261.1325 1003.4859,-263.3103 1003.4859,-263.3103 1003.4859,-263.3103 1006.2259,-261.1325 1001.5259,-260.8443 1008.9659,-258.9548 1008.9659,-258.9548\"/>\n",
"<text text-anchor=\"start\" x=\"583.4802\" y=\"-311.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M273.2165,-285.9725C289.7856,-314.1155 321.8983,-357 363.7401,-357 363.7401,-357 363.7401,-357 746.3503,-357 786.9016,-357 833.496,-359.1622 864.2645,-360.8907\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"871.3481,-361.2967 864.1793,-364.0409 867.8538,-361.0964 864.3596,-360.896 864.3596,-360.896 864.3596,-360.896 867.8538,-361.0964 864.5398,-357.7512 871.3481,-361.2967 871.3481,-361.2967\"/>\n",
"<text text-anchor=\"start\" x=\"505.4802\" y=\"-360.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M286.8696,-254.156C323.0298,-243.301 388.3181,-223.7017 427.7433,-211.8665\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"434.791,-209.7508 428.9923,-214.7805 431.4388,-210.7571 428.0865,-211.7635 428.0865,-211.7635 428.0865,-211.7635 431.4388,-210.7571 427.1808,-208.7465 434.791,-209.7508 434.791,-209.7508\"/>\n",
"<text text-anchor=\"start\" x=\"330.7401\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b &amp; !c</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M251.4475,-287.37C250.8066,-297.9238 253.9042,-306.8701 260.7401,-306.8701 265.9739,-306.8701 269.0163,-301.6259 269.8673,-294.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"270.0327,-287.37 273.0178,-294.4419 269.9507,-290.869 269.8686,-294.3681 269.8686,-294.3681 269.8686,-294.3681 269.9507,-290.869 266.7195,-294.2943 270.0327,-287.37 270.0327,-287.37\"/>\n",
"<text text-anchor=\"start\" x=\"229.7401\" y=\"-310.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !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 0x7f6b42f1b390> >"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.decompose_scc(aut, 'st')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Corner cases\n",
"\n",
"When the acceptance condition is always satisfiable, all non-trivial SCCs are accepting, and inherently weak.\n",
"\n",
"This include acceptances like `Acceptance: 0 t`, but also trickier ones like `Acceptance: 1 Inf(0) | Fin(0)` that you can make as complex as you fancy.\n",
"\n",
"### `Acceptance: 0 t`\n",
"\n",
"This occur frequently whant translating LTL formulas that are safety properties:"
]
},
{
"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=\"232pt\" height=\"240pt\"\n",
" viewBox=\"0.00 0.00 232.00 240.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 236)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-236 228,-236 228,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"109\" y=\"-216.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
"<text text-anchor=\"start\" x=\"101\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"164,-101 164,-186 216,-186 216,-101 164,-101\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"164,-8 164,-93 216,-93 216,-8 164,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-27 30,-112 82,-112 82,-27 30,-27\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-49.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,-53C4.178,-53 17.9448,-53 30.9241,-53\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#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\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-70.0373C48.3189,-79.8579 50.4453,-89 56,-89 60.166,-89 62.4036,-83.8576 62.7128,-77.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#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\"/>\n",
"<text text-anchor=\"start\" x=\"38\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"190\" cy=\"-127\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"190\" y=\"-123.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.8978,-61.7794C95.7732,-74.9643 140.964,-99.9204 167.9928,-114.8468\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"174.1229,-118.2321 166.4724,-117.6055 171.0591,-116.5401 167.9952,-114.848 167.9952,-114.848 167.9952,-114.848 171.0591,-116.5401 169.518,-112.0906 174.1229,-118.2321 174.1229,-118.2321\"/>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"190\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"190\" y=\"-30.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=\"M74.0718,-50.4376C97.4488,-47.1229 138.2991,-41.3307 164.738,-37.5819\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"171.7865,-36.5825 165.2981,-40.6841 168.3212,-37.0739 164.8558,-37.5653 164.8558,-37.5653 164.8558,-37.5653 168.3212,-37.0739 164.4136,-34.4465 171.7865,-36.5825 171.7865,-36.5825\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-50.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=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M179.0873,-141.4167C175.2765,-152.166 178.9141,-163 190,-163 198.6609,-163 202.7757,-156.3875 202.3443,-148.3688\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"200.9127,-141.4167 205.4099,-147.6375 201.6187,-144.8447 202.3246,-148.2728 202.3246,-148.2728 202.3246,-148.2728 201.6187,-144.8447 199.2394,-148.9082 200.9127,-141.4167 200.9127,-141.4167\"/>\n",
"<text text-anchor=\"middle\" x=\"190\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M179.0873,-48.4167C175.2765,-59.166 178.9141,-70 190,-70 198.6609,-70 202.7757,-63.3875 202.3443,-55.3688\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"200.9127,-48.4167 205.4099,-54.6375 201.6187,-51.8447 202.3246,-55.2728 202.3246,-55.2728 202.3246,-55.2728 201.6187,-51.8447 199.2394,-55.9082 200.9127,-48.4167 200.9127,-48.4167\"/>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-73.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 0x7f6b42f1b600> >"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut = spot.translate('(Gb|c) R a', 'any'); aut"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# There is no strong part for this automaton\n",
"assert spot.decompose_scc(aut, 's') is None"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"267pt\" height=\"163pt\"\n",
" viewBox=\"0.00 0.00 267.48 163.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 159)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-159 263.4802,-159 263.4802,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"108.7401\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"130.7401\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"146.7401\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"106.7401\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"181.7401,-8 181.7401,-111 251.4802,-111 251.4802,-8 181.7401,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-8 30,-111 99.7401,-111 99.7401,-8 30,-8\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-43\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-31.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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.2229,-43C4.3751,-43 17.3629,-43 30.7917,-43\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-43 30.8046,-46.1501 34.3045,-43 30.8045,-43.0001 30.8045,-43.0001 30.8045,-43.0001 34.3045,-43 30.8045,-39.8501 37.8045,-43 37.8045,-43\"/>\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=\"M56.6704,-68.8213C56.2072,-79.1776 58.9404,-87.8701 64.8701,-87.8701 69.3173,-87.8701 71.9666,-82.9805 72.8178,-76.1667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0697,-68.8213 75.9779,-75.9252 72.9497,-72.3193 72.8297,-75.8172 72.8297,-75.8172 72.8297,-75.8172 72.9497,-72.3193 69.6816,-75.7092 73.0697,-68.8213 73.0697,-68.8213\"/>\n",
"<text text-anchor=\"start\" x=\"46.8701\" y=\"-91.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"216.6102\" cy=\"-43\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"212.1102\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"208.6102\" y=\"-31.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M91.9981,-43C117.3521,-43 155.2997,-43 182.654,-43\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.7169,-43 182.717,-46.1501 186.2169,-43 182.7169,-43.0001 182.7169,-43.0001 182.7169,-43.0001 186.2169,-43 182.7169,-39.8501 189.7169,-43 189.7169,-43\"/>\n",
"<text text-anchor=\"start\" x=\"109.7401\" y=\"-46.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=\"M203.0739,-66.5464C201.4028,-77.8722 205.9149,-87.8701 216.6102,-87.8701 224.9659,-87.8701 229.5477,-81.7678 230.3555,-73.6976\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"230.1464,-66.5464 233.4997,-73.4513 230.2488,-70.0449 230.3511,-73.5434 230.3511,-73.5434 230.3511,-73.5434 230.2488,-70.0449 227.2024,-73.6355 230.1464,-66.5464 230.1464,-66.5464\"/>\n",
"<text text-anchor=\"start\" x=\"212.1102\" y=\"-91.6701\" 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 0x7f6b42f6c930> >"
]
},
"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=\"220pt\" height=\"163pt\"\n",
" viewBox=\"0.00 0.00 219.74 163.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 159)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-159 215.7401,-159 215.7401,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84.8701\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"106.8701\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"122.8701\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"82.8701\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"134,-8 134,-111 203.7401,-111 203.7401,-8 134,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-17 30,-102 82,-102 82,-17 30,-17\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-43\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.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,-43C4.178,-43 17.9448,-43 30.9241,-43\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-43 30.9808,-46.1501 34.4807,-43 30.9807,-43.0001 30.9807,-43.0001 30.9807,-43.0001 34.4807,-43 30.9807,-39.8501 37.9807,-43 37.9807,-43\"/>\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=\"M49.6208,-60.0373C48.3189,-69.8579 50.4453,-79 56,-79 60.166,-79 62.4036,-73.8576 62.7128,-67.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-60.0373 65.8541,-66.8818 62.5434,-63.5335 62.7076,-67.0296 62.7076,-67.0296 62.7076,-67.0296 62.5434,-63.5335 59.561,-67.1774 62.3792,-60.0373 62.3792,-60.0373\"/>\n",
"<text text-anchor=\"start\" x=\"38\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"168.8701\" cy=\"-43\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"164.3701\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"160.8701\" y=\"-31.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M74.1345,-43C90.4516,-43 114.8566,-43 134.8094,-43\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"141.9357,-43 134.9358,-46.1501 138.4357,-43 134.9357,-43.0001 134.9357,-43.0001 134.9357,-43.0001 138.4357,-43 134.9357,-39.8501 141.9357,-43 141.9357,-43\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &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=\"M157.7546,-67.9167C156.8446,-78.6664 160.5497,-87.8701 168.8701,-87.8701 175.2403,-87.8701 178.9052,-82.475 179.8648,-75.1217\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"179.9855,-67.9167 183.0177,-74.9686 179.9268,-71.4162 179.8681,-74.9158 179.8681,-74.9158 179.8681,-74.9158 179.9268,-71.4162 176.7186,-74.863 179.9855,-67.9167 179.9855,-67.9167\"/>\n",
"<text text-anchor=\"middle\" x=\"168.8701\" y=\"-91.6701\" 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 0x7f6b42f6c930> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for opt in ('w', 't'):\n",
" display(spot.decompose_scc(aut, opt))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we try to extract multiple strengths and include the (empty) strong part, this request will simply be ignored:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"220pt\" height=\"163pt\"\n",
" viewBox=\"0.00 0.00 219.74 163.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 159)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-159 215.7401,-159 215.7401,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84.8701\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"106.8701\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"122.8701\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"82.8701\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"134,-8 134,-111 203.7401,-111 203.7401,-8 134,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-17 30,-102 82,-102 82,-17 30,-17\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-43\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.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,-43C4.178,-43 17.9448,-43 30.9241,-43\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-43 30.9808,-46.1501 34.4807,-43 30.9807,-43.0001 30.9807,-43.0001 30.9807,-43.0001 34.4807,-43 30.9807,-39.8501 37.9807,-43 37.9807,-43\"/>\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=\"M49.6208,-60.0373C48.3189,-69.8579 50.4453,-79 56,-79 60.166,-79 62.4036,-73.8576 62.7128,-67.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-60.0373 65.8541,-66.8818 62.5434,-63.5335 62.7076,-67.0296 62.7076,-67.0296 62.7076,-67.0296 62.5434,-63.5335 59.561,-67.1774 62.3792,-60.0373 62.3792,-60.0373\"/>\n",
"<text text-anchor=\"start\" x=\"38\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"168.8701\" cy=\"-43\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"164.3701\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"160.8701\" y=\"-31.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M74.1345,-43C90.4516,-43 114.8566,-43 134.8094,-43\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"141.9357,-43 134.9358,-46.1501 138.4357,-43 134.9357,-43.0001 134.9357,-43.0001 134.9357,-43.0001 138.4357,-43 134.9357,-39.8501 141.9357,-43 141.9357,-43\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &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=\"M157.7546,-67.9167C156.8446,-78.6664 160.5497,-87.8701 168.8701,-87.8701 175.2403,-87.8701 178.9052,-82.475 179.8648,-75.1217\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"179.9855,-67.9167 183.0177,-74.9686 179.9268,-71.4162 179.8681,-74.9158 179.8681,-74.9158 179.8681,-74.9158 179.9268,-71.4162 176.7186,-74.863 179.9855,-67.9167 179.9855,-67.9167\"/>\n",
"<text text-anchor=\"middle\" x=\"168.8701\" y=\"-91.6701\" 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 0x7f6b42f1bd80> >"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.decompose_scc(aut, 'st')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the above is exactly the output of `decompose_strength(aut, 't')`. The `'s'` flag was actively ignored. If `'s'` had not been ignored an the automaton processed as if its strong part had to be preserved, the original acceptance conditions would have been used, and this would have prevented the disabling of the initial SCC."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### `Acceptance: 1 Inf(0) | Fin(0)`\n",
"\n",
"This acceptance could be replaced by `Acceptance: 0 t` without altering the language of the automaton. However its use of acceptance sets allows us to define some automata with SCCs that are *inherently weak* but not *weak*."
]
},
{
"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=\"390pt\" height=\"199pt\"\n",
" viewBox=\"0.00 0.00 390.00 199.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 195)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-195 386,-195 386,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"142\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"164\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"220\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"145.5\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Streett&#45;like 1]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"322,-47 322,-147 374,-147 374,-47 322,-47\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"113,-8 113,-123 291,-123 291,-8 113,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-23 30,-108 82,-108 82,-23 30,-23\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-45.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,-49C4.178,-49 17.9448,-49 30.9241,-49\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-49 30.9808,-52.1501 34.4807,-49 30.9807,-49.0001 30.9807,-49.0001 30.9807,-49.0001 34.4807,-49 30.9807,-45.8501 37.9807,-49 37.9807,-49\"/>\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,-66.0373C48.3189,-75.8579 50.4453,-85 56,-85 60.166,-85 62.4036,-79.8576 62.7128,-73.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-66.0373 65.8541,-72.8818 62.5434,-69.5335 62.7076,-73.0296 62.7076,-73.0296 62.7076,-73.0296 62.5434,-69.5335 59.561,-73.1774 62.3792,-66.0373 62.3792,-66.0373\"/>\n",
"<text text-anchor=\"start\" x=\"52.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"139\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"139\" y=\"-45.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.0098,-49C85.5679,-49 100.7507,-49 113.5345,-49\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"120.7388,-49 113.7388,-52.1501 117.2388,-49 113.7388,-49.0001 113.7388,-49.0001 113.7388,-49.0001 117.2388,-49 113.7387,-45.8501 120.7388,-49 120.7388,-49\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348\" cy=\"-73\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348\" y=\"-69.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M340.9688,-89.6641C339.4063,-99.625 341.75,-109 348,-109 352.6875,-109 355.1777,-103.7266 355.4707,-96.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"355.0313,-89.6641 358.6006,-96.4598 355.2438,-93.1576 355.4564,-96.6511 355.4564,-96.6511 355.4564,-96.6511 355.2438,-93.1576 352.3122,-96.8425 355.0313,-89.6641 355.0313,-89.6641\"/>\n",
"<text text-anchor=\"start\" x=\"343.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"340\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M132.6208,-66.0373C131.3189,-75.8579 133.4453,-85 139,-85 143.166,-85 145.4036,-79.8576 145.7128,-73.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"145.3792,-66.0373 148.8541,-72.8818 145.5434,-69.5335 145.7076,-73.0296 145.7076,-73.0296 145.7076,-73.0296 145.5434,-69.5335 142.561,-73.1774 145.3792,-66.0373 145.3792,-66.0373\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"265\" cy=\"-73\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"265\" y=\"-69.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M157.0214,-46.524C171.5075,-45.0628 192.2891,-44.1637 210,-48 221.3274,-50.4536 233.1233,-55.4469 242.8728,-60.3303\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"249.2647,-63.661 241.6012,-63.2196 246.1608,-62.0436 243.0569,-60.4261 243.0569,-60.4261 243.0569,-60.4261 246.1608,-62.0436 244.5125,-57.6327 249.2647,-63.661 249.2647,-63.661\"/>\n",
"<text text-anchor=\"start\" x=\"196.5\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"194\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M283.0098,-73C294.5679,-73 309.7507,-73 322.5345,-73\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"329.7388,-73 322.7388,-76.1501 326.2388,-73 322.7388,-73.0001 322.7388,-73.0001 322.7388,-73.0001 326.2388,-73 322.7387,-69.8501 329.7388,-73 329.7388,-73\"/>\n",
"<text text-anchor=\"start\" x=\"301\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M247.2314,-77.2647C232.709,-80.0359 211.7526,-82.3936 194,-78 182.138,-75.0643 170.012,-69.0542 160.175,-63.2629\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.067,-59.5232 161.6818,-60.4919 157.052,-61.3508 160.037,-63.1784 160.037,-63.1784 160.037,-63.1784 157.052,-61.3508 158.3921,-65.8648 154.067,-59.5232 154.067,-59.5232\"/>\n",
"<text text-anchor=\"start\" x=\"198.5\" y=\"-83.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</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 0x7f6b42f1b750> >"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut = spot.automaton(\"\"\"\n",
"HOA: v1\n",
"States: 4\n",
"Start: 0\n",
"AP: 1 \"a\"\n",
"Acceptance: 1 Inf(0) | Fin(0)\n",
"--BODY--\n",
"State: 0\n",
"[0] 0 \n",
"[!0] 1\n",
"State: 1\n",
"[0] 1 \n",
"[!0] 2 {0}\n",
"State: 2\n",
"[0] 1\n",
"[!0] 3\n",
"State: 3\n",
"[t] 3 {0}\n",
"--END--\n",
"\"\"\")\n",
"aut"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"By our definitions, SCC $\\{0\\}$ and $\\{1,2\\}$ are inherently weak, and SCC $\\{3\\}$ is terminal."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Title: terminal Pages: 1 -->\n",
"<svg width=\"385pt\" height=\"198pt\"\n",
" viewBox=\"0.00 0.00 385.00 198.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 194)\">\n",
"<title>terminal</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-194 381,-194 381,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"162.5\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">terminal</text>\n",
"<text text-anchor=\"start\" x=\"167.5\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"189.5\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"205.5\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"165.5\" y=\"-147.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"317,-32 317,-132 369,-132 369,-32 317,-32\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"113,-8 113,-108 286,-108 286,-8 113,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-15 30,-100 82,-100 82,-15 30,-15\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-41\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-37.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,-41C4.178,-41 17.9448,-41 30.9241,-41\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-41 30.9808,-44.1501 34.4807,-41 30.9807,-41.0001 30.9807,-41.0001 30.9807,-41.0001 34.4807,-41 30.9807,-37.8501 37.9807,-41 37.9807,-41\"/>\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,-58.0373C48.3189,-67.8579 50.4453,-77 56,-77 60.166,-77 62.4036,-71.8576 62.7128,-65.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-58.0373 65.8541,-64.8818 62.5434,-61.5335 62.7076,-65.0296 62.7076,-65.0296 62.7076,-65.0296 62.5434,-61.5335 59.561,-65.1774 62.3792,-58.0373 62.3792,-58.0373\"/>\n",
"<text text-anchor=\"start\" x=\"52.5\" y=\"-80.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"139\" cy=\"-41\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"139\" y=\"-37.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.0098,-41C85.5679,-41 100.7507,-41 113.5345,-41\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"120.7388,-41 113.7388,-44.1501 117.2388,-41 113.7388,-41.0001 113.7388,-41.0001 113.7388,-41.0001 117.2388,-41 113.7387,-37.8501 120.7388,-41 120.7388,-41\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-44.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"343\" cy=\"-58\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"343\" y=\"-54.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M335.9688,-74.6641C334.4063,-84.625 336.75,-94 343,-94 347.6875,-94 350.1777,-88.7266 350.4707,-81.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"350.0313,-74.6641 353.6006,-81.4598 350.2438,-78.1576 350.4564,-81.6511 350.4564,-81.6511 350.4564,-81.6511 350.2438,-78.1576 347.3122,-81.8425 350.0313,-74.6641 350.0313,-74.6641\"/>\n",
"<text text-anchor=\"start\" x=\"338.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"335\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M132.6208,-58.0373C131.3189,-67.8579 133.4453,-77 139,-77 143.166,-77 145.4036,-71.8576 145.7128,-65.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"145.3792,-58.0373 148.8541,-64.8818 145.5434,-61.5335 145.7076,-65.0296 145.7076,-65.0296 145.7076,-65.0296 145.5434,-61.5335 142.561,-65.1774 145.3792,-58.0373 145.3792,-58.0373\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-80.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"260\" cy=\"-58\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"260\" y=\"-54.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M156.9726,-42.5432C170.269,-43.7729 188.8044,-45.6721 205,-48 214.9517,-49.4304 225.8556,-51.3407 235.3114,-53.1082\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"242.2203,-54.4217 234.7551,-56.2088 238.7819,-53.768 235.3435,-53.1142 235.3435,-53.1142 235.3435,-53.1142 238.7819,-53.768 235.9319,-50.0197 242.2203,-54.4217 242.2203,-54.4217\"/>\n",
"<text text-anchor=\"start\" x=\"194\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M278.0098,-58C289.5679,-58 304.7507,-58 317.5345,-58\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"324.7388,-58 317.7388,-61.1501 321.2388,-58 317.7388,-58.0001 317.7388,-58.0001 317.7388,-58.0001 321.2388,-58 317.7387,-54.8501 324.7388,-58 324.7388,-58\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M242.2059,-61.8789C228.8387,-64.1832 210.1359,-66.1075 194,-63 183.0051,-60.8826 171.4143,-56.587 161.7231,-52.3489\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"155.3479,-49.4515 163.024,-49.4801 158.5343,-50.8997 161.7206,-52.3479 161.7206,-52.3479 161.7206,-52.3479 158.5343,-50.8997 160.4173,-55.2156 155.3479,-49.4515 155.3479,-49.4515\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-67.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</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 0x7f6b42f2c690> >"
]
},
"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",
"<!-- Title: strictly weak Pages: 1 -->\n",
"<svg width=\"312pt\" height=\"204pt\"\n",
" viewBox=\"0.00 0.00 312.00 204.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 200)\">\n",
"<title>strictly weak</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-200 308,-200 308,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"112\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">strictly weak</text>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-167.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-167.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-167.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"118,-8 118,-138 296,-138 296,-8 118,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-23 30,-123 82,-123 82,-23 30,-23\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-45.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,-49C4.178,-49 17.9448,-49 30.9241,-49\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-49 30.9808,-52.1501 34.4807,-49 30.9807,-49.0001 30.9807,-49.0001 30.9807,-49.0001 34.4807,-49 30.9807,-45.8501 37.9807,-49 37.9807,-49\"/>\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,-66.0373C48.3189,-75.8579 50.4453,-85 56,-85 60.166,-85 62.4036,-79.8576 62.7128,-73.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-66.0373 65.8541,-72.8818 62.5434,-69.5335 62.7076,-73.0296 62.7076,-73.0296 62.7076,-73.0296 62.5434,-69.5335 59.561,-73.1774 62.3792,-66.0373 62.3792,-66.0373\"/>\n",
"<text text-anchor=\"start\" x=\"52.5\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"144\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"144\" y=\"-45.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.2337,-49C87.0948,-49 104.4907,-49 118.6942,-49\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"125.7897,-49 118.7897,-52.1501 122.2897,-49 118.7897,-49.0001 118.7897,-49.0001 118.7897,-49.0001 122.2897,-49 118.7897,-45.8501 125.7897,-49 125.7897,-49\"/>\n",
"<text text-anchor=\"start\" x=\"94.5\" y=\"-67.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M137.6208,-66.0373C136.3189,-75.8579 138.4453,-85 144,-85 148.166,-85 150.4036,-79.8576 150.7128,-73.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"150.3792,-66.0373 153.8541,-72.8818 150.5434,-69.5335 150.7076,-73.0296 150.7076,-73.0296 150.7076,-73.0296 150.5434,-69.5335 147.561,-73.1774 150.3792,-66.0373 150.3792,-66.0373\"/>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-88.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=\"270\" cy=\"-67\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"270\" y=\"-63.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M161.934,-46.9789C176.3706,-45.7751 197.1284,-45.0001 215,-48 225.7428,-49.8033 237.1935,-53.4583 246.8498,-57.0852\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"253.5282,-59.6943 245.8618,-60.0811 250.2682,-58.4207 247.0081,-57.147 247.0081,-57.147 247.0081,-57.147 250.2682,-58.4207 248.1544,-54.213 253.5282,-59.6943 253.5282,-59.6943\"/>\n",
"<text text-anchor=\"start\" x=\"201.5\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"199\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M252.9038,-73.4079C238.4165,-77.9458 217.1622,-82.4949 199,-78 187.138,-75.0643 175.012,-69.0542 165.175,-63.2629\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.067,-59.5232 166.6818,-60.4919 162.052,-61.3508 165.037,-63.1784 165.037,-63.1784 165.037,-63.1784 162.052,-61.3508 163.3921,-65.8648 159.067,-59.5232 159.067,-59.5232\"/>\n",
"<text text-anchor=\"start\" x=\"203.5\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"199\" y=\"-82.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 0x7f6b42f7a840> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"no output for strong\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Title: all strengths Pages: 1 -->\n",
"<svg width=\"400pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 400.00 222.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 218)\">\n",
"<title>all strengths</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-218 396,-218 396,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"158\" y=\"-199.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">all strengths</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"197\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"213\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"332,-56 332,-156 384,-156 384,-56 332,-56\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"118,-8 118,-138 296,-138 296,-8 118,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-23 30,-123 82,-123 82,-23 30,-23\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-45.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,-49C4.178,-49 17.9448,-49 30.9241,-49\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-49 30.9808,-52.1501 34.4807,-49 30.9807,-49.0001 30.9807,-49.0001 30.9807,-49.0001 34.4807,-49 30.9807,-45.8501 37.9807,-49 37.9807,-49\"/>\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,-66.0373C48.3189,-75.8579 50.4453,-85 56,-85 60.166,-85 62.4036,-79.8576 62.7128,-73.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-66.0373 65.8541,-72.8818 62.5434,-69.5335 62.7076,-73.0296 62.7076,-73.0296 62.7076,-73.0296 62.5434,-69.5335 59.561,-73.1774 62.3792,-66.0373 62.3792,-66.0373\"/>\n",
"<text text-anchor=\"start\" x=\"52.5\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"144\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"144\" y=\"-45.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.2337,-49C87.0948,-49 104.4907,-49 118.6942,-49\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"125.7897,-49 118.7897,-52.1501 122.2897,-49 118.7897,-49.0001 118.7897,-49.0001 118.7897,-49.0001 122.2897,-49 118.7897,-45.8501 125.7897,-49 125.7897,-49\"/>\n",
"<text text-anchor=\"start\" x=\"94.5\" y=\"-67.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"358\" cy=\"-82\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"358\" y=\"-78.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M350.3321,-98.2903C348.4831,-108.3892 351.0391,-118 358,-118 363.2207,-118 365.9636,-112.5939 366.2287,-105.6304\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"365.6679,-98.2903 369.3421,-105.0299 365.9346,-101.7801 366.2013,-105.2699 366.2013,-105.2699 366.2013,-105.2699 365.9346,-101.7801 363.0604,-105.5099 365.6679,-98.2903 365.6679,-98.2903\"/>\n",
"<text text-anchor=\"start\" x=\"353.5\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"M137.6208,-66.0373C136.3189,-75.8579 138.4453,-85 144,-85 148.166,-85 150.4036,-79.8576 150.7128,-73.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"150.3792,-66.0373 153.8541,-72.8818 150.5434,-69.5335 150.7076,-73.0296 150.7076,-73.0296 150.7076,-73.0296 150.5434,-69.5335 147.561,-73.1774 150.3792,-66.0373 150.3792,-66.0373\"/>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"270\" cy=\"-82\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"270\" y=\"-78.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M161.8767,-45.9537C176.4618,-44.1267 197.4498,-43.0134 215,-48 227.6982,-51.608 240.3357,-59.0755 250.2889,-66.0953\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"256.1159,-70.3699 248.6085,-68.7693 253.2938,-68.2996 250.4717,-66.2294 250.4717,-66.2294 250.4717,-66.2294 253.2938,-68.2996 252.3349,-63.6895 256.1159,-70.3699 256.1159,-70.3699\"/>\n",
"<text text-anchor=\"start\" x=\"201.5\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"199\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M288.2337,-82C301.0948,-82 318.4907,-82 332.6942,-82\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"339.7897,-82 332.7897,-85.1501 336.2897,-82 332.7897,-82.0001 332.7897,-82.0001 332.7897,-82.0001 336.2897,-82 332.7897,-78.8501 339.7897,-82 339.7897,-82\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"306\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M251.8571,-83.082C237.3022,-83.4523 216.4874,-82.8539 199,-78 187.2253,-74.7317 175.1094,-68.6832 165.2565,-62.9524\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.1348,-59.2647 166.7564,-60.1786 162.1329,-61.0708 165.131,-62.8768 165.131,-62.8768 165.131,-62.8768 162.1329,-61.0708 163.5055,-65.5751 159.1348,-59.2647 159.1348,-59.2647\"/>\n",
"<text text-anchor=\"start\" x=\"203.5\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"199\" y=\"-84.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 0x7f6b42f2c120> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for (name, opt) in (('terminal', 't'), ('strictly weak', 'w'), ('strong', 's'), ('all strengths', 'swt')):\n",
" a = spot.decompose_scc(aut, opt)\n",
" if a:\n",
" a.set_name(name)\n",
" display(a)\n",
" else:\n",
" print(\"no output for \" + name)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# `decompose_scc()` by SCC number\n",
"\n",
"Decompose SCC can also be called by SCC numbers.\n",
"The example below show the different SCC numbers and the state they contains, before extracting the sub-automaton containing SCC 1 and 2 (i.e., anything leading to states 1 and 4 of the original automaton). This example also shows that when an `scc_info` is available for to automaton to decompose, it can be passed to `decompose_scc()` in lieu of the automaton: doing so is faster because `decompose_scc()` does not need to rebuild this object. "
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SCC #0 containts states [1]\n",
"SCC #1 containts states [2]\n",
"SCC #2 containts states [4]\n",
"SCC #3 containts states [0, 3]\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"496pt\" height=\"315pt\"\n",
" viewBox=\"0.00 0.00 496.00 315.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 311)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-311 492,-311 492,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"223\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"245\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"221\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"428,-148 428,-248 480,-248 480,-148 428,-148\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"166,-8 166,-108 218,-108 218,-8 166,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"345,-148 345,-233 397,-233 397,-148 345,-148\"/>\n",
"</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-148 30,-263 293,-263 293,-148 30,-148\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-170.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,-174C4.178,-174 17.9448,-174 30.9241,-174\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-174 30.9808,-177.1501 34.4807,-174 30.9807,-174.0001 30.9807,-174.0001 30.9807,-174.0001 34.4807,-174 30.9807,-170.8501 37.9807,-174 37.9807,-174\"/>\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,-191.0373C48.3189,-200.8579 50.4453,-210 56,-210 60.166,-210 62.4036,-204.8576 62.7128,-198.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-191.0373 65.8541,-197.8818 62.5434,-194.5335 62.7076,-198.0296 62.7076,-198.0296 62.7076,-198.0296 62.5434,-194.5335 59.561,-198.1774 62.3792,-191.0373 62.3792,-191.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"454\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"454\" y=\"-170.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.7423,-164.9119C96.4901,-151.5061 146.387,-128 192,-128 192,-128 192,-128 371,-128 395.5036,-128 419.5513,-143.5275 435.4016,-156.5397\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"440.8559,-161.1864 433.4846,-159.0447 438.1916,-158.9167 435.5274,-156.6469 435.5274,-156.6469 435.5274,-156.6469 438.1916,-158.9167 437.5702,-154.249 440.8559,-161.1864 440.8559,-161.1864\"/>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-30.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=\"M61.2718,-156.6681C66.8826,-140.3827 77.0314,-116.0332 92,-99 113.6775,-74.3325 146.8751,-55.2821 168.9997,-44.3562\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.4855,-41.2291 170.5482,-47.1067 172.3328,-42.7492 169.1801,-44.2693 169.1801,-44.2693 169.1801,-44.2693 172.3328,-42.7492 167.812,-41.4319 175.4855,-41.2291 175.4855,-41.2291\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"267\" cy=\"-192\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-188.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.9897,-175.5347C111.6735,-178.7494 198.968,-186.1963 242.0423,-189.8709\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"249.0558,-190.4692 241.8133,-193.0127 245.5685,-190.1717 242.0811,-189.8741 242.0811,-189.8741 242.0811,-189.8741 245.5685,-190.1717 242.3489,-186.7355 249.0558,-190.4692 249.0558,-190.4692\"/>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M446.9688,-190.6641C445.4063,-200.625 447.75,-210 454,-210 458.6875,-210 461.1777,-204.7266 461.4707,-197.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"461.0313,-190.6641 464.6006,-197.4598 461.2438,-194.1576 461.4564,-197.6511 461.4564,-197.6511 461.4564,-197.6511 461.2438,-194.1576 458.3122,-197.8425 461.0313,-190.6641 461.0313,-190.6641\"/>\n",
"<text text-anchor=\"start\" x=\"449.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-213.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=\"M185.2664,-51.0373C183.8922,-60.8579 186.1367,-70 192,-70 196.3975,-70 198.7594,-64.8576 199.0858,-58.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.7336,-51.0373 202.2263,-57.8728 198.9069,-54.533 199.0802,-58.0287 199.0802,-58.0287 199.0802,-58.0287 198.9069,-54.533 195.934,-58.1847 198.7336,-51.0373 198.7336,-51.0373\"/>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.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=\"371\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"371\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M389.0098,-174C400.5679,-174 415.7507,-174 428.5345,-174\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"435.7388,-174 428.7388,-177.1501 432.2388,-174 428.7388,-174.0001 428.7388,-174.0001 428.7388,-174.0001 432.2388,-174 428.7387,-170.8501 435.7388,-174 435.7388,-174\"/>\n",
"<text text-anchor=\"start\" x=\"407\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</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=\"M363.9688,-190.6641C362.4063,-200.625 364.75,-210 371,-210 375.6875,-210 378.1777,-204.7266 378.4707,-197.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"378.0313,-190.6641 381.6006,-197.4598 378.2438,-194.1576 378.4564,-197.6511 378.4564,-197.6511 378.4564,-197.6511 378.2438,-194.1576 375.3122,-197.8425 378.0313,-190.6641 378.0313,-190.6641\"/>\n",
"<text text-anchor=\"start\" x=\"367.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M249.4684,-196.923C240.196,-199.2748 228.572,-201.8279 218,-203 161.7118,-209.2404 146.7131,-198.6215 92,-184 88.24,-182.9952 84.2649,-181.912 80.3822,-180.8425\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.5593,-178.9519 81.1463,-177.7856 76.9322,-179.8866 80.3051,-180.8212 80.3051,-180.8212 80.3051,-180.8212 76.9322,-179.8866 79.4639,-183.8568 73.5593,-178.9519 73.5593,-178.9519\"/>\n",
"<text text-anchor=\"start\" x=\"172\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M280.9572,-203.6937C305.0872,-222.4071 355.9593,-255.2135 397,-237 415.8745,-228.6237 431.1522,-210.5674 441.1221,-195.9237\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"445.0651,-189.895 443.8698,-197.4775 443.1493,-192.8242 441.2336,-195.7533 441.2336,-195.7533 441.2336,-195.7533 443.1493,-192.8242 438.5973,-194.0292 445.0651,-189.895 445.0651,-189.895\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; c</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=\"M285.1154,-188.8646C301.967,-185.948 327.2278,-181.576 345.9961,-178.3276\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"353.0922,-177.0994 346.732,-181.3972 349.6434,-177.6964 346.1947,-178.2933 346.1947,-178.2933 346.1947,-178.2933 349.6434,-177.6964 345.6575,-175.1894 353.0922,-177.0994 353.0922,-177.0994\"/>\n",
"<text text-anchor=\"start\" x=\"303\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</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=\"M260.6208,-209.0373C259.3189,-218.8579 261.4453,-228 267,-228 271.166,-228 273.4036,-222.8576 273.7128,-216.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"273.3792,-209.0373 276.8541,-215.8818 273.5434,-212.5335 273.7076,-216.0296 273.7076,-216.0296 273.7076,-216.0296 273.5434,-212.5335 270.561,-216.1774 273.3792,-209.0373 273.3792,-209.0373\"/>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-231.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42f6c990> >"
]
},
"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=\"413pt\" height=\"268pt\"\n",
" viewBox=\"0.00 0.00 413.00 268.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 264)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-264 409,-264 409,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"203.5\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"219.5\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"179.5\" y=\"-231.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"166,-8 166,-108 218,-108 218,-8 166,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"#c0c0c0\" points=\"345,-123 345,-208 397,-208 397,-123 345,-123\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"#ff0000\" points=\"30,-116 30,-216 293,-216 293,-116 30,-116\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-142\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-138.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,-142C4.178,-142 17.9448,-142 30.9241,-142\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-142 30.9808,-145.1501 34.4807,-142 30.9807,-142.0001 30.9807,-142.0001 30.9807,-142.0001 34.4807,-142 30.9807,-138.8501 37.9807,-142 37.9807,-142\"/>\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,-159.0373C48.3189,-168.8579 50.4453,-178 56,-178 60.166,-178 62.4036,-172.8576 62.7128,-166.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-159.0373 65.8541,-165.8818 62.5434,-162.5335 62.7076,-166.0296 62.7076,-166.0296 62.7076,-166.0296 62.5434,-162.5335 59.561,-166.1774 62.3792,-159.0373 62.3792,-159.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"192\" y=\"-30.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=\"M70.2973,-130.6462C94.7464,-111.2308 144.6248,-71.6215 172.3348,-49.6165\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"177.8942,-45.2016 174.3714,-52.0217 175.1533,-47.3782 172.4124,-49.5549 172.4124,-49.5549 172.4124,-49.5549 175.1533,-47.3782 170.4535,-47.088 177.8942,-45.2016 177.8942,-45.2016\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-117.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"267\" cy=\"-149\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"267\" y=\"-145.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.3558,-142.609C112.1732,-143.8636 198.8193,-146.7381 241.8285,-148.1649\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"248.8369,-148.3974 241.7363,-151.3135 245.3389,-148.2813 241.8408,-148.1652 241.8408,-148.1652 241.8408,-148.1652 245.3389,-148.2813 241.9453,-145.017 248.8369,-148.3974 248.8369,-148.3974\"/>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M185.2664,-51.0373C183.8922,-60.8579 186.1367,-70 192,-70 196.3975,-70 198.7594,-64.8576 199.0858,-58.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.7336,-51.0373 202.2263,-57.8728 198.9069,-54.533 199.0802,-58.0287 199.0802,-58.0287 199.0802,-58.0287 198.9069,-54.533 195.934,-58.1847 198.7336,-51.0373 198.7336,-51.0373\"/>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"371\" cy=\"-149\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"371\" y=\"-145.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</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=\"M362.0212,-164.916C359.679,-175.1504 362.6719,-185 371,-185 377.3762,-185 380.625,-179.2263 380.7465,-171.9268\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"379.9788,-164.916 383.8721,-171.5315 380.3598,-168.3952 380.7408,-171.8744 380.7408,-171.8744 380.7408,-171.8744 380.3598,-168.3952 377.6095,-172.2174 379.9788,-164.916 379.9788,-164.916\"/>\n",
"<text text-anchor=\"start\" x=\"367.5\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M250.1337,-156.4182C240.8505,-160.0978 229.0101,-164.1443 218,-166 168.9974,-174.259 111.3933,-160.0533 79.7745,-150.2082\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.0614,-148.0609 80.6883,-147.1933 76.395,-149.1272 79.7286,-150.1936 79.7286,-150.1936 79.7286,-150.1936 76.395,-149.1272 78.7689,-153.1938 73.0614,-148.0609 73.0614,-148.0609\"/>\n",
"<text text-anchor=\"start\" x=\"172\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</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=\"M285.1154,-149C301.8642,-149 326.92,-149 345.6521,-149\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.7432,-149 345.7433,-152.1501 349.2432,-149 345.7432,-149.0001 345.7432,-149.0001 345.7432,-149.0001 349.2432,-149 345.7432,-145.8501 352.7432,-149 352.7432,-149\"/>\n",
"<text text-anchor=\"start\" x=\"303\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; c</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=\"M260.6208,-166.0373C259.3189,-175.8579 261.4453,-185 267,-185 271.166,-185 273.4036,-179.8576 273.7128,-173.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"273.3792,-166.0373 276.8541,-172.8818 273.5434,-169.5335 273.7076,-173.0296 273.7076,-173.0296 273.7076,-173.0296 273.5434,-169.5335 270.561,-173.1774 273.3792,-166.0373 273.3792,-166.0373\"/>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42f6c900> >"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut = spot.translate('(Ga -> Gb) W c')\n",
"si = spot.scc_info(aut)\n",
"for scc in range(si.scc_count()):\n",
" print(\"SCC #{} containts states {}\".format(scc, list(si.states_of(scc))))\n",
"display(aut)\n",
"spot.decompose_scc(si, '1,2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If an SCC number N is prefixed by `a`, it signifies that we want to extract the Nth *accepting* SCC. In the above example SCC 2 is rejecting so SCC `a2` denotes SCC 3."
]
},
{
"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=\"248pt\" height=\"175pt\"\n",
" viewBox=\"0.00 0.00 248.00 175.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 171)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-171 244,-171 244,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"99\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"97\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<g id=\"clust1\" class=\"cluster\">\n",
"<title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"#00ff00\" points=\"30,-8 30,-123 232,-123 232,-8 30,-8\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-38.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,-42C4.178,-42 17.9448,-42 30.9241,-42\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-42 30.9808,-45.1501 34.4807,-42 30.9807,-42.0001 30.9807,-42.0001 30.9807,-42.0001 34.4807,-42 30.9807,-38.8501 37.9807,-42 37.9807,-42\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-59.0373C48.3189,-68.8579 50.4453,-78 56,-78 60.166,-78 62.4036,-72.8576 62.7128,-66.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-59.0373 65.8541,-65.8818 62.5434,-62.5335 62.7076,-66.0296 62.7076,-66.0296 62.7076,-66.0296 62.5434,-62.5335 59.561,-66.1774 62.3792,-59.0373 62.3792,-59.0373\"/>\n",
"<text text-anchor=\"start\" x=\"36\" y=\"-96.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-81.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"206\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"206\" y=\"-45.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.0935,-42.8444C100.6718,-44.0847 150.3801,-46.4044 180.604,-47.8149\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"187.8423,-48.1526 180.7031,-50.9728 184.3461,-47.9894 180.8499,-47.8262 180.8499,-47.8262 180.8499,-47.8262 184.3461,-47.9894 180.9968,-44.6797 187.8423,-48.1526 187.8423,-48.1526\"/>\n",
"<text text-anchor=\"start\" x=\"113\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !c</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=\"M188.7765,-54.9405C169.6967,-60.7308 138.0513,-67.9887 111,-63 100.1617,-61.0012 88.696,-56.9606 79.0542,-52.9528\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.3909,-50.0699 80.0663,-49.9585 75.6032,-51.4597 78.8154,-52.8495 78.8154,-52.8495 78.8154,-52.8495 75.6032,-51.4597 77.5646,-55.7405 72.3909,-50.0699 72.3909,-50.0699\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-67.8\" 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=\"M199.6208,-66.0373C198.3189,-75.8579 200.4453,-85 206,-85 210.166,-85 212.4036,-79.8576 212.7128,-73.1433\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.3792,-66.0373 215.8541,-72.8818 212.5434,-69.5335 212.7076,-73.0296 212.7076,-73.0296 212.7076,-73.0296 212.5434,-69.5335 209.561,-73.1774 212.3792,-66.0373 212.3792,-66.0373\"/>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !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 0x7f6b42f2c150> >"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.decompose_scc(si, 'a2')"
]
}
],
"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
}