This improves the determinism in a few cases. * spot/twa/twagraph.cc (merge_edges): Encapsulate the two passes into lambdas so that they are very easy to swap. * spot/twa/twagraph.hh (merge_edges): Adjust documentation. * tests/python/mergedge.py: Add test case. * tests/core/alternating.test, tests/python/alternation.ipynb: Determinism was improved. * tests/core/parity2.test, tests/core/readsave.test, tests/core/sbacc.test, tests/python/_product_susp.ipynb, tests/python/atva16-fig2a.ipynb, tests/python/decompose.ipynb, tests/python/highlighting.ipynb, tests/python/satmin.ipynb, tests/python/simstate.py: Adjust expected order of edges. * NEWS: Mention the change.
3623 lines
239 KiB
Text
3623 lines
239 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import spot\n",
|
|
"spot.setup()\n",
|
|
"from IPython.display import display"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"This notebook shows you different ways in which states or transitions can be highlighted in Spot. \n",
|
|
"\n",
|
|
"It should be noted that highlighting works using some special [named properties](https://spot.lrde.epita.fr/concepts.html#named-properties): basically, two maps that are attached to the automaton, and associated state or edge numbers to color numbers. This named properties are fragile: they will be lost if the automaton is transformed into a new automaton, and they can become meaningless of the automaton is modified in place (e.g., if the transitions or states are reordered).\n",
|
|
"\n",
|
|
"Nonetheless, highlighting is OK to use right before displaying or printing the automaton. The `dot` and `hoa` printer both know how to represent highlighted states and transitions.\n",
|
|
"\n",
|
|
"# Manual highlighting"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"a = spot.translate('a U b U c')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The `#` option of `print_dot()` can be used to display the internal number of each transition "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"305pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 305.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 301,-160.8 301,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"127\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-62C2.79,-62 17.15,-62 30.63,-62\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-62 30.94,-65.15 34.44,-62 30.94,-62 30.94,-62 30.94,-62 34.44,-62 30.94,-58.85 37.94,-62 37.94,-62\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-79.04C48.32,-88.86 50.45,-98 56,-98 60.17,-98 62.4,-92.86 62.71,-86.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-79.04 65.85,-85.88 62.54,-82.53 62.71,-86.03 62.71,-86.03 62.71,-86.03 62.54,-82.53 59.56,-86.18 62.38,-79.04 62.38,-79.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"38.5\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">a & !c</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"41.12\" y=\"-82.84\" font-family=\"Lato\" font-size=\"14.00\">#6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"275\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"275\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"275\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M73.55,-66.19C101.64,-72.75 160.43,-84.1 210,-78 222.33,-76.48 235.7,-73.38 247.02,-70.3\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"253.78,-68.41 247.89,-73.33 250.41,-69.35 247.04,-70.3 247.04,-70.3 247.04,-70.3 250.41,-69.35 246.18,-67.27 253.78,-68.41 253.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"188.5\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"82.05\" y=\"-54.99\" font-family=\"Lato\" font-size=\"14.00\">#4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"192\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"187.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M73.43,-56.6C97.04,-48.85 140.68,-34.52 167.63,-25.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"174.43,-23.44 168.77,-28.62 171.11,-24.53 167.78,-25.62 167.78,-25.62 167.78,-25.62 171.11,-24.53 166.8,-22.63 174.43,-23.44 174.43,-23.44\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-53.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b & !c</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"81.93\" y=\"-45.4\" font-family=\"Lato\" font-size=\"14.00\">#5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M267.32,-82.99C266.37,-93.09 268.93,-102 275,-102 279.55,-102 282.13,-96.99 282.74,-90.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"282.68,-82.99 285.88,-89.97 282.71,-86.49 282.73,-89.99 282.73,-89.99 282.73,-89.99 282.71,-86.49 279.58,-90.01 282.68,-82.99 282.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"270.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"258.82\" y=\"-86.79\" font-family=\"Lato\" font-size=\"14.00\">#1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M208.24,-26.28C219.74,-32.52 235.76,-41.23 249.11,-48.48\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"255.42,-51.91 247.77,-51.33 252.34,-50.24 249.27,-48.57 249.27,-48.57 249.27,-48.57 252.34,-50.24 250.77,-45.8 255.42,-51.91 255.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"216.74\" y=\"-30.08\" font-family=\"Lato\" font-size=\"14.00\">#2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M185.27,-35.04C183.89,-44.86 186.14,-54 192,-54 196.4,-54 198.76,-48.86 199.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"198.73,-35.04 202.23,-41.87 198.91,-38.53 199.08,-42.03 199.08,-42.03 199.08,-42.03 198.91,-38.53 195.93,-42.18 198.73,-35.04 198.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">b & !c</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"176.77\" y=\"-38.84\" font-family=\"Lato\" font-size=\"14.00\">#3</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"a.show('.#')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Using these numbers you can selectively hightlight some transitions. The second argument is a color number (from a list of predefined colors)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"305pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 305.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 301,-160.8 301,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"127\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-62C2.79,-62 17.15,-62 30.63,-62\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-62 30.94,-65.15 34.44,-62 30.94,-62 30.94,-62 30.94,-62 34.44,-62 30.94,-58.85 37.94,-62 37.94,-62\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-79.04C48.32,-88.86 50.45,-98 56,-98 60.17,-98 62.4,-92.86 62.71,-86.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-79.04 65.85,-85.88 62.54,-82.53 62.71,-86.03 62.71,-86.03 62.71,-86.03 62.54,-82.53 59.56,-86.18 62.38,-79.04 62.38,-79.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"38.5\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">a & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"275\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"275\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"275\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M73.55,-66.19C101.64,-72.75 160.43,-84.1 210,-78 222.33,-76.48 235.7,-73.38 247.02,-70.3\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"253.78,-68.41 247.89,-73.33 250.54,-69.83 247.17,-70.78 247.04,-70.3 246.9,-69.82 250.27,-68.87 246.18,-67.27 253.78,-68.41 253.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"188.5\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"192\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"187.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M73.43,-56.6C97.04,-48.85 140.68,-34.52 167.63,-25.67\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"174.43,-23.44 168.77,-28.62 171.27,-25.01 167.94,-26.1 167.78,-25.62 167.63,-25.15 170.95,-24.06 166.8,-22.63 174.43,-23.44 174.43,-23.44\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-53.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M267.32,-82.99C266.37,-93.09 268.93,-102 275,-102 279.55,-102 282.13,-96.99 282.74,-90.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"282.68,-82.99 285.88,-89.97 282.71,-86.49 282.73,-89.99 282.73,-89.99 282.73,-89.99 282.71,-86.49 279.58,-90.01 282.68,-82.99 282.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"270.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M208.24,-26.28C219.74,-32.52 235.76,-41.23 249.11,-48.48\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"255.42,-51.91 247.77,-51.33 252.11,-50.68 249.03,-49.01 249.27,-48.57 249.51,-48.13 252.58,-49.8 250.77,-45.8 255.42,-51.91 255.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M185.27,-35.04C183.89,-44.86 186.14,-54 192,-54 196.4,-54 198.76,-48.86 199.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"198.73,-35.04 202.23,-41.87 198.91,-38.53 199.08,-42.03 199.08,-42.03 199.08,-42.03 198.91,-38.53 195.93,-42.18 198.73,-35.04 198.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">b & !c</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027d80> >"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"a.highlight_edges([2, 4, 5], 1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Note that these `highlight_` functions work for edges and states, and come with both singular (changing the color of single state or edge) and plural versions.\n",
|
|
"\n",
|
|
"They modify the automaton in place."
|
|
]
|
|
},
|
|
{
|
|
"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.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"305pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 305.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 301,-160.8 301,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"127\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-62C2.79,-62 17.15,-62 30.63,-62\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-62 30.94,-65.15 34.44,-62 30.94,-62 30.94,-62 30.94,-62 34.44,-62 30.94,-58.85 37.94,-62 37.94,-62\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff7f00\" stroke-width=\"2\" d=\"M49.62,-79.04C48.32,-88.86 50.45,-98 56,-98 60.17,-98 62.4,-92.86 62.71,-86.14\"/>\n",
|
|
"<polygon fill=\"#ff7f00\" stroke=\"#ff7f00\" stroke-width=\"2\" points=\"62.38,-79.04 65.85,-85.88 63.04,-82.51 63.21,-86.01 62.71,-86.03 62.21,-86.05 62.04,-82.56 59.56,-86.18 62.38,-79.04 62.38,-79.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"38.5\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">a & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"275\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"275\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"275\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M73.55,-66.19C101.64,-72.75 160.43,-84.1 210,-78 222.33,-76.48 235.7,-73.38 247.02,-70.3\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"253.78,-68.41 247.89,-73.33 250.54,-69.83 247.17,-70.78 247.04,-70.3 246.9,-69.82 250.27,-68.87 246.18,-67.27 253.78,-68.41 253.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"188.5\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"192\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"187.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M73.43,-56.6C97.04,-48.85 140.68,-34.52 167.63,-25.67\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"174.43,-23.44 168.77,-28.62 171.27,-25.01 167.94,-26.1 167.78,-25.62 167.63,-25.15 170.95,-24.06 166.8,-22.63 174.43,-23.44 174.43,-23.44\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-53.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M267.32,-82.99C266.37,-93.09 268.93,-102 275,-102 279.55,-102 282.13,-96.99 282.74,-90.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"282.68,-82.99 285.88,-89.97 282.71,-86.49 282.73,-89.99 282.73,-89.99 282.73,-89.99 282.71,-86.49 279.58,-90.01 282.68,-82.99 282.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"270.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M208.24,-26.28C219.74,-32.52 235.76,-41.23 249.11,-48.48\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"255.42,-51.91 247.77,-51.33 252.11,-50.68 249.03,-49.01 249.27,-48.57 249.51,-48.13 252.58,-49.8 250.77,-45.8 255.42,-51.91 255.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M185.27,-35.04C183.89,-44.86 186.14,-54 192,-54 196.4,-54 198.76,-48.86 199.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"198.73,-35.04 202.23,-41.87 198.91,-38.53 199.08,-42.03 199.08,-42.03 199.08,-42.03 198.91,-38.53 195.93,-42.18 198.73,-35.04 198.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">b & !c</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7efc2002e2a0> >"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"a.highlight_edge(6, 2).highlight_states((0, 1), 0)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The plural version can take a list or tuple of state numbers (as above) or of Booleans (as below). In the latter case the indices of the True values give the states to highlight."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"305pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 305.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 301,-160.8 301,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"127\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"56\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-62C2.79,-62 17.15,-62 30.63,-62\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-62 30.94,-65.15 34.44,-62 30.94,-62 30.94,-62 30.94,-62 34.44,-62 30.94,-58.85 37.94,-62 37.94,-62\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff7f00\" stroke-width=\"2\" d=\"M49.62,-79.04C48.32,-88.86 50.45,-98 56,-98 60.17,-98 62.4,-92.86 62.71,-86.14\"/>\n",
|
|
"<polygon fill=\"#ff7f00\" stroke=\"#ff7f00\" stroke-width=\"2\" points=\"62.38,-79.04 65.85,-85.88 63.04,-82.51 63.21,-86.01 62.71,-86.03 62.21,-86.05 62.04,-82.56 59.56,-86.18 62.38,-79.04 62.38,-79.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"38.5\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">a & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"275\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"275\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"275\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M73.55,-66.19C101.64,-72.75 160.43,-84.1 210,-78 222.33,-76.48 235.7,-73.38 247.02,-70.3\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"253.78,-68.41 247.89,-73.33 250.54,-69.83 247.17,-70.78 247.04,-70.3 246.9,-69.82 250.27,-68.87 246.18,-67.27 253.78,-68.41 253.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"188.5\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"192\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"187.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M73.43,-56.6C97.04,-48.85 140.68,-34.52 167.63,-25.67\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"174.43,-23.44 168.77,-28.62 171.27,-25.01 167.94,-26.1 167.78,-25.62 167.63,-25.15 170.95,-24.06 166.8,-22.63 174.43,-23.44 174.43,-23.44\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-53.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M267.32,-82.99C266.37,-93.09 268.93,-102 275,-102 279.55,-102 282.13,-96.99 282.74,-90.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"282.68,-82.99 285.88,-89.97 282.71,-86.49 282.73,-89.99 282.73,-89.99 282.73,-89.99 282.71,-86.49 279.58,-90.01 282.68,-82.99 282.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"270.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#ff4da0\" stroke-width=\"2\" d=\"M208.24,-26.28C219.74,-32.52 235.76,-41.23 249.11,-48.48\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"255.42,-51.91 247.77,-51.33 252.11,-50.68 249.03,-49.01 249.27,-48.57 249.51,-48.13 252.58,-49.8 250.77,-45.8 255.42,-51.91 255.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M185.27,-35.04C183.89,-44.86 186.14,-54 192,-54 196.4,-54 198.76,-48.86 199.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"198.73,-35.04 202.23,-41.87 198.91,-38.53 199.08,-42.03 199.08,-42.03 199.08,-42.03 198.91,-38.53 195.93,-42.18 198.73,-35.04 198.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">b & !c</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027d80> >"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"a.highlight_states([False, True, True], 5)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Saving to HOA 1.1\n",
|
|
"\n",
|
|
"When saving to HOA format, the highlighting is only output if version 1.1 of the format is selected, because the headers `spot.highlight.edges` and `spot.highlight.states` contain dots, which are disallowed in version 1. Compare these two outputs:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"HOA: v1\n",
|
|
"States: 3\n",
|
|
"Start: 2\n",
|
|
"AP: 3 \"a\" \"b\" \"c\"\n",
|
|
"acc-name: Buchi\n",
|
|
"Acceptance: 1 Inf(0)\n",
|
|
"properties: trans-labels explicit-labels state-acc deterministic\n",
|
|
"properties: stutter-invariant terminal\n",
|
|
"--BODY--\n",
|
|
"State: 0 {0}\n",
|
|
"[t] 0\n",
|
|
"State: 1\n",
|
|
"[2] 0\n",
|
|
"[1&!2] 1\n",
|
|
"State: 2\n",
|
|
"[2] 0\n",
|
|
"[!0&1&!2] 1\n",
|
|
"[0&!2] 2\n",
|
|
"--END--\n",
|
|
"\n",
|
|
"HOA: v1.1\n",
|
|
"States: 3\n",
|
|
"Start: 2\n",
|
|
"AP: 3 \"a\" \"b\" \"c\"\n",
|
|
"acc-name: Buchi\n",
|
|
"Acceptance: 1 Inf(0)\n",
|
|
"properties: trans-labels explicit-labels state-acc !complete\n",
|
|
"properties: deterministic stutter-invariant terminal\n",
|
|
"spot.highlight.states: 0 0 1 5 2 5\n",
|
|
"spot.highlight.edges: 2 1 4 1 5 1 6 2\n",
|
|
"--BODY--\n",
|
|
"State: 0 {0}\n",
|
|
"[t] 0\n",
|
|
"State: 1\n",
|
|
"[2] 0\n",
|
|
"[1&!2] 1\n",
|
|
"State: 2\n",
|
|
"[2] 0\n",
|
|
"[!0&1&!2] 1\n",
|
|
"[0&!2] 2\n",
|
|
"--END--\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(a.to_str('HOA', '1'))\n",
|
|
"print()\n",
|
|
"print(a.to_str('HOA', '1.1'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Highlighting a run\n",
|
|
"\n",
|
|
"One use of this highlighting is to highlight a run in an automaton.\n",
|
|
"\n",
|
|
"The following few command generate an automaton, then an accepting run on this automaton, and highlight that accepting run on the automaton. Note that a run knows the automaton from which it was generated, so calling `highlight()` will directly decorate that automaton."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"383pt\" height=\"276pt\"\n",
|
|
" viewBox=\"0.00 0.00 383.00 276.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 272)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-272 379,-272 379,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"167\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"188\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"166\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->4 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-105C2.79,-105 17.15,-105 30.63,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-105 30.94,-108.15 34.44,-105 30.94,-105 30.94,-105 30.94,-105 34.44,-105 30.94,-101.85 37.94,-105 37.94,-105\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-105C85.12,-105 99.52,-105 111.67,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-105 111.89,-108.15 115.39,-105 111.89,-105 111.89,-105 111.89,-105 115.39,-105 111.89,-101.85 118.89,-105 118.89,-105\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M129.97,-121.66C128.41,-131.62 130.75,-141 137,-141 141.69,-141 144.18,-135.73 144.47,-128.89\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"144.03,-121.66 147.6,-128.46 144.24,-125.16 144.46,-128.65 144.46,-128.65 144.46,-128.65 144.24,-125.16 141.31,-128.84 144.03,-121.66 144.03,-121.66\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"124\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"357\" cy=\"-129\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"357\" y=\"-125.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M145.57,-121.3C158.28,-146.48 186.57,-193.93 227,-213 271.64,-234.06 319.01,-181.01 341.94,-149.83\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"346.19,-143.91 344.66,-151.43 344.15,-146.75 342.11,-149.59 342.11,-149.59 342.11,-149.59 344.15,-146.75 339.55,-147.75 346.19,-143.91 346.19,-143.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"227\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M155.35,-105C173.3,-105 201.48,-105 221.65,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"228.69,-105 221.69,-108.15 225.19,-105 221.69,-105 221.69,-105 221.69,-105 225.19,-105 221.69,-101.85 228.69,-105 228.69,-105\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M151.68,-93.98C170.67,-78.68 205.11,-50.94 226.71,-33.54\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"232.43,-28.93 228.96,-35.77 229.71,-31.12 226.98,-33.32 226.98,-33.32 226.98,-33.32 229.71,-31.12 225.01,-30.87 232.43,-28.93 232.43,-28.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-146.41C351.28,-156.09 352.89,-165 357,-165 360.02,-165 361.69,-160.19 362.01,-153.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-146.41 365.15,-153.33 361.91,-149.91 362,-153.41 362,-153.41 362,-153.41 361.91,-149.91 358.85,-153.49 361.82,-146.41 361.82,-146.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-145.31C344.37,-162.96 346.93,-183 357,-183 365.73,-183 368.82,-167.93 366.25,-152.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-145.31 369.26,-151.46 365.43,-148.73 366.19,-152.14 366.19,-152.14 366.19,-152.14 365.43,-148.73 363.11,-152.82 364.67,-145.31 364.67,-145.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"351\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"349\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M242,-122.41C241.07,-132.09 242.73,-141 247,-141 250.13,-141 251.86,-136.19 252.19,-129.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-122.41 255.33,-129.33 252.09,-125.91 252.18,-129.41 252.18,-129.41 252.18,-129.41 252.09,-125.91 249.03,-129.49 252,-122.41 252,-122.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-121.31C233.9,-138.96 236.55,-159 247,-159 256.06,-159 259.26,-143.93 256.59,-128.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-121.31 259.6,-127.42 255.74,-124.72 256.53,-128.13 256.53,-128.13 256.53,-128.13 255.74,-124.72 253.46,-128.84 254.96,-121.31 254.96,-121.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"229\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"239\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M260.39,-30.73C279.68,-50.56 316.93,-88.85 338.81,-111.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"343.76,-116.42 336.62,-113.59 341.31,-113.91 338.87,-111.4 338.87,-111.4 338.87,-111.4 341.31,-113.91 341.13,-109.2 343.76,-116.42 343.76,-116.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"285\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M237.43,-33.54C234.73,-43.91 237.92,-54 247,-54 253.95,-54 257.45,-48.08 257.5,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.57,-33.54 260.6,-40.08 257.03,-37.01 257.48,-40.48 257.48,-40.48 257.48,-40.48 257.03,-37.01 254.35,-40.89 256.57,-33.54 256.57,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e360> >"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"b = spot.translate('X (F(Ga <-> b) & GF!b)'); b"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Prefix:\n",
|
|
" 4\n",
|
|
" | 1\n",
|
|
" 0\n",
|
|
" | !a & !b\n",
|
|
"Cycle:\n",
|
|
" 1\n",
|
|
" | !b\t{0}\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"r = b.accepting_run(); print(r)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"r.highlight(5) # the parameter is a color number"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The call of `highlight(5)` on the accepting run `r` modified the original automaton `b`:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"383pt\" height=\"276pt\"\n",
|
|
" viewBox=\"0.00 0.00 383.00 276.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 272)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-272 379,-272 379,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"167\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"188\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"166\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->4 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-105C2.79,-105 17.15,-105 30.63,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-105 30.94,-108.15 34.44,-105 30.94,-105 30.94,-105 30.94,-105 34.44,-105 30.94,-101.85 37.94,-105 37.94,-105\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M74.14,-105C85.12,-105 99.52,-105 111.67,-105\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"118.89,-105 111.89,-108.15 115.39,-105.5 111.89,-105.5 111.89,-105 111.89,-104.5 115.39,-104.5 111.89,-101.85 118.89,-105 118.89,-105\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M129.97,-121.66C128.41,-131.62 130.75,-141 137,-141 141.69,-141 144.18,-135.73 144.47,-128.89\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"144.03,-121.66 147.6,-128.46 144.24,-125.16 144.46,-128.65 144.46,-128.65 144.46,-128.65 144.24,-125.16 141.31,-128.84 144.03,-121.66 144.03,-121.66\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"124\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"357\" cy=\"-129\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"357\" y=\"-125.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M145.57,-121.3C158.28,-146.48 186.57,-193.93 227,-213 271.64,-234.06 319.01,-181.01 341.94,-149.83\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"346.19,-143.91 344.66,-151.43 344.55,-147.04 342.51,-149.88 342.11,-149.59 341.7,-149.3 343.74,-146.46 339.55,-147.75 346.19,-143.91 346.19,-143.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"227\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M155.35,-105C173.3,-105 201.48,-105 221.65,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"228.69,-105 221.69,-108.15 225.19,-105 221.69,-105 221.69,-105 221.69,-105 225.19,-105 221.69,-101.85 228.69,-105 228.69,-105\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M151.68,-93.98C170.67,-78.68 205.11,-50.94 226.71,-33.54\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"232.43,-28.93 228.96,-35.77 229.71,-31.12 226.98,-33.32 226.98,-33.32 226.98,-33.32 229.71,-31.12 225.01,-30.87 232.43,-28.93 232.43,-28.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-146.41C351.28,-156.09 352.89,-165 357,-165 360.02,-165 361.69,-160.19 362.01,-153.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-146.41 365.15,-153.33 361.91,-149.91 362,-153.41 362,-153.41 362,-153.41 361.91,-149.91 358.85,-153.49 361.82,-146.41 361.82,-146.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M349.33,-145.31C344.37,-162.96 346.93,-183 357,-183 365.73,-183 368.82,-167.93 366.25,-152.42\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"364.67,-145.31 369.26,-151.46 365.92,-148.62 366.68,-152.03 366.19,-152.14 365.7,-152.25 364.94,-148.83 363.11,-152.82 364.67,-145.31 364.67,-145.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"351\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"349\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M242,-122.41C241.07,-132.09 242.73,-141 247,-141 250.13,-141 251.86,-136.19 252.19,-129.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-122.41 255.33,-129.33 252.09,-125.91 252.18,-129.41 252.18,-129.41 252.18,-129.41 252.09,-125.91 249.03,-129.49 252,-122.41 252,-122.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-121.31C233.9,-138.96 236.55,-159 247,-159 256.06,-159 259.26,-143.93 256.59,-128.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-121.31 259.6,-127.42 255.74,-124.72 256.53,-128.13 256.53,-128.13 256.53,-128.13 255.74,-124.72 253.46,-128.84 254.96,-121.31 254.96,-121.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"229\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"239\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M260.39,-30.73C279.68,-50.56 316.93,-88.85 338.81,-111.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"343.76,-116.42 336.62,-113.59 341.31,-113.91 338.87,-111.4 338.87,-111.4 338.87,-111.4 341.31,-113.91 341.13,-109.2 343.76,-116.42 343.76,-116.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"285\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M237.43,-33.54C234.73,-43.91 237.92,-54 247,-54 253.95,-54 257.45,-48.08 257.5,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.57,-33.54 260.6,-40.08 257.03,-37.01 257.48,-40.48 257.48,-40.48 257.48,-40.48 257.03,-37.01 254.35,-40.89 256.57,-33.54 256.57,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e360> >"
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"b"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Highlighting an accepting run in an automaton with arbitrary acceptance\n",
|
|
"\n",
|
|
"This is not as easy as finding accepting runs in (generalized) Büchi automata, so let's have a few example for testing."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"631pt\" height=\"360pt\"\n",
|
|
" viewBox=\"0.00 0.00 631.29 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.641025641025641 0.641025641025641) rotate(0) translate(4 556)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-556 978,-556 978,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"345.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">(Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"370.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"386.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"428.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"444.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"486.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"502.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">)) | Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"544.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"560.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">)) & Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"608.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"624.5\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-192\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-188.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-192C2.79,-192 17.15,-192 30.63,-192\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-192 30.94,-195.15 34.44,-192 30.94,-192 30.94,-192 30.94,-192 34.44,-192 30.94,-188.85 37.94,-192 37.94,-192\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-209.04C48.32,-218.86 50.45,-228 56,-228 60.17,-228 62.4,-222.86 62.71,-216.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-209.04 65.85,-215.88 62.54,-212.53 62.71,-216.03 62.71,-216.03 62.71,-216.03 62.54,-212.53 59.56,-216.18 62.38,-209.04 62.38,-209.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"36\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"48\" y=\"-231.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"162\" cy=\"-368\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"162\" y=\"-364.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->9 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M66.05,-207.31C84.61,-238.73 127.04,-310.53 148.33,-346.56\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"152.05,-352.85 145.77,-348.43 149.84,-350.09 148.06,-347.08 148.49,-346.82 148.92,-346.57 150.7,-349.58 151.2,-345.22 152.05,-352.85 152.05,-352.85\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-318.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"100\" y=\"-303.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"272\" cy=\"-192\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"272\" y=\"-188.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->5 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M73.45,-187.45C90.45,-183 117.85,-176.53 142,-174 179,-170.13 221.73,-178.67 247.53,-185.26\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"254.35,-187.06 246.77,-188.32 250.96,-186.17 247.58,-185.28 247.58,-185.28 247.58,-185.28 250.96,-186.17 248.38,-182.23 254.35,-187.06 254.35,-187.06\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"144\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"146\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"162\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->5 -->\n",
|
|
"<g id=\"edge27\" class=\"edge\">\n",
|
|
"<title>9->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M172.21,-352.99C191.42,-321.69 235.81,-249.35 257.95,-213.27\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"261.82,-206.97 260.84,-214.58 259.98,-209.95 258.15,-212.93 258.15,-212.93 258.15,-212.93 259.98,-209.95 255.47,-211.29 261.82,-206.97 261.82,-206.97\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"200\" y=\"-309.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"738\" cy=\"-296\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"738\" y=\"-292.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->1 -->\n",
|
|
"<g id=\"edge28\" class=\"edge\">\n",
|
|
"<title>9->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M179.68,-363.21C200.76,-357.58 238.25,-349 271,-349 271,-349 271,-349 439,-349 542.68,-349 663.55,-317.52 713.53,-303.08\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"720.38,-301.08 714.55,-306.07 717.16,-302.54 713.8,-303.52 713.66,-303.04 713.52,-302.56 716.88,-301.58 712.78,-300.02 720.38,-301.08 720.38,-301.08\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"420\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"848\" cy=\"-362\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"848\" y=\"-358.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->8 -->\n",
|
|
"<g id=\"edge26\" class=\"edge\">\n",
|
|
"<title>9->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M168.13,-385.13C179.95,-420.64 212.64,-499 271,-499 271,-499 271,-499 739,-499 795.74,-499 827.27,-425.63 840.11,-386.28\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"842.29,-379.35 843.19,-386.97 841.23,-382.69 840.18,-386.03 840.18,-386.03 840.18,-386.03 841.23,-382.69 837.18,-385.08 842.29,-379.35 842.29,-379.35\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"490\" y=\"-517.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"498\" y=\"-502.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->0 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>5->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M253.9,-194.81C229.22,-198.53 182.14,-204.35 142,-202 121.42,-200.79 98.18,-197.96 81.21,-195.61\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"73.88,-194.58 81.25,-192.44 77.35,-195.07 80.81,-195.56 80.81,-195.56 80.81,-195.56 77.35,-195.07 80.37,-198.68 73.88,-194.58 73.88,-194.58\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"142\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"154\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"384\" cy=\"-192\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"384\" y=\"-188.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->6 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>5->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M290.19,-192C308.59,-192 337.95,-192 358.71,-192\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"365.93,-192 358.93,-195.15 362.43,-192 358.93,-192 358.93,-192 358.93,-192 362.43,-192 358.93,-188.85 365.93,-192 365.93,-192\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"308\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"320\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->9 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M725.33,-309.31C722.81,-312.41 720.23,-315.75 718,-319 708.77,-332.45 711.78,-339.71 700,-351 674.45,-375.47 664.38,-387 629,-387 271,-387 271,-387 271,-387 241.58,-387 208.33,-380.08 186.59,-374.59\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"179.68,-372.79 187.24,-371.51 183.19,-373.19 186.58,-374.07 186.45,-374.55 186.33,-375.04 182.94,-374.16 185.66,-377.6 179.68,-372.79 179.68,-372.79\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"420\" y=\"-405.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"430\" y=\"-390.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->8 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M755.89,-298.14C771.54,-300.78 794.91,-306.41 812,-318 820.63,-323.85 828.15,-332.47 833.98,-340.54\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"838.11,-346.55 831.55,-342.56 836.12,-343.66 834.14,-340.78 834.14,-340.78 834.14,-340.78 836.12,-343.66 836.74,-338.99 838.11,-346.55 838.11,-346.55\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"778\" y=\"-336.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"786\" y=\"-321.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->9 -->\n",
|
|
"<g id=\"edge25\" class=\"edge\">\n",
|
|
"<title>8->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M835.97,-375.69C818.02,-396.32 780.29,-433 739,-433 271,-433 271,-433 271,-433 234.59,-433 199.9,-405.55 180.06,-386.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"174.87,-381.15 182.05,-383.87 177.35,-383.62 179.83,-386.1 179.83,-386.1 179.83,-386.1 177.35,-383.62 177.6,-388.33 174.87,-381.15 174.87,-381.15\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"486\" y=\"-451.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"498\" y=\"-436.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"956\" cy=\"-284\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"956\" y=\"-280.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->7 -->\n",
|
|
"<g id=\"edge24\" class=\"edge\">\n",
|
|
"<title>8->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M862.86,-351.8C881.35,-338.2 914.2,-314.02 935.27,-298.52\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"941.14,-294.2 937.37,-300.89 938.32,-296.27 935.5,-298.35 935.5,-298.35 935.5,-298.35 938.32,-296.27 933.63,-295.81 941.14,-294.2 941.14,-294.2\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"884\" y=\"-337.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"628\" cy=\"-238\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"628\" y=\"-234.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->8 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M640.19,-251.32C655.99,-269.48 686.46,-302.13 718,-323 741.41,-338.49 749.19,-339.68 776,-348 791.29,-352.74 808.94,-356.23 822.83,-358.54\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"830.11,-359.7 822.7,-361.71 826.65,-359.15 823.2,-358.6 823.2,-358.6 823.2,-358.6 826.65,-359.15 823.69,-355.49 830.11,-359.7 830.11,-359.7\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"718\" y=\"-360.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"730\" y=\"-345.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M618.77,-253.54C616.17,-263.91 619.25,-274 628,-274 634.7,-274 638.08,-268.08 638.12,-260.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"637.23,-253.54 641.23,-260.1 637.67,-257.01 638.1,-260.49 638.1,-260.49 638.1,-260.49 637.67,-257.01 634.98,-260.88 637.23,-253.54 637.23,-253.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"612\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"620\" y=\"-277.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->6 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>2->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M610.84,-243.5C593.19,-249.19 563.96,-257.7 538,-261 509.78,-264.59 502.08,-265.56 474,-261 449.03,-256.95 440.21,-258.22 420,-243 410.15,-235.58 402.09,-224.55 396.2,-214.65\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"392.65,-208.35 398.83,-212.9 394.37,-211.4 396.09,-214.45 396.09,-214.45 396.09,-214.45 394.37,-211.4 393.35,-216 392.65,-208.35 392.65,-208.35\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"488\" y=\"-281.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"490\" y=\"-267.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"506\" y=\"-267.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->7 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>2->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M646.07,-240.41C700.2,-248.05 868.17,-271.75 930.98,-280.61\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"938.1,-281.62 930.73,-283.76 934.64,-281.13 931.17,-280.64 931.17,-280.64 931.17,-280.64 934.64,-281.13 931.61,-277.52 938.1,-281.62 938.1,-281.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"776\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->1 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>6->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M394.85,-177.42C409.52,-156.98 439.15,-120.24 474,-102 521.06,-77.36 545.04,-58.16 592,-83 669.1,-123.79 712.87,-226.01 729.36,-272.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"731.68,-279.11 726.41,-273.53 730.53,-275.81 729.38,-272.5 729.38,-272.5 729.38,-272.5 730.53,-275.81 732.36,-271.47 731.68,-279.11 731.68,-279.11\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"556\" y=\"-86.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->2 -->\n",
|
|
"<g id=\"edge21\" class=\"edge\">\n",
|
|
"<title>6->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M400.37,-199.6C406.37,-202.29 413.39,-205.12 420,-207 454.01,-216.66 555.92,-229.55 602.85,-235.17\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"609.89,-236.01 602.57,-238.31 606.42,-235.6 602.94,-235.18 602.94,-235.18 602.94,-235.18 606.42,-235.6 603.31,-232.05 609.89,-236.01 609.89,-236.01\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"490\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"474\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"490\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"506\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"522\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"506\" cy=\"-129\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"506\" y=\"-125.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->3 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>6->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M400.2,-184.02C421.18,-173 459.15,-153.07 483.17,-140.46\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"489.55,-137.11 484.81,-143.16 486.45,-138.74 483.35,-140.37 483.35,-140.37 483.35,-140.37 486.45,-138.74 481.88,-137.58 489.55,-137.11 489.55,-137.11\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"422\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"430\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->1 -->\n",
|
|
"<g id=\"edge22\" class=\"edge\">\n",
|
|
"<title>7->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M937.91,-284.95C899.78,-287.07 807.69,-292.18 763.48,-294.64\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"756.31,-295.04 763.13,-291.5 759.81,-294.84 763.3,-294.65 763.3,-294.65 763.3,-294.65 759.81,-294.84 763.48,-297.8 756.31,-295.04 756.31,-295.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"832\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->7 -->\n",
|
|
"<g id=\"edge23\" class=\"edge\">\n",
|
|
"<title>7->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M946.77,-299.54C944.17,-309.91 947.25,-320 956,-320 962.7,-320 966.08,-314.08 966.12,-306.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"965.23,-299.54 969.23,-306.1 965.67,-303.01 966.1,-306.49 966.1,-306.49 966.1,-306.49 965.67,-303.01 962.98,-306.88 965.23,-299.54 965.23,-299.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"938\" y=\"-337.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"940\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"956\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->2 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>3->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M522.37,-137.16C540.43,-147.23 570.62,-165.68 592,-187 600.73,-195.71 608.67,-206.87 614.78,-216.53\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"618.51,-222.61 612.17,-218.29 616.68,-219.63 614.85,-216.65 614.85,-216.65 614.85,-216.65 616.68,-219.63 617.54,-215 618.51,-222.61 618.51,-222.61\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"556\" y=\"-204.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"558\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"574\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M494.76,-143.42C490.83,-154.17 494.58,-165 506,-165 514.92,-165 519.16,-158.39 518.72,-150.37\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"517.24,-143.42 521.78,-149.61 517.97,-146.84 518.7,-150.26 518.7,-150.26 518.7,-150.26 517.97,-146.84 515.61,-150.92 517.24,-143.42 517.24,-143.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"486\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"490\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"506\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"628\" cy=\"-37\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"628\" y=\"-33.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->4 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>3->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M524.13,-127.37C542.71,-124.81 572.33,-118.31 592,-102 604.86,-91.34 613.69,-74.7 619.27,-60.92\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"621.89,-54.02 622.35,-61.68 620.65,-57.29 619.4,-60.56 619.4,-60.56 619.4,-60.56 620.65,-57.29 616.46,-59.44 621.89,-54.02 621.89,-54.02\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"556\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"566\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->0 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M611.55,-28.97C589.14,-18.09 546.02,0 507,0 161,0 161,0 161,0 86.03,0 64.82,-114.59 59.06,-166.72\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"58.31,-173.94 55.9,-166.65 58.67,-170.46 59.03,-166.97 59.03,-166.97 59.03,-166.97 58.67,-170.46 62.16,-167.3 58.31,-173.94 58.31,-173.94\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"312\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->5 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>4->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M609.84,-38C573.35,-40.66 485.95,-49.92 420,-80 367.68,-103.87 316.56,-149.22 290.61,-174.27\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"285.46,-179.29 288.27,-172.15 287.97,-176.85 290.47,-174.4 290.47,-174.4 290.47,-174.4 287.97,-176.85 292.67,-176.66 285.46,-179.29 285.46,-179.29\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"420\" y=\"-98.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"430\" y=\"-83.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->1 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>4->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M645.55,-32.02C661.52,-28.34 685.36,-25.95 700,-39 734.05,-69.35 737.39,-212.28 737.29,-270.86\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"737.26,-277.9 734.14,-270.89 737.28,-274.4 737.29,-270.9 737.29,-270.9 737.29,-270.9 737.28,-274.4 740.44,-270.91 737.26,-277.9 737.26,-277.9\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"664\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"674\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002edb0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"729pt\" height=\"215pt\"\n",
|
|
" viewBox=\"0.00 0.00 729.00 215.29\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.6802721088435374 0.6802721088435374) rotate(0) translate(4 312)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-312 1066,-312 1066,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"358.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"381.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
|
|
"<text text-anchor=\"start\" x=\"397.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">) & ((Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"449.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"465.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"511.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"527.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">) | Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"563.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"579.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">))) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"628.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"644.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">)|Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"675.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"691.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-175\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-171.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-175C2.79,-175 17.15,-175 30.63,-175\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-175 30.94,-178.15 34.44,-175 30.94,-175 30.94,-175 30.94,-175 34.44,-175 30.94,-171.85 37.94,-175 37.94,-175\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"284\" cy=\"-104\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"284\" y=\"-100.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->8 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M70.12,-163.74C86.62,-150.3 116.38,-128.34 146,-118 183.92,-104.77 231.07,-102.87 259,-103.13\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"266.01,-103.25 258.96,-106.28 262.5,-103.69 259,-103.63 259.01,-103.13 259.02,-102.63 262.52,-102.69 259.06,-99.98 266.01,-103.25 266.01,-103.25\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"148\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"156\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"164\" cy=\"-175\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"164\" y=\"-171.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->6 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.03,-175C91.47,-175 118.74,-175 138.49,-175\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"145.66,-175 138.66,-178.15 142.16,-175 138.66,-175 138.66,-175 138.66,-175 142.16,-175 138.66,-171.85 145.66,-175 145.66,-175\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"102\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"392\" cy=\"-67\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"392\" y=\"-63.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->3 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>8->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M301.56,-98.22C319.38,-92 347.83,-82.07 367.86,-75.08\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"374.55,-72.74 368.98,-78.02 371.41,-74.37 368.11,-75.52 367.94,-75.05 367.78,-74.58 371.08,-73.42 366.91,-72.07 374.55,-72.74 374.55,-72.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"320\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"322\" y=\"-93.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"338\" y=\"-93.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->8 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>6->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M175.8,-160.94C182.19,-153.36 190.81,-144.3 200,-138 210.1,-131.08 239.1,-119.83 259.98,-112.19\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"266.71,-109.74 261.2,-115.09 263.42,-110.94 260.13,-112.13 260.13,-112.13 260.13,-112.13 263.42,-110.94 259.05,-109.17 266.71,-109.74 266.71,-109.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"200\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"216\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"232\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"600\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"600\" y=\"-176.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->7 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>6->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M182.19,-176.18C205.15,-177.66 247.12,-180 283,-180 283,-180 283,-180 497,-180 523.5,-180 553.86,-180 574.53,-180\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"581.67,-180 574.67,-183.15 578.17,-180 574.67,-180 574.67,-180 574.67,-180 578.17,-180 574.67,-176.85 581.67,-180 581.67,-180\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"374\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"384\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"816\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"816\" y=\"-176.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"936\" cy=\"-131\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"936\" y=\"-127.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->9 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M834.06,-178.84C851.46,-177.09 878.83,-172.73 900,-162 906.38,-158.77 912.52,-154.08 917.82,-149.34\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"923.22,-144.22 920.3,-151.32 920.68,-146.63 918.13,-149.04 918.13,-149.04 918.13,-149.04 920.68,-146.63 915.97,-146.75 923.22,-144.22 923.22,-144.22\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"858\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"852\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"868\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"884\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->1 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>9->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M918.63,-125.81C901.07,-121.24 872.87,-116.89 852,-128 840.47,-134.14 832.05,-145.96 826.37,-156.78\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"823.18,-163.33 823.41,-155.66 824.71,-160.18 826.24,-157.04 826.24,-157.04 826.24,-157.04 824.71,-160.18 829.08,-158.42 823.18,-163.33 823.18,-163.33\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"860\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"868\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->3 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>9->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M923.8,-117.59C904.43,-96.02 862.39,-56 817,-56 495,-56 495,-56 495,-56 468.19,-56 437.65,-59.8 417.03,-62.94\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"409.9,-64.05 416.33,-59.86 413.36,-63.51 416.82,-62.97 416.82,-62.97 416.82,-62.97 413.36,-63.51 417.31,-66.08 409.9,-64.05 409.9,-64.05\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"636\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"638\" y=\"-59.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"654\" y=\"-59.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1044\" cy=\"-203\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1044\" y=\"-199.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->5 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>9->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M951.3,-140.71C969.71,-153.22 1001.83,-175.03 1022.75,-189.24\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1028.59,-193.21 1021.03,-191.89 1025.7,-191.25 1022.8,-189.28 1022.8,-189.28 1022.8,-189.28 1025.7,-191.25 1024.57,-186.67 1028.59,-193.21 1028.59,-193.21\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"972\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"982\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"708\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"708\" y=\"-176.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M726.03,-180C743.47,-180 770.74,-180 790.49,-180\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"797.66,-180 790.66,-183.15 794.16,-180 790.66,-180 790.66,-180 790.66,-180 794.16,-180 790.66,-176.85 797.66,-180 797.66,-180\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"744\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M383.02,-82.92C380.68,-93.15 383.67,-103 392,-103 398.38,-103 401.63,-97.23 401.75,-89.93\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"400.98,-82.92 404.87,-89.53 401.86,-86.34 402.24,-89.82 401.74,-89.87 401.24,-89.93 400.86,-86.45 398.61,-90.22 400.98,-82.92 400.98,-82.92\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"374\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"384\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"496\" cy=\"-123\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"496\" y=\"-119.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->4 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>3->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M408.05,-75.26C425.38,-84.78 453.97,-100.47 473.6,-111.25\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"479.89,-114.7 472.24,-114.1 476.82,-113.02 473.75,-111.33 473.75,-111.33 473.75,-111.33 476.82,-113.02 475.27,-108.57 479.89,-114.7 479.89,-114.7\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"428\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"428\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"444\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->0 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M489.06,-139.97C476.65,-171.96 444.77,-238 393,-238 163,-238 163,-238 163,-238 128.91,-238 120.52,-227.66 92,-209 85.41,-204.69 78.99,-199.02 73.48,-193.55\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"68.31,-188.21 75.44,-191.05 70.74,-190.72 73.18,-193.24 73.18,-193.24 73.18,-193.24 70.74,-190.72 70.91,-195.43 68.31,-188.21 68.31,-188.21\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"266\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"268\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"284\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->9 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>4->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.08,-121.88C519.78,-121.55 526.16,-121.21 532,-121 674.15,-115.83 709.76,-117.11 852,-116 873.33,-115.83 879.1,-111.71 900,-116 904.42,-116.91 908.97,-118.4 913.27,-120.09\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"919.76,-122.88 912.08,-123.01 916.54,-121.5 913.33,-120.12 913.33,-120.12 913.33,-120.12 916.54,-121.5 914.57,-117.22 919.76,-122.88 919.76,-122.88\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"690\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"700\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->7 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>4->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-123.1C528.41,-123.9 548.8,-126.78 564,-136 573.04,-141.49 580.7,-150.21 586.53,-158.45\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"590.62,-164.6 584.12,-160.52 588.68,-161.68 586.74,-158.77 586.74,-158.77 586.74,-158.77 588.68,-161.68 589.36,-157.03 590.62,-164.6 590.62,-164.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"532\" y=\"-154.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"540\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->2 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>7->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M618.03,-180C635.47,-180 662.74,-180 682.49,-180\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"689.66,-180 682.66,-183.15 686.16,-180 682.66,-180 682.66,-180 682.66,-180 686.16,-180 682.66,-176.85 689.66,-180 689.66,-180\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"646\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->5 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>7->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M609.61,-195.27C625.34,-220.94 661.37,-270 707,-270 707,-270 707,-270 937,-270 973.42,-270 1007.5,-241.39 1026.75,-221.57\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1031.78,-216.24 1029.27,-223.49 1029.38,-218.78 1026.97,-221.33 1026.97,-221.33 1026.97,-221.33 1029.38,-218.78 1024.68,-219.17 1031.78,-216.24 1031.78,-216.24\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"798\" y=\"-273.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->1 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>5->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1026.51,-207.37C992.59,-215.52 913.08,-230.29 852,-208 845.67,-205.69 839.61,-201.73 834.37,-197.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"829.03,-192.89 836.38,-195.09 831.67,-195.18 834.32,-197.47 834.32,-197.47 834.32,-197.47 831.67,-195.18 832.26,-199.86 829.03,-192.89 829.03,-192.89\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"918\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->3 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>5->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1042,-184.99C1038.16,-135.3 1020.1,0 937,0 495,0 495,0 495,0 459.75,0 427.24,-28.29 408.8,-48.11\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"403.98,-53.44 406.33,-46.14 406.32,-50.84 408.67,-48.25 408.67,-48.25 408.67,-48.25 406.32,-50.84 411.01,-50.36 403.98,-53.44 403.98,-53.44\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"690\" y=\"-17.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"692\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"708\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027de0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Title: i G F a G F b Pages: 1 -->\n",
|
|
"<svg width=\"438pt\" height=\"279pt\"\n",
|
|
" viewBox=\"0.00 0.00 438.00 278.92\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 274.92)\">\n",
|
|
"<title>i G F a G F b</title>\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-274.92 434,-274.92 434,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"100.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\">(Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"127.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"143.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"185.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"201.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\">)) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"247.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"263.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"305.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"321.5\" y=\"-256.72\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
|
|
"<text text-anchor=\"start\" x=\"187.5\" y=\"-242.72\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 2]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M62,-69.92C62,-69.92 50,-69.92 50,-69.92 44,-69.92 38,-63.92 38,-57.92 38,-57.92 38,-43.92 38,-43.92 38,-37.92 44,-31.92 50,-31.92 50,-31.92 62,-31.92 62,-31.92 68,-31.92 74,-37.92 74,-43.92 74,-43.92 74,-57.92 74,-57.92 74,-63.92 68,-69.92 62,-69.92\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"51.5\" y=\"-54.72\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"48\" y=\"-39.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50.92C2.79,-50.92 17.15,-50.92 30.63,-50.92\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50.92 30.94,-54.07 34.44,-50.92 30.94,-50.92 30.94,-50.92 30.94,-50.92 34.44,-50.92 30.94,-47.77 37.94,-50.92 37.94,-50.92\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M49.45,-69.95C48.54,-79.45 50.73,-87.92 56,-87.92 59.87,-87.92 62.08,-83.35 62.62,-77.16\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"62.55,-69.95 65.77,-76.92 62.58,-73.45 62.62,-76.95 62.62,-76.95 62.62,-76.95 62.58,-73.45 59.47,-76.98 62.55,-69.95 62.55,-69.95\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"38\" y=\"-91.72\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M174,-166.92C174,-166.92 162,-166.92 162,-166.92 156,-166.92 150,-160.92 150,-154.92 150,-154.92 150,-140.92 150,-140.92 150,-134.92 156,-128.92 162,-128.92 162,-128.92 174,-128.92 174,-128.92 180,-128.92 186,-134.92 186,-140.92 186,-140.92 186,-154.92 186,-154.92 186,-160.92 180,-166.92 174,-166.92\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"163.5\" y=\"-151.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"160\" y=\"-136.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M61.16,-69.95C65.84,-86.97 75.11,-111.4 92,-125.92 106.19,-138.11 126.85,-143.55 142.9,-145.98\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"149.91,-146.89 142.56,-149.11 146.37,-146.93 142.9,-146.48 142.96,-145.98 143.03,-145.49 146.5,-145.94 143.37,-142.86 149.91,-146.89 149.91,-146.89\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-146.72\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M418,-101.92C418,-101.92 394,-101.92 394,-101.92 388,-101.92 382,-95.92 382,-89.92 382,-89.92 382,-77.92 382,-77.92 382,-71.92 388,-65.92 394,-65.92 394,-65.92 418,-65.92 418,-65.92 424,-65.92 430,-71.92 430,-77.92 430,-77.92 430,-89.92 430,-89.92 430,-95.92 424,-101.92 418,-101.92\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"401.5\" y=\"-87.72\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390\" y=\"-73.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"406\" y=\"-73.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.1,-42.82C79.69,-40.51 86,-38.27 92,-36.92 157.98,-22.06 176.85,-21.92 244,-29.92 298.48,-36.41 313.3,-37.94 364,-58.92 367.85,-60.51 371.76,-62.43 375.56,-64.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"381.81,-68.07 374.17,-67.34 378.77,-66.34 375.74,-64.6 375.74,-64.6 375.74,-64.6 378.77,-66.34 377.3,-61.86 381.81,-68.07 381.81,-68.07\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" y=\"-33.72\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M298,-101.92C298,-101.92 274,-101.92 274,-101.92 268,-101.92 262,-95.92 262,-89.92 262,-89.92 262,-77.92 262,-77.92 262,-71.92 268,-65.92 274,-65.92 274,-65.92 298,-65.92 298,-65.92 304,-65.92 310,-71.92 310,-77.92 310,-77.92 310,-89.92 310,-89.92 310,-95.92 304,-101.92 298,-101.92\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"281.5\" y=\"-87.72\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"<text text-anchor=\"start\" x=\"270\" y=\"-73.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"286\" y=\"-73.72\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-53.4C112.55,-58.96 205.99,-72.48 254.56,-79.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"261.67,-80.54 254.29,-82.65 258.2,-80.04 254.74,-79.54 254.74,-79.54 254.74,-79.54 258.2,-80.04 255.19,-76.42 261.67,-80.54 261.67,-80.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"152\" y=\"-72.72\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M153.48,-128.82C147.51,-121.32 140.02,-113.06 132,-106.92 116.38,-94.95 107.92,-99.49 92,-87.92 86.96,-84.26 82.05,-79.81 77.57,-75.28\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"72.53,-69.98 79.63,-72.89 74.94,-72.52 77.35,-75.06 77.35,-75.06 77.35,-75.06 74.94,-72.52 75.07,-77.23 72.53,-69.98 72.53,-69.98\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-110.72\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M157.81,-166.95C156.4,-176.45 159.8,-184.92 168,-184.92 174.02,-184.92 177.46,-180.35 178.3,-174.16\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"178.19,-166.95 181.44,-173.91 178.74,-170.45 178.79,-173.95 178.29,-173.95 177.79,-173.96 177.74,-170.46 175.14,-174 178.19,-166.95 178.19,-166.95\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"148\" y=\"-188.72\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M179.4,-167.29C185.34,-176.37 193.68,-186.38 204,-191.92 266.66,-225.54 307.4,-234.96 364,-191.92 389.72,-172.36 399.3,-134.65 402.88,-109.38\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"403.77,-102.29 406.02,-109.62 403.33,-105.76 402.9,-109.23 402.9,-109.23 402.9,-109.23 403.33,-105.76 399.77,-108.84 403.77,-102.29 403.77,-102.29\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"268\" y=\"-223.72\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M186.09,-145.46C201.98,-142.61 225.86,-136.83 244,-125.92 252.05,-121.08 259.62,-114.28 266.01,-107.55\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"271.09,-101.97 268.71,-109.27 268.73,-104.56 266.38,-107.15 266.38,-107.15 266.38,-107.15 268.73,-104.56 264.05,-105.03 271.09,-101.97 271.09,-101.97\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"208\" y=\"-144.72\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->0 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>3->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M391.53,-65.85C384.24,-57.2 374.58,-47.35 364,-40.92 316.54,-12.04 299,-13.77 244,-5.92 176.66,3.7 154.44,3.09 92,-23.92 87.84,-25.72 83.74,-28.12 79.88,-30.76\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"74.07,-35.04 77.84,-28.35 76.89,-32.97 79.71,-30.89 79.71,-30.89 79.71,-30.89 76.89,-32.97 81.57,-33.43 74.07,-35.04 74.07,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" y=\"-9.72\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->1 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>3->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M381.98,-101.48C363.44,-114.86 336.23,-132.81 310,-143.92 282.21,-155.69 273.97,-156.34 244,-159.92 226.35,-162.03 221.54,-162.84 204,-159.92 200.37,-159.31 196.61,-158.38 192.97,-157.29\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"186.15,-155.06 193.79,-154.24 189.48,-156.15 192.81,-157.24 192.81,-157.24 192.81,-157.24 189.48,-156.15 191.83,-160.23 186.15,-155.06 186.15,-155.06\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"266\" y=\"-160.72\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M395.15,-102.07C393.48,-111.46 397.09,-119.92 406,-119.92 412.54,-119.92 416.23,-115.35 417.07,-109.21\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"416.85,-102.07 420.21,-108.97 416.96,-105.57 417.06,-109.07 417.06,-109.07 417.06,-109.07 416.96,-105.57 413.91,-109.16 416.85,-102.07 416.85,-102.07\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"388\" y=\"-123.72\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->2 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>3->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M381.62,-83.92C363.13,-83.92 337.18,-83.92 317.13,-83.92\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"310.03,-83.92 317.03,-80.77 313.53,-83.92 317.03,-83.92 317.03,-83.92 317.03,-83.92 313.53,-83.92 317.03,-87.07 310.03,-83.92 310.03,-83.92\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"330\" y=\"-87.72\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M261.74,-71.86C242.14,-62.42 213.04,-50.05 186,-44.92 150.11,-38.1 107.66,-42.39 81.53,-46.41\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"74.29,-47.58 80.7,-43.36 77.75,-47.02 81.2,-46.46 81.2,-46.46 81.2,-46.46 77.75,-47.02 81.7,-49.57 74.29,-47.58 74.29,-47.58\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"150\" y=\"-48.72\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M261.87,-86.81C244.81,-89.78 221.59,-95.63 204,-106.92 197.37,-111.17 191.31,-117.07 186.17,-123.06\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"181.71,-128.55 183.68,-121.13 183.92,-125.83 186.12,-123.11 186.12,-123.11 186.12,-123.11 183.92,-125.83 188.57,-125.1 181.71,-128.55 181.71,-128.55\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"204\" y=\"-110.72\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->3 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>2->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M310.29,-71.72C315.94,-69.32 322.07,-67.16 328,-65.92 343.66,-62.63 348.34,-62.63 364,-65.92 367.71,-66.7 371.49,-67.83 375.19,-69.16\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"381.71,-71.72 374.04,-72.09 378.45,-70.44 375.19,-69.16 375.19,-69.16 375.19,-69.16 378.45,-70.44 376.34,-66.23 381.71,-71.72 381.71,-71.72\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"328\" y=\"-69.72\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M275.15,-102.07C273.48,-111.46 277.09,-119.92 286,-119.92 292.54,-119.92 296.23,-115.35 297.07,-109.21\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"296.85,-102.07 300.21,-108.97 296.96,-105.57 297.06,-109.07 297.06,-109.07 297.06,-109.07 296.96,-105.57 293.91,-109.16 296.85,-102.07 296.85,-102.07\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"270\" y=\"-123.72\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e570> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def show_accrun(string):\n",
|
|
" aut = spot.automaton(string)\n",
|
|
" run = aut.accepting_run()\n",
|
|
" run.highlight(5)\n",
|
|
" display(aut)\n",
|
|
"\n",
|
|
"show_accrun(\"\"\"\n",
|
|
"HOA: v1 States: 10 Start: 0 AP: 2 \"a\" \"b\" Acceptance: 5 (Inf(1) | (Fin(0)\n",
|
|
"& Inf(4)) | Fin(2)) & Fin(3) properties: trans-labels explicit-labels\n",
|
|
"trans-acc --BODY-- State: 0 [0&1] 9 {3} [!0&!1] 0 {3} [0&!1] 5 {0 1} State:\n",
|
|
"1 [0&!1] 9 {4} [0&1] 8 {3} State: 2 [!0&!1] 8 {0} [!0&1] 6 {2 4} [0&1]\n",
|
|
"2 {3} [!0&1] 7 State: 3 [0&!1] 2 {0 4} [!0&!1] 3 {1 3} [!0&1] 4 {0} State: 4\n",
|
|
"[0&!1] 5 {2} [0&1] 0 [!0&1] 1 {0} State: 5 [!0&!1] 0 {3} [!0&!1] 6 {3} State: 6\n",
|
|
"[0&1] 3 {2} [!0&1] 1 [0&1] 2 {0 1 3 4} State: 7 [0&1] 1 [!0&1] 7 {0 2}\n",
|
|
"State: 8 [!0&1] 7 [!0&!1] 9 {0} State: 9 [0&1] 8 {3} [0&!1] 5 [0&!1]\n",
|
|
"1 --END--\n",
|
|
"\"\"\")\n",
|
|
"show_accrun(\"\"\"\n",
|
|
"HOA: v1 States: 10 Start: 0 AP: 2 \"a\" \"b\" Acceptance: 6 Fin(5) &\n",
|
|
"((Fin(1) & (Inf(3) | Inf(4))) | Fin(0) | Fin(2)) properties: trans-labels\n",
|
|
"explicit-labels trans-acc --BODY-- State: 0 [0&1] 8 {0} [0&!1] 6 {2}\n",
|
|
"State: 1 [!0&1] 9 {0 4 5} State: 2 [!0&1] 1 State: 3 [0&!1] 3 {2}\n",
|
|
"[0&1] 4 {3 5} State: 4 [0&1] 7 {5} [0&!1] 9 {2} [!0&1] 0 {0 2} State:\n",
|
|
"5 [!0&1] 1 [!0&1] 3 {2 3} State: 6 [0&!1] 8 {1 2 5} [!0&1] 7 {3} State:\n",
|
|
"7 [0&1] 2 {0} [!0&1] 5 State: 8 [0&!1] 3 {4 5} State: 9 [!0&1] 3 {1 2}\n",
|
|
"[0&1] 1 {4} [0&!1] 5 {2} --END--\"\"\")\n",
|
|
"show_accrun(\"\"\"\n",
|
|
"HOA: v1 States: 4 properties: implicit-labels trans-labels no-univ-branch\n",
|
|
"deterministic complete tool: \"ltl2dstar\" \"0.5.4\" name: \"i G F a G F b\"\n",
|
|
"comment: \"Union{Safra[NBA=2],Safra[NBA=2]}\" acc-name: Rabin 2 Acceptance:\n",
|
|
"4 (Fin(0)&Inf(1))|(Fin(2)&Inf(3)) Start: 0 AP: 2 \"a\" \"b\" --BODY-- State:\n",
|
|
"0 {0} 1 0 3 2 State: 1 {1} 1 0 3 2 State: 2 {0 3} 1 0 3 2 State: 3 {1 3}\n",
|
|
"1 0 3 2 --END--\n",
|
|
"\"\"\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Highlighting from a product\n",
|
|
"\n",
|
|
"Pretty often, accepting runs are found in a product but we want to display them on one of the original automata. This can be done by projecting the runs on those automata before displaying them."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"170pt\" height=\"125pt\"\n",
|
|
" viewBox=\"0.00 0.00 170.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 166,-120.8 166,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"59.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->1 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"38\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"140\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"140\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"140\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.39,-22C84.9,-22 98.55,-22 110.6,-22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"117.85,-22 110.85,-25.15 114.35,-22 110.85,-22 110.85,-22 110.85,-22 114.35,-22 110.85,-18.85 117.85,-22 117.85,-22\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M131.99,-42.58C130.89,-52.84 133.55,-62 140,-62 144.83,-62 147.54,-56.85 148.13,-49.95\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"148.01,-42.58 151.27,-49.53 148.06,-46.08 148.12,-49.58 148.12,-49.58 148.12,-49.58 148.06,-46.08 144.97,-49.63 148.01,-42.58 148.01,-42.58\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"140\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e480> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"82pt\" height=\"161pt\"\n",
|
|
" viewBox=\"0.00 0.00 82.00 161.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 157)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-157 78,-157 78,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"16.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"37.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"53.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"15.5\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-35.78C52.21,-45.31 53.29,-54 56,-54 57.99,-54 59.1,-49.32 59.33,-43.05\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-35.78 62.48,-42.74 59.28,-39.28 59.33,-42.78 59.33,-42.78 59.33,-42.78 59.28,-39.28 56.18,-42.82 59.24,-35.78 59.24,-35.78\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"50.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M50.68,-35.42C47.65,-52.79 49.43,-72 56,-72 61.7,-72 63.79,-57.55 62.27,-42.39\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"61.32,-35.42 65.39,-41.93 61.79,-38.89 62.26,-42.36 62.26,-42.36 62.26,-42.36 61.79,-38.89 59.14,-42.78 61.32,-35.42 61.32,-35.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"52.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"48\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e6c0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"left = spot.translate('a U b')\n",
|
|
"right = spot.translate('GFa')\n",
|
|
"display(left, right)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"212pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 211.59 164.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.62)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.62 207.59,-160.62 207.59,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"81.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"102.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"118.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"80.3\" y=\"-128.42\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"61.4\" cy=\"-21.62\" rx=\"23.3\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"51.4\" y=\"-17.92\" font-family=\"Lato\" font-size=\"14.00\">1,0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.17,-21.62C2.85,-21.62 16.69,-21.62 30.57,-21.62\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.76,-21.62 30.76,-24.77 34.26,-21.62 30.76,-21.62 30.76,-21.62 30.76,-21.62 34.26,-21.62 30.76,-18.47 37.76,-21.62 37.76,-21.62\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M54.26,-39.03C52.92,-48.7 55.3,-57.62 61.4,-57.62 65.87,-57.62 68.35,-52.81 68.82,-46.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"68.54,-39.03 71.95,-45.9 68.67,-42.52 68.8,-46.02 68.8,-46.02 68.8,-46.02 68.67,-42.52 65.65,-46.14 68.54,-39.03 68.54,-39.03\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"43.4\" y=\"-61.42\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"180.19\" cy=\"-21.62\" rx=\"23.3\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"170.19\" y=\"-17.92\" font-family=\"Lato\" font-size=\"14.00\">0,0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M84.92,-21.62C103.34,-21.62 129.53,-21.62 149.64,-21.62\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"156.74,-21.62 149.74,-24.77 153.24,-21.62 149.74,-21.62 149.74,-21.62 149.74,-21.62 153.24,-21.62 149.74,-18.47 156.74,-21.62 156.74,-21.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"102.8\" y=\"-25.42\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M80.69,-10.93C87.41,-7.58 95.23,-4.31 102.8,-2.62 118.41,0.87 123.18,0.87 138.8,-2.62 144,-3.78 149.32,-5.69 154.32,-7.86\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"160.9,-10.93 153.22,-10.82 157.73,-9.45 154.56,-7.97 154.56,-7.97 154.56,-7.97 157.73,-9.45 155.89,-5.11 160.9,-10.93 160.9,-10.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"104.8\" y=\"-6.42\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M174.98,-39.4C174.09,-48.93 175.83,-57.62 180.19,-57.62 183.4,-57.62 185.18,-52.93 185.56,-46.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"185.41,-39.4 188.7,-46.33 185.48,-42.9 185.55,-46.4 185.55,-46.4 185.55,-46.4 185.48,-42.9 182.4,-46.46 185.41,-39.4 185.41,-39.4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174.69\" y=\"-61.42\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M171.79,-38.48C166.69,-55.99 169.49,-75.62 180.19,-75.62 189.48,-75.62 192.82,-60.86 190.21,-45.52\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"188.6,-38.48 193.23,-44.6 189.38,-41.89 190.16,-45.3 190.16,-45.3 190.16,-45.3 189.38,-41.89 187.09,-46.01 188.6,-38.48 188.6,-38.48\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"176.69\" y=\"-94.42\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"172.19\" y=\"-79.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002ec60> >"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"prod = spot.product(left, right); prod"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Prefix:\n",
|
|
" 1,0\n",
|
|
" | !a & b\n",
|
|
"Cycle:\n",
|
|
" 0,0\n",
|
|
" | a\t{0}\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"run = prod.accepting_run(); print(run)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"run.highlight(5)\n",
|
|
"# Note that by default project() needs to know on which side you project, but it cannot \n",
|
|
"# guess it. The left-side is assumed unless you pass True as a second argument.\n",
|
|
"run.project(left).highlight(5)\n",
|
|
"run.project(right, True).highlight(5)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"212pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 211.59 164.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.62)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.62 207.59,-160.62 207.59,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"81.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"102.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"118.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"80.3\" y=\"-128.42\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"61.4\" cy=\"-21.62\" rx=\"23.3\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"51.4\" y=\"-17.92\" font-family=\"Lato\" font-size=\"14.00\">1,0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.17,-21.62C2.85,-21.62 16.69,-21.62 30.57,-21.62\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.76,-21.62 30.76,-24.77 34.26,-21.62 30.76,-21.62 30.76,-21.62 30.76,-21.62 34.26,-21.62 30.76,-18.47 37.76,-21.62 37.76,-21.62\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M54.26,-39.03C52.92,-48.7 55.3,-57.62 61.4,-57.62 65.87,-57.62 68.35,-52.81 68.82,-46.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"68.54,-39.03 71.95,-45.9 68.67,-42.52 68.8,-46.02 68.8,-46.02 68.8,-46.02 68.67,-42.52 65.65,-46.14 68.54,-39.03 68.54,-39.03\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"43.4\" y=\"-61.42\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"180.19\" cy=\"-21.62\" rx=\"23.3\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"170.19\" y=\"-17.92\" font-family=\"Lato\" font-size=\"14.00\">0,0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M84.92,-21.62C103.34,-21.62 129.53,-21.62 149.64,-21.62\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"156.74,-21.62 149.74,-24.77 153.24,-22.12 149.74,-22.12 149.74,-21.62 149.74,-21.12 153.24,-21.12 149.74,-18.47 156.74,-21.62 156.74,-21.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"102.8\" y=\"-25.42\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M80.69,-10.93C87.41,-7.58 95.23,-4.31 102.8,-2.62 118.41,0.87 123.18,0.87 138.8,-2.62 144,-3.78 149.32,-5.69 154.32,-7.86\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"160.9,-10.93 153.22,-10.82 157.73,-9.45 154.56,-7.97 154.56,-7.97 154.56,-7.97 157.73,-9.45 155.89,-5.11 160.9,-10.93 160.9,-10.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"104.8\" y=\"-6.42\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M174.98,-39.4C174.09,-48.93 175.83,-57.62 180.19,-57.62 183.4,-57.62 185.18,-52.93 185.56,-46.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"185.41,-39.4 188.7,-46.33 185.48,-42.9 185.55,-46.4 185.55,-46.4 185.55,-46.4 185.48,-42.9 182.4,-46.46 185.41,-39.4 185.41,-39.4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174.69\" y=\"-61.42\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M171.79,-38.48C166.69,-55.99 169.49,-75.62 180.19,-75.62 189.48,-75.62 192.82,-60.86 190.21,-45.52\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"188.6,-38.48 193.23,-44.6 189.87,-41.78 190.65,-45.19 190.16,-45.3 189.68,-45.41 188.89,-42 187.09,-46.01 188.6,-38.48 188.6,-38.48\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"176.69\" y=\"-94.42\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"172.19\" y=\"-79.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002ec60> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"170pt\" height=\"125pt\"\n",
|
|
" viewBox=\"0.00 0.00 170.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 166,-120.8 166,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"59.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->1 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"38\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"140\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"140\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"140\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M74.39,-22C84.9,-22 98.55,-22 110.6,-22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"117.85,-22 110.85,-25.15 114.35,-22.5 110.85,-22.5 110.85,-22 110.85,-21.5 114.35,-21.5 110.85,-18.85 117.85,-22 117.85,-22\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M131.99,-42.58C130.89,-52.84 133.55,-62 140,-62 144.83,-62 147.54,-56.85 148.13,-49.95\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"148.01,-42.58 151.27,-49.53 148.56,-46.07 148.62,-49.57 148.12,-49.58 147.62,-49.59 147.56,-46.09 144.97,-49.63 148.01,-42.58 148.01,-42.58\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"140\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e480> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"82pt\" height=\"161pt\"\n",
|
|
" viewBox=\"0.00 0.00 82.00 161.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 157)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-157 78,-157 78,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"16.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"37.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"53.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"15.5\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M52.76,-35.78C52.21,-45.31 53.29,-54 56,-54 57.99,-54 59.1,-49.32 59.33,-43.05\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"59.24,-35.78 62.48,-42.74 59.78,-39.28 59.83,-42.77 59.33,-42.78 58.83,-42.79 58.78,-39.29 56.18,-42.82 59.24,-35.78 59.24,-35.78\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"50.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M50.68,-35.42C47.65,-52.79 49.43,-72 56,-72 61.7,-72 63.79,-57.55 62.27,-42.39\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"61.32,-35.42 65.39,-41.93 62.29,-38.82 62.76,-42.29 62.26,-42.36 61.77,-42.42 61.29,-38.96 59.14,-42.78 61.32,-35.42 61.32,-35.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"52.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"48\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e6c0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display(prod, left, right)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The projection also works for products generated on-the-fly, but the on-the-fly product itself cannot be highlighted (it does not store states or transitions). "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Prefix:\n",
|
|
" 0 * 3\n",
|
|
" | a & !b\n",
|
|
" 1 * 2\n",
|
|
" | a\t{0}\n",
|
|
" 1 * 1\n",
|
|
" | a\t{0}\n",
|
|
" 1 * 0\n",
|
|
" | a & b\t{0}\n",
|
|
"Cycle:\n",
|
|
" 1 * 4\n",
|
|
" | a\t{0,1}\n",
|
|
"\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.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"600pt\" height=\"262pt\"\n",
|
|
" viewBox=\"0.00 0.00 600.00 262.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 258)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-258 596,-258 596,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"250.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"271.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"287.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">)&Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"321.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"337.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"253.5\" y=\"-225.8\" font-family=\"Lato\" font-size=\"14.00\">[gen. Büchi 2]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M73,-184C73,-184 50,-184 50,-184 44,-184 38,-178 38,-172 38,-172 38,-160 38,-160 38,-154 44,-148 50,-148 50,-148 73,-148 73,-148 79,-148 85,-154 85,-160 85,-160 85,-172 85,-172 85,-178 79,-184 73,-184\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"46\" y=\"-162.3\" font-family=\"Lato\" font-size=\"14.00\">0 * 3</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.17,-166C2.85,-166 16.72,-166 30.62,-166\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.83,-166 30.83,-169.15 34.33,-166 30.83,-166 30.83,-166 30.83,-166 34.33,-166 30.83,-162.85 37.83,-166 37.83,-166\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M192,-211C192,-211 169,-211 169,-211 163,-211 157,-205 157,-199 157,-199 157,-187 157,-187 157,-181 163,-175 169,-175 169,-175 192,-175 192,-175 198,-175 204,-181 204,-187 204,-187 204,-199 204,-199 204,-205 198,-211 192,-211\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"165\" y=\"-189.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M85.06,-171.21C103.47,-175.46 129.64,-181.49 149.77,-186.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"156.61,-187.72 149.08,-189.21 153.2,-186.93 149.79,-186.14 149.79,-186.14 149.79,-186.14 153.2,-186.93 150.5,-183.07 156.61,-187.72 156.61,-187.72\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"103\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M192,-157C192,-157 169,-157 169,-157 163,-157 157,-151 157,-145 157,-145 157,-133 157,-133 157,-127 163,-121 169,-121 169,-121 192,-121 192,-121 198,-121 204,-127 204,-133 204,-133 204,-145 204,-145 204,-151 198,-157 192,-157\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"165\" y=\"-135.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M85.18,-160.3C90.98,-158.87 97.22,-157.36 103,-156 118.34,-152.4 135.46,-148.58 149.6,-145.47\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"156.71,-143.92 150.54,-148.49 153.29,-144.67 149.87,-145.42 149.87,-145.42 149.87,-145.42 153.29,-144.67 149.19,-142.34 156.71,-143.92 156.71,-143.92\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"115\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M291,-200C291,-200 268,-200 268,-200 262,-200 256,-194 256,-188 256,-188 256,-176 256,-176 256,-170 262,-164 268,-164 268,-164 291,-164 291,-164 297,-164 303,-170 303,-176 303,-176 303,-188 303,-188 303,-194 297,-200 291,-200\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"264\" y=\"-178.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M204.49,-190.39C217.66,-188.9 234.33,-187.01 248.52,-185.4\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"255.68,-184.59 249.08,-188.51 252.2,-184.98 248.72,-185.38 248.72,-185.38 248.72,-185.38 252.2,-184.98 248.37,-182.25 255.68,-184.59 255.68,-184.59\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"226.5\" y=\"-206.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"222\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->3 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>2->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M204.49,-149.19C217.78,-155.08 234.64,-162.56 248.91,-168.88\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"255.68,-171.88 248,-171.93 252.48,-170.46 249.28,-169.05 249.28,-169.05 249.28,-169.05 252.48,-170.46 250.55,-166.17 255.68,-171.88 255.68,-171.88\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"226.5\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M291,-135C291,-135 268,-135 268,-135 262,-135 256,-129 256,-123 256,-123 256,-111 256,-111 256,-105 262,-99 268,-99 268,-99 291,-99 291,-99 297,-99 303,-105 303,-111 303,-111 303,-123 303,-123 303,-129 297,-135 291,-135\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"264\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->4 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M204.33,-124.86C209.91,-122.06 216.01,-119.52 222,-118 230.54,-115.84 240.05,-115.07 248.79,-114.98\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"255.91,-115.06 248.88,-118.13 252.41,-115.02 248.91,-114.98 248.91,-114.98 248.91,-114.98 252.41,-115.02 248.95,-111.83 255.91,-115.06 255.91,-115.06\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"230\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M390,-189C390,-189 367,-189 367,-189 361,-189 355,-183 355,-177 355,-177 355,-165 355,-165 355,-159 361,-153 367,-153 367,-153 390,-153 390,-153 396,-153 402,-159 402,-165 402,-165 402,-177 402,-177 402,-183 396,-189 390,-189\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"363\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->5 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>3->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M303.49,-179.39C316.66,-177.9 333.33,-176.01 347.52,-174.4\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"354.68,-173.59 348.08,-177.51 351.2,-173.98 347.72,-174.38 347.72,-174.38 347.72,-174.38 351.2,-173.98 347.37,-171.25 354.68,-173.59 354.68,-173.59\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"325.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"321\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->5 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>4->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M303.49,-129.8C316.9,-137.26 333.94,-146.75 348.3,-154.74\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"354.68,-158.29 347.03,-157.64 351.62,-156.59 348.56,-154.89 348.56,-154.89 348.56,-154.89 351.62,-156.59 350.09,-152.14 354.68,-158.29 354.68,-158.29\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"325.5\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M390,-124C390,-124 367,-124 367,-124 361,-124 355,-118 355,-112 355,-112 355,-100 355,-100 355,-94 361,-88 367,-88 367,-88 390,-88 390,-88 396,-88 402,-94 402,-100 402,-100 402,-112 402,-112 402,-118 396,-124 390,-124\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"363\" y=\"-102.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->6 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>4->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M303.03,-110.49C308.84,-109.07 315.11,-107.77 321,-107 329.66,-105.87 339.14,-105.4 347.81,-105.28\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"354.87,-105.24 347.88,-108.43 351.37,-105.26 347.87,-105.28 347.87,-105.28 347.87,-105.28 351.37,-105.26 347.86,-102.13 354.87,-105.24 354.87,-105.24\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"329\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M580,-138C580,-138 557,-138 557,-138 551,-138 545,-132 545,-126 545,-126 545,-114 545,-114 545,-108 551,-102 557,-102 557,-102 580,-102 580,-102 586,-102 592,-108 592,-114 592,-114 592,-126 592,-126 592,-132 586,-138 580,-138\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"553\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->7 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>5->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M402.49,-164.77C431.51,-156.9 482.96,-142.95 527,-131 530.51,-130.05 534.2,-129.05 537.85,-128.05\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"544.8,-126.17 538.87,-131.04 541.42,-127.09 538.04,-128 538.04,-128 538.04,-128 541.42,-127.09 537.21,-124.96 544.8,-126.17 544.8,-126.17\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"453.5\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"461.5\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->7 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>6->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M402.18,-107.69C436.05,-110.21 499.91,-114.97 537.58,-117.77\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"544.74,-118.31 537.53,-120.93 541.25,-118.05 537.76,-117.79 537.76,-117.79 537.76,-117.79 541.25,-118.05 538,-114.64 544.74,-118.31 544.74,-118.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"453.5\" y=\"-118.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M481,-36C481,-36 458,-36 458,-36 452,-36 446,-30 446,-24 446,-24 446,-12 446,-12 446,-6 452,0 458,0 458,0 481,0 481,0 487,0 493,-6 493,-12 493,-12 493,-24 493,-24 493,-30 487,-36 481,-36\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"454\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->8 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>6->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M397.94,-87.77C411.54,-74.32 430.17,-55.9 444.86,-41.37\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"450.08,-36.21 447.32,-43.37 447.59,-38.67 445.11,-41.13 445.11,-41.13 445.11,-41.13 447.59,-38.67 442.89,-38.89 450.08,-36.21 450.08,-36.21\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"420\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->7 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>7->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M559.82,-138.15C558.48,-147.54 561.38,-156 568.5,-156 573.73,-156 576.68,-151.44 577.35,-145.3\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"577.18,-138.15 580.5,-145.08 577.27,-141.65 577.35,-145.15 577.35,-145.15 577.35,-145.15 577.27,-141.65 574.2,-145.23 577.18,-138.15 577.18,-138.15\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"565\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"552.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"568.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->7 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>8->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M488.45,-36.16C499.62,-47.53 514.24,-62.53 527,-76 533.25,-82.6 539.95,-89.82 546.08,-96.48\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"551.06,-101.91 544.01,-98.88 548.7,-99.33 546.33,-96.75 546.33,-96.75 546.33,-96.75 548.7,-99.33 548.65,-94.62 551.06,-101.91 551.06,-101.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"515.5\" y=\"-94.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"511\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->8 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>8->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M461.54,-36.15C460.32,-45.54 462.97,-54 469.5,-54 474.3,-54 477,-49.44 477.61,-43.3\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"477.46,-36.15 480.76,-43.08 477.54,-39.65 477.61,-43.15 477.61,-43.15 477.61,-43.15 477.54,-39.65 474.46,-43.22 477.46,-36.15 477.46,-36.15\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"465\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"461.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7efc20044780> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"253pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 253.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 249,-160.8 249,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"101\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-62C2.79,-62 17.15,-62 30.63,-62\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-62 30.94,-65.15 34.44,-62 30.94,-62 30.94,-62 30.94,-62 34.44,-62 30.94,-58.85 37.94,-62 37.94,-62\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"223\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"223\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"223\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M73.36,-67.19C86.38,-71.04 105.16,-75.96 122,-78 137.88,-79.93 142.12,-79.95 158,-78 170.33,-76.48 183.7,-73.38 195.02,-70.3\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"201.78,-68.41 195.89,-73.33 198.54,-69.83 195.17,-70.78 195.04,-70.3 194.9,-69.82 198.27,-68.87 194.18,-67.27 201.78,-68.41 201.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"122\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"140\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"140\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M72.42,-53.72C85.14,-46.9 103.31,-37.15 117.46,-29.56\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"123.65,-26.24 118.97,-32.32 120.56,-27.89 117.48,-29.55 117.48,-29.55 117.48,-29.55 120.56,-27.89 115.99,-26.77 123.65,-26.24 123.65,-26.24\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-45.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M215.32,-82.99C214.37,-93.09 216.93,-102 223,-102 227.55,-102 230.13,-96.99 230.74,-90.22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"230.68,-82.99 233.88,-89.97 231.21,-86.49 231.23,-89.99 230.73,-89.99 230.23,-89.99 230.21,-86.49 227.58,-90.01 230.68,-82.99 230.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"219.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M156.24,-26.28C167.74,-32.52 183.76,-41.23 197.11,-48.48\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"203.42,-51.91 195.77,-51.33 200.34,-50.24 197.27,-48.57 197.27,-48.57 197.27,-48.57 200.34,-50.24 198.77,-45.8 203.42,-51.91 203.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"176\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M133.27,-35.04C131.89,-44.86 134.14,-54 140,-54 144.4,-54 146.76,-48.86 147.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"146.73,-35.04 150.23,-41.87 146.91,-38.53 147.08,-42.03 147.08,-42.03 147.08,-42.03 146.91,-38.53 143.93,-42.18 146.73,-35.04 146.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"140\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc200449c0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"413pt\" height=\"125pt\"\n",
|
|
" viewBox=\"0.00 0.00 413.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 409,-120.8 409,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"181\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->3 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->2 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>3->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M74.14,-22C85.12,-22 99.52,-22 111.67,-22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"118.89,-22 111.89,-25.15 115.39,-22.5 111.89,-22.5 111.89,-22 111.89,-21.5 115.39,-21.5 111.89,-18.85 118.89,-22 118.89,-22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"299\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"299\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"383\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"383\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"383\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->4 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M317.39,-22C327.9,-22 341.55,-22 353.6,-22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"360.85,-22 353.85,-25.15 357.35,-22.5 353.85,-22.5 353.85,-22 353.85,-21.5 357.35,-21.5 353.85,-18.85 360.85,-22 360.85,-22\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"335\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->4 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>4->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M374.99,-42.58C373.89,-52.84 376.55,-62 383,-62 387.83,-62 390.54,-56.85 391.13,-49.95\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"391.01,-42.58 394.27,-49.53 391.56,-46.07 391.62,-49.57 391.12,-49.58 390.62,-49.59 390.56,-46.09 387.97,-49.63 391.01,-42.58 391.01,-42.58\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"383\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"218\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"218\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M236.14,-22C247.12,-22 261.52,-22 273.67,-22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"280.89,-22 273.89,-25.15 277.39,-22.5 273.89,-22.5 273.89,-22 273.89,-21.5 277.39,-21.5 273.89,-18.85 280.89,-22 280.89,-22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"258.5\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M155.14,-22C166.12,-22 180.52,-22 192.67,-22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"199.89,-22 192.89,-25.15 196.39,-22.5 192.89,-22.5 192.89,-22 192.89,-21.5 196.39,-21.5 192.89,-18.85 199.89,-22 199.89,-22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"177.5\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc200448d0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"left2 = spot.translate('!b & FG a')\n",
|
|
"right2 = spot.translate('XXXb')\n",
|
|
"prod2 = spot.otf_product(left2, right2) # Note \"otf_product()\"\n",
|
|
"run2 = prod2.accepting_run()\n",
|
|
"run2.project(left2).highlight(5)\n",
|
|
"run2.project(right2, True).highlight(5)\n",
|
|
"print(run2)\n",
|
|
"display(prod2, left2, right2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Highlighting nondeterminism\n",
|
|
"\n",
|
|
"Sometimes its is hard to locate non-deterministic states inside a large automaton. Here are two functions that can help for that."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"383pt\" height=\"276pt\"\n",
|
|
" viewBox=\"0.00 0.00 383.00 276.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 272)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-272 379,-272 379,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"167\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"188\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"166\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->4 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-105C2.79,-105 17.15,-105 30.63,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-105 30.94,-108.15 34.44,-105 30.94,-105 30.94,-105 30.94,-105 34.44,-105 30.94,-101.85 37.94,-105 37.94,-105\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"137\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-105C85.12,-105 99.52,-105 111.67,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-105 111.89,-108.15 115.39,-105 111.89,-105 111.89,-105 111.89,-105 115.39,-105 111.89,-101.85 118.89,-105 118.89,-105\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M129.97,-121.66C128.41,-131.62 130.75,-141 137,-141 141.69,-141 144.18,-135.73 144.47,-128.89\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"144.03,-121.66 147.6,-128.46 144.74,-125.13 144.96,-128.62 144.46,-128.65 143.96,-128.68 143.74,-125.19 141.31,-128.84 144.03,-121.66 144.03,-121.66\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"124\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"357\" cy=\"-129\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"357\" y=\"-125.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M145.57,-121.3C158.28,-146.48 186.57,-193.93 227,-213 271.64,-234.06 319.01,-181.01 341.94,-149.83\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"346.19,-143.91 344.66,-151.43 344.15,-146.75 342.11,-149.59 342.11,-149.59 342.11,-149.59 344.15,-146.75 339.55,-147.75 346.19,-143.91 346.19,-143.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"227\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M155.35,-105C173.3,-105 201.48,-105 221.65,-105\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"228.69,-105 221.69,-108.15 225.19,-105.5 221.69,-105.5 221.69,-105 221.69,-104.5 225.19,-104.5 221.69,-101.85 228.69,-105 228.69,-105\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M151.68,-93.98C170.67,-78.68 205.11,-50.94 226.71,-33.54\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"232.43,-28.93 228.96,-35.77 230.02,-31.51 227.3,-33.71 226.98,-33.32 226.67,-32.93 229.39,-30.74 225.01,-30.87 232.43,-28.93 232.43,-28.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-146.41C351.28,-156.09 352.89,-165 357,-165 360.02,-165 361.69,-160.19 362.01,-153.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-146.41 365.15,-153.33 361.91,-149.91 362,-153.41 362,-153.41 362,-153.41 361.91,-149.91 358.85,-153.49 361.82,-146.41 361.82,-146.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-145.31C344.37,-162.96 346.93,-183 357,-183 365.73,-183 368.82,-167.93 366.25,-152.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-145.31 369.26,-151.46 365.43,-148.73 366.19,-152.14 366.19,-152.14 366.19,-152.14 365.43,-148.73 363.11,-152.82 364.67,-145.31 364.67,-145.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"351\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"349\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M242,-122.41C241.07,-132.09 242.73,-141 247,-141 250.13,-141 251.86,-136.19 252.19,-129.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-122.41 255.33,-129.33 252.09,-125.91 252.18,-129.41 252.18,-129.41 252.18,-129.41 252.09,-125.91 249.03,-129.49 252,-122.41 252,-122.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-121.31C233.9,-138.96 236.55,-159 247,-159 256.06,-159 259.26,-143.93 256.59,-128.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-121.31 259.6,-127.42 255.74,-124.72 256.53,-128.13 256.53,-128.13 256.53,-128.13 255.74,-124.72 253.46,-128.84 254.96,-121.31 254.96,-121.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"229\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"239\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M260.39,-30.73C279.68,-50.56 316.93,-88.85 338.81,-111.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"343.76,-116.42 336.62,-113.59 341.31,-113.91 338.87,-111.4 338.87,-111.4 338.87,-111.4 341.31,-113.91 341.13,-109.2 343.76,-116.42 343.76,-116.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"285\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M237.43,-33.54C234.73,-43.91 237.92,-54 247,-54 253.95,-54 257.45,-48.08 257.5,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.57,-33.54 260.6,-40.08 257.03,-37.01 257.48,-40.48 257.48,-40.48 257.48,-40.48 257.03,-37.01 254.35,-40.89 256.57,-33.54 256.57,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
|
|
]
|
|
},
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"b = spot.translate('X (F(Ga <-> b) & GF!b)')\n",
|
|
"spot.highlight_nondet_states(b, 5)\n",
|
|
"spot.highlight_nondet_edges(b, 4)\n",
|
|
"b"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Disappearing highlights\n",
|
|
"\n",
|
|
"As explained at the top of this notebook, named properties (such as highlights) are fragile, and you should not really on them being preserved across algorithms. In-place algorithm are probably the worst, because they might modify the automaton and ignore the attached named properties. \n",
|
|
"\n",
|
|
"`randomize()` is one such in-place algorithm: it reorder states or transitions of the automaton. By doing so it renumber the states and edges, and that process would completely invalidate the highlights information. Fortunately `randomize()` know about highlights: it will preserve highlighted states, but it will drop all highlighted edges."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"383pt\" height=\"299pt\"\n",
|
|
" viewBox=\"0.00 0.00 383.00 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.0 1.0) rotate(0) translate(4 295)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-295 379,-295 379,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"167\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"188\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"166\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->3 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-105C2.79,-105 17.15,-105 30.63,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-105 30.94,-108.15 34.44,-105 30.94,-105 30.94,-105 30.94,-105 34.44,-105 30.94,-101.85 37.94,-105 37.94,-105\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"137\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->4 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-105C85.12,-105 99.52,-105 111.67,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-105 111.89,-108.15 115.39,-105 111.89,-105 111.89,-105 111.89,-105 115.39,-105 111.89,-101.85 118.89,-105 118.89,-105\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-156\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-152.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M242,-173.41C241.07,-183.09 242.73,-192 247,-192 250.13,-192 251.86,-187.19 252.19,-180.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-173.41 255.33,-180.33 252.09,-176.91 252.18,-180.41 252.18,-180.41 252.18,-180.41 252.09,-176.91 249.03,-180.49 252,-173.41 252,-173.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-172.31C233.9,-189.96 236.55,-210 247,-210 256.06,-210 259.26,-194.93 256.59,-179.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-172.31 259.6,-178.42 255.74,-175.72 256.53,-179.13 256.53,-179.13 256.53,-179.13 255.74,-175.72 253.46,-179.84 254.96,-172.31 254.96,-172.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"229\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"239\" y=\"-213.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=\"black\" cx=\"357\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"357\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-79.41C351.28,-89.09 352.89,-98 357,-98 360.02,-98 361.69,-93.19 362.01,-86.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-79.41 365.15,-86.33 361.91,-82.91 362,-86.41 362,-86.41 362,-86.41 361.91,-82.91 358.85,-86.49 361.82,-79.41 361.82,-79.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-78.31C344.37,-95.96 346.93,-116 357,-116 365.73,-116 368.82,-100.93 366.25,-85.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-78.31 369.26,-84.46 365.43,-81.73 366.19,-85.14 366.19,-85.14 366.19,-85.14 365.43,-81.73 363.11,-85.82 364.67,-78.31 364.67,-78.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"351\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"349\" y=\"-119.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=\"black\" cx=\"247\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M263.94,-24.49C282.28,-31.97 312.55,-44.3 333.34,-52.77\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"340,-55.48 332.33,-55.76 336.76,-54.16 333.52,-52.84 333.52,-52.84 333.52,-52.84 336.76,-54.16 334.7,-49.92 340,-55.48 340,-55.48\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"285\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M237.43,-33.54C234.73,-43.91 237.92,-54 247,-54 253.95,-54 257.45,-48.08 257.5,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.57,-33.54 260.6,-40.08 257.03,-37.01 257.48,-40.48 257.48,-40.48 257.48,-40.48 257.03,-37.01 254.35,-40.89 256.57,-33.54 256.57,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M153.47,-112.31C171.89,-121.01 202.8,-135.6 223.77,-145.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"230.2,-148.54 222.53,-148.4 227.04,-147.05 223.87,-145.55 223.87,-145.55 223.87,-145.55 227.04,-147.05 225.22,-142.7 230.2,-148.54 230.2,-148.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>4->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M154.74,-101.7C193.18,-94.12 287.85,-75.44 332.27,-66.68\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"339.2,-65.31 332.94,-69.76 335.76,-65.99 332.33,-66.67 332.33,-66.67 332.33,-66.67 335.76,-65.99 331.72,-63.58 339.2,-65.31 339.2,-65.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"227\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->2 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M151.24,-93.92C157.77,-88.49 165.77,-81.87 173,-76 191.09,-61.32 211.91,-44.82 226.67,-33.18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"232.21,-28.82 228.66,-35.63 229.46,-30.99 226.71,-33.15 226.71,-33.15 226.71,-33.15 229.46,-30.99 224.76,-30.68 232.21,-28.82 232.21,-28.82\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->4 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M129.97,-121.66C128.41,-131.62 130.75,-141 137,-141 141.69,-141 144.18,-135.73 144.47,-128.89\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"144.03,-121.66 147.6,-128.46 144.24,-125.16 144.46,-128.65 144.46,-128.65 144.46,-128.65 144.24,-125.16 141.31,-128.84 144.03,-121.66 144.03,-121.66\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"124\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
|
|
]
|
|
},
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.randomize(b); b"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Highlighting with partial output\n",
|
|
"\n",
|
|
"For simplicity, rendering of partial automata is actually implemented by copying the original automaton and marking some states as \"incomplete\". This also allows the same display code to work with automata generated on-the-fly. However since there is a copy, propagating the highlighting information requires extra work. Let's make sure it has been done:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"383pt\" height=\"299pt\"\n",
|
|
" viewBox=\"0.00 0.00 383.00 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.0 1.0) rotate(0) translate(4 295)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-295 379,-295 379,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"167\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"188\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"166\" y=\"-262.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->3 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-105C2.79,-105 17.15,-105 30.63,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-105 30.94,-108.15 34.44,-105 30.94,-105 30.94,-105 30.94,-105 34.44,-105 30.94,-101.85 37.94,-105 37.94,-105\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"137\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->4 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-105C85.12,-105 99.52,-105 111.67,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-105 111.89,-108.15 115.39,-105 111.89,-105 111.89,-105 111.89,-105 115.39,-105 111.89,-101.85 118.89,-105 118.89,-105\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-156\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-152.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M242,-173.41C241.07,-183.09 242.73,-192 247,-192 250.13,-192 251.86,-187.19 252.19,-180.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-173.41 255.33,-180.33 252.09,-176.91 252.18,-180.41 252.18,-180.41 252.18,-180.41 252.09,-176.91 249.03,-180.49 252,-173.41 252,-173.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-172.31C233.9,-189.96 236.55,-210 247,-210 256.06,-210 259.26,-194.93 256.59,-179.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-172.31 259.6,-178.42 255.74,-175.72 256.53,-179.13 256.53,-179.13 256.53,-179.13 255.74,-175.72 253.46,-179.84 254.96,-172.31 254.96,-172.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"229\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"239\" y=\"-213.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=\"black\" cx=\"357\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"357\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-79.41C351.28,-89.09 352.89,-98 357,-98 360.02,-98 361.69,-93.19 362.01,-86.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-79.41 365.15,-86.33 361.91,-82.91 362,-86.41 362,-86.41 362,-86.41 361.91,-82.91 358.85,-86.49 361.82,-79.41 361.82,-79.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-78.31C344.37,-95.96 346.93,-116 357,-116 365.73,-116 368.82,-100.93 366.25,-85.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-78.31 369.26,-84.46 365.43,-81.73 366.19,-85.14 366.19,-85.14 366.19,-85.14 365.43,-81.73 363.11,-85.82 364.67,-78.31 364.67,-78.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"351\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"349\" y=\"-119.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=\"black\" cx=\"247\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M263.94,-24.49C282.28,-31.97 312.55,-44.3 333.34,-52.77\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"340,-55.48 332.33,-55.76 336.76,-54.16 333.52,-52.84 333.52,-52.84 333.52,-52.84 336.76,-54.16 334.7,-49.92 340,-55.48 340,-55.48\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"285\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M237.43,-33.54C234.73,-43.91 237.92,-54 247,-54 253.95,-54 257.45,-48.08 257.5,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.57,-33.54 260.6,-40.08 257.03,-37.01 257.48,-40.48 257.48,-40.48 257.48,-40.48 257.03,-37.01 254.35,-40.89 256.57,-33.54 256.57,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M153.47,-112.31C171.89,-121.01 202.8,-135.6 223.77,-145.5\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"230.2,-148.54 222.53,-148.4 226.83,-147.5 223.66,-146 223.87,-145.55 224.09,-145.1 227.25,-146.59 225.22,-142.7 230.2,-148.54 230.2,-148.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>4->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M154.74,-101.7C193.18,-94.12 287.85,-75.44 332.27,-66.68\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"339.2,-65.31 332.94,-69.76 335.76,-65.99 332.33,-66.67 332.33,-66.67 332.33,-66.67 335.76,-65.99 331.72,-63.58 339.2,-65.31 339.2,-65.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"227\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->2 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M151.24,-93.92C157.77,-88.49 165.77,-81.87 173,-76 191.09,-61.32 211.91,-44.82 226.67,-33.18\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"232.21,-28.82 228.66,-35.63 229.77,-31.38 227.02,-33.54 226.71,-33.15 226.4,-32.76 229.15,-30.59 224.76,-30.68 232.21,-28.82 232.21,-28.82\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->4 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M129.97,-121.66C128.41,-131.62 130.75,-141 137,-141 141.69,-141 144.18,-135.73 144.47,-128.89\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"144.03,-121.66 147.6,-128.46 144.74,-125.13 144.96,-128.62 144.46,-128.65 143.96,-128.68 143.74,-125.19 141.31,-128.84 144.03,-121.66 144.03,-121.66\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"124\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"383pt\" height=\"206pt\"\n",
|
|
" viewBox=\"0.00 0.00 383.00 205.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 201.5)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-201.5 379,-201.5 379,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"167\" y=\"-183.3\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"188\" y=\"-183.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204\" y=\"-183.3\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"166\" y=\"-169.3\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"51.5\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-105C2.79,-105 17.15,-105 30.63,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-105 30.94,-108.15 34.44,-105 30.94,-105 30.94,-105 30.94,-105 34.44,-105 30.94,-101.85 37.94,-105 37.94,-105\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"137\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"132.5\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-105C85.12,-105 99.52,-105 111.67,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-105 111.89,-108.15 115.39,-105 111.89,-105 111.89,-105 111.89,-105 115.39,-105 111.89,-101.85 118.89,-105 118.89,-105\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M129.97,-121.66C128.41,-131.62 130.75,-141 137,-141 141.69,-141 144.18,-135.73 144.47,-128.89\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"144.03,-121.66 147.6,-128.46 144.74,-125.13 144.96,-128.62 144.46,-128.65 143.96,-128.68 143.74,-125.19 141.31,-128.84 144.03,-121.66 144.03,-121.66\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"124\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
|
|
"</g>\n",
|
|
"<!-- u1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>u1</title>\n",
|
|
"<g id=\"a_node4\"><a xlink:title=\"hidden successors\">\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"260,-161.5 234,-161.5 234,-138.5 260,-138.5 260,-161.5\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-146.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</a>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"<!-- 1->u1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->u1</title>\n",
|
|
"<g id=\"a_edge3\"><a xlink:title=\"hidden successors\">\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M153.94,-111.64C173.44,-119.77 206.43,-133.51 227.17,-142.15\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"233.69,-144.87 226.02,-145.09 230.46,-143.53 227.23,-142.18 227.23,-142.18 227.23,-142.18 230.46,-143.53 228.44,-139.27 233.69,-144.87 233.69,-144.87\"/>\n",
|
|
"</a>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"357\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"357\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M154.74,-101.7C193.18,-94.12 287.85,-75.44 332.27,-66.68\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"339.2,-65.31 332.94,-69.76 335.76,-65.99 332.33,-66.67 332.33,-66.67 332.33,-66.67 335.76,-65.99 331.72,-63.58 339.2,-65.31 339.2,-65.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"227\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"247\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"247\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M151.24,-93.92C157.77,-88.49 165.77,-81.87 173,-76 191.09,-61.32 211.91,-44.82 226.67,-33.18\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"232.21,-28.82 228.66,-35.63 229.77,-31.38 227.02,-33.54 226.71,-33.15 226.4,-32.76 229.15,-30.59 224.76,-30.68 232.21,-28.82 232.21,-28.82\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-79.41C351.28,-89.09 352.89,-98 357,-98 360.02,-98 361.69,-93.19 362.01,-86.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-79.41 365.15,-86.33 361.91,-82.91 362,-86.41 362,-86.41 362,-86.41 361.91,-82.91 358.85,-86.49 361.82,-79.41 361.82,-79.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-78.31C344.37,-95.96 346.93,-116 357,-116 365.73,-116 368.82,-100.93 366.25,-85.42\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-78.31 369.26,-84.46 365.43,-81.73 366.19,-85.14 366.19,-85.14 366.19,-85.14 365.43,-81.73 363.11,-85.82 364.67,-78.31 364.67,-78.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"351\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"349\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->2 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M263.94,-24.49C282.28,-31.97 312.55,-44.3 333.34,-52.77\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"340,-55.48 332.33,-55.76 336.76,-54.16 333.52,-52.84 333.52,-52.84 333.52,-52.84 336.76,-54.16 334.7,-49.92 340,-55.48 340,-55.48\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"285\" y=\"-50.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M237.43,-33.54C234.73,-43.91 237.92,-54 247,-54 253.95,-54 257.45,-48.08 257.5,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.57,-33.54 260.6,-40.08 257.03,-37.01 257.48,-40.48 257.48,-40.48 257.48,-40.48 257.03,-37.01 254.35,-40.89 256.57,-33.54 256.57,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"226pt\" height=\"113pt\"\n",
|
|
" viewBox=\"0.00 0.00 226.00 113.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 109)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-109 222,-109 222,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"88.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"109.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"125.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"87.5\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"51.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"137\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"132.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-18C85.12,-18 99.52,-18 111.67,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-18 111.89,-21.15 115.39,-18 111.89,-18 111.89,-18 111.89,-18 115.39,-18 111.89,-14.85 118.89,-18 118.89,-18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M130.62,-35.04C129.32,-44.86 131.45,-54 137,-54 141.17,-54 143.4,-48.86 143.71,-42.14\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"143.38,-35.04 146.85,-41.88 144.04,-38.51 144.21,-42.01 143.71,-42.03 143.21,-42.05 143.04,-38.56 140.56,-42.18 143.38,-35.04 143.38,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"124\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
|
|
"</g>\n",
|
|
"<!-- u1 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>u1</title>\n",
|
|
"<g id=\"a_node4\"><a xlink:title=\"hidden successors\">\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"218,-29.5 192,-29.5 192,-6.5 218,-6.5 218,-29.5\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"205\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</a>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"<!-- 1->u1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->u1</title>\n",
|
|
"<g id=\"a_edge3\"><a xlink:title=\"hidden successors\">\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M155.34,-18C164.38,-18 175.46,-18 184.77,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"191.77,-18 184.77,-21.15 188.27,-18 184.77,-18 184.77,-18 184.77,-18 188.27,-18 184.77,-14.85 191.77,-18 191.77,-18\"/>\n",
|
|
"</a>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.highlight_nondet_edges(b, 4) # let's get those highlighted edges back\n",
|
|
"display(b, b.show('.<4'), b.show('.<2'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Highlighting languages\n",
|
|
"\n",
|
|
"For deterministic automata, the function `spot.highlight_languages()` can be used to highlight states that recognize the same language. This can be a great help in reading automata. States with a colored border share their language, and states with a black border all have a language different from all other states."
|
|
]
|
|
},
|
|
{
|
|
"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.43.0 (0)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"647pt\" height=\"360pt\"\n",
|
|
" viewBox=\"0.00 0.00 646.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(0.8849557522123894 0.8849557522123894) rotate(0) translate(4 404)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-404 729,-404 729,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"342\" y=\"-385.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"363\" y=\"-385.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"379\" y=\"-385.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"341\" y=\"-371.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<g id=\"clust1\" class=\"cluster\">\n",
|
|
"<title>cluster_0</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"green\" points=\"465,-154 465,-356 717,-356 717,-154 465,-154\"/>\n",
|
|
"</g>\n",
|
|
"<g id=\"clust2\" class=\"cluster\">\n",
|
|
"<title>cluster_1</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"black\" points=\"386,-152 386,-204 438,-204 438,-152 386,-152\"/>\n",
|
|
"</g>\n",
|
|
"<g id=\"clust3\" class=\"cluster\">\n",
|
|
"<title>cluster_2</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"green\" points=\"138,-181 138,-283 324,-283 324,-181 138,-181\"/>\n",
|
|
"</g>\n",
|
|
"<g id=\"clust4\" class=\"cluster\">\n",
|
|
"<title>cluster_3</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"green\" points=\"138,-8 138,-108 190,-108 190,-8 138,-8\"/>\n",
|
|
"</g>\n",
|
|
"<g id=\"clust5\" class=\"cluster\">\n",
|
|
"<title>cluster_4</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"black\" points=\"30,-102 30,-154 82,-154 82,-102 30,-102\"/>\n",
|
|
"</g>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-128\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-124.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-128C2.79,-128 17.15,-128 30.63,-128\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-128 30.94,-131.15 34.44,-128 30.94,-128 30.94,-128 30.94,-128 34.44,-128 30.94,-124.85 37.94,-128 37.94,-128\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"412\" cy=\"-178\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"412\" y=\"-174.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.07,-130.41C131.79,-138.56 319.74,-165.11 386.89,-174.59\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"394.1,-175.61 386.73,-177.75 390.63,-175.12 387.17,-174.63 387.17,-174.63 387.17,-174.63 390.63,-175.12 387.61,-171.51 394.1,-175.61 394.1,-175.61\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"210\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"164\" cy=\"-207\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"164\" y=\"-203.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M70.86,-138.33C89.35,-152.11 122.2,-176.59 143.27,-192.29\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"149.14,-196.67 141.64,-195.01 146.33,-194.58 143.53,-192.49 143.53,-192.49 143.53,-192.49 146.33,-194.58 145.41,-189.96 149.14,-196.67 149.14,-196.67\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"164\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"164\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M70,-116.47C88.67,-99.91 123.19,-69.3 144.52,-50.39\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"149.9,-45.62 146.75,-52.62 147.28,-47.94 144.66,-50.26 144.66,-50.26 144.66,-50.26 147.28,-47.94 142.57,-47.91 149.9,-45.62 149.9,-45.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"106.5\" y=\"-98.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#ff4da0\" stroke-width=\"2\" cx=\"491\" cy=\"-237\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"491\" y=\"-233.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#ff4da0\" stroke-width=\"2\" cx=\"579\" cy=\"-231\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"579\" y=\"-227.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->6 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M506.72,-227.46C512.75,-224.08 519.96,-220.7 527,-219 536.35,-216.74 546.67,-218.39 555.58,-221.11\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"562.36,-223.47 554.72,-224.15 559.06,-222.32 555.75,-221.17 555.75,-221.17 555.75,-221.17 559.06,-222.32 556.78,-218.2 562.36,-223.47 562.36,-223.47\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"529.5\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#ff4da0\" stroke-width=\"2\" cx=\"691\" cy=\"-236\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"691\" y=\"-232.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->7 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>4->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M504.43,-224.76C517.34,-212.99 538.72,-195.99 561,-189 600.42,-176.64 645.59,-202.56 670.66,-220.59\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"676.58,-224.97 669.08,-223.34 673.77,-222.89 670.95,-220.81 670.95,-220.81 670.95,-220.81 673.77,-222.89 672.83,-218.28 676.58,-224.97 676.58,-224.97\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"575.5\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->4 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>6->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M560.92,-232.56C555.22,-233.05 548.84,-233.58 543,-234 534.24,-234.63 524.63,-235.22 516.14,-235.71\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"509.01,-236.11 515.82,-232.58 512.5,-235.92 516,-235.72 516,-235.72 516,-235.72 512.5,-235.92 516.17,-238.87 509.01,-236.11 509.01,-236.11\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"529\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"527\" y=\"-238.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->6 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>6->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M571.33,-247.29C569.48,-257.39 572.04,-267 579,-267 584.22,-267 586.96,-261.59 587.23,-254.63\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"586.67,-247.29 590.34,-254.03 586.93,-250.78 587.2,-254.27 587.2,-254.27 587.2,-254.27 586.93,-250.78 584.06,-254.51 586.67,-247.29 586.67,-247.29\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"561\" y=\"-270.8\" font-family=\"Lato\" font-size=\"14.00\">b & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->7 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>6->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M595.69,-223.82C601.61,-221.47 608.49,-219.17 615,-218 632.5,-214.86 637.72,-213.82 655,-218 659.73,-219.14 664.54,-221.05 669.01,-223.19\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"675.28,-226.46 667.62,-226.02 672.18,-224.84 669.07,-223.23 669.07,-223.23 669.07,-223.23 672.18,-224.84 670.53,-220.43 675.28,-226.46 675.28,-226.46\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"619\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">b & c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->4 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>7->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M676.58,-247.13C659.4,-260.59 628.12,-282.49 597,-291 565.54,-299.61 552.81,-288.93 527,-269 521.13,-264.47 515.07,-259.17 509.67,-254.2\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"504.52,-249.39 511.78,-251.87 507.07,-251.78 509.63,-254.17 509.63,-254.17 509.63,-254.17 507.07,-251.78 507.48,-256.47 504.52,-249.39 504.52,-249.39\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"575\" y=\"-312.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"571\" y=\"-297.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->6 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>7->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M672.72,-235.39C657.52,-234.84 634.78,-233.96 615,-233 611.53,-232.83 607.88,-232.64 604.29,-232.44\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"597.09,-232.04 604.25,-229.28 600.58,-232.23 604.08,-232.43 604.08,-232.43 604.08,-232.43 600.58,-232.23 603.9,-235.57 597.09,-232.04 597.09,-232.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"615\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\">!b & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->7 -->\n",
|
|
"<g id=\"edge21\" class=\"edge\">\n",
|
|
"<title>7->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M681.43,-251.54C678.73,-261.91 681.92,-272 691,-272 697.95,-272 701.45,-266.08 701.5,-258.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"700.57,-251.54 704.6,-258.08 701.03,-255.01 701.48,-258.48 701.48,-258.48 701.48,-258.48 701.03,-255.01 698.35,-258.89 700.57,-251.54 700.57,-251.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"673\" y=\"-275.8\" font-family=\"Lato\" font-size=\"14.00\">!b & c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->4 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M427.18,-187.75C435.41,-193.5 445.91,-201 455,-208 460.42,-212.17 466.18,-216.84 471.43,-221.2\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"476.89,-225.76 469.49,-223.68 474.2,-223.51 471.51,-221.27 471.51,-221.27 471.51,-221.27 474.2,-223.51 473.54,-218.85 476.89,-225.76 476.89,-225.76\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"448\" y=\"-211.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->4 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>2->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M170.32,-224.12C175.52,-237.63 184.9,-255.55 200,-264 288.51,-313.51 416.34,-268.87 467.55,-247.21\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"474.25,-244.32 469.07,-249.99 471.04,-245.71 467.82,-247.1 467.82,-247.1 467.82,-247.1 471.04,-245.71 466.58,-244.2 474.25,-244.32 474.25,-244.32\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"352.5\" y=\"-286.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M181.63,-202.23C187.41,-200.7 193.95,-199.12 200,-198 266.82,-185.61 347.05,-180.69 386.56,-178.91\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"393.9,-178.59 387.04,-182.04 390.4,-178.74 386.91,-178.89 386.91,-178.89 386.91,-178.89 390.4,-178.74 386.77,-175.75 393.9,-178.59 393.9,-178.59\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"278\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M154.77,-222.54C152.17,-232.91 155.25,-243 164,-243 170.7,-243 174.08,-237.08 174.12,-229.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"173.23,-222.54 177.23,-229.1 173.67,-226.01 174.1,-229.49 174.1,-229.49 174.1,-229.49 173.67,-226.01 170.98,-229.88 173.23,-222.54 173.23,-222.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"132\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b & !c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"298\" cy=\"-231\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"298\" y=\"-227.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->5 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>2->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M181.87,-204.49C201.18,-202.22 233.55,-200.3 260,-208 266.05,-209.76 272.09,-212.82 277.48,-216.13\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"283.46,-220.09 275.89,-218.86 280.54,-218.16 277.62,-216.23 277.62,-216.23 277.62,-216.23 280.54,-218.16 279.36,-213.6 283.46,-220.09 283.46,-220.09\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"200\" y=\"-211.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b & c</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->4 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>5->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M316.29,-231.54C350.38,-232.61 426.36,-235 465.56,-236.23\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"472.89,-236.46 465.79,-239.39 469.39,-236.35 465.89,-236.24 465.89,-236.24 465.89,-236.24 469.39,-236.35 465.99,-233.09 472.89,-236.46 472.89,-236.46\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"408.5\" y=\"-238.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->1 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>5->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M313.42,-221.21C320.13,-216.88 328.31,-211.89 336,-208 352.88,-199.46 372.8,-191.59 387.87,-186.05\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"394.84,-183.53 389.33,-188.87 391.55,-184.72 388.26,-185.91 388.26,-185.91 388.26,-185.91 391.55,-184.72 387.19,-182.95 394.84,-183.53 394.84,-183.53\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"336\" y=\"-211.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->2 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>5->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M279.88,-231.36C260.26,-231.36 227.3,-230.13 200,-223 195.59,-221.85 191.04,-220.17 186.74,-218.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"180.25,-215.37 187.93,-215.41 183.44,-216.82 186.62,-218.28 186.62,-218.28 186.62,-218.28 183.44,-216.82 185.31,-221.14 180.25,-215.37 180.25,-215.37\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"212\" y=\"-248.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"222\" y=\"-233.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M154.77,-49.54C152.17,-59.91 155.25,-70 164,-70 170.7,-70 174.08,-64.08 174.12,-56.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"173.23,-49.54 177.23,-56.1 173.67,-53.01 174.1,-56.49 174.1,-56.49 174.1,-56.49 173.67,-53.01 170.98,-56.88 173.23,-49.54 173.23,-49.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"159.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"156\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"aut = spot.translate('(b W Xa) & GF(c <-> Xb) | a', 'generic', 'det')\n",
|
|
"spot.highlight_languages(aut)\n",
|
|
"aut.show('.bas')"
|
|
]
|
|
}
|
|
],
|
|
"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.9.1+"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|