This is to workaround differences in minidom's pretty-printing that occurred between Python 3.7 and 3.8. * python/spot/jupyter.py (SVG): New class. * python/spot/__init__.py: Use it. * tests/python/_altscc.ipynb, tests/python/alternation.ipynb, tests/python/automata.ipynb, tests/python/formulas.ipynb, tests/python/gen.ipynb, tests/python/highlighting.ipynb, tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb, tests/python/product.ipynb, tests/python/randaut.ipynb, tests/python/testingaut.ipynb, tests/python/twagraph-internals.ipynb, tests/python/word.ipynb: Adjust.
3611 lines
236 KiB
Text
3611 lines
236 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=\"307pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 307.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 303,-160.8 303,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"126.5\" 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\" 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=\"277\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"277\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"277\" 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.77,-66.21C102.23,-72.79 161.79,-84.18 212,-78 224.33,-76.48 237.7,-73.38 249.02,-70.3\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"255.78,-68.41 249.89,-73.33 252.41,-69.35 249.04,-70.3 249.04,-70.3 249.04,-70.3 252.41,-69.35 248.18,-67.27 255.78,-68.41 255.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"190.5\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"82.27\" y=\"-55.01\" 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=\"194\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"189.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.4,-56.69C97.4,-48.93 142.19,-34.44 169.63,-25.56\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"176.54,-23.33 170.85,-28.48 173.21,-24.4 169.88,-25.48 169.88,-25.48 169.88,-25.48 173.21,-24.4 168.91,-22.48 176.54,-23.33 176.54,-23.33\"/>\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.9\" y=\"-45.49\" 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=\"M269.32,-82.99C268.37,-93.09 270.93,-102 277,-102 281.55,-102 284.13,-96.99 284.74,-90.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"284.68,-82.99 287.88,-89.97 284.71,-86.49 284.73,-89.99 284.73,-89.99 284.73,-89.99 284.71,-86.49 281.58,-90.01 284.68,-82.99 284.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"272.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"260.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=\"M210.24,-26.28C221.74,-32.52 237.76,-41.23 251.11,-48.48\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"257.42,-51.91 249.77,-51.33 254.34,-50.24 251.27,-48.57 251.27,-48.57 251.27,-48.57 254.34,-50.24 252.77,-45.8 257.42,-51.91 257.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"218.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=\"M187.27,-35.04C185.89,-44.86 188.14,-54 194,-54 198.4,-54 200.76,-48.86 201.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"200.73,-35.04 204.23,-41.87 200.91,-38.53 201.08,-42.03 201.08,-42.03 201.08,-42.03 200.91,-38.53 197.93,-42.18 200.73,-35.04 200.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">b & !c</text>\n",
|
|
"<text text-anchor=\"middle\" x=\"178.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=\"307pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 307.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 303,-160.8 303,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"126.5\" 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\" 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=\"277\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"277\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"277\" 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.77,-66.21C102.23,-72.79 161.79,-84.18 212,-78 224.33,-76.48 237.7,-73.38 249.02,-70.3\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"255.78,-68.41 249.89,-73.33 252.54,-69.83 249.17,-70.78 249.04,-70.3 248.9,-69.82 252.27,-68.87 248.18,-67.27 255.78,-68.41 255.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"190.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=\"194\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"189.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.4,-56.69C97.4,-48.93 142.19,-34.44 169.63,-25.56\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"176.54,-23.33 170.85,-28.48 173.36,-24.88 170.03,-25.96 169.88,-25.48 169.72,-25.01 173.05,-23.93 168.91,-22.48 176.54,-23.33 176.54,-23.33\"/>\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=\"M269.32,-82.99C268.37,-93.09 270.93,-102 277,-102 281.55,-102 284.13,-96.99 284.74,-90.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"284.68,-82.99 287.88,-89.97 284.71,-86.49 284.73,-89.99 284.73,-89.99 284.73,-89.99 284.71,-86.49 281.58,-90.01 284.68,-82.99 284.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"272.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=\"M210.24,-26.28C221.74,-32.52 237.76,-41.23 251.11,-48.48\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"257.42,-51.91 249.77,-51.33 254.11,-50.68 251.03,-49.01 251.27,-48.57 251.51,-48.13 254.58,-49.8 252.77,-45.8 257.42,-51.91 257.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" 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=\"M187.27,-35.04C185.89,-44.86 188.14,-54 194,-54 198.4,-54 200.76,-48.86 201.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"200.73,-35.04 204.23,-41.87 200.91,-38.53 201.08,-42.03 201.08,-42.03 201.08,-42.03 200.91,-38.53 197.93,-42.18 200.73,-35.04 200.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175.5\" 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 0x7f5299f824b0> >"
|
|
]
|
|
},
|
|
"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=\"307pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 307.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 303,-160.8 303,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"126.5\" 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\" 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=\"277\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"277\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"277\" 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.77,-66.21C102.23,-72.79 161.79,-84.18 212,-78 224.33,-76.48 237.7,-73.38 249.02,-70.3\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"255.78,-68.41 249.89,-73.33 252.54,-69.83 249.17,-70.78 249.04,-70.3 248.9,-69.82 252.27,-68.87 248.18,-67.27 255.78,-68.41 255.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"190.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=\"194\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"189.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.4,-56.69C97.4,-48.93 142.19,-34.44 169.63,-25.56\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"176.54,-23.33 170.85,-28.48 173.36,-24.88 170.03,-25.96 169.88,-25.48 169.72,-25.01 173.05,-23.93 168.91,-22.48 176.54,-23.33 176.54,-23.33\"/>\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=\"M269.32,-82.99C268.37,-93.09 270.93,-102 277,-102 281.55,-102 284.13,-96.99 284.74,-90.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"284.68,-82.99 287.88,-89.97 284.71,-86.49 284.73,-89.99 284.73,-89.99 284.73,-89.99 284.71,-86.49 281.58,-90.01 284.68,-82.99 284.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"272.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=\"M210.24,-26.28C221.74,-32.52 237.76,-41.23 251.11,-48.48\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"257.42,-51.91 249.77,-51.33 254.11,-50.68 251.03,-49.01 251.27,-48.57 251.51,-48.13 254.58,-49.8 252.77,-45.8 257.42,-51.91 257.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" 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=\"M187.27,-35.04C185.89,-44.86 188.14,-54 194,-54 198.4,-54 200.76,-48.86 201.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"200.73,-35.04 204.23,-41.87 200.91,-38.53 201.08,-42.03 201.08,-42.03 201.08,-42.03 200.91,-38.53 197.93,-42.18 200.73,-35.04 200.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175.5\" 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 0x7f5299f82f90> >"
|
|
]
|
|
},
|
|
"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=\"307pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 307.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 303,-160.8 303,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"126.5\" 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\" 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=\"277\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"#1f78b4\" stroke-width=\"2\" cx=\"277\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"277\" 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.77,-66.21C102.23,-72.79 161.79,-84.18 212,-78 224.33,-76.48 237.7,-73.38 249.02,-70.3\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"255.78,-68.41 249.89,-73.33 252.54,-69.83 249.17,-70.78 249.04,-70.3 248.9,-69.82 252.27,-68.87 248.18,-67.27 255.78,-68.41 255.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"190.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=\"194\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"189.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.4,-56.69C97.4,-48.93 142.19,-34.44 169.63,-25.56\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"176.54,-23.33 170.85,-28.48 173.36,-24.88 170.03,-25.96 169.88,-25.48 169.72,-25.01 173.05,-23.93 168.91,-22.48 176.54,-23.33 176.54,-23.33\"/>\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=\"M269.32,-82.99C268.37,-93.09 270.93,-102 277,-102 281.55,-102 284.13,-96.99 284.74,-90.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"284.68,-82.99 287.88,-89.97 284.71,-86.49 284.73,-89.99 284.73,-89.99 284.73,-89.99 284.71,-86.49 281.58,-90.01 284.68,-82.99 284.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"272.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=\"M210.24,-26.28C221.74,-32.52 237.76,-41.23 251.11,-48.48\"/>\n",
|
|
"<polygon fill=\"#ff4da0\" stroke=\"#ff4da0\" stroke-width=\"2\" points=\"257.42,-51.91 249.77,-51.33 254.11,-50.68 251.03,-49.01 251.27,-48.57 251.51,-48.13 254.58,-49.8 252.77,-45.8 257.42,-51.91 257.42,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" 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=\"M187.27,-35.04C185.89,-44.86 188.14,-54 194,-54 198.4,-54 200.76,-48.86 201.09,-42.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"200.73,-35.04 204.23,-41.87 200.91,-38.53 201.08,-42.03 201.08,-42.03 201.08,-42.03 200.91,-38.53 197.93,-42.18 200.73,-35.04 200.73,-35.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175.5\" 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 0x7f5299f824b0> >"
|
|
]
|
|
},
|
|
"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=\"386pt\" height=\"276pt\"\n",
|
|
" viewBox=\"0.00 0.00 386.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 382,-272 382,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"168\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"190\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" 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=\"123.5\" 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=\"360\" cy=\"-129\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"360\" 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.49,-120.89C158.32,-145.98 187.11,-193.85 228,-213 273.19,-234.16 321.36,-181.07 344.69,-149.85\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"349.01,-143.93 347.43,-151.44 346.95,-146.75 344.88,-149.58 344.88,-149.58 344.88,-149.58 346.95,-146.75 342.34,-147.72 349.01,-143.93 349.01,-143.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" 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=\"248.5\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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.11,-105C173.32,-105 202.31,-105 222.96,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"230.15,-105 223.15,-108.15 226.65,-105 223.15,-105 223.15,-105 223.15,-105 226.65,-105 223.15,-101.85 230.15,-105 230.15,-105\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174.5\" 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=\"248.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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.87,-93.98C171.2,-78.62 206.34,-50.7 228.22,-33.32\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"233.74,-28.93 230.22,-35.75 231,-31.11 228.26,-33.28 228.26,-33.28 228.26,-33.28 231,-31.11 226.3,-30.82 233.74,-28.93 233.74,-28.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-79.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=\"M355.18,-146.41C354.28,-156.09 355.89,-165 360,-165 363.02,-165 364.69,-160.19 365.01,-153.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.82,-146.41 368.15,-153.33 364.91,-149.91 365,-153.41 365,-153.41 365,-153.41 364.91,-149.91 361.85,-153.49 364.82,-146.41 364.82,-146.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353.5\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"352\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.73,-145.6C347.24,-166.86 349.66,-195 360,-195 369.25,-195 372.16,-172.49 368.74,-152.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"367.27,-145.6 371.81,-151.79 368,-149.02 368.73,-152.44 368.73,-152.44 368.73,-152.44 368,-149.02 365.64,-153.1 367.27,-145.6 367.27,-145.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"355.5\" y=\"-198.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=\"M243.5,-122.41C242.57,-132.09 244.23,-141 248.5,-141 251.63,-141 253.36,-136.19 253.69,-129.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"253.5,-122.41 256.83,-129.33 253.59,-125.91 253.68,-129.41 253.68,-129.41 253.68,-129.41 253.59,-125.91 250.53,-129.49 253.5,-122.41 253.5,-122.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"240.5\" y=\"-144.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=\"M240.96,-121.6C235.27,-142.86 237.78,-171 248.5,-171 258.09,-171 261.11,-148.49 257.56,-128.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.04,-121.6 260.62,-127.75 256.79,-125.01 257.55,-128.43 257.55,-128.43 257.55,-128.43 256.79,-125.01 254.47,-129.11 256.04,-121.6 256.04,-121.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M262.06,-30.73C281.62,-50.56 319.39,-88.85 341.57,-111.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"346.59,-116.42 339.43,-113.64 344.13,-113.92 341.67,-111.43 341.67,-111.43 341.67,-111.43 344.13,-113.92 343.91,-109.22 346.59,-116.42 346.59,-116.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"287\" y=\"-96.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=\"M238.93,-33.54C236.23,-43.91 239.42,-54 248.5,-54 255.45,-54 258.95,-48.08 259,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"258.07,-33.54 262.1,-40.08 258.53,-37.01 258.98,-40.48 258.98,-40.48 258.98,-40.48 258.53,-37.01 255.85,-40.89 258.07,-33.54 258.07,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" 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 0x7f529a7caa50> >"
|
|
]
|
|
},
|
|
"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=\"386pt\" height=\"276pt\"\n",
|
|
" viewBox=\"0.00 0.00 386.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 382,-272 382,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"168\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"190\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" 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=\"123.5\" 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=\"360\" cy=\"-129\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"360\" 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.49,-120.89C158.32,-145.98 187.11,-193.85 228,-213 273.19,-234.16 321.36,-181.07 344.69,-149.85\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"349.01,-143.93 347.43,-151.44 347.35,-147.05 345.29,-149.87 344.88,-149.58 344.48,-149.28 346.55,-146.46 342.34,-147.72 349.01,-143.93 349.01,-143.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" 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=\"248.5\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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.11,-105C173.32,-105 202.31,-105 222.96,-105\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"230.15,-105 223.15,-108.15 226.65,-105 223.15,-105 223.15,-105 223.15,-105 226.65,-105 223.15,-101.85 230.15,-105 230.15,-105\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174.5\" 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=\"248.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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.87,-93.98C171.2,-78.62 206.34,-50.7 228.22,-33.32\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"233.74,-28.93 230.22,-35.75 231,-31.11 228.26,-33.28 228.26,-33.28 228.26,-33.28 231,-31.11 226.3,-30.82 233.74,-28.93 233.74,-28.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-79.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=\"#e31a1c\" stroke-width=\"2\" d=\"M355.18,-146.41C354.28,-156.09 355.89,-165 360,-165 363.02,-165 364.69,-160.19 365.01,-153.81\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"364.82,-146.41 368.15,-153.33 365.41,-149.9 365.5,-153.4 365,-153.41 364.5,-153.42 364.41,-149.92 361.85,-153.49 364.82,-146.41 364.82,-146.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353.5\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"352\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.73,-145.6C347.24,-166.86 349.66,-195 360,-195 369.25,-195 372.16,-172.49 368.74,-152.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"367.27,-145.6 371.81,-151.79 368,-149.02 368.73,-152.44 368.73,-152.44 368.73,-152.44 368,-149.02 365.64,-153.1 367.27,-145.6 367.27,-145.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"355.5\" y=\"-198.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=\"M243.5,-122.41C242.57,-132.09 244.23,-141 248.5,-141 251.63,-141 253.36,-136.19 253.69,-129.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"253.5,-122.41 256.83,-129.33 253.59,-125.91 253.68,-129.41 253.68,-129.41 253.68,-129.41 253.59,-125.91 250.53,-129.49 253.5,-122.41 253.5,-122.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"240.5\" y=\"-144.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=\"M240.96,-121.6C235.27,-142.86 237.78,-171 248.5,-171 258.09,-171 261.11,-148.49 257.56,-128.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.04,-121.6 260.62,-127.75 256.79,-125.01 257.55,-128.43 257.55,-128.43 257.55,-128.43 256.79,-125.01 254.47,-129.11 256.04,-121.6 256.04,-121.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M262.06,-30.73C281.62,-50.56 319.39,-88.85 341.57,-111.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"346.59,-116.42 339.43,-113.64 344.13,-113.92 341.67,-111.43 341.67,-111.43 341.67,-111.43 344.13,-113.92 343.91,-109.22 346.59,-116.42 346.59,-116.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"287\" y=\"-96.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=\"M238.93,-33.54C236.23,-43.91 239.42,-54 248.5,-54 255.45,-54 258.95,-48.08 259,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"258.07,-33.54 262.1,-40.08 258.53,-37.01 258.98,-40.48 258.98,-40.48 258.98,-40.48 258.53,-37.01 255.85,-40.89 258.07,-33.54 258.07,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" 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 0x7f529a7caa50> >"
|
|
]
|
|
},
|
|
"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=\"639pt\" height=\"360pt\"\n",
|
|
" viewBox=\"0.00 0.00 638.68 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 989.5,-556 989.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"348.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">(Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"373.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"389.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"432.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"448.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"491.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"507.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">)) | Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"550.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"566.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\">)) & Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"616.75\" y=\"-537.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"632.75\" 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=\"35.5\" 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=\"164.5\" cy=\"-368\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"164.5\" 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.08,-207.01C85.02,-238.31 128.8,-310.65 150.63,-346.73\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"154.44,-353.03 148.12,-348.67 152.2,-350.3 150.39,-347.3 150.82,-347.04 151.25,-346.78 153.06,-349.78 153.51,-345.41 154.44,-353.03 154.44,-353.03\"/>\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=\"101\" 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=\"276\" cy=\"-192\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"276\" 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.52,-187.53C90.91,-183.08 119.14,-176.54 144,-174 181.78,-170.13 225.44,-178.78 251.61,-185.38\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"258.5,-187.18 250.93,-188.46 255.11,-186.3 251.73,-185.42 251.73,-185.42 251.73,-185.42 255.11,-186.3 252.52,-182.37 258.5,-187.18 258.5,-187.18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"146\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"148.5\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"164.5\" 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=\"M174.84,-352.99C194.31,-321.69 239.32,-249.35 261.77,-213.27\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"265.69,-206.97 264.66,-214.58 263.84,-209.94 261.99,-212.91 261.99,-212.91 261.99,-212.91 263.84,-209.94 259.32,-211.25 265.69,-206.97 265.69,-206.97\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"203\" 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=\"746.5\" cy=\"-296\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"746.5\" 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=\"M182.04,-363.3C203.35,-357.68 241.62,-349 275,-349 275,-349 275,-349 444.5,-349 549.44,-349 671.88,-317.37 722.16,-302.98\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"729.04,-300.99 723.19,-305.96 725.82,-302.44 722.45,-303.41 722.31,-302.93 722.18,-302.45 725.54,-301.48 721.44,-299.91 729.04,-300.99 729.04,-300.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"425\" 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=\"858\" cy=\"-362\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"858\" 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=\"M170.78,-385.13C182.9,-420.64 216.31,-499 275,-499 275,-499 275,-499 747.5,-499 804.69,-499 836.9,-425.26 850,-385.98\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"852.23,-379.07 853.08,-386.7 851.16,-382.41 850.08,-385.74 850.08,-385.74 850.08,-385.74 851.16,-382.41 847.08,-384.77 852.23,-379.07 852.23,-379.07\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"495\" y=\"-517.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"504\" 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=\"M258.06,-194.74C233.1,-198.45 184.99,-204.35 144,-202 122.62,-200.78 98.42,-197.87 80.99,-195.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"73.95,-194.53 81.32,-192.37 77.42,-195.01 80.89,-195.49 80.89,-195.49 80.89,-195.49 77.42,-195.01 80.46,-198.61 73.95,-194.53 73.95,-194.53\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"144\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"156.5\" 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=\"389\" cy=\"-192\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"389\" 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=\"M294.34,-192C313,-192 342.8,-192 363.76,-192\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"370.78,-192 363.78,-195.15 367.28,-192 363.78,-192 363.78,-192 363.78,-192 367.28,-192 363.78,-188.85 370.78,-192 370.78,-192\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"312\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"324.5\" 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=\"M733.51,-309.28C730.91,-312.38 728.27,-315.73 726,-319 716.68,-332.4 719.82,-339.75 708,-351 682.09,-375.67 671.78,-387 636,-387 275,-387 275,-387 275,-387 245.01,-387 211.07,-380 189.04,-374.49\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"182.04,-372.7 189.6,-371.39 185.56,-373.08 188.95,-373.95 188.82,-374.44 188.7,-374.92 185.31,-374.05 188.04,-377.49 182.04,-372.7 182.04,-372.7\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"425\" y=\"-405.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"435.5\" 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=\"M764.43,-298.02C780.4,-300.57 804.44,-306.17 822,-318 830.64,-323.82 838.17,-332.45 844,-340.52\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"848.12,-346.53 841.56,-342.53 846.14,-343.64 844.16,-340.75 844.16,-340.75 844.16,-340.75 846.14,-343.64 846.76,-338.97 848.12,-346.53 848.12,-346.53\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"786.5\" y=\"-336.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"795.5\" 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=\"M845.78,-375.69C827.52,-396.32 789.19,-433 747.5,-433 275,-433 275,-433 275,-433 237.86,-433 202.31,-405.01 182.26,-385.77\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"177.26,-380.84 184.46,-383.51 179.76,-383.3 182.25,-385.76 182.25,-385.76 182.25,-385.76 179.76,-383.3 180.04,-388 177.26,-380.84 177.26,-380.84\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"491.5\" y=\"-451.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"504\" 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=\"967\" cy=\"-284\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"967\" 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=\"M872.99,-351.8C891.65,-338.2 924.81,-314.02 946.08,-298.52\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"952.01,-294.2 948.21,-300.87 949.18,-296.26 946.35,-298.32 946.35,-298.32 946.35,-298.32 949.18,-296.26 944.5,-295.78 952.01,-294.2 952.01,-294.2\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"894\" 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=\"635\" cy=\"-238\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"635\" 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=\"M647.32,-251.34C663.32,-269.52 694.16,-302.19 726,-323 749.84,-338.58 757.76,-339.68 785,-348 800.66,-352.78 818.75,-356.29 832.89,-358.6\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"839.88,-359.7 832.48,-361.73 836.42,-359.16 832.96,-358.61 832.96,-358.61 832.96,-358.61 836.42,-359.16 833.45,-355.5 839.88,-359.7 839.88,-359.7\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"726\" y=\"-360.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"738.5\" 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=\"M625.77,-253.54C623.17,-263.91 626.25,-274 635,-274 641.7,-274 645.08,-268.08 645.12,-260.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"644.23,-253.54 648.23,-260.1 644.67,-257.01 645.1,-260.49 645.1,-260.49 645.1,-260.49 644.67,-257.01 641.98,-260.88 644.23,-253.54 644.23,-253.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"618\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"627\" 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=\"M617.65,-243.5C599.8,-249.19 570.24,-257.7 544,-261 515.78,-264.55 508.09,-265.48 480,-261 454.6,-256.95 445.59,-258.42 425,-243 415.13,-235.61 407.07,-224.58 401.19,-214.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"397.63,-208.37 403.81,-212.93 399.35,-211.42 401.07,-214.47 401.07,-214.47 401.07,-214.47 399.35,-211.42 398.33,-216.02 397.63,-208.37 397.63,-208.37\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"493.5\" y=\"-281.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"496\" y=\"-267.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"512\" 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=\"M653.28,-240.41C708.08,-248.05 878.1,-271.75 941.68,-280.61\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"948.89,-281.62 941.53,-283.77 945.43,-281.13 941.96,-280.65 941.96,-280.65 941.96,-280.65 945.43,-281.13 942.4,-277.53 948.89,-281.62 948.89,-281.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"785\" 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=\"M400,-177.41C414.87,-156.94 444.87,-120.19 480,-102 527.56,-77.38 551.6,-58.07 599,-83 676.46,-123.73 720.91,-225.99 737.7,-272.41\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"740.07,-279.11 734.76,-273.56 738.9,-275.81 737.73,-272.51 737.73,-272.51 737.73,-272.51 738.9,-275.81 740.7,-271.46 740.07,-279.11 740.07,-279.11\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"562\" 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=\"M405.37,-199.6C411.37,-202.3 418.38,-205.13 425,-207 459.42,-216.75 562.73,-229.64 609.96,-235.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"617.04,-236.06 609.72,-238.37 613.57,-235.65 610.09,-235.24 610.09,-235.24 610.09,-235.24 613.57,-235.65 610.46,-232.11 617.04,-236.06 617.04,-236.06\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"495\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"480\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"496\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"512\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"528\" 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=\"512\" cy=\"-129\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"512\" 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=\"M405.32,-184.02C426.6,-172.94 465.19,-152.85 489.38,-140.25\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"495.8,-136.91 491.05,-142.94 492.7,-138.53 489.59,-140.15 489.59,-140.15 489.59,-140.15 492.7,-138.53 488.14,-137.35 495.8,-136.91 495.8,-136.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"426.5\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"435.5\" 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=\"M948.93,-284.94C910.4,-287.05 816.54,-292.21 771.88,-294.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"764.65,-295.06 771.46,-291.53 768.14,-294.87 771.63,-294.67 771.63,-294.67 771.63,-294.67 768.14,-294.87 771.81,-297.82 764.65,-295.06 764.65,-295.06\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"841\" 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=\"M957.77,-299.54C955.17,-309.91 958.25,-320 967,-320 973.7,-320 977.08,-314.08 977.12,-306.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"976.23,-299.54 980.23,-306.1 976.67,-303.01 977.1,-306.49 977.1,-306.49 977.1,-306.49 976.67,-303.01 973.98,-306.88 976.23,-299.54 976.23,-299.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"948.5\" y=\"-337.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"951\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"967\" 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=\"M528.24,-136.94C546.47,-146.94 577.26,-165.44 599,-187 607.76,-195.69 615.7,-206.84 621.8,-216.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"625.53,-222.6 619.19,-218.27 623.7,-219.61 621.87,-216.63 621.87,-216.63 621.87,-216.63 623.7,-219.61 624.56,-214.98 625.53,-222.6 625.53,-222.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"562\" y=\"-204.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"564.5\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"580.5\" 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=\"M500.76,-143.42C496.83,-154.17 500.58,-165 512,-165 520.92,-165 525.16,-158.39 524.72,-150.37\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"523.24,-143.42 527.78,-149.61 523.97,-146.84 524.7,-150.26 524.7,-150.26 524.7,-150.26 523.97,-146.84 521.61,-150.92 523.24,-143.42 523.24,-143.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"491.5\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"496\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"512\" 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=\"635\" cy=\"-37\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"635\" 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=\"M529.99,-127.47C548.76,-124.99 578.97,-118.55 599,-102 611.87,-91.36 620.71,-74.72 626.28,-60.93\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"628.9,-54.03 629.36,-61.7 627.66,-57.31 626.42,-60.58 626.42,-60.58 626.42,-60.58 627.66,-57.31 623.47,-59.46 628.9,-54.03 628.9,-54.03\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"562\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"572.5\" y=\"-124.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=\"M618.79,-29.15C596.3,-18.29 552.54,0 513,0 163.5,0 163.5,0 163.5,0 88.11,0 65.64,-114.59 59.32,-166.72\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"58.5,-173.94 56.16,-166.63 58.9,-170.46 59.29,-166.98 59.29,-166.98 59.29,-166.98 58.9,-170.46 62.42,-167.34 58.5,-173.94 58.5,-173.94\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"315.5\" 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=\"M616.97,-37.96C580.3,-40.56 491.81,-49.73 425,-80 372.11,-103.96 320.36,-149.67 294.34,-174.65\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"289.19,-179.65 292.02,-172.52 291.7,-177.21 294.21,-174.78 294.21,-174.78 294.21,-174.78 291.7,-177.21 296.4,-177.04 289.19,-179.65 289.19,-179.65\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"425\" y=\"-98.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"435.5\" 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=\"M652.47,-32.02C668.66,-28.25 693.05,-25.7 708,-39 742.09,-69.31 745.72,-212.27 745.74,-270.86\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"745.73,-277.9 742.59,-270.89 745.73,-274.4 745.74,-270.9 745.74,-270.9 745.74,-270.9 745.73,-274.4 748.89,-270.91 745.73,-277.9 745.73,-277.9\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"671\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"681.5\" 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 0x7f5299fa0bd0> >"
|
|
]
|
|
},
|
|
"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=\"734pt\" height=\"214pt\"\n",
|
|
" viewBox=\"0.00 0.00 734.00 213.97\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.6756756756756757 0.6756756756756757) rotate(0) translate(4 312)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-312 1080,-312 1080,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"361\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"386\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
|
|
"<text text-anchor=\"start\" x=\"402\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">) & ((Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"456\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"472\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"519\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"535\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">) | Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"572\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"588\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">))) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"639\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"655\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">)|Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"687\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"703\" 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=\"285.5\" cy=\"-104\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"285.5\" 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.29,-163.74C87,-150.3 117.11,-128.34 147,-118 185.09,-104.82 232.4,-102.91 260.43,-103.15\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"267.46,-103.26 260.41,-106.3 263.95,-103.71 260.45,-103.65 260.46,-103.15 260.47,-102.65 263.97,-102.71 260.51,-100 267.46,-103.26 267.46,-103.26\"/>\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=\"157\" 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=\"165\" cy=\"-175\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"165\" 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.19,-175C91.9,-175 119.65,-175 139.62,-175\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"146.85,-175 139.85,-178.15 143.35,-175 139.85,-175 139.85,-175 139.85,-175 143.35,-175 139.85,-171.85 146.85,-175 146.85,-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.5\" 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=\"395.5\" cy=\"-67\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"395.5\" 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=\"M302.9,-98.38C321.17,-92.12 350.82,-81.96 371.42,-74.91\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"378.3,-72.55 372.7,-77.8 375.15,-74.16 371.84,-75.29 371.67,-74.82 371.51,-74.35 374.82,-73.21 370.65,-71.84 378.3,-72.55 378.3,-72.55\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"322\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"324.5\" y=\"-93.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"340.5\" 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=\"M176.8,-160.93C183.18,-153.35 191.8,-144.29 201,-138 211.16,-131.05 240.33,-119.81 261.34,-112.18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"268.11,-109.74 262.59,-115.07 264.81,-110.92 261.52,-112.11 261.52,-112.11 261.52,-112.11 264.81,-110.92 260.45,-109.15 268.11,-109.74 268.11,-109.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"206.5\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"201\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"217\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"233\" 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=\"608\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"608\" 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=\"M183.26,-176.18C206.32,-177.66 248.47,-180 284.5,-180 284.5,-180 284.5,-180 503,-180 530.3,-180 561.62,-180 582.7,-180\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"589.7,-180 582.7,-183.15 586.2,-180 582.7,-180 582.7,-180 582.7,-180 586.2,-180 582.7,-176.85 589.7,-180 589.7,-180\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"377\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"387.5\" 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=\"827.5\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"827.5\" 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=\"948.5\" cy=\"-131\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"948.5\" 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=\"M845.65,-178.83C863.14,-177.07 890.66,-172.71 912,-162 918.69,-158.64 925.13,-153.72 930.65,-148.79\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"935.84,-143.91 932.9,-151 933.29,-146.31 930.74,-148.71 930.74,-148.71 930.74,-148.71 933.29,-146.31 928.58,-146.41 935.84,-143.91 935.84,-143.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"869.5\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"864\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"880\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"896\" 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=\"M931.05,-125.81C913.39,-121.25 885.04,-116.89 864,-128 852.39,-134.13 843.86,-145.95 838.08,-156.77\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"834.83,-163.32 835.12,-155.65 836.39,-160.19 837.94,-157.05 837.94,-157.05 837.94,-157.05 836.39,-160.19 840.76,-158.45 834.83,-163.32 834.83,-163.32\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"871\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"880\" 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=\"M936.18,-117.59C916.61,-96.02 874.17,-56 828.5,-56 501,-56 501,-56 501,-56 473.26,-56 441.6,-59.88 420.47,-63.03\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"413.46,-64.11 419.9,-59.93 416.92,-63.58 420.38,-63.05 420.38,-63.05 420.38,-63.05 416.92,-63.58 420.85,-66.16 413.46,-64.11 413.46,-64.11\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"644\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"646.5\" y=\"-59.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"662.5\" 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=\"1058\" cy=\"-203\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1058\" 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=\"M964,-140.71C982.78,-153.29 1015.61,-175.28 1036.82,-189.48\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1042.73,-193.44 1035.16,-192.17 1039.82,-191.5 1036.92,-189.55 1036.92,-189.55 1036.92,-189.55 1039.82,-191.5 1038.67,-186.93 1042.73,-193.44 1042.73,-193.44\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"985\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"995.5\" 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=\"717.5\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"717.5\" 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=\"M735.85,-180C753.8,-180 781.98,-180 802.15,-180\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"809.19,-180 802.19,-183.15 805.69,-180 802.19,-180 802.19,-180 802.19,-180 805.69,-180 802.19,-176.85 809.19,-180 809.19,-180\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"754\" 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=\"M386.52,-82.92C384.18,-93.15 387.17,-103 395.5,-103 401.88,-103 405.13,-97.23 405.25,-89.93\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"404.48,-82.92 408.37,-89.53 405.36,-86.34 405.74,-89.82 405.24,-89.87 404.74,-89.93 404.36,-86.45 402.11,-90.22 404.48,-82.92 404.48,-82.92\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"377\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"387.5\" 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=\"502\" cy=\"-123\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"502\" 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=\"M411.92,-75.26C429.85,-84.87 459.55,-100.79 479.68,-111.58\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"485.86,-114.89 478.2,-114.36 482.77,-113.23 479.69,-111.58 479.69,-111.58 479.69,-111.58 482.77,-113.23 481.18,-108.8 485.86,-114.89 485.86,-114.89\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"432\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"433\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"449\" 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=\"M494.79,-139.97C481.86,-171.96 448.84,-238 396.5,-238 164,-238 164,-238 164,-238 129.5,-238 120.91,-227.82 92,-209 85.4,-204.7 78.97,-199.04 73.47,-193.57\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"68.3,-188.23 75.43,-191.07 70.73,-190.74 73.16,-193.26 73.16,-193.26 73.16,-193.26 70.73,-190.74 70.9,-195.45 68.3,-188.23 68.3,-188.23\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"267\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"269.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"285.5\" 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=\"M520.08,-121.87C525.78,-121.53 532.16,-121.2 538,-121 682.81,-115.98 719.1,-117.89 864,-117 885.33,-116.87 891.04,-113.02 912,-117 916.44,-117.84 921.04,-119.23 925.39,-120.82\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"931.98,-123.41 924.31,-123.78 928.72,-122.13 925.46,-120.85 925.46,-120.85 925.46,-120.85 928.72,-122.13 926.62,-117.92 931.98,-123.41 931.98,-123.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"699\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"709.5\" y=\"-120.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=\"M520.05,-122.96C534.78,-123.64 556.13,-126.43 572,-136 581.06,-141.46 588.72,-150.18 594.54,-158.43\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"598.63,-164.58 592.13,-160.49 596.69,-161.66 594.76,-158.75 594.76,-158.75 594.76,-158.75 596.69,-161.66 597.38,-157 598.63,-164.58 598.63,-164.58\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"538\" y=\"-154.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"547\" 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=\"M626.27,-180C644.14,-180 672.19,-180 692.27,-180\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"699.27,-180 692.27,-183.15 695.77,-180 692.27,-180 692.27,-180 692.27,-180 695.77,-180 692.27,-176.85 699.27,-180 699.27,-180\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"645.5\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"654.5\" 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=\"M617.78,-195.27C633.83,-220.94 670.5,-270 716.5,-270 716.5,-270 716.5,-270 949.5,-270 986.44,-270 1021.19,-241.15 1040.72,-221.31\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1045.58,-216.24 1043.01,-223.47 1043.16,-218.76 1040.74,-221.29 1040.74,-221.29 1040.74,-221.29 1043.16,-218.76 1038.46,-219.11 1045.58,-216.24 1045.58,-216.24\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"809\" 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=\"M1040.35,-207.37C1006.1,-215.52 925.8,-230.3 864,-208 857.49,-205.65 851.26,-201.6 845.88,-197.3\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"840.41,-192.6 847.77,-194.77 843.07,-194.88 845.72,-197.16 845.72,-197.16 845.72,-197.16 843.07,-194.88 843.67,-199.55 840.41,-192.6 840.41,-192.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"930\" 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=\"M1055.89,-184.99C1051.76,-135.3 1032.85,0 949.5,0 501,0 501,0 501,0 465.15,0 431.76,-28.29 412.78,-48.11\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"407.82,-53.44 410.28,-46.17 410.2,-50.88 412.58,-48.32 412.58,-48.32 412.58,-48.32 410.2,-50.88 414.89,-50.46 407.82,-53.44 407.82,-53.44\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"699\" y=\"-17.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"701.5\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"717.5\" 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 0x7f5299fa0bd0> >"
|
|
]
|
|
},
|
|
"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=\"516pt\" height=\"285pt\"\n",
|
|
" viewBox=\"0.00 0.00 516.24 285.27\" 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 281.27)\">\n",
|
|
"<title>i G F a G F b</title>\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-281.27 512.24,-281.27 512.24,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"137.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\">(Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"165.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"181.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"224.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"240.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\">)) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"287.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"303.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"346.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"362.62\" y=\"-263.07\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
|
|
"<text text-anchor=\"start\" x=\"225.12\" y=\"-249.07\" 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",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"64.87\" cy=\"-55.27\" rx=\"26.74\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"60.37\" y=\"-59.07\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"56.87\" y=\"-44.07\" 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.05,-55.27C1.95,-55.27 16.07,-55.27 30.7,-55.27\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.86,-55.27 30.86,-58.42 34.36,-55.27 30.86,-55.27 30.86,-55.27 30.86,-55.27 34.36,-55.27 30.86,-52.12 37.86,-55.27 37.86,-55.27\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M56.67,-81.09C56.21,-91.45 58.94,-100.14 64.87,-100.14 69.32,-100.14 71.97,-95.25 72.82,-88.44\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"73.07,-81.09 75.98,-88.19 72.95,-84.59 72.83,-88.09 72.83,-88.09 72.83,-88.09 72.95,-84.59 69.68,-87.98 73.07,-81.09 73.07,-81.09\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"46.37\" y=\"-103.94\" 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=\"195.61\" cy=\"-152.27\" rx=\"26.74\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"191.11\" y=\"-156.07\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"187.61\" y=\"-141.07\" 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=\"M74.66,-80.38C81.69,-96.9 93.14,-117.71 109.74,-130.27 124.61,-141.52 144.68,-147.04 161.57,-149.74\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"168.59,-150.73 161.22,-152.87 165.06,-150.74 161.59,-150.25 161.66,-149.75 161.73,-149.26 165.2,-149.75 162.1,-146.63 168.59,-150.73 168.59,-150.73\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"109.74\" y=\"-150.07\" 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",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"474.3\" cy=\"-79.27\" rx=\"33.88\" ry=\"33.88\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"469.8\" y=\"-83.07\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
|
"<text text-anchor=\"start\" x=\"458.3\" y=\"-69.07\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"474.3\" y=\"-69.07\" 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=\"M90.15,-45.71C96.44,-43.58 103.27,-41.58 109.74,-40.27 221.99,-17.62 255.03,-14.04 367.36,-36.27 391.5,-41.05 417.11,-51.28 437.1,-60.57\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"443.66,-63.67 435.98,-63.52 440.49,-62.18 437.33,-60.68 437.33,-60.68 437.33,-60.68 440.49,-62.18 438.68,-57.83 443.66,-63.67 443.66,-63.67\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"242.48\" y=\"-27.07\" 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=\"333.42\" cy=\"-79.27\" rx=\"33.88\" ry=\"33.88\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"328.92\" y=\"-83.07\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
|
"<text text-anchor=\"start\" x=\"317.42\" y=\"-69.07\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"333.42\" y=\"-69.07\" 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=\"M91.91,-57.61C138.55,-61.81 236.62,-70.64 292.04,-75.63\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"299.24,-76.28 291.98,-78.79 295.75,-75.97 292.27,-75.65 292.27,-75.65 292.27,-75.65 295.75,-75.97 292.55,-72.52 299.24,-76.28 299.24,-76.28\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"178.61\" y=\"-73.07\" 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=\"M176.52,-132.89C169,-125.53 159.91,-117.44 150.74,-111.27 134.08,-100.05 126.68,-103.06 109.74,-92.27 103.18,-88.09 96.54,-83.02 90.48,-77.98\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"85.09,-73.4 92.46,-75.54 87.76,-75.67 90.42,-77.94 90.42,-77.94 90.42,-77.94 87.76,-75.67 88.38,-80.34 85.09,-73.4 85.09,-73.4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"111.74\" y=\"-115.07\" 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=\"M183.8,-176.73C182.67,-187.67 186.61,-197.14 195.61,-197.14 202.5,-197.14 206.42,-191.59 207.38,-184.08\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"207.42,-176.73 210.53,-183.75 207.9,-180.23 207.88,-183.73 207.38,-183.73 206.88,-183.73 206.9,-180.23 204.23,-183.71 207.42,-176.73 207.42,-176.73\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175.11\" y=\"-200.94\" 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=\"M212.24,-173.53C219.76,-182.11 229.53,-191.17 240.48,-196.27 313.76,-230.39 356.83,-243.59 422.36,-196.27 447.09,-178.41 459.96,-145.91 466.57,-119.69\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"468.19,-112.83 469.64,-120.37 467.39,-116.24 466.58,-119.64 466.58,-119.64 466.58,-119.64 467.39,-116.24 463.51,-118.92 468.19,-112.83 468.19,-112.83\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"314.92\" y=\"-230.07\" 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=\"M222.46,-149.21C240.01,-146.28 263.25,-140.7 281.48,-130.27 290.57,-125.07 299.16,-117.82 306.61,-110.41\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"311.57,-105.28 308.97,-112.5 309.14,-107.8 306.7,-110.31 306.7,-110.31 306.7,-110.31 309.14,-107.8 304.44,-108.12 311.57,-105.28 311.57,-105.28\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"243.98\" y=\"-149.07\" 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=\"M449.37,-56.15C441.29,-49.31 431.89,-42.31 422.36,-37.27 365.42,-7.17 345.55,-9.91 281.48,-3.27 204.69,4.69 181.84,-1.67 109.74,-29.27 104.39,-31.32 98.95,-33.99 93.79,-36.84\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"87.45,-40.52 91.93,-34.28 90.48,-38.76 93.51,-37.01 93.51,-37.01 93.51,-37.01 90.48,-38.76 95.09,-39.73 87.45,-40.52 87.45,-40.52\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"242.48\" y=\"-7.07\" 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=\"M448.96,-102.44C428.78,-120.14 398.46,-143.44 367.36,-155.27 314.52,-175.36 296.51,-171.79 240.48,-164.27 236.57,-163.74 232.51,-162.97 228.51,-162.05\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"221.43,-160.29 228.98,-158.93 224.82,-161.14 228.22,-161.98 228.22,-161.98 228.22,-161.98 224.82,-161.14 227.46,-165.04 221.43,-160.29 221.43,-160.29\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"312.92\" y=\"-173.07\" 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=\"M461.19,-110.71C460.91,-122 465.28,-131.21 474.3,-131.21 481.35,-131.21 485.56,-125.59 486.93,-117.75\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"487.42,-110.71 490.08,-117.91 487.18,-114.2 486.94,-117.7 486.94,-117.7 486.94,-117.7 487.18,-114.2 483.79,-117.48 487.42,-110.71 487.42,-110.71\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"455.8\" y=\"-135.01\" 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=\"M440.31,-79.27C420.69,-79.27 395.65,-79.27 374.85,-79.27\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"367.69,-79.27 374.69,-76.12 371.19,-79.27 374.69,-79.27 374.69,-79.27 374.69,-79.27 371.19,-79.27 374.69,-82.42 367.69,-79.27 367.69,-79.27\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"386.86\" y=\"-83.07\" 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=\"M301.22,-67.25C279.51,-59.54 249.69,-50.27 222.48,-46.27 180.07,-40.04 130.62,-44.87 98.81,-49.52\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"91.51,-50.63 97.96,-46.46 94.97,-50.1 98.43,-49.58 98.43,-49.58 98.43,-49.58 94.97,-50.1 98.9,-52.69 91.51,-50.63 91.51,-50.63\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"177.11\" y=\"-50.07\" 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=\"M300.34,-86.88C281.98,-92.09 259,-100.09 240.48,-111.27 233.09,-115.73 225.89,-121.6 219.53,-127.49\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"214.4,-132.42 217.27,-125.3 216.93,-130 219.45,-127.57 219.45,-127.57 219.45,-127.57 216.93,-130 221.63,-129.84 214.4,-132.42 214.4,-132.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"240.48\" y=\"-115.07\" 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=\"M364.95,-66.6C371.57,-64.39 378.61,-62.43 385.36,-61.27 401.57,-58.49 406.15,-58.49 422.36,-61.27 426.79,-62.03 431.35,-63.13 435.83,-64.43\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"442.77,-66.6 435.15,-67.52 439.43,-65.56 436.09,-64.51 436.09,-64.51 436.09,-64.51 439.43,-65.56 437.03,-61.51 442.77,-66.6 442.77,-66.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"385.36\" y=\"-65.07\" 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=\"M320.31,-110.71C320.03,-122 324.4,-131.21 333.42,-131.21 340.47,-131.21 344.68,-125.59 346.05,-117.75\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"346.53,-110.71 349.2,-117.91 346.29,-114.2 346.05,-117.7 346.05,-117.7 346.05,-117.7 346.29,-114.2 342.91,-117.48 346.53,-110.71 346.53,-110.71\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"316.42\" y=\"-135.01\" 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 0x7f5299fa0e10> >"
|
|
]
|
|
},
|
|
"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=\"171pt\" height=\"125pt\"\n",
|
|
" viewBox=\"0.00 0.00 171.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 167,-120.8 167,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"58.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[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=\"37.5\" 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=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">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.2,-22C85.07,-22 99.39,-22 111.89,-22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"119,-22 112,-25.15 115.5,-22 112,-22 112,-22 112,-22 115.5,-22 112,-18.85 119,-22 119,-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=\"M132.99,-42.58C131.89,-52.84 134.55,-62 141,-62 145.83,-62 148.54,-56.85 149.13,-49.95\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"149.01,-42.58 152.27,-49.53 149.06,-46.08 149.12,-49.58 149.12,-49.58 149.12,-49.58 149.06,-46.08 145.97,-49.63 149.01,-42.58 149.01,-42.58\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"141\" 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 0x7f5299f828a0> >"
|
|
]
|
|
},
|
|
"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\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"38\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"54\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"14\" 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 0x7f5299f82b40> >"
|
|
]
|
|
},
|
|
"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=\"227pt\" height=\"164pt\"\n",
|
|
" viewBox=\"0.00 0.00 227.00 164.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 160.5)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.5 223,-160.5 223,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"88.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"110.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"126.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"86.5\" y=\"-128.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=\"65\" cy=\"-21.5\" rx=\"27\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"55\" y=\"-17.8\" 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.05,-21.5C1.95,-21.5 16.1,-21.5 30.76,-21.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-21.5 30.94,-24.65 34.44,-21.5 30.94,-21.5 30.94,-21.5 30.94,-21.5 34.44,-21.5 30.94,-18.35 37.94,-21.5 37.94,-21.5\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M57.14,-38.91C55.68,-48.58 58.3,-57.5 65,-57.5 69.92,-57.5 72.64,-52.69 73.16,-46.3\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"72.86,-38.91 76.29,-45.77 73,-42.4 73.14,-45.9 73.14,-45.9 73.14,-45.9 73,-42.4 70,-46.03 72.86,-38.91 72.86,-38.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"46.5\" y=\"-61.3\" 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=\"192\" cy=\"-21.5\" rx=\"27\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"182\" y=\"-17.8\" 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=\"M92.2,-21.5C111.29,-21.5 137.28,-21.5 157.82,-21.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"164.83,-21.5 157.83,-24.65 161.33,-21.5 157.83,-21.5 157.83,-21.5 157.83,-21.5 161.33,-21.5 157.83,-18.35 164.83,-21.5 164.83,-21.5\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"110\" y=\"-25.3\" 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=\"M86.91,-10.4C94.03,-7.19 102.18,-4.11 110,-2.5 126.1,0.83 130.9,0.83 147,-2.5 152.5,-3.63 158.16,-5.49 163.51,-7.61\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"170.09,-10.4 162.41,-10.57 166.87,-9.04 163.64,-7.67 163.64,-7.67 163.64,-7.67 166.87,-9.04 164.88,-4.77 170.09,-10.4 170.09,-10.4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"111.5\" y=\"-6.3\" 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=\"M186.43,-39.28C185.48,-48.81 187.34,-57.5 192,-57.5 195.42,-57.5 197.33,-52.81 197.73,-46.55\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"197.57,-39.28 200.88,-46.21 197.65,-42.78 197.73,-46.28 197.73,-46.28 197.73,-46.28 197.65,-42.78 194.58,-46.35 197.57,-39.28 197.57,-39.28\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"186.5\" y=\"-61.3\" 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=\"M182.93,-38.64C177.59,-56.08 180.62,-75.5 192,-75.5 201.87,-75.5 205.46,-60.9 202.75,-45.64\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"201.07,-38.64 205.77,-44.71 201.89,-42.04 202.71,-45.44 202.71,-45.44 202.71,-45.44 201.89,-42.04 199.64,-46.18 201.07,-38.64 201.07,-38.64\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"188.5\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"184\" y=\"-79.3\" 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 0x7f529a7cad20> >"
|
|
]
|
|
},
|
|
"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=\"227pt\" height=\"164pt\"\n",
|
|
" viewBox=\"0.00 0.00 227.00 164.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 160.5)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.5 223,-160.5 223,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"88.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"110.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"126.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"86.5\" y=\"-128.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=\"65\" cy=\"-21.5\" rx=\"27\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"55\" y=\"-17.8\" 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.05,-21.5C1.95,-21.5 16.1,-21.5 30.76,-21.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-21.5 30.94,-24.65 34.44,-21.5 30.94,-21.5 30.94,-21.5 30.94,-21.5 34.44,-21.5 30.94,-18.35 37.94,-21.5 37.94,-21.5\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M57.14,-38.91C55.68,-48.58 58.3,-57.5 65,-57.5 69.92,-57.5 72.64,-52.69 73.16,-46.3\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"72.86,-38.91 76.29,-45.77 73,-42.4 73.14,-45.9 73.14,-45.9 73.14,-45.9 73,-42.4 70,-46.03 72.86,-38.91 72.86,-38.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"46.5\" y=\"-61.3\" 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=\"192\" cy=\"-21.5\" rx=\"27\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"182\" y=\"-17.8\" 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=\"M92.2,-21.5C111.29,-21.5 137.28,-21.5 157.82,-21.5\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"164.83,-21.5 157.83,-24.65 161.33,-22 157.83,-22 157.83,-21.5 157.83,-21 161.33,-21 157.83,-18.35 164.83,-21.5 164.83,-21.5\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"110\" y=\"-25.3\" 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=\"M86.91,-10.4C94.03,-7.19 102.18,-4.11 110,-2.5 126.1,0.83 130.9,0.83 147,-2.5 152.5,-3.63 158.16,-5.49 163.51,-7.61\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"170.09,-10.4 162.41,-10.57 166.87,-9.04 163.64,-7.67 163.64,-7.67 163.64,-7.67 166.87,-9.04 164.88,-4.77 170.09,-10.4 170.09,-10.4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"111.5\" y=\"-6.3\" 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=\"M186.43,-39.28C185.48,-48.81 187.34,-57.5 192,-57.5 195.42,-57.5 197.33,-52.81 197.73,-46.55\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"197.57,-39.28 200.88,-46.21 197.65,-42.78 197.73,-46.28 197.73,-46.28 197.73,-46.28 197.65,-42.78 194.58,-46.35 197.57,-39.28 197.57,-39.28\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"186.5\" y=\"-61.3\" 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=\"M182.93,-38.64C177.59,-56.08 180.62,-75.5 192,-75.5 201.87,-75.5 205.46,-60.9 202.75,-45.64\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"201.07,-38.64 205.77,-44.71 202.37,-41.92 203.19,-45.33 202.71,-45.44 202.22,-45.56 201.4,-42.16 199.64,-46.18 201.07,-38.64 201.07,-38.64\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"188.5\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"184\" y=\"-79.3\" 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 0x7f529a7cad20> >"
|
|
]
|
|
},
|
|
"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=\"171pt\" height=\"125pt\"\n",
|
|
" viewBox=\"0.00 0.00 171.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 167,-120.8 167,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"58.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[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=\"37.5\" 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=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">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.2,-22C85.07,-22 99.39,-22 111.89,-22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"119,-22 112,-25.15 115.5,-22.5 112,-22.5 112,-22 112,-21.5 115.5,-21.5 112,-18.85 119,-22 119,-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=\"M132.99,-42.58C131.89,-52.84 134.55,-62 141,-62 145.83,-62 148.54,-56.85 149.13,-49.95\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"149.01,-42.58 152.27,-49.53 149.56,-46.07 149.62,-49.57 149.12,-49.58 148.62,-49.59 148.56,-46.09 145.97,-49.63 149.01,-42.58 149.01,-42.58\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"141\" 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 0x7f5299f828a0> >"
|
|
]
|
|
},
|
|
"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\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"38\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"54\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"14\" 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 0x7f5299f82b40> >"
|
|
]
|
|
},
|
|
"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=\"687pt\" height=\"262pt\"\n",
|
|
" viewBox=\"0.00 0.00 686.57 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 682.57,-258 682.57,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"292.28\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"314.28\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"330.28\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">)&Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"366.28\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"382.28\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"295.28\" 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",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"68.55\" cy=\"-166\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"53.05\" 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.05,-166C1.96,-166 15.7,-166 30.46,-166\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.73,-166 30.73,-169.15 34.23,-166 30.73,-166 30.73,-166 30.73,-166 34.23,-166 30.73,-162.85 37.73,-166 37.73,-166\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"202.64\" cy=\"-193\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"187.14\" 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=\"M97.56,-171.73C117.7,-175.84 145,-181.42 166.59,-185.83\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"173.67,-187.28 166.18,-188.97 170.24,-186.58 166.81,-185.88 166.81,-185.88 166.81,-185.88 170.24,-186.58 167.44,-182.79 173.67,-187.28 173.67,-187.28\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"117.09\" y=\"-185.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=\"202.64\" cy=\"-139\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"187.14\" 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=\"M97.56,-160.27C117.7,-156.16 145,-150.58 166.59,-146.17\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"173.67,-144.72 167.44,-149.21 170.24,-145.42 166.81,-146.12 166.81,-146.12 166.81,-146.12 170.24,-145.42 166.18,-143.03 173.67,-144.72 173.67,-144.72\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"129.09\" y=\"-158.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"315.74\" cy=\"-182\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"300.24\" 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=\"M232.83,-190.11C246.75,-188.73 263.55,-187.07 278.3,-185.61\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"285.36,-184.91 278.7,-188.73 281.87,-185.25 278.39,-185.6 278.39,-185.6 278.39,-185.6 281.87,-185.25 278.08,-182.46 285.36,-184.91 285.36,-184.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"255.69\" y=\"-206.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"251.19\" 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=\"M228.57,-148.65C244.73,-154.9 265.9,-163.1 283.22,-169.8\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"289.89,-172.38 282.22,-172.79 286.62,-171.12 283.36,-169.86 283.36,-169.86 283.36,-169.86 286.62,-171.12 284.5,-166.92 289.89,-172.38 289.89,-172.38\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"255.69\" 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",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"315.74\" cy=\"-117\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"300.24\" 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=\"M225.75,-127.04C233.56,-123.42 242.55,-119.89 251.19,-118 259.86,-116.1 269.36,-115.29 278.32,-115.08\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"285.35,-115.03 278.37,-118.23 281.85,-115.06 278.35,-115.08 278.35,-115.08 278.35,-115.08 281.85,-115.06 278.33,-111.93 285.35,-115.03 285.35,-115.03\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"259.19\" 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",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"428.83\" cy=\"-171\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"413.33\" 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=\"M345.93,-179.11C359.85,-177.73 376.65,-176.07 391.4,-174.61\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"398.45,-173.91 391.8,-177.73 394.97,-174.25 391.49,-174.6 391.49,-174.6 391.49,-174.6 394.97,-174.25 391.18,-171.46 398.45,-173.91 398.45,-173.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"368.78\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"364.28\" 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=\"M339.76,-128.19C356.74,-136.44 379.98,-147.74 398.33,-156.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"404.84,-159.83 397.17,-159.6 401.69,-158.3 398.55,-156.77 398.55,-156.77 398.55,-156.77 401.69,-158.3 399.92,-153.93 404.84,-159.83 404.84,-159.83\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"368.78\" 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",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"428.83\" cy=\"-106\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"413.33\" 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=\"M344.25,-110.28C350.78,-108.95 357.75,-107.73 364.28,-107 372.85,-106.04 382.11,-105.57 390.83,-105.39\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"398.01,-105.29 391.06,-108.54 394.51,-105.34 391.01,-105.39 391.01,-105.39 391.01,-105.39 394.51,-105.34 390.97,-102.24 398.01,-105.29 398.01,-105.29\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"372.28\" 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",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"648.02\" cy=\"-120\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"632.52\" 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=\"M457.78,-164.44C497.28,-155.16 569.41,-138.23 612.3,-128.15\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"619.18,-126.54 613.08,-131.2 615.77,-127.34 612.36,-128.14 612.36,-128.14 612.36,-128.14 615.77,-127.34 611.64,-125.07 619.18,-126.54 619.18,-126.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"517.93\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"526.93\" y=\"-156.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=\"M459.57,-107.92C498.89,-110.45 568.13,-114.91 610.55,-117.65\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"617.64,-118.11 610.45,-120.8 614.14,-117.88 610.65,-117.66 610.65,-117.66 610.65,-117.66 614.14,-117.88 610.85,-114.51 617.64,-118.11 617.64,-118.11\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"517.93\" 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",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"534.93\" cy=\"-18\" rx=\"30.59\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"519.43\" 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=\"M447.02,-91.47C464.5,-76.69 491.68,-53.71 510.99,-37.39\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"516.71,-32.55 513.4,-39.48 514.04,-34.81 511.37,-37.07 511.37,-37.07 511.37,-37.07 514.04,-34.81 509.33,-34.67 516.71,-32.55 516.71,-32.55\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"477.38\" 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=\"M638.1,-137.04C636.07,-146.86 639.38,-156 648.02,-156 654.5,-156 657.98,-150.86 658.46,-144.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"657.94,-137.04 661.59,-143.79 658.2,-140.53 658.45,-144.02 658.45,-144.02 658.45,-144.02 658.2,-140.53 655.31,-144.25 657.94,-137.04 657.94,-137.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"644.52\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"632.02\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"648.02\" 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=\"M552.41,-32.99C565.26,-44.68 583.53,-61.34 599.47,-76 607.95,-83.79 617.25,-92.39 625.36,-99.9\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"630.76,-104.9 623.49,-102.46 628.19,-102.52 625.63,-100.14 625.63,-100.14 625.63,-100.14 628.19,-102.52 627.77,-97.83 630.76,-104.9 630.76,-104.9\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"587.97\" y=\"-94.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"583.47\" 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=\"M525.64,-35.41C523.91,-45.09 527,-54 534.93,-54 540.74,-54 543.96,-49.19 544.57,-42.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"544.21,-35.41 547.69,-42.25 544.38,-38.91 544.55,-42.4 544.55,-42.4 544.55,-42.4 544.38,-38.91 541.4,-42.55 544.21,-35.41 544.21,-35.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"530.43\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"526.93\" 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 0x7f5299fa0ea0> >"
|
|
]
|
|
},
|
|
"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=\"255pt\" height=\"165pt\"\n",
|
|
" viewBox=\"0.00 0.00 255.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 251,-160.8 251,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"100.5\" 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=\"225\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"225\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"225\" 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.35,-67.11C86.58,-70.97 105.79,-75.94 123,-78 139.33,-79.95 143.68,-80.01 160,-78 172.33,-76.48 185.7,-73.38 197.02,-70.3\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"203.78,-68.41 197.89,-73.33 200.54,-69.83 197.17,-70.78 197.04,-70.3 196.9,-69.82 200.27,-68.87 196.18,-67.27 203.78,-68.41 203.78,-68.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"123\" 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=\"141.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"141.5\" 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.32,-53.93C85.38,-47.05 104.31,-37.07 118.91,-29.37\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"125.28,-26.02 120.56,-32.07 122.19,-27.65 119.09,-29.28 119.09,-29.28 119.09,-29.28 122.19,-27.65 117.62,-26.5 125.28,-26.02 125.28,-26.02\"/>\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=\"M217.32,-82.99C216.37,-93.09 218.93,-102 225,-102 229.55,-102 232.13,-96.99 232.74,-90.22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"232.68,-82.99 235.88,-89.97 233.21,-86.49 233.23,-89.99 232.73,-89.99 232.23,-89.99 232.21,-86.49 229.58,-90.01 232.68,-82.99 232.68,-82.99\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"221.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=\"M157.83,-26.28C169.4,-32.52 185.52,-41.23 198.96,-48.48\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"205.31,-51.91 197.65,-51.35 202.23,-50.24 199.15,-48.58 199.15,-48.58 199.15,-48.58 202.23,-50.24 200.64,-45.81 205.31,-51.91 205.31,-51.91\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"178\" 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=\"M134.47,-34.66C132.91,-44.62 135.25,-54 141.5,-54 146.19,-54 148.68,-48.73 148.97,-41.89\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"148.53,-34.66 152.1,-41.46 148.74,-38.16 148.96,-41.65 148.96,-41.65 148.96,-41.65 148.74,-38.16 145.81,-41.84 148.53,-34.66 148.53,-34.66\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"141.5\" 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 0x7f5299fa0a80> >"
|
|
]
|
|
},
|
|
"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=\"414pt\" height=\"125pt\"\n",
|
|
" viewBox=\"0.00 0.00 414.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 410,-120.8 410,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"180\" 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=\"384\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"384\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"384\" 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.2,-22C328.07,-22 342.39,-22 354.89,-22\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"362,-22 355,-25.15 358.5,-22.5 355,-22.5 355,-22 355,-21.5 358.5,-21.5 355,-18.85 362,-22 362,-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=\"M375.99,-42.58C374.89,-52.84 377.55,-62 384,-62 388.83,-62 391.54,-56.85 392.13,-49.95\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"392.01,-42.58 395.27,-49.53 392.56,-46.07 392.62,-49.57 392.12,-49.58 391.62,-49.59 391.56,-46.09 388.97,-49.63 392.01,-42.58 392.01,-42.58\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"384\" 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 0x7f5299fa0480> >"
|
|
]
|
|
},
|
|
"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=\"386pt\" height=\"276pt\"\n",
|
|
" viewBox=\"0.00 0.00 386.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 382,-272 382,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"168\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"190\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" 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=\"123.5\" 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=\"360\" cy=\"-129\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"360\" 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.49,-120.89C158.32,-145.98 187.11,-193.85 228,-213 273.19,-234.16 321.36,-181.07 344.69,-149.85\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"349.01,-143.93 347.43,-151.44 346.95,-146.75 344.88,-149.58 344.88,-149.58 344.88,-149.58 346.95,-146.75 342.34,-147.72 349.01,-143.93 349.01,-143.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" 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=\"248.5\" cy=\"-105\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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.11,-105C173.32,-105 202.31,-105 222.96,-105\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"230.15,-105 223.15,-108.15 226.65,-105.5 223.15,-105.5 223.15,-105 223.15,-104.5 226.65,-104.5 223.15,-101.85 230.15,-105 230.15,-105\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174.5\" 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=\"248.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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.87,-93.98C171.2,-78.62 206.34,-50.7 228.22,-33.32\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"233.74,-28.93 230.22,-35.75 231.32,-31.5 228.57,-33.68 228.26,-33.28 227.95,-32.89 230.69,-30.71 226.3,-30.82 233.74,-28.93 233.74,-28.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-79.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=\"M355.18,-146.41C354.28,-156.09 355.89,-165 360,-165 363.02,-165 364.69,-160.19 365.01,-153.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.82,-146.41 368.15,-153.33 364.91,-149.91 365,-153.41 365,-153.41 365,-153.41 364.91,-149.91 361.85,-153.49 364.82,-146.41 364.82,-146.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353.5\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"352\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.73,-145.6C347.24,-166.86 349.66,-195 360,-195 369.25,-195 372.16,-172.49 368.74,-152.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"367.27,-145.6 371.81,-151.79 368,-149.02 368.73,-152.44 368.73,-152.44 368.73,-152.44 368,-149.02 365.64,-153.1 367.27,-145.6 367.27,-145.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"355.5\" y=\"-198.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=\"M243.5,-122.41C242.57,-132.09 244.23,-141 248.5,-141 251.63,-141 253.36,-136.19 253.69,-129.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"253.5,-122.41 256.83,-129.33 253.59,-125.91 253.68,-129.41 253.68,-129.41 253.68,-129.41 253.59,-125.91 250.53,-129.49 253.5,-122.41 253.5,-122.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"240.5\" y=\"-144.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=\"M240.96,-121.6C235.27,-142.86 237.78,-171 248.5,-171 258.09,-171 261.11,-148.49 257.56,-128.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.04,-121.6 260.62,-127.75 256.79,-125.01 257.55,-128.43 257.55,-128.43 257.55,-128.43 256.79,-125.01 254.47,-129.11 256.04,-121.6 256.04,-121.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M262.06,-30.73C281.62,-50.56 319.39,-88.85 341.57,-111.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"346.59,-116.42 339.43,-113.64 344.13,-113.92 341.67,-111.43 341.67,-111.43 341.67,-111.43 344.13,-113.92 343.91,-109.22 346.59,-116.42 346.59,-116.42\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"287\" y=\"-96.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=\"M238.93,-33.54C236.23,-43.91 239.42,-54 248.5,-54 255.45,-54 258.95,-48.08 259,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"258.07,-33.54 262.1,-40.08 258.53,-37.01 258.98,-40.48 258.98,-40.48 258.98,-40.48 258.53,-37.01 255.85,-40.89 258.07,-33.54 258.07,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" 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 0x7f5299fa0930> >"
|
|
]
|
|
},
|
|
"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=\"386pt\" height=\"299pt\"\n",
|
|
" viewBox=\"0.00 0.00 386.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 382,-295 382,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"168\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"190\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" 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=\"248.5\" cy=\"-156\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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=\"M243.5,-173.41C242.57,-183.09 244.23,-192 248.5,-192 251.63,-192 253.36,-187.19 253.69,-180.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"253.5,-173.41 256.83,-180.33 253.59,-176.91 253.68,-180.41 253.68,-180.41 253.68,-180.41 253.59,-176.91 250.53,-180.49 253.5,-173.41 253.5,-173.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"240.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M240.96,-172.6C235.27,-193.86 237.78,-222 248.5,-222 258.09,-222 261.11,-199.49 257.56,-179.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.04,-172.6 260.62,-178.75 256.79,-176.01 257.55,-179.43 257.55,-179.43 257.55,-179.43 256.79,-176.01 254.47,-180.11 256.04,-172.6 256.04,-172.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" y=\"-225.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=\"360\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"360\" 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=\"M355.18,-79.41C354.28,-89.09 355.89,-98 360,-98 363.02,-98 364.69,-93.19 365.01,-86.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.82,-79.41 368.15,-86.33 364.91,-82.91 365,-86.41 365,-86.41 365,-86.41 364.91,-82.91 361.85,-86.49 364.82,-79.41 364.82,-79.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353.5\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"352\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.73,-78.6C347.24,-99.86 349.66,-128 360,-128 369.25,-128 372.16,-105.49 368.74,-85.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"367.27,-78.6 371.81,-84.79 368,-82.02 368.73,-85.44 368.73,-85.44 368.73,-85.44 368,-82.02 365.64,-86.1 367.27,-78.6 367.27,-78.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"355.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"248.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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=\"M265.66,-24.49C284.36,-32.01 315.3,-44.44 336.39,-52.91\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"343.13,-55.62 335.46,-55.94 339.88,-54.32 336.64,-53.01 336.64,-53.01 336.64,-53.01 339.88,-54.32 337.81,-50.09 343.13,-55.62 343.13,-55.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"287\" y=\"-50.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=\"M238.93,-33.54C236.23,-43.91 239.42,-54 248.5,-54 255.45,-54 258.95,-48.08 259,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"258.07,-33.54 262.1,-40.08 258.53,-37.01 258.98,-40.48 258.98,-40.48 258.98,-40.48 258.53,-37.01 255.85,-40.89 258.07,-33.54 258.07,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" 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.69,-112.31C172.47,-121.06 204.05,-135.76 225.33,-145.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"231.84,-148.71 224.16,-148.61 228.67,-147.23 225.49,-145.75 225.49,-145.75 225.49,-145.75 228.67,-147.23 226.82,-142.9 231.84,-148.71 231.84,-148.71\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174.5\" 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.88,-101.72C169.47,-98.88 191.13,-94.67 210,-91 254.12,-82.42 305.58,-72.4 335.02,-66.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"342.02,-65.31 335.75,-69.74 338.58,-65.98 335.15,-66.64 335.15,-66.64 335.15,-66.64 338.58,-65.98 334.54,-63.55 342.02,-65.31 342.02,-65.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" 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.22,-93.89C157.74,-88.45 165.74,-81.83 173,-76 191.5,-61.14 212.91,-44.54 228.01,-32.91\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"233.67,-28.57 230.04,-35.33 230.9,-30.7 228.12,-32.83 228.12,-32.83 228.12,-32.83 230.9,-30.7 226.2,-30.33 233.67,-28.57 233.67,-28.57\"/>\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=\"123.5\" 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 0x7f5299fa0930> >"
|
|
]
|
|
},
|
|
"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=\"386pt\" height=\"299pt\"\n",
|
|
" viewBox=\"0.00 0.00 386.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 382,-295 382,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"168\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"190\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" 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=\"248.5\" cy=\"-156\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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=\"M243.5,-173.41C242.57,-183.09 244.23,-192 248.5,-192 251.63,-192 253.36,-187.19 253.69,-180.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"253.5,-173.41 256.83,-180.33 253.59,-176.91 253.68,-180.41 253.68,-180.41 253.68,-180.41 253.59,-176.91 250.53,-180.49 253.5,-173.41 253.5,-173.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"230\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"240.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M240.96,-172.6C235.27,-193.86 237.78,-222 248.5,-222 258.09,-222 261.11,-199.49 257.56,-179.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"256.04,-172.6 260.62,-178.75 256.79,-176.01 257.55,-179.43 257.55,-179.43 257.55,-179.43 256.79,-176.01 254.47,-180.11 256.04,-172.6 256.04,-172.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" y=\"-225.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=\"360\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"360\" 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=\"M355.18,-79.41C354.28,-89.09 355.89,-98 360,-98 363.02,-98 364.69,-93.19 365.01,-86.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.82,-79.41 368.15,-86.33 364.91,-82.91 365,-86.41 365,-86.41 365,-86.41 364.91,-82.91 361.85,-86.49 364.82,-79.41 364.82,-79.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353.5\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"352\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M352.73,-78.6C347.24,-99.86 349.66,-128 360,-128 369.25,-128 372.16,-105.49 368.74,-85.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"367.27,-78.6 371.81,-84.79 368,-82.02 368.73,-85.44 368.73,-85.44 368.73,-85.44 368,-82.02 365.64,-86.1 367.27,-78.6 367.27,-78.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"355.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"248.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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=\"M265.66,-24.49C284.36,-32.01 315.3,-44.44 336.39,-52.91\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"343.13,-55.62 335.46,-55.94 339.88,-54.32 336.64,-53.01 336.64,-53.01 336.64,-53.01 339.88,-54.32 337.81,-50.09 343.13,-55.62 343.13,-55.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"287\" y=\"-50.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=\"M238.93,-33.54C236.23,-43.91 239.42,-54 248.5,-54 255.45,-54 258.95,-48.08 259,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"258.07,-33.54 262.1,-40.08 258.53,-37.01 258.98,-40.48 258.98,-40.48 258.98,-40.48 258.53,-37.01 255.85,-40.89 258.07,-33.54 258.07,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" 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.69,-112.31C172.47,-121.06 204.05,-135.76 225.33,-145.67\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"231.84,-148.71 224.16,-148.61 228.46,-147.68 225.28,-146.2 225.49,-145.75 225.71,-145.3 228.88,-146.78 226.82,-142.9 231.84,-148.71 231.84,-148.71\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"174.5\" 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.88,-101.72C169.47,-98.88 191.13,-94.67 210,-91 254.12,-82.42 305.58,-72.4 335.02,-66.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"342.02,-65.31 335.75,-69.74 338.58,-65.98 335.15,-66.64 335.15,-66.64 335.15,-66.64 338.58,-65.98 334.54,-63.55 342.02,-65.31 342.02,-65.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" 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.22,-93.89C157.74,-88.45 165.74,-81.83 173,-76 191.5,-61.14 212.91,-44.54 228.01,-32.91\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"233.67,-28.57 230.04,-35.33 231.2,-31.09 228.42,-33.23 228.12,-32.83 227.82,-32.43 230.59,-30.3 226.2,-30.33 233.67,-28.57 233.67,-28.57\"/>\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=\"123.5\" 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 0x7f5299fa0930> >"
|
|
]
|
|
},
|
|
"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=\"386pt\" height=\"206pt\"\n",
|
|
" viewBox=\"0.00 0.00 386.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 382,-201.5 382,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"168\" y=\"-183.3\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"190\" y=\"-183.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"206\" 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=\"123.5\" 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",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"261.5,-161.5 235.5,-161.5 235.5,-138.5 261.5,-138.5 261.5,-161.5\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" y=\"-146.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->u1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->u1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M154.16,-111.64C174.04,-119.81 207.74,-133.66 228.74,-142.29\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"235.34,-145 227.67,-145.26 232.11,-143.67 228.87,-142.34 228.87,-142.34 228.87,-142.34 232.11,-143.67 230.07,-139.43 235.34,-145 235.34,-145\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"360\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"360\" 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.88,-101.72C169.47,-98.88 191.13,-94.67 210,-91 254.12,-82.42 305.58,-72.4 335.02,-66.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"342.02,-65.31 335.75,-69.74 338.58,-65.98 335.15,-66.64 335.15,-66.64 335.15,-66.64 338.58,-65.98 334.54,-63.55 342.02,-65.31 342.02,-65.31\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"228\" 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=\"248.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"248.5\" 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.22,-93.89C157.74,-88.45 165.74,-81.83 173,-76 191.5,-61.14 212.91,-44.54 228.01,-32.91\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"233.67,-28.57 230.04,-35.33 231.2,-31.09 228.42,-33.23 228.12,-32.83 227.82,-32.43 230.59,-30.3 226.2,-30.33 233.67,-28.57 233.67,-28.57\"/>\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=\"M355.18,-79.41C354.28,-89.09 355.89,-98 360,-98 363.02,-98 364.69,-93.19 365.01,-86.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"364.82,-79.41 368.15,-86.33 364.91,-82.91 365,-86.41 365,-86.41 365,-86.41 364.91,-82.91 361.85,-86.49 364.82,-79.41 364.82,-79.41\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"353.5\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"352\" y=\"-101.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=\"M352.73,-78.6C347.24,-99.86 349.66,-128 360,-128 369.25,-128 372.16,-105.49 368.74,-85.51\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"367.27,-78.6 371.81,-84.79 368,-82.02 368.73,-85.44 368.73,-85.44 368.73,-85.44 368,-82.02 365.64,-86.1 367.27,-78.6 367.27,-78.6\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"355.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->2 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M265.66,-24.49C284.36,-32.01 315.3,-44.44 336.39,-52.91\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"343.13,-55.62 335.46,-55.94 339.88,-54.32 336.64,-53.01 336.64,-53.01 336.64,-53.01 339.88,-54.32 337.81,-50.09 343.13,-55.62 343.13,-55.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"287\" 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=\"M238.93,-33.54C236.23,-43.91 239.42,-54 248.5,-54 255.45,-54 258.95,-48.08 259,-40.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"258.07,-33.54 262.1,-40.08 258.53,-37.01 258.98,-40.48 258.98,-40.48 258.98,-40.48 258.53,-37.01 255.85,-40.89 258.07,-33.54 258.07,-33.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"231.5\" 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\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"110\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"126\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"86\" 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=\"123.5\" 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",
|
|
"<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",
|
|
"</g>\n",
|
|
"<!-- 1->u1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->u1</title>\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",
|
|
"</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=\"652pt\" height=\"360pt\"\n",
|
|
" viewBox=\"0.00 0.00 652.06 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 735,-404 735,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"344.5\" y=\"-385.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"366.5\" y=\"-385.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"382.5\" y=\"-385.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"342.5\" 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=\"470,-154 470,-356 723,-356 723,-154 470,-154\"/>\n",
|
|
"</g>\n",
|
|
"<g id=\"clust2\" class=\"cluster\">\n",
|
|
"<title>cluster_1</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"black\" points=\"391,-152 391,-204 443,-204 443,-152 391,-152\"/>\n",
|
|
"</g>\n",
|
|
"<g id=\"clust3\" class=\"cluster\">\n",
|
|
"<title>cluster_2</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"green\" points=\"139,-181 139,-283 327.5,-283 327.5,-181 139,-181\"/>\n",
|
|
"</g>\n",
|
|
"<g id=\"clust4\" class=\"cluster\">\n",
|
|
"<title>cluster_3</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"green\" points=\"139,-8 139,-108 191,-108 191,-8 139,-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=\"417\" cy=\"-178\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"417\" 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.32,-130.41C132.85,-138.56 323.46,-165.11 391.55,-174.59\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"398.86,-175.61 391.49,-177.77 395.39,-175.13 391.93,-174.65 391.93,-174.65 391.93,-174.65 395.39,-175.13 392.36,-171.53 398.86,-175.61 398.86,-175.61\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"211.5\" 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=\"165\" cy=\"-207\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"165\" 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.99,-138.33C89.73,-152.17 123.1,-176.8 144.36,-192.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"150.01,-196.67 142.51,-195.05 147.19,-194.59 144.38,-192.51 144.38,-192.51 144.38,-192.51 147.19,-194.59 146.25,-189.98 150.01,-196.67 150.01,-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=\"165\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"165\" 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.12,-116.47C88.97,-99.91 123.82,-69.3 145.34,-50.39\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"150.77,-45.62 147.59,-52.61 148.14,-47.93 145.51,-50.24 145.51,-50.24 145.51,-50.24 148.14,-47.93 143.43,-47.87 150.77,-45.62 150.77,-45.62\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"107\" 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=\"496\" cy=\"-237\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"496\" 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=\"584\" cy=\"-231\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"584\" 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=\"M511.72,-227.46C517.75,-224.08 524.96,-220.7 532,-219 541.35,-216.74 551.67,-218.39 560.58,-221.11\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"567.36,-223.47 559.72,-224.15 564.06,-222.32 560.75,-221.17 560.75,-221.17 560.75,-221.17 564.06,-222.32 561.78,-218.2 567.36,-223.47 567.36,-223.47\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"534.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=\"697\" cy=\"-236\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"697\" 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=\"M509.43,-224.76C522.34,-212.99 543.72,-195.99 566,-189 605.86,-176.5 651.61,-202.72 676.82,-220.79\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"682.47,-224.96 674.96,-223.34 679.65,-222.88 676.83,-220.8 676.83,-220.8 676.83,-220.8 679.65,-222.88 678.7,-218.27 682.47,-224.96 682.47,-224.96\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"580.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=\"M565.92,-232.56C560.22,-233.05 553.84,-233.58 548,-234 539.24,-234.63 529.63,-235.22 521.14,-235.71\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"514.01,-236.11 520.82,-232.58 517.5,-235.92 521,-235.72 521,-235.72 521,-235.72 517.5,-235.92 521.17,-238.87 514.01,-236.11 514.01,-236.11\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"533.5\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"532\" 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=\"M576.33,-247.29C574.48,-257.39 577.04,-267 584,-267 589.22,-267 591.96,-261.59 592.23,-254.63\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"591.67,-247.29 595.34,-254.03 591.93,-250.78 592.2,-254.27 592.2,-254.27 592.2,-254.27 591.93,-250.78 589.06,-254.51 591.67,-247.29 591.67,-247.29\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"565.5\" 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=\"M600.69,-223.82C606.61,-221.47 613.49,-219.17 620,-218 637.93,-214.78 643.29,-213.71 661,-218 665.73,-219.14 670.54,-221.05 675.01,-223.19\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"681.28,-226.46 673.62,-226.02 678.18,-224.84 675.07,-223.23 675.07,-223.23 675.07,-223.23 678.18,-224.84 676.53,-220.43 681.28,-226.46 681.28,-226.46\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"623.5\" 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=\"M682.42,-247.13C665.03,-260.59 633.39,-282.49 602,-291 570.52,-299.53 557.81,-288.93 532,-269 526.13,-264.47 520.07,-259.17 514.67,-254.2\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"509.52,-249.39 516.78,-251.87 512.07,-251.78 514.63,-254.17 514.63,-254.17 514.63,-254.17 512.07,-251.78 512.48,-256.47 509.52,-249.39 509.52,-249.39\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"579.5\" y=\"-311.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"576\" y=\"-296.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=\"M678.79,-235.41C663.39,-234.86 640.18,-233.97 620,-233 616.53,-232.83 612.88,-232.64 609.29,-232.44\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"602.09,-232.04 609.25,-229.29 605.58,-232.23 609.08,-232.43 609.08,-232.43 609.08,-232.43 605.58,-232.23 608.9,-235.58 602.09,-232.04 602.09,-232.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"620\" 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=\"M687.43,-251.54C684.73,-261.91 687.92,-272 697,-272 703.95,-272 707.45,-266.08 707.5,-258.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"706.57,-251.54 710.6,-258.08 707.03,-255.01 707.48,-258.48 707.48,-258.48 707.48,-258.48 707.03,-255.01 704.35,-258.89 706.57,-251.54 706.57,-251.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"678.5\" 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=\"M432.18,-187.75C440.41,-193.5 450.91,-201 460,-208 465.42,-212.17 471.18,-216.84 476.43,-221.2\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"481.89,-225.76 474.49,-223.68 479.2,-223.51 476.51,-221.27 476.51,-221.27 476.51,-221.27 479.2,-223.51 478.54,-218.85 481.89,-225.76 481.89,-225.76\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"453\" 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=\"M171.13,-224.14C176.26,-237.91 185.64,-256.33 201,-265 290.95,-315.78 421.39,-269.3 472.9,-247.19\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"479.35,-244.37 474.19,-250.06 476.14,-245.77 472.93,-247.17 472.93,-247.17 472.93,-247.17 476.14,-245.77 471.67,-244.29 479.35,-244.37 479.35,-244.37\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"357\" y=\"-287.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=\"M182.63,-202.22C188.41,-200.69 194.95,-199.11 201,-198 269.27,-185.45 351.25,-180.59 391.4,-178.86\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"398.86,-178.56 391.99,-181.99 395.36,-178.7 391.86,-178.84 391.86,-178.84 391.86,-178.84 395.36,-178.7 391.73,-175.7 398.86,-178.56 398.86,-178.56\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"281\" 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=\"M155.77,-222.54C153.17,-232.91 156.25,-243 165,-243 171.7,-243 175.08,-237.08 175.12,-229.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"174.23,-222.54 178.23,-229.1 174.67,-226.01 175.1,-229.49 175.1,-229.49 175.1,-229.49 174.67,-226.01 171.98,-229.88 174.23,-222.54 174.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=\"301.5\" cy=\"-231\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"301.5\" 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=\"M182.87,-204.5C202.53,-202.19 235.81,-200.17 263,-208 269.12,-209.76 275.23,-212.81 280.69,-216.13\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"286.76,-220.09 279.17,-218.91 283.83,-218.18 280.89,-216.27 280.89,-216.27 280.89,-216.27 283.83,-218.18 282.61,-213.63 286.76,-220.09 286.76,-220.09\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"201\" 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=\"M319.58,-231.53C353.83,-232.6 430.98,-235 470.56,-236.24\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"477.96,-236.47 470.86,-239.4 474.46,-236.36 470.96,-236.25 470.96,-236.25 470.96,-236.25 474.46,-236.36 471.06,-233.1 477.96,-236.47 477.96,-236.47\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"413.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=\"M316.77,-221.44C323.63,-217.05 332.07,-211.96 340,-208 357.28,-199.37 377.68,-191.44 392.99,-185.9\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"399.63,-183.53 394.1,-188.84 396.34,-184.7 393.04,-185.88 393.04,-185.88 393.04,-185.88 396.34,-184.7 391.98,-182.91 399.63,-183.53 399.63,-183.53\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"340\" 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=\"M283.3,-231.41C263.22,-231.48 229.18,-230.33 201,-223 196.59,-221.85 192.04,-220.18 187.74,-218.34\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"181.25,-215.37 188.93,-215.42 184.43,-216.83 187.62,-218.29 187.62,-218.29 187.62,-218.29 184.43,-216.83 186.31,-221.15 181.25,-215.37 181.25,-215.37\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"213.5\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"224\" y=\"-234.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=\"M155.77,-49.54C153.17,-59.91 156.25,-70 165,-70 171.7,-70 175.08,-64.08 175.12,-56.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"174.23,-49.54 178.23,-56.1 174.67,-53.01 175.1,-56.49 175.1,-56.49 175.1,-56.49 174.67,-53.01 171.98,-56.88 174.23,-49.54 174.23,-49.54\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"160.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"157\" 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.7.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|