spot/tests/python/_partitioned_relabel.ipynb
Florian Renkin 6dc11b4715 notebooks: correction of typos
* tests/python/_partitioned_relabel.ipynb,
  tests/python/_product_weak.ipynb,
  tests/python/acc_cond.ipynb,
  tests/python/aliases.ipynb,
  tests/python/automata.ipynb,
  tests/python/cav22-figs.ipynb,
  tests/python/contains.ipynb,
  tests/python/decompose.ipynb,
  tests/python/formulas.ipynb,
  tests/python/games.ipynb,
  tests/python/highlighting.ipynb,
  tests/python/ltsmin-dve.ipynb,
  tests/python/parity.ipynb,
  tests/python/product.ipynb,
  tests/python/satmin.ipynb,
  tests/python/stutter-inv.ipynb,
  tests/python/synthesis.ipynb,
  tests/python/twagraph-internals.ipynb,
  tests/python/word.ipynb,
  tests/python/zlktree.ipynb: here
2023-09-26 11:56:26 +02:00

2353 lines
144 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4d896402",
"metadata": {},
"outputs": [],
"source": [
"import spot, buddy"
]
},
{
"cell_type": "markdown",
"id": "94e87f9c",
"metadata": {},
"source": [
"# Partitioned relabeling\n",
"\n",
"Partitioned relabeling will:\n",
"First compute a partition over all conditions appearing in the automaton.\n",
"That is, the set of new conditions is such that (1) they do not overlap (2) all valuations that verify some condition in the original automaton also verify (exactly one) of the new conditions.\n",
"These new conditions can be thought of as letters in a \"classical\" sense.\n",
"Then we create new aps and encode the \"number\" of these letters using the fresh aps, resulting in new letters which are a single valuation over the fresh aps.\n",
"\n",
"This can be helpful if there are many aps, but few different conditions over them\n",
"\n",
"The algorithm comes in two flavours:\n",
"\n",
"We maintain the original number of edges. Therefore the new label correspond to a disjunction over new letters (split=False).\n",
"We split each edge into its letters, creating more edges (split=True)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "62123fa9",
"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=\"300pt\" height=\"244pt\"\n",
" viewBox=\"0.00 0.00 300.00 244.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 240)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-240 296,-240 296,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-220.8\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-205.8\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-99\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-95.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-99C2.67,-99 15.1,-99 27.63,-99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-102.5 37.94,-99 27.94,-95.5 27.94,-102.5\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-176.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.23,-114.06C72.43,-122.94 81.41,-133.64 92,-140 140.84,-169.33 208.68,-177.22 245.9,-179.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.82,-182.8 255.97,-179.76 246.14,-175.81 245.82,-182.8\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-181.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.95,-101.12C111.24,-105.78 200.66,-116.96 245.86,-122.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.47,-126.09 255.83,-123.85 246.34,-119.14 245.47,-126.09\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-124.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-68.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.29,-91.11C78.28,-88.38 85.31,-85.6 92,-84 145.28,-71.21 209.75,-70.26 245.59,-70.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.66,-74.47 255.74,-71.23 245.84,-67.47 245.66,-74.47\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-87.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b0 &amp; b1 &amp; b2</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.51,-83.09C70.45,-72.31 79.77,-58.68 92,-51 139.89,-20.94 208.1,-16.67 245.62,-16.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.73,-20.4 255.79,-17.08 245.85,-13.4 245.73,-20.4\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-54.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b0 &amp; !b1 &amp; !b2</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 0x7f936415fbd0> >"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Relabeling a graph\n",
"aut = spot.make_twa_graph()\n",
"aut.new_states(5)\n",
"\n",
"a = buddy.bdd_ithvar(aut.register_ap(\"a\"))\n",
"na = buddy.bdd_nithvar(aut.register_ap(\"a\"))\n",
"b0 = buddy.bdd_ithvar(aut.register_ap(\"b0\"))\n",
"nb0 = buddy.bdd_nithvar(aut.register_ap(\"b0\"))\n",
"b1 = buddy.bdd_ithvar(aut.register_ap(\"b1\"))\n",
"nb1 = buddy.bdd_nithvar(aut.register_ap(\"b1\"))\n",
"b2 = buddy.bdd_ithvar(aut.register_ap(\"b2\"))\n",
"nb2 = buddy.bdd_nithvar(aut.register_ap(\"b2\"))\n",
"\n",
"aut.new_edge(0,1,buddy.bddtrue)\n",
"aut.new_edge(0,2,a)\n",
"aut.new_edge(0,3,a&b0&b1&b2)\n",
"aut.new_edge(0,4,a&nb0&nb1&nb2)\n",
"\n",
"aut"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d4c8e977",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6\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=\"262pt\" height=\"244pt\"\n",
" viewBox=\"0.00 0.00 262.00 244.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 240)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-240 258,-240 258,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"127\" y=\"-220.8\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"127\" y=\"-205.8\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-99\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-95.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-99C2.67,-99 15.1,-99 27.63,-99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-102.5 37.94,-99 27.94,-95.5 27.94,-102.5\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"236\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"236\" y=\"-176.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.73,-113.86C73,-122.36 81.87,-132.57 92,-139 128.12,-161.93 177.37,-172.35 207.64,-176.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"207.49,-180.36 217.87,-178.25 208.44,-173.43 207.49,-180.36\"/>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-178.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"236\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"236\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.07,-101.59C105.03,-106.29 170.7,-116.25 207.87,-121.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"207.57,-125.38 217.98,-123.42 208.62,-118.46 207.57,-125.38\"/>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">__nv0 | __nv1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"236\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"236\" y=\"-68.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.71,-91.59C78.63,-89.1 85.51,-86.56 92,-85 131.33,-75.56 178.26,-72.86 207.35,-72.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"207.63,-75.65 217.57,-71.97 207.51,-68.65 207.63,-75.65\"/>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-88.8\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv0 &amp; __nv1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"236\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"236\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.34,-83.09C71.42,-73 80.59,-60.48 92,-53 127.41,-29.79 176.87,-21.96 207.37,-19.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"207.97,-22.79 217.69,-18.57 207.46,-15.81 207.97,-22.79\"/>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-56.8\" font-family=\"Times,serif\" font-size=\"14.00\">__nv0 &amp; __nv1</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 0x7f936415fbd0> >"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"relabel_dict = spot.partitioned_relabel_here(aut)\n",
"\n",
"print(relabel_dict.size())\n",
"aut"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "6f90a095",
"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=\"300pt\" height=\"244pt\"\n",
" viewBox=\"0.00 0.00 300.00 244.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 240)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-240 296,-240 296,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-220.8\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-205.8\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-99\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-95.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-99C2.67,-99 15.1,-99 27.63,-99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-102.5 37.94,-99 27.94,-95.5 27.94,-102.5\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-176.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.23,-114.06C72.43,-122.94 81.41,-133.64 92,-140 140.84,-169.33 208.68,-177.22 245.9,-179.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.82,-182.8 255.97,-179.76 246.14,-175.81 245.82,-182.8\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-181.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.95,-101.12C111.24,-105.78 200.66,-116.96 245.86,-122.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.47,-126.09 255.83,-123.85 246.34,-119.14 245.47,-126.09\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-124.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-68.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.29,-91.11C78.28,-88.38 85.31,-85.6 92,-84 145.28,-71.21 209.75,-70.26 245.59,-70.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.66,-74.47 255.74,-71.23 245.84,-67.47 245.66,-74.47\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-87.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b0 &amp; b1 &amp; b2</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.51,-83.09C70.45,-72.31 79.77,-58.68 92,-51 139.89,-20.94 208.1,-16.67 245.62,-16.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.73,-20.4 255.79,-17.08 245.85,-13.4 245.73,-20.4\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-54.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b0 &amp; !b1 &amp; !b2</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 0x7f936415fbd0> >"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Undo the relabeling\n",
"spot.relabel_here(aut, relabel_dict)\n",
"aut"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "513067ab",
"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=\"300pt\" height=\"244pt\"\n",
" viewBox=\"0.00 0.00 300.00 244.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 240)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-240 296,-240 296,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-220.8\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"146\" y=\"-205.8\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-99\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-95.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-99C2.67,-99 15.1,-99 27.63,-99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-102.5 37.94,-99 27.94,-95.5 27.94,-102.5\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-176.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.23,-114.06C72.43,-122.94 81.41,-133.64 92,-140 140.84,-169.33 208.68,-177.22 245.9,-179.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.82,-182.8 255.97,-179.76 246.14,-175.81 245.82,-182.8\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-181.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.95,-101.12C111.24,-105.78 200.66,-116.96 245.86,-122.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.47,-126.09 255.83,-123.85 246.34,-119.14 245.47,-126.09\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-124.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-68.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.29,-91.11C78.28,-88.38 85.31,-85.6 92,-84 145.28,-71.21 209.75,-70.26 245.59,-70.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.66,-74.47 255.74,-71.23 245.84,-67.47 245.66,-74.47\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-87.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b0 &amp; b1 &amp; b2</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"274\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.51,-83.09C70.45,-72.31 79.77,-58.68 92,-51 139.89,-20.94 208.1,-16.67 245.62,-16.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"245.73,-20.4 255.79,-17.08 245.85,-13.4 245.73,-20.4\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-54.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b0 &amp; !b1 &amp; !b2</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 0x7f936415bf30> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"HOA: v1\n",
"States: 5\n",
"Start: 0\n",
"AP: 6 \"a\" \"b0\" \"b1\" \"b2\" \"__nv0\" \"__nv1\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc\n",
"--BODY--\n",
"State: 0\n",
"[!4&!5] 1\n",
"[4&!5] 2\n",
"[!4&5] 3\n",
"[4&5] 4\n",
"[4&!5] 1\n",
"[4&5] 1\n",
"[!4&5] 1\n",
"[4&5] 2\n",
"[!4&5] 2\n",
"State: 1\n",
"State: 2\n",
"State: 3\n",
"State: 4\n",
"--END--\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=\"268pt\" height=\"396pt\"\n",
" viewBox=\"0.00 0.00 268.00 396.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 392)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-392 264,-392 264,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"130\" y=\"-372.8\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"130\" y=\"-357.8\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-186\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-182.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-186C2.67,-186 15.1,-186 27.63,-186\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-189.5 37.94,-186 27.94,-182.5 27.94,-189.5\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"242\" cy=\"-281\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-277.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M59.13,-203.75C63.41,-236.05 74.19,-302.35 92,-316 132.21,-346.82 159.19,-335.39 206,-316 212.83,-313.17 219.02,-308.29 224.23,-303.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"227.07,-305.13 231.12,-295.34 221.85,-300.47 227.07,-305.13\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-338.8\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv0 &amp; !__nv1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.11,-204.13C60.52,-225.78 68.11,-261.17 92,-278 128.11,-303.44 182.31,-296.28 214.42,-288.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"215.58,-292.01 224.41,-286.15 213.85,-285.23 215.58,-292.01\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-298.8\" font-family=\"Times,serif\" font-size=\"14.00\">__nv0 &amp; !__nv1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.39,-202.64C69.02,-214.97 78.45,-231.12 92,-240 134.95,-268.17 157.98,-240.75 206,-259 210.15,-260.58 214.34,-262.68 218.31,-264.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"216.7,-268.08 227.03,-270.43 220.42,-262.15 216.7,-268.08\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-262.8\" font-family=\"Times,serif\" font-size=\"14.00\">__nv0 &amp; __nv1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.34,-194.07C78.33,-196.94 85.36,-199.97 92,-202 141.12,-217.03 163.72,-191.83 206,-221 217.75,-229.11 226.12,-242.54 231.72,-254.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"228.52,-256.08 235.63,-263.94 234.97,-253.37 228.52,-256.08\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-224.8\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv0 &amp; __nv1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"242\" cy=\"-148\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-144.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.32,-185.03C102.46,-183.1 159.61,-177.73 206,-164 209.44,-162.98 212.97,-161.69 216.4,-160.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"217.98,-163.41 225.68,-156.14 215.12,-157.02 217.98,-163.41\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-186.8\" font-family=\"Times,serif\" font-size=\"14.00\">__nv0 &amp; !__nv1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.51,-170.52C71.56,-161.24 80.61,-150.25 92,-145 131.51,-126.78 183.41,-133.79 214.37,-140.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"213.85,-144.22 224.4,-143.17 215.5,-137.42 213.85,-144.22\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">__nv0 &amp; __nv1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.12,-168.2C64.19,-150.97 73.15,-125.8 92,-114 134.95,-87.12 159.05,-94.95 206,-114 212.65,-116.7 218.72,-121.33 223.88,-126.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"221.37,-128.76 230.74,-133.71 226.5,-124 221.37,-128.76\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-117.8\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv0 &amp; __nv1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"242\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-68.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.9,-167.75C57.88,-142.69 63.77,-98.32 92,-77 127.44,-50.23 182.32,-57.1 214.65,-64.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"214.14,-68.02 224.69,-67.04 215.83,-61.23 214.14,-68.02\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-80.8\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv0 &amp; __nv1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"242\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.74,-168.01C62.55,-132.5 72.87,-55.33 92,-38 125.2,-7.93 180.84,-9.19 213.92,-13.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"213.81,-16.8 224.21,-14.74 214.8,-9.87 213.81,-16.8\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">__nv0 &amp; __nv1</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 0x7f936415bf30> >"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Relabeling the same graph using the split option\n",
"aut = spot.make_twa_graph()\n",
"aut.new_states(5)\n",
"\n",
"a = buddy.bdd_ithvar(aut.register_ap(\"a\"))\n",
"na = buddy.bdd_nithvar(aut.register_ap(\"a\"))\n",
"b0 = buddy.bdd_ithvar(aut.register_ap(\"b0\"))\n",
"nb0 = buddy.bdd_nithvar(aut.register_ap(\"b0\"))\n",
"b1 = buddy.bdd_ithvar(aut.register_ap(\"b1\"))\n",
"nb1 = buddy.bdd_nithvar(aut.register_ap(\"b1\"))\n",
"b2 = buddy.bdd_ithvar(aut.register_ap(\"b2\"))\n",
"nb2 = buddy.bdd_nithvar(aut.register_ap(\"b2\"))\n",
"\n",
"aut.new_edge(0,1,buddy.bddtrue)\n",
"aut.new_edge(0,2,a)\n",
"aut.new_edge(0,3,a&b0&b1&b2)\n",
"aut.new_edge(0,4,a&nb0&nb1&nb2)\n",
"\n",
"display(aut)\n",
"xx = spot.partitioned_relabel_here(aut, True)\n",
"print(aut.to_str(\"hoa\"))\n",
"aut"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "50c6a08b",
"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=\"612pt\" height=\"451pt\"\n",
" viewBox=\"0.00 0.00 612.00 451.24\" 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 447.24)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-447.24 608,-447.24 608,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"302\" y=\"-428.04\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"302\" y=\"-413.04\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-222.24\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-218.54\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-222.24C2.67,-222.24 15.1,-222.24 27.63,-222.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-225.74 37.94,-222.24 27.94,-218.74 27.94,-225.74\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"586\" cy=\"-317.24\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"586\" y=\"-313.54\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M59.13,-239.99C63.41,-272.29 74.19,-338.59 92,-352.24 172.78,-414.15 455.97,-391.18 550,-352.24 556.83,-349.41 563.02,-344.53 568.23,-339.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"571.07,-341.37 575.12,-331.58 565.85,-336.71 571.07,-341.37\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-394.04\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.07,-240.42C60.44,-262.12 67.99,-297.58 92,-314.24 130.26,-340.78 459.71,-324.37 557.65,-318.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"558.13,-322.32 567.91,-318.26 557.73,-315.33 558.13,-322.32\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-332.04\" font-family=\"Times,serif\" font-size=\"14.00\">(a &amp; !b0 &amp; b2) | (a &amp; b0 &amp; !b2) | (a &amp; !b1 &amp; b2) | (a &amp; b1 &amp; !b2)</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M62.99,-239.1C68.44,-251.72 77.83,-268.15 92,-276.24 136.24,-301.48 501.36,-280.12 550,-295.24 554.44,-296.62 558.87,-298.7 563.01,-301.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"561.2,-304.05 571.52,-306.45 564.95,-298.14 561.2,-304.05\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-299.04\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b0 &amp; !b1 &amp; !b2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.22,-230.75C78.2,-233.67 85.24,-236.62 92,-238.24 141.53,-250.1 506.37,-230.96 550,-257.24 562.31,-264.65 570.74,-278.16 576.24,-290.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"573.07,-291.99 580.04,-299.98 579.57,-289.39 573.07,-291.99\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-261.04\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b0 &amp; b1 &amp; b2</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"586\" cy=\"-184.24\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"586\" y=\"-180.54\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.06,-222.35C149.91,-222.71 456.82,-222.71 550,-200.24 553.48,-199.4 557.04,-198.21 560.49,-196.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"562.05,-199.99 569.78,-192.74 559.22,-193.59 562.05,-199.99\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-226.04\" font-family=\"Times,serif\" font-size=\"14.00\">(a &amp; !b0 &amp; b2) | (a &amp; b0 &amp; !b2) | (a &amp; !b1 &amp; b2) | (a &amp; b1 &amp; !b2)</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.51,-206.75C71.56,-197.48 80.61,-186.49 92,-181.24 138.21,-159.93 499.16,-179.06 550,-181.24 552.56,-181.35 555.22,-181.5 557.88,-181.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"557.68,-185.18 567.93,-182.48 558.24,-178.2 557.68,-185.18\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-185.04\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b0 &amp; !b1 &amp; !b2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.35,-204.59C64.57,-187.85 73.62,-163.59 92,-152.24 135.29,-125.48 502.56,-133.82 550,-152.24 556.25,-154.66 562.06,-158.78 567.08,-163.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"564.72,-165.85 574.27,-170.43 569.66,-160.9 564.72,-165.85\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-156.04\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b0 &amp; b1 &amp; b2</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"586\" cy=\"-108.24\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"586\" y=\"-104.54\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.96,-204.23C58,-179.53 63.98,-135.86 92,-115.24 166.36,-60.51 465.49,-93.05 557.76,-104.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"557.6,-108.15 567.96,-105.94 558.48,-101.2 557.6,-108.15\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-119.04\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b0 &amp; b1 &amp; b2</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"586\" cy=\"-54.24\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"586\" y=\"-50.54\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.31,-204.13C61.42,-166.67 70.68,-82.72 92,-65.24 232.33,49.85 478.3,-18.12 558.73,-44.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"557.95,-48.32 568.54,-48.23 560.2,-41.7 557.95,-48.32\"/>\n",
"<text text-anchor=\"middle\" x=\"321\" y=\"-69.04\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b0 &amp; !b1 &amp; !b2</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 0x7f936415bf30> >"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Undo the relabeling -> disjoint conditions over the original ap\n",
"spot.relabel_here(aut, relabel_dict)\n",
"aut"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "d2efd313",
"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=\"200pt\" height=\"298pt\"\n",
" viewBox=\"0.00 0.00 200.00 298.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 294)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-294 196,-294 196,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"96\" y=\"-274.8\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"96\" y=\"-259.8\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-126C2.67,-126 15.1,-126 27.63,-126\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-129.5 37.94,-126 27.94,-122.5 27.94,-129.5\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-234\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.14,-142.16C70.23,-154.65 79.92,-171.8 92,-184 108.13,-200.3 130.58,-213.62 147.75,-222.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.64,-225.76 157.16,-227.03 149.74,-219.48 146.64,-225.76\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-219.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-176.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.18,-134.62C78.28,-137.99 85.41,-141.8 92,-145 110.37,-153.93 131.57,-163.05 147.68,-169.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.4,-173 156.98,-173.57 149.06,-166.53 146.4,-173\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-168.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.12,-126C92.96,-126 123.53,-126 145.7,-126\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"145.81,-129.5 155.81,-126 145.81,-122.5 145.81,-129.5\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-129.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-68.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.18,-117.38C78.28,-114.01 85.41,-110.2 92,-107 110.37,-98.07 131.57,-88.95 147.68,-82.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.06,-85.47 156.98,-78.43 146.4,-79 149.06,-85.47\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-110.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.93,-109.78C69.96,-97.04 79.67,-79.43 92,-67 108.06,-50.8 130.51,-37.77 147.7,-29.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.61,-32.19 157.13,-24.73 146.6,-25.88 149.61,-32.19\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-70.8\" font-family=\"Times,serif\" font-size=\"14.00\">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 0x7f936c3c6090> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"HOA: v1\n",
"States: 6\n",
"Start: 0\n",
"AP: 5 \"a\" \"__nv0\" \"__nv1\" \"b\" \"c\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc\n",
"--BODY--\n",
"State: 0\n",
"[!1 | !2] 1\n",
"[!1&2 | 1&!2] 2\n",
"[!1&2] 3\n",
"[1&!2] 4\n",
"[4] 5\n",
"State: 1\n",
"State: 2\n",
"State: 3\n",
"State: 4\n",
"State: 5\n",
"--END--\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=\"404pt\" height=\"304pt\"\n",
" viewBox=\"0.00 0.00 404.00 304.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 300)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-300 400,-300 400,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"198\" y=\"-280.8\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"198\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-126C2.67,-126 15.1,-126 27.63,-126\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-129.5 37.94,-126 27.94,-122.5 27.94,-129.5\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"378\" cy=\"-234\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"378\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.53,-143.63C64.89,-160.47 74.04,-185.12 92,-198 171.23,-254.8 295.62,-245.85 350.02,-238.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"350.54,-241.9 359.93,-237 349.53,-234.97 350.54,-241.9\"/>\n",
"<text text-anchor=\"middle\" x=\"217\" y=\"-246.8\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv0 | !__nv1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"378\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"378\" y=\"-176.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.44,-135.43C77.55,-138.99 84.89,-142.72 92,-145 183.31,-174.23 298.27,-179.29 349.82,-180.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.79,-183.51 359.82,-180.1 349.86,-176.51 349.79,-183.51\"/>\n",
"<text text-anchor=\"middle\" x=\"217\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">(__nv0 &amp; !__nv1) | (!__nv0 &amp; __nv1)</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"378\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"378\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.2,-126C126.73,-126 285.32,-126 349.55,-126\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.71,-129.5 359.71,-126 349.71,-122.5 349.71,-129.5\"/>\n",
"<text text-anchor=\"middle\" x=\"217\" y=\"-129.8\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv0 &amp; __nv1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"378\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"378\" y=\"-68.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.44,-116.57C77.55,-113.01 84.89,-109.28 92,-107 183.31,-77.77 298.27,-72.71 349.82,-71.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.86,-75.49 359.82,-71.9 349.79,-68.49 349.86,-75.49\"/>\n",
"<text text-anchor=\"middle\" x=\"217\" y=\"-110.8\" font-family=\"Times,serif\" font-size=\"14.00\">__nv0 &amp; !__nv1</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"378\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"378\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.37,-108.44C64.63,-91.36 73.74,-66.12 92,-53 171.14,3.85 295.58,-5.71 350.01,-13.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.51,-16.87 359.92,-14.9 350.56,-9.95 349.51,-16.87\"/>\n",
"<text text-anchor=\"middle\" x=\"217\" y=\"-56.8\" font-family=\"Times,serif\" font-size=\"14.00\">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 0x7f936c3c6090> >"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Working only on a subset of the aps\n",
"# Note that True is always relabeled\n",
"\n",
"aut = spot.make_twa_graph()\n",
"aut.new_states(6)\n",
"\n",
"a = buddy.bdd_ithvar(aut.register_ap(\"a\"))\n",
"na = buddy.bdd_nithvar(aut.register_ap(\"a\"))\n",
"b = buddy.bdd_ithvar(aut.register_ap(\"b\"))\n",
"nb = buddy.bdd_nithvar(aut.register_ap(\"b\"))\n",
"c = buddy.bdd_ithvar(aut.register_ap(\"c\"))\n",
"nc = buddy.bdd_nithvar(aut.register_ap(\"c\"))\n",
"\n",
"aut.new_edge(0,1,buddy.bddtrue)\n",
"aut.new_edge(0,2,a)\n",
"aut.new_edge(0,3,a&b)\n",
"aut.new_edge(0,4,a&nb)\n",
"aut.new_edge(0,5,c)\n",
"\n",
"display(aut)\n",
"\n",
"concerned_aps = a & b # concerned aps are given as a conjunction of positive aps\n",
"# As partitioning can be exponentially costly,\n",
"# one can limit the number of new letters generated before abandoning\n",
"# This can be done either as a hard limit and/or as the number of current condition\n",
"# times a factor\n",
"relabel_dict = spot.partitioned_relabel_here(aut, False, 1000, 1000, concerned_aps)\n",
"print(aut.to_str(\"hoa\"))\n",
"aut"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "1fbc8813",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"HOA: v1\n",
"States: 6\n",
"Start: 0\n",
"AP: 3 \"a\" \"b\" \"c\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc\n",
"--BODY--\n",
"State: 0\n",
"[t] 1\n",
"[0] 2\n",
"[0&1] 3\n",
"[0&!1] 4\n",
"[2] 5\n",
"State: 1\n",
"State: 2\n",
"State: 3\n",
"State: 4\n",
"State: 5\n",
"--END--\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=\"200pt\" height=\"298pt\"\n",
" viewBox=\"0.00 0.00 200.00 298.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 294)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-294 196,-294 196,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"96\" y=\"-274.8\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"96\" y=\"-259.8\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-126C2.67,-126 15.1,-126 27.63,-126\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-129.5 37.94,-126 27.94,-122.5 27.94,-129.5\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-234\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.14,-142.16C70.23,-154.65 79.92,-171.8 92,-184 108.13,-200.3 130.58,-213.62 147.75,-222.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.64,-225.76 157.16,-227.03 149.74,-219.48 146.64,-225.76\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-219.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-180\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-176.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.18,-134.62C78.28,-137.99 85.41,-141.8 92,-145 110.37,-153.93 131.57,-163.05 147.68,-169.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.4,-173 156.98,-173.57 149.06,-166.53 146.4,-173\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-168.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-122.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.12,-126C92.96,-126 123.53,-126 145.7,-126\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"145.81,-129.5 155.81,-126 145.81,-122.5 145.81,-129.5\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-129.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-68.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.18,-117.38C78.28,-114.01 85.41,-110.2 92,-107 110.37,-98.07 131.57,-88.95 147.68,-82.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.06,-85.47 156.98,-78.43 146.4,-79 149.06,-85.47\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-110.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"174\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"174\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.93,-109.78C69.96,-97.04 79.67,-79.43 92,-67 108.06,-50.8 130.51,-37.77 147.7,-29.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.61,-32.19 157.13,-24.73 146.6,-25.88 149.61,-32.19\"/>\n",
"<text text-anchor=\"middle\" x=\"115\" y=\"-70.8\" font-family=\"Times,serif\" font-size=\"14.00\">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 0x7f936c3c6090> >"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#undo partial relabeling\n",
"spot.relabel_here(aut, relabel_dict)\n",
"print(aut.to_str(\"hoa\"))\n",
"aut"
]
},
{
"cell_type": "markdown",
"id": "ef77c2ee",
"metadata": {},
"source": [
"# Concerning games and Mealy machines\n",
"\n",
"Games and split mealy machines have both: defined outputs and states that either belong to player or env.\n",
"Relabeling is done separately for env and player transitions (over inputs and outputs respectively).\n",
"\n",
"The problem is that T (bddtrue) is ambiguous, as it may be over the inputs or outputs.\n",
"\n",
"We therefore introduce a dedicated function for this matter."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "296a93d3",
"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=\"3059pt\" height=\"242pt\"\n",
" viewBox=\"0.00 0.00 3059.00 242.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 238)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-238 3055,-238 3055,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"1525.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1525.5\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1470.65,-18C1472.17,-18 1484.6,-18 1497.13,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1497.44,-21.5 1507.44,-18 1497.44,-14.5 1497.44,-21.5\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1524.05,-36.15C1523.83,-45.54 1524.31,-54 1525.5,-54 1526.22,-54 1526.69,-50.86 1526.89,-46.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1530.39,-46.17 1526.95,-36.15 1523.39,-46.13 1530.39,-46.17\"/>\n",
"<text text-anchor=\"middle\" x=\"1525.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b / !u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1523.09,-35.98C1521.81,-53.2 1522.61,-72 1525.5,-72 1527.83,-72 1528.8,-59.83 1528.42,-46.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1531.91,-45.79 1527.91,-35.98 1524.92,-46.14 1531.91,-45.79\"/>\n",
"<text text-anchor=\"middle\" x=\"1525.5\" y=\"-75.8\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b / !u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1522.46,-36.08C1519.78,-60.41 1520.79,-90 1525.5,-90 1529.57,-90 1530.88,-67.95 1529.43,-46.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1532.9,-45.73 1528.54,-36.08 1525.92,-46.35 1532.9,-45.73\"/>\n",
"<text text-anchor=\"middle\" x=\"1525.5\" y=\"-93.8\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b / !u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1522.02,-36.11C1517.75,-67.24 1518.91,-108 1525.5,-108 1531.4,-108 1532.95,-75.38 1530.15,-46.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1533.6,-45.64 1528.98,-36.11 1526.65,-46.45 1533.6,-45.64\"/>\n",
"<text text-anchor=\"middle\" x=\"1525.5\" y=\"-111.8\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b / !u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1521.75,-35.8C1515.71,-73.55 1516.96,-126 1525.5,-126 1533.3,-126 1535.02,-82.18 1530.65,-45.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1534.1,-45.22 1529.25,-35.8 1527.16,-46.19 1534.1,-45.22\"/>\n",
"<text text-anchor=\"middle\" x=\"1525.5\" y=\"-129.8\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b / !u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1521.51,-35.77C1513.69,-79.97 1515.02,-144 1525.5,-144 1535.2,-144 1537.06,-89.13 1531.08,-45.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1534.5,-45.11 1529.49,-35.77 1527.58,-46.19 1534.5,-45.11\"/>\n",
"<text text-anchor=\"middle\" x=\"1525.5\" y=\"-147.8\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b / !u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"2181.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"2181.5\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1543.66,-18C1632.7,-18 2042.3,-18 2152.91,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2153.22,-21.5 2163.22,-18 2153.22,-14.5 2153.22,-21.5\"/>\n",
"<text text-anchor=\"middle\" x=\"1853.5\" y=\"-21.8\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b / (label too long)</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2163.38,-21.1C2100.03,-33.69 2106.07,-54 2181.5,-54 2252.81,-54 2262.11,-35.85 2209.39,-23.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2210.14,-19.81 2199.62,-21.1 2208.65,-26.65 2210.14,-19.81\"/>\n",
"<text text-anchor=\"middle\" x=\"2181.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">1 / (label too long)</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 0x7f936415f510> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"HOA: v1\n",
"States: 9\n",
"Start: 0\n",
"AP: 11 \"u0accel0accel\" \"u0accel0f1dcon23p81b\" \"u0accel0f1dcon231b\" \"u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b\" \"u0gear0gear\" \"u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b\" \"u0steer0f1dsteering0angle0trackpos1b\" \"u0steer0steer\" \"p0p0gt0rpm0f1dcon5523231b\" \"p0p0lt0rpm0f1dcon32323231b\" \"p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 1 1 1 1 1 1\n",
"controllable-AP: 0 1 2 3 4 5 6 7\n",
"--BODY--\n",
"State: 0\n",
"[!8&!9&!10] 2\n",
"[!8&!9&10] 3\n",
"[!8&9&!10] 4\n",
"[!8&9&10] 5\n",
"[8&!9&!10] 6\n",
"[8&!9&10] 7\n",
"[8&9] 8\n",
"State: 1\n",
"[t] 8\n",
"State: 2\n",
"[!0&!1&2&!3&4&!5&6&!7] 0\n",
"State: 3\n",
"[!0&1&!2&!3&4&!5&6&!7] 0\n",
"State: 4\n",
"[!0&!1&2&!3&!4&5&6&!7] 0\n",
"State: 5\n",
"[!0&1&!2&!3&!4&5&6&!7] 0\n",
"State: 6\n",
"[!0&!1&2&3&!4&!5&6&!7] 0\n",
"State: 7\n",
"[!0&1&!2&3&!4&!5&6&!7] 0\n",
"State: 8\n",
"[!0&!1&2&!3&!4&5&!6&7 | !0&!1&2&!3&!4&5&6&!7 | !0&!1&2&!3&4&!5&!6&7 | !0&!1&2&!3&4&!5&6&!7 | !0&!1&2&3&!4&!5&!6&7 | !0&!1&2&3&!4&!5&6&!7 | !0&1&!2&!3&!4&5&!6&7 | !0&1&!2&!3&!4&5&6&!7 | !0&1&!2&!3&4&!5&!6&7 | !0&1&!2&!3&4&!5&6&!7 | !0&1&!2&3&!4&!5&!6&7 | !0&1&!2&3&!4&!5&6&!7 | 0&!1&!2&!3&!4&5&!6&7 | 0&!1&!2&!3&!4&5&6&!7 | 0&!1&!2&!3&4&!5&!6&7 | 0&!1&!2&!3&4&!5&6&!7 | 0&!1&!2&3&!4&!5&!6&7 | 0&!1&!2&3&!4&!5&6&!7] 1\n",
"--END--\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=\"2276pt\" height=\"681pt\"\n",
" viewBox=\"0.00 0.00 2276.00 681.31\" 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 677.31)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-677.31 2272,-677.31 2272,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"1134\" y=\"-658.11\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"1134\" y=\"-643.11\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-353.31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-349.61\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-353.31C2.67,-353.31 15.1,-353.31 27.63,-353.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-356.81 37.94,-353.31 27.94,-349.81 27.94,-356.81\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-574.31 2034,-556.31 2061,-538.31 2088,-556.31 2061,-574.31\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-552.61\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.22,-371.39C58.21,-417.08 63.52,-535.26 92,-559.31 245.53,-688.96 1778.82,-577.79 2026.34,-558.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2026.82,-562.4 2036.52,-558.14 2026.28,-555.42 2026.82,-562.4\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-624.11\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-509.31 2034,-491.31 2061,-473.31 2088,-491.31 2061,-509.31\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-487.61\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M59.13,-371.06C63.42,-403.34 74.22,-469.63 92,-483.31 131.81,-513.95 1760.2,-495.04 2024.06,-491.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2024.28,-495.26 2034.23,-491.64 2024.19,-488.26 2024.28,-495.26\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-504.11\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-428.31 2034,-410.31 2061,-392.31 2088,-410.31 2061,-428.31\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-406.61\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M62.79,-370.07C68.18,-382.82 77.58,-399.46 92,-407.31 136.12,-431.33 1760.9,-413.74 2024.14,-410.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2024.34,-414.23 2034.29,-410.61 2024.26,-407.23 2024.34,-414.23\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-423.11\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-352.31 2034,-334.31 2061,-316.31 2088,-334.31 2061,-352.31\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-330.61\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.01,-353.15C251.93,-351.46 1770.39,-337.06 2024.12,-334.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2024.29,-338.15 2034.26,-334.56 2024.23,-331.15 2024.29,-338.15\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-356.11\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-279.31 2034,-261.31 2061,-243.31 2088,-261.31 2061,-279.31\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-257.61\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M60.38,-335.71C64.62,-319 73.69,-294.77 92,-283.31 134.56,-256.68 1758.95,-260.41 2023.7,-261.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2023.9,-264.7 2033.91,-261.23 2023.92,-257.7 2023.9,-264.7\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-287.11\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-208.31 2034,-190.31 2061,-172.31 2088,-190.31 2061,-208.31\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-186.61\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.53,-335.39C62,-299.63 71.77,-221.44 92,-205.31 131.28,-173.99 1760.12,-187.57 2024.05,-189.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2024.19,-193.48 2034.23,-190.07 2024.26,-186.48 2024.19,-193.48\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-209.11\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-143.31 2034,-125.31 2061,-107.31 2088,-125.31 2061,-143.31\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-121.61\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.92,-335.29C57.14,-286.59 60.66,-154.2 92,-127.31 396.88,134.26 1802.14,-83.01 2029.03,-120.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2028.78,-123.65 2039.22,-121.82 2029.92,-116.74 2028.78,-123.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-131.11\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2044.47,-549.21C2036.21,-545.8 2025.76,-542.09 2016,-540.31 1963.41,-530.75 133.32,-553.21 92,-519.31 71.06,-502.14 62.14,-423.96 58.78,-381.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.27,-380.99 58.04,-371.28 55.29,-381.51 62.27,-380.99\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-544.11\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2048.14,-481.58C2039.74,-475.33 2027.88,-467.75 2016,-464.31 1964.66,-449.44 136.21,-468.35 92,-438.31 73.2,-425.54 64.49,-400.67 60.45,-381.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"63.89,-380.44 58.7,-371.2 56.99,-381.65 63.89,-380.44\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-468.11\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2046.74,-401.69C2038.31,-396.72 2026.96,-390.96 2016,-388.31 1808.18,-338.17 300.67,-415.83 92,-369.31 88.5,-368.53 84.94,-367.38 81.48,-366.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.75,-362.77 72.19,-361.94 79.93,-369.18 82.75,-362.77\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-392.11\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;0 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>5&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2045.82,-326.43C2037.43,-322.22 2026.43,-317.47 2016,-315.31 1963.66,-304.49 140.95,-293.85 92,-315.31 84.66,-318.53 78.18,-324.13 72.85,-330.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.88,-328.18 66.33,-338.16 75.33,-332.57 69.88,-328.18\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-319.11\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2045.87,-253.02C2037.5,-248.59 2026.5,-243.59 2016,-241.31 1963.77,-230 135.06,-209.65 92,-241.31 66.03,-260.4 58.79,-298.67 57.05,-325.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"53.55,-325.16 56.61,-335.3 60.54,-325.46 53.55,-325.16\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-245.11\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2047.67,-180.99C2039.25,-175.23 2027.55,-168.36 2016,-165.31 1964.33,-151.66 133.1,-131.15 92,-165.31 67.96,-185.29 60.35,-277.62 58,-325.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"54.5,-325.1 57.55,-335.24 61.49,-325.41 54.5,-325.1\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-169.11\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"2250\" cy=\"-125.31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"2250\" y=\"-121.61\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;1 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>8&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2088,-125.31C2123.2,-125.31 2185.72,-125.31 2221.62,-125.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2221.84,-128.81 2231.84,-125.31 2221.84,-121.81 2221.84,-128.81\"/>\n",
"<text text-anchor=\"middle\" x=\"2160\" y=\"-129.11\" font-family=\"Times,serif\" font-size=\"14.00\">(label too long)</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2234.28,-115.77C2228.25,-112.39 2221.04,-109.02 2214,-107.31 2167.35,-96.02 2153.1,-98.05 2106,-107.31 2099.3,-108.63 2092.34,-110.97 2085.99,-113.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2084.37,-110.43 2076.62,-117.65 2087.19,-116.84 2084.37,-110.43\"/>\n",
"<text text-anchor=\"middle\" x=\"2160\" y=\"-111.11\" font-family=\"Times,serif\" 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 0x7f936415f990> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"HOA: v1\n",
"States: 9\n",
"Start: 0\n",
"AP: 21 \"u0accel0accel\" \"u0accel0f1dcon23p81b\" \"u0accel0f1dcon231b\" \"u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b\" \"u0gear0gear\" \"u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b\" \"u0steer0f1dsteering0angle0trackpos1b\" \"u0steer0steer\" \"p0p0gt0rpm0f1dcon5523231b\" \"p0p0lt0rpm0f1dcon32323231b\" \"p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b\" \"__AP_OUT__\" \"__AP_IN__\" \"__nv_in0\" \"__nv_in1\" \"__nv_in2\" \"__nv_in3\" \"__nv_out0\" \"__nv_out1\" \"__nv_out2\" \"__nv_out3\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 1 1 1 1 1 1\n",
"controllable-AP: 0 1 2 3 4 5 6 7\n",
"--BODY--\n",
"State: 0\n",
"[!13&!14&!15&!16] 2\n",
"[13&!14&!15&!16] 3\n",
"[!13&14&!15&!16] 4\n",
"[13&14&!15&!16] 5\n",
"[!13&!14&15&!16] 6\n",
"[13&!14&15&!16] 7\n",
"[!13&14&15&!16] 8\n",
"[13&14&15&!16] 2\n",
"[!13&!14&!15&16] 3\n",
"[13&!14&!15&16] 4\n",
"[!13&14&!15&16] 5\n",
"[13&14&!15&16] 6\n",
"[!13&!14&15&16] 7\n",
"State: 1\n",
"[13&14&15&!16] 8\n",
"[!13&!14&!15&16] 8\n",
"[13&!14&!15&16] 8\n",
"[!13&14&!15&16] 8\n",
"[13&14&!15&16] 8\n",
"[!13&!14&15&16] 8\n",
"[!13&14&15&!16] 8\n",
"State: 2\n",
"[!17&!18&!19&!20 | !17&18&19&!20] 0\n",
"State: 3\n",
"[17&!18&!19&!20 | 17&18&19&!20] 0\n",
"State: 4\n",
"[!17&!18&!19&20 | !17&18&!19&!20] 0\n",
"State: 5\n",
"[17&!18&!19&20 | 17&18&!19&!20] 0\n",
"State: 6\n",
"[!17&!18&19&!20 | !17&18&!19&20] 0\n",
"State: 7\n",
"[17&!18&19&!20 | 17&18&!19&20] 0\n",
"State: 8\n",
"[!17&!18&20 | 18&19&!20 | !19&20] 1\n",
"--END--\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=\"1754pt\" height=\"977pt\"\n",
" viewBox=\"0.00 0.00 1754.00 976.79\" 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 972.79)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-972.79 1750,-972.79 1750,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"873\" y=\"-953.59\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"873\" y=\"-938.59\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-538.79\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-535.09\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-538.79C2.67,-538.79 15.1,-538.79 27.63,-538.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-542.29 37.94,-538.79 27.94,-535.29 27.94,-542.29\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"897,-860.79 870,-842.79 897,-824.79 924,-842.79 897,-860.79\"/>\n",
"<text text-anchor=\"middle\" x=\"897\" y=\"-839.09\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.6,-556.95C59.93,-621.7 69.37,-838.51 92,-858.79 217.75,-971.54 685.67,-888.1 852,-858.79 858.26,-857.69 864.79,-855.77 870.86,-853.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"872.4,-856.79 880.48,-849.94 869.89,-850.26 872.4,-856.79\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-919.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; !__nv_in1 &amp; !__nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.89,-556.81C61.02,-616.19 72.35,-802.99 92,-820.79 107.65,-834.97 830.91,-838.81 852,-839.79 855.29,-839.95 858.71,-840.13 862.14,-840.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"862.06,-843.84 872.26,-840.99 862.51,-836.85 862.06,-843.84\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-843.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; __nv_in1 &amp; __nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"897,-746.79 870,-728.79 897,-710.79 924,-728.79 897,-746.79\"/>\n",
"<text text-anchor=\"middle\" x=\"897\" y=\"-725.09\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.22,-556.87C58.21,-602.56 63.52,-720.75 92,-744.79 124.26,-772.03 810.42,-752.12 852,-744.79 858.26,-743.69 864.79,-741.77 870.86,-739.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"872.4,-742.79 880.48,-735.94 869.89,-736.26 872.4,-742.79\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-761.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; !__nv_in1 &amp; !__nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.03,-556.95C60.67,-596.36 69.18,-687.76 92,-706.79 108.22,-720.32 830.91,-724.81 852,-725.79 855.29,-725.95 858.71,-726.13 862.14,-726.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"862.06,-729.84 872.26,-726.99 862.51,-722.85 862.06,-729.84\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-729.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; !__nv_in1 &amp; !__nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"897,-632.79 870,-614.79 897,-596.79 924,-614.79 897,-632.79\"/>\n",
"<text text-anchor=\"middle\" x=\"897\" y=\"-611.09\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.06,-557C60.41,-578.73 67.94,-614.21 92,-630.79 126.76,-654.76 810.42,-638.12 852,-630.79 858.26,-629.69 864.79,-627.77 870.86,-625.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"872.4,-628.79 880.48,-621.94 869.89,-622.26 872.4,-628.79\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-646.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; __nv_in1 &amp; !__nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M62.84,-555.46C68.26,-568.16 77.67,-584.77 92,-592.79 128.85,-613.43 809.81,-609.83 852,-611.79 855.29,-611.95 858.71,-612.13 862.14,-612.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"862.06,-615.84 872.26,-612.99 862.51,-608.85 862.06,-615.84\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-615.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; !__nv_in1 &amp; !__nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"897,-518.79 870,-500.79 897,-482.79 924,-500.79 897,-518.79\"/>\n",
"<text text-anchor=\"middle\" x=\"897\" y=\"-497.09\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.22,-538.65C183.05,-537.68 773.25,-531.79 852,-516.79 858.24,-515.6 864.77,-513.65 870.83,-511.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"872.37,-514.67 880.46,-507.83 869.87,-508.13 872.37,-514.67\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-541.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; __nv_in1 &amp; !__nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.51,-523.31C71.56,-514.03 80.61,-503.05 92,-497.79 168.68,-462.43 767.6,-494.92 852,-497.79 855.47,-497.91 859.1,-498.08 862.71,-498.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"862.52,-501.78 872.72,-498.91 862.96,-494.79 862.52,-501.78\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-501.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; __nv_in1 &amp; !__nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"897,-404.79 870,-386.79 897,-368.79 924,-386.79 897,-404.79\"/>\n",
"<text text-anchor=\"middle\" x=\"897\" y=\"-383.09\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.77,-520.64C57.56,-495.21 63.19,-449.66 92,-427.79 125.65,-402.26 810.52,-410.81 852,-402.79 858.24,-401.59 864.77,-399.63 870.83,-397.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"872.36,-400.65 880.46,-393.81 869.87,-394.11 872.36,-400.65\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-431.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; !__nv_in1 &amp; __nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.31,-520.88C61.44,-483.82 70.72,-400.8 92,-383.79 124.98,-357.43 809.8,-382.36 852,-383.79 855.47,-383.91 859.1,-384.08 862.71,-384.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"862.52,-387.78 872.72,-384.91 862.96,-380.79 862.52,-387.78\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-387.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; __nv_in1 &amp; !__nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"897,-290.79 870,-272.79 897,-254.79 924,-272.79 897,-290.79\"/>\n",
"<text text-anchor=\"middle\" x=\"897\" y=\"-269.09\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.03,-520.8C57.53,-472.82 61.72,-343.66 92,-316.79 123.61,-288.76 810.53,-296.89 852,-288.79 858.24,-287.58 864.76,-285.61 870.83,-283.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"872.36,-286.63 880.45,-279.79 869.86,-280.09 872.36,-286.63\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-320.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; !__nv_in1 &amp; __nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.99,-520.79C61.33,-463.22 73.07,-286.42 92,-269.79 123.72,-241.93 809.8,-268.36 852,-269.79 855.47,-269.91 859.1,-270.08 862.71,-270.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"862.52,-273.78 872.72,-270.91 862.96,-266.79 862.52,-273.78\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-273.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; !__nv_in1 &amp; __nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"897,-214.79 870,-196.79 897,-178.79 924,-196.79 897,-214.79\"/>\n",
"<text text-anchor=\"middle\" x=\"897\" y=\"-193.09\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.5,-520.61C59.53,-453.62 68.2,-223.38 92,-201.79 322.33,7.16 760.71,-143.8 870.55,-186.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"869.28,-189.74 879.87,-190.14 871.84,-183.22 869.28,-189.74\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-205.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; __nv_in1 &amp; __nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M887.38,-830.99C879.43,-821.17 866.67,-807.85 852,-801.79 773.9,-769.55 155.03,-833.06 92,-776.79 61.42,-749.49 57.16,-624.06 56.83,-567.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"60.33,-566.97 56.81,-556.98 53.33,-566.98 60.33,-566.97\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-805.59\" font-family=\"Times,serif\" font-size=\"14.00\">(!__nv_out0 &amp; !__nv_out1 &amp; !__nv_out2 &amp; !__nv_out3) | (!__nv_out0 &amp; __nv_out1 &amp; __nv_out2 &amp; !__nv_out3)</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M887.38,-716.99C879.43,-707.18 866.67,-693.86 852,-687.79 773.92,-655.5 158.55,-713.86 92,-661.79 63.63,-639.59 57.16,-596.12 56.23,-567.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.73,-566.95 56.11,-556.99 52.73,-567.03 59.73,-566.95\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-691.59\" font-family=\"Times,serif\" font-size=\"14.00\">(__nv_out0 &amp; !__nv_out1 &amp; !__nv_out2 &amp; !__nv_out3) | (__nv_out0 &amp; __nv_out1 &amp; __nv_out2 &amp; !__nv_out3)</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M887.39,-602.96C879.45,-593.12 866.69,-579.79 852,-573.79 773.79,-541.87 174.31,-573.79 92,-554.79 88.51,-553.99 84.94,-552.82 81.49,-551.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.76,-548.21 72.2,-547.36 79.93,-554.61 82.76,-548.21\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-577.59\" font-family=\"Times,serif\" font-size=\"14.00\">(!__nv_out0 &amp; __nv_out1 &amp; !__nv_out2 &amp; !__nv_out3) | (!__nv_out0 &amp; !__nv_out1 &amp; !__nv_out2 &amp; __nv_out3)</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;0 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>5&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M886.98,-489.06C878.96,-479.68 866.32,-467.22 852,-461.79 812.52,-446.82 127.5,-438.93 92,-461.79 75.33,-472.52 66.51,-493.35 61.9,-510.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"58.38,-510.29 59.53,-520.82 65.2,-511.87 58.38,-510.29\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-465.59\" font-family=\"Times,serif\" font-size=\"14.00\">(__nv_out0 &amp; __nv_out1 &amp; !__nv_out2 &amp; !__nv_out3) | (__nv_out0 &amp; !__nv_out1 &amp; !__nv_out2 &amp; __nv_out3)</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M886.06,-375.56C877.87,-367.22 865.45,-356.49 852,-351.79 812.14,-337.87 124.49,-324.82 92,-351.79 68.07,-371.66 60.41,-463.5 58.03,-510.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"54.52,-510.67 57.56,-520.82 61.52,-510.99 54.52,-510.67\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-355.59\" font-family=\"Times,serif\" font-size=\"14.00\">(!__nv_out0 &amp; !__nv_out1 &amp; __nv_out2 &amp; !__nv_out3) | (!__nv_out0 &amp; __nv_out1 &amp; !__nv_out2 &amp; __nv_out3)</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M886.06,-261.56C877.87,-253.22 865.45,-242.49 852,-237.79 812.14,-223.87 123.53,-209.71 92,-237.79 71.77,-255.8 61.44,-439.61 58.17,-510.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"54.67,-510.71 57.72,-520.86 61.67,-511.03 54.67,-510.71\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-241.59\" font-family=\"Times,serif\" font-size=\"14.00\">(__nv_out0 &amp; !__nv_out1 &amp; __nv_out2 &amp; !__nv_out3) | (__nv_out0 &amp; __nv_out1 &amp; !__nv_out2 &amp; __nv_out3)</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"1728\" cy=\"-196.79\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1728\" y=\"-193.09\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;1 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>8&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M905.53,-209.36C911.14,-219.08 918.7,-232.98 924,-245.79 934.47,-271.13 919.97,-288.48 942,-304.79 1209.89,-503.15 1422.4,-500.82 1692,-304.79 1716.83,-286.74 1724.4,-250.68 1726.52,-225.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1730.03,-225.21 1727.14,-215.02 1723.04,-224.79 1730.03,-225.21\"/>\n",
"<text text-anchor=\"middle\" x=\"1317\" y=\"-455.59\" font-family=\"Times,serif\" font-size=\"14.00\">(!__nv_out0 &amp; !__nv_out1 &amp; __nv_out3) | (__nv_out1 &amp; __nv_out2 &amp; !__nv_out3) | (!__nv_out2 &amp; __nv_out3)</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1724.03,-214.51C1720.06,-231.97 1711.15,-257.74 1692,-269.79 1656.74,-291.99 978.28,-290.29 942,-269.79 936.86,-266.89 921.01,-239.2 909.81,-218.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"912.75,-216.86 904.9,-209.75 906.6,-220.2 912.75,-216.86\"/>\n",
"<text text-anchor=\"middle\" x=\"1317\" y=\"-289.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; __nv_in1 &amp; __nv_in2 &amp; !__nv_in3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1717.12,-211.14C1710.91,-218.83 1702.16,-227.58 1692,-231.79 1653.51,-247.74 981.34,-245.53 942,-231.79 932.12,-228.34 922.8,-221.64 915.3,-215.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"917.6,-212.38 907.94,-208.02 912.77,-217.45 917.6,-212.38\"/>\n",
"<text text-anchor=\"middle\" x=\"1317\" y=\"-246.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; !__nv_in1 &amp; !__nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1709.85,-196.79C1607.64,-196.79 1078.36,-196.79 934.26,-196.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"934.18,-193.29 924.18,-196.79 934.18,-200.29 934.18,-193.29\"/>\n",
"<text text-anchor=\"middle\" x=\"1317\" y=\"-200.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; !__nv_in1 &amp; !__nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1712.69,-186.93C1706.6,-183.3 1699.24,-179.63 1692,-177.79 1611.23,-157.28 1023.61,-160.93 942,-177.79 935.16,-179.21 928.07,-181.74 921.63,-184.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"919.76,-181.51 912.18,-188.91 922.72,-187.86 919.76,-181.51\"/>\n",
"<text text-anchor=\"middle\" x=\"1317\" y=\"-181.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; __nv_in1 &amp; !__nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1721.02,-180.07C1715.57,-167.59 1706.18,-151.42 1692,-143.79 1655.31,-124.05 979.72,-126.09 942,-143.79 928.33,-150.21 917.45,-163.19 909.92,-174.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"906.8,-173.09 904.61,-183.45 912.79,-176.71 906.8,-173.09\"/>\n",
"<text text-anchor=\"middle\" x=\"1317\" y=\"-147.59\" font-family=\"Times,serif\" font-size=\"14.00\">__nv_in0 &amp; __nv_in1 &amp; !__nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1725.52,-178.82C1722.75,-158.18 1714.8,-125.2 1692,-109.79 1657.47,-86.47 977.49,-87.97 942,-109.79 920.29,-123.14 908.9,-150.88 903.2,-171.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"899.8,-170.64 900.77,-181.19 906.59,-172.33 899.8,-170.64\"/>\n",
"<text text-anchor=\"middle\" x=\"1317\" y=\"-113.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; !__nv_in1 &amp; __nv_in2 &amp; __nv_in3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1724.58,-179.02C1719.96,-148.1 1708.83,-86.5 1692,-73.79 1559,26.64 1078.26,22.18 942,-73.79 911.42,-95.33 901.98,-140.17 899.13,-169.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"895.62,-169.44 898.33,-179.68 902.59,-169.98 895.62,-169.44\"/>\n",
"<text text-anchor=\"middle\" x=\"1317\" y=\"-77.59\" font-family=\"Times,serif\" font-size=\"14.00\">!__nv_in0 &amp; __nv_in1 &amp; __nv_in2 &amp; !__nv_in3</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 0x7f936415f990> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Strategy torquesimple_acd as mealy machine\n",
"\n",
"aut = spot.automaton(\"\"\"HOA: v1\n",
"States: 2\n",
"Start: 0\n",
"AP: 11 \"u0accel0accel\" \"u0accel0f1dcon23p81b\" \"u0accel0f1dcon231b\" \"u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b\" \"u0gear0gear\" \"u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b\" \"u0steer0f1dsteering0angle0trackpos1b\" \"u0steer0steer\" \"p0p0gt0rpm0f1dcon5523231b\" \"p0p0lt0rpm0f1dcon32323231b\" \"p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"controllable-AP: 0 1 2 3 4 5 6 7\n",
"--BODY--\n",
"State: 0\n",
"[!0&!1&2&!3&4&!5&6&!7&!8&!9&!10] 0\n",
"[!0&1&!2&!3&4&!5&6&!7&!8&!9&10] 0\n",
"[!0&!1&2&!3&!4&5&6&!7&!8&9&!10] 0\n",
"[!0&1&!2&!3&!4&5&6&!7&!8&9&10] 0\n",
"[!0&!1&2&3&!4&!5&6&!7&8&!9&!10] 0\n",
"[!0&1&!2&3&!4&!5&6&!7&8&!9&10] 0\n",
"[!0&!1&2&!3&!4&5&!6&7&8&9 | !0&!1&2&!3&!4&5&6&!7&8&9 | !0&!1&2&!3&4&!5&!6&7&8&9 | !0&!1&2&!3&4&!5&6&!7&8&9 | !0&!1&2&3&!4&!5&!6&7&8&9 | !0&!1&2&3&!4&!5&6&!7&8&9 | !0&1&!2&!3&!4&5&!6&7&8&9 | !0&1&!2&!3&!4&5&6&!7&8&9 | !0&1&!2&!3&4&!5&!6&7&8&9 | !0&1&!2&!3&4&!5&6&!7&8&9 | !0&1&!2&3&!4&!5&!6&7&8&9 | !0&1&!2&3&!4&!5&6&!7&8&9 | 0&!1&!2&!3&!4&5&!6&7&8&9 | 0&!1&!2&!3&!4&5&6&!7&8&9 | 0&!1&!2&!3&4&!5&!6&7&8&9 | 0&!1&!2&!3&4&!5&6&!7&8&9 | 0&!1&!2&3&!4&!5&!6&7&8&9 | 0&!1&!2&3&!4&!5&6&!7&8&9] 1\n",
"State: 1\n",
"[!0&!1&2&!3&!4&5&!6&7 | !0&!1&2&!3&!4&5&6&!7 | !0&!1&2&!3&4&!5&!6&7 | !0&!1&2&!3&4&!5&6&!7 | !0&!1&2&3&!4&!5&!6&7 | !0&!1&2&3&!4&!5&6&!7 | !0&1&!2&!3&!4&5&!6&7 | !0&1&!2&!3&!4&5&6&!7 | !0&1&!2&!3&4&!5&!6&7 | !0&1&!2&!3&4&!5&6&!7 | !0&1&!2&3&!4&!5&!6&7 | !0&1&!2&3&!4&!5&6&!7 | 0&!1&!2&!3&!4&5&!6&7 | 0&!1&!2&!3&!4&5&6&!7 | 0&!1&!2&!3&4&!5&!6&7 | 0&!1&!2&!3&4&!5&6&!7 | 0&!1&!2&3&!4&!5&!6&7 | 0&!1&!2&3&!4&!5&6&!7] 1\n",
"--END--\"\"\")\n",
"\n",
"display(aut)\n",
"\n",
"# Convert to split mealy machine\n",
"auts = spot.split_2step(aut)\n",
"print(auts.to_str(\"hoa\"))\n",
"display(auts)\n",
"\n",
"# Relabel both, inputs and outputs\n",
"# You can choose the split option and stopping criteria as before\n",
"rel_dicts = spot.partitioned_game_relabel_here(auts, True, True, True, False, 10000, 10000)\n",
"print(auts.to_str(\"hoa\"))\n",
"display(auts)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "7ec02ff5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"HOA: v1\n",
"States: 9\n",
"Start: 0\n",
"AP: 11 \"u0accel0accel\" \"u0accel0f1dcon23p81b\" \"u0accel0f1dcon231b\" \"u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b\" \"u0gear0gear\" \"u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b\" \"u0steer0f1dsteering0angle0trackpos1b\" \"u0steer0steer\" \"p0p0gt0rpm0f1dcon5523231b\" \"p0p0lt0rpm0f1dcon32323231b\" \"p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b\"\n",
"acc-name: all\n",
"Acceptance: 0 t\n",
"properties: trans-labels explicit-labels state-acc deterministic\n",
"spot-state-player: 0 0 1 1 1 1 1 1 1\n",
"controllable-AP: 0 1 2 3 4 5 6 7\n",
"--BODY--\n",
"State: 0\n",
"[f] 2\n",
"[f] 3\n",
"[f] 4\n",
"[f] 5\n",
"[f] 6\n",
"[f] 7\n",
"[8&9] 8\n",
"[!8&!9&!10] 2\n",
"[!8&!9&10] 3\n",
"[!8&9&!10] 4\n",
"[!8&9&10] 5\n",
"[8&!9&!10] 6\n",
"[8&!9&10] 7\n",
"State: 1\n",
"[!8&!9&!10] 8\n",
"[!8&!9&10] 8\n",
"[!8&9&!10] 8\n",
"[!8&9&10] 8\n",
"[8&!9&!10] 8\n",
"[8&!9&10] 8\n",
"[8&9] 8\n",
"State: 2\n",
"[!0&!1&2&!3&4&!5&6&!7] 0\n",
"State: 3\n",
"[!0&1&!2&!3&4&!5&6&!7] 0\n",
"State: 4\n",
"[!0&!1&2&!3&!4&5&6&!7] 0\n",
"State: 5\n",
"[!0&1&!2&!3&!4&5&6&!7] 0\n",
"State: 6\n",
"[!0&!1&2&3&!4&!5&6&!7] 0\n",
"State: 7\n",
"[!0&1&!2&3&!4&!5&6&!7] 0\n",
"State: 8\n",
"[!0&!1&2&!3&!4&5&!6&7 | !0&!1&2&!3&!4&5&6&!7 | !0&!1&2&!3&4&!5&!6&7 | !0&!1&2&!3&4&!5&6&!7 | !0&!1&2&3&!4&!5&!6&7 | !0&!1&2&3&!4&!5&6&!7 | !0&1&!2&!3&!4&5&!6&7 | !0&1&!2&!3&!4&5&6&!7 | !0&1&!2&!3&4&!5&!6&7 | !0&1&!2&!3&4&!5&6&!7 | !0&1&!2&3&!4&!5&!6&7 | !0&1&!2&3&!4&!5&6&!7 | 0&!1&!2&!3&!4&5&!6&7 | 0&!1&!2&!3&!4&5&6&!7 | 0&!1&!2&!3&4&!5&!6&7 | 0&!1&!2&!3&4&!5&6&!7 | 0&!1&!2&3&!4&!5&!6&7 | 0&!1&!2&3&!4&!5&6&!7] 1\n",
"--END--\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=\"3282pt\" height=\"985pt\"\n",
" viewBox=\"0.00 0.00 3282.00 984.69\" 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 980.69)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-980.69 3278,-980.69 3278,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"1637\" y=\"-961.49\" font-family=\"Times,serif\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"middle\" x=\"1637\" y=\"-946.49\" font-family=\"Times,serif\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"56\" cy=\"-531.69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-527.99\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-531.69C2.67,-531.69 15.1,-531.69 27.63,-531.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"27.94,-535.19 37.94,-531.69 27.94,-528.19 27.94,-535.19\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-853.69 2034,-835.69 2061,-817.69 2088,-835.69 2061,-853.69\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-831.99\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.6,-549.85C59.93,-614.6 69.37,-831.41 92,-851.69 251.17,-994.4 1805.46,-888.78 2016,-851.69 2022.26,-850.59 2028.79,-848.67 2034.86,-846.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2036.4,-849.69 2044.48,-842.84 2033.89,-843.16 2036.4,-849.69\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-927.49\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.88,-549.72C60.98,-609.13 72.22,-796.04 92,-813.69 111.94,-831.49 1989.3,-831.65 2016,-832.69 2019.47,-832.83 2023.09,-833.01 2026.71,-833.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2026.52,-836.71 2036.72,-833.85 2026.96,-829.73 2026.52,-836.71\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-836.49\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-739.69 2034,-721.69 2061,-703.69 2088,-721.69 2061,-739.69\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-717.99\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.22,-549.77C58.21,-595.46 63.52,-713.64 92,-737.69 132.83,-772.17 1963.37,-746.97 2016,-737.69 2022.26,-736.59 2028.79,-734.67 2034.86,-732.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2036.4,-735.69 2044.48,-728.84 2033.89,-729.16 2036.4,-735.69\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-758.49\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.01,-549.87C60.61,-589.34 69.04,-680.83 92,-699.69 112.65,-716.65 1989.3,-717.65 2016,-718.69 2019.47,-718.83 2023.09,-719.01 2026.71,-719.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2026.52,-722.71 2036.72,-719.85 2026.96,-715.73 2026.52,-722.71\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-722.49\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-625.69 2034,-607.69 2061,-589.69 2088,-607.69 2061,-625.69\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-603.99\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.06,-549.9C60.41,-571.63 67.94,-607.11 92,-623.69 136,-654.03 1963.37,-632.97 2016,-623.69 2022.26,-622.59 2028.79,-620.67 2034.86,-618.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2036.4,-621.69 2044.48,-614.84 2033.89,-615.16 2036.4,-621.69\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-642.49\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M62.81,-548.42C68.21,-561.15 77.61,-577.78 92,-585.69 138.83,-611.45 1962.59,-602.61 2016,-604.69 2019.47,-604.83 2023.09,-605.01 2026.71,-605.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2026.52,-608.71 2036.72,-605.85 2026.96,-601.73 2026.52,-608.71\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-608.49\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-511.69 2034,-493.69 2061,-475.69 2088,-493.69 2061,-511.69\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-489.99\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.17,-531.67C261.19,-531.35 1914.98,-528.08 2016,-509.69 2022.25,-508.56 2028.79,-506.62 2034.85,-504.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2036.39,-507.64 2044.47,-500.8 2033.88,-501.1 2036.39,-507.64\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-534.49\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.51,-516.21C71.56,-506.93 80.61,-495.94 92,-490.69 140.53,-468.31 1962.59,-488.87 2016,-490.69 2019.47,-490.81 2023.1,-490.98 2026.71,-491.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2026.52,-494.68 2036.72,-491.81 2026.96,-487.69 2026.52,-494.68\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-494.49\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-397.69 2034,-379.69 2061,-361.69 2088,-379.69 2061,-397.69\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-375.99\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.91,-513.53C57.88,-488.61 63.78,-444.53 92,-423.69 135,-391.95 1963.43,-405.35 2016,-395.69 2022.25,-394.55 2028.78,-392.61 2034.85,-390.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2036.38,-393.63 2044.47,-386.78 2033.88,-387.09 2036.38,-393.63\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-427.49\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.31,-513.78C61.44,-476.72 70.72,-393.7 92,-376.69 133.75,-343.32 1962.59,-374.87 2016,-376.69 2019.47,-376.81 2023.1,-376.98 2026.71,-377.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2026.52,-380.68 2036.72,-377.81 2026.96,-373.69 2026.52,-380.68\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-380.49\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-283.69 2034,-265.69 2061,-247.69 2088,-265.69 2061,-283.69\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-261.99\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.88,-513.37C57,-463.86 60.28,-329.24 92,-301.69 132.35,-266.65 1963.41,-291.24 2016,-281.69 2022.25,-280.56 2028.79,-278.63 2034.85,-276.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2036.39,-279.65 2044.47,-272.8 2033.88,-273.11 2036.39,-279.65\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-305.49\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.99,-513.69C61.33,-456.12 73.07,-279.32 92,-262.69 132.15,-227.42 1962.59,-260.87 2016,-262.69 2019.47,-262.81 2023.1,-262.98 2026.71,-263.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2026.52,-266.68 2036.72,-263.81 2026.96,-259.69 2026.52,-266.68\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-266.49\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"2061,-207.69 2034,-189.69 2061,-171.69 2088,-189.69 2061,-207.69\"/>\n",
"<text text-anchor=\"middle\" x=\"2061\" y=\"-185.99\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.45,-513.54C59.32,-445.56 67.54,-208.79 92,-186.69 390.19,82.78 1802.42,-145.58 2029.23,-184.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2028.68,-187.79 2039.12,-186.03 2029.86,-180.89 2028.68,-187.79\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-190.49\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2051.41,-823.81C2043.48,-813.94 2030.74,-800.59 2016,-794.69 1966.38,-774.84 132.22,-808.9 92,-773.69 60.57,-746.18 56.78,-617.93 56.71,-560.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"60.21,-559.86 56.73,-549.85 53.21,-559.84 60.21,-559.86\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-798.49\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2051.41,-709.81C2043.48,-699.94 2030.73,-686.6 2016,-680.69 1966.39,-660.82 134.36,-690.29 92,-657.69 76.58,-645.82 66.11,-593.34 60.88,-559.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"64.32,-559.25 59.37,-549.88 57.39,-560.29 64.32,-559.25\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-684.49\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2051.41,-595.81C2043.49,-585.93 2030.74,-572.58 2016,-566.69 1916.73,-527.04 196.33,-570.95 92,-547.69 88.5,-546.91 84.94,-545.76 81.48,-544.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.75,-541.16 72.19,-540.32 79.93,-547.56 82.75,-541.16\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-570.49\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;0 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>5&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2049.59,-482.77C2041.34,-474.94 2029.04,-465.04 2016,-460.69 1965.3,-443.79 137.38,-432.47 92,-460.69 76.68,-470.22 67.87,-488.64 62.92,-504.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.51,-503.56 60.2,-514.13 66.25,-505.43 59.51,-503.56\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-464.49\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; !u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2050.91,-368.26C2042.86,-359.11 2030.19,-346.97 2016,-341.69 1965.91,-323.06 133.07,-307.5 92,-341.69 67.67,-361.95 60.19,-455.67 57.94,-503.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"54.43,-503.61 57.5,-513.75 61.42,-503.91 54.43,-503.61\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-345.49\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; !u0accel0f1dcon23p81b &amp; u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2050.98,-253.96C2042.96,-244.58 2030.32,-232.12 2016,-226.69 1966.03,-207.74 131.89,-191.12 92,-226.69 71.52,-244.96 61.34,-431.19 58.14,-503.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"54.64,-503.38 57.7,-513.52 61.63,-503.68 54.64,-503.38\"/>\n",
"<text text-anchor=\"middle\" x=\"1054\" y=\"-230.49\" font-family=\"Times,serif\" font-size=\"14.00\">!u0accel0accel &amp; u0accel0f1dcon23p81b &amp; !u0accel0f1dcon231b &amp; !u0gear0f1dmax0f1dcon241b0f1dsub0gear0f1dcon241b1b1b &amp; u0gear0f1dmin0f1dcon61b0f1dadd0gear0f1dcon241b1b1b &amp; !u0gear0gear &amp; u0steer0f1dsteering0angle0trackpos1b &amp; !u0steer0steer</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"3256\" cy=\"-189.69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"3256\" y=\"-185.99\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;1 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>8&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2069.44,-202.3C2074.99,-212.04 2082.54,-225.95 2088,-238.69 2097.96,-261.95 2085.48,-277.9 2106,-292.69 2507.66,-582.19 2817.51,-581.02 3220,-292.69 3243.54,-275.83 3251.44,-242.22 3253.99,-217.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"3257.48,-218.16 3254.8,-207.91 3250.5,-217.6 3257.48,-218.16\"/>\n",
"<text text-anchor=\"middle\" x=\"2663\" y=\"-512.49\" font-family=\"Times,serif\" font-size=\"14.00\">(label too long)</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M3252.03,-207.41C3248.06,-224.87 3239.15,-250.64 3220,-262.69 3193.81,-279.18 2132.94,-277.91 2106,-262.69 2100.86,-259.79 2085.01,-232.1 2073.81,-211.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2076.75,-209.76 2068.9,-202.65 2070.6,-213.1 2076.75,-209.76\"/>\n",
"<text text-anchor=\"middle\" x=\"2663\" y=\"-277.49\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M3245.12,-204.04C3238.91,-211.73 3230.16,-220.48 3220,-224.69 3162.82,-248.38 2164.43,-245.1 2106,-224.69 2096.12,-221.24 2086.8,-214.54 2079.3,-207.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2081.6,-205.28 2071.94,-200.92 2076.77,-210.35 2081.6,-205.28\"/>\n",
"<text text-anchor=\"middle\" x=\"2663\" y=\"-244.49\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M3237.69,-189.69C3107.51,-189.69 2282.02,-189.69 2098.24,-189.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2098.03,-186.19 2088.03,-189.69 2098.03,-193.19 2098.03,-186.19\"/>\n",
"<text text-anchor=\"middle\" x=\"2663\" y=\"-193.49\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M3240.69,-179.83C3234.6,-176.2 3227.24,-172.53 3220,-170.69 3100.03,-140.23 2227.22,-145.64 2106,-170.69 2099.16,-172.11 2092.07,-174.64 2085.63,-177.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2083.76,-174.41 2076.18,-181.81 2086.72,-180.76 2083.76,-174.41\"/>\n",
"<text text-anchor=\"middle\" x=\"2663\" y=\"-174.49\" font-family=\"Times,serif\" font-size=\"14.00\">!p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M3250.05,-172.55C3245,-158.52 3235.63,-139.59 3220,-130.69 3193.11,-115.38 2133.66,-116.82 2106,-130.69 2090.93,-138.25 2079.7,-153.7 2072.36,-166.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2069.16,-165.46 2067.71,-175.95 2075.39,-168.66 2069.16,-165.46\"/>\n",
"<text text-anchor=\"middle\" x=\"2663\" y=\"-134.49\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; !p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M3253.7,-171.69C3251.11,-150.62 3243.33,-116.59 3220,-100.69 3168.85,-65.85 2158.57,-68.04 2106,-100.69 2083.95,-114.39 2072.62,-142.76 2067.02,-163.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2063.57,-163.2 2064.66,-173.74 2070.38,-164.83 2063.57,-163.2\"/>\n",
"<text text-anchor=\"middle\" x=\"2663\" y=\"-104.49\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; !p0p0lt0rpm0f1dcon32323231b &amp; p0p0lt0speed0f1dsub0target2speed0f1dmultp0f1dabs0steer1b0f1dcon248881b1b1b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;8 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>1&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M3253.02,-171.92C3248.93,-138.84 3238.36,-69.88 3220,-55.69 3122.04,19.97 2206.25,16.91 2106,-55.69 2072.65,-79.85 2064.13,-130.09 2062.21,-161.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2058.69,-161.93 2061.77,-172.07 2065.69,-162.22 2058.69,-161.93\"/>\n",
"<text text-anchor=\"middle\" x=\"2663\" y=\"-59.49\" font-family=\"Times,serif\" font-size=\"14.00\">p0p0gt0rpm0f1dcon5523231b &amp; p0p0lt0rpm0f1dcon32323231b</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 0x7f936415f990> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Undo relabel\n",
"spot.relabel_game_here(auts, rel_dicts)\n",
"print(auts.to_str(\"hoa\"))\n",
"display(auts)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "48c2283b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n"
]
}
],
"source": [
"# Check if we do actually obtain the same automaton\n",
"\n",
"print(spot.are_equivalent(aut, spot.unsplit_2step(auts)))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "2b8d907e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n",
"True\n"
]
}
],
"source": [
"# Test all options for equivalence\n",
"for relabel_env in [True, False]:\n",
" for relabel_player in [True, False]:\n",
" for split_env in [True, False]:\n",
" for split_player in [True, False]:\n",
" auts = spot.split_2step(aut)\n",
" rel_dicts = spot.partitioned_game_relabel_here(auts, relabel_env, relabel_player, split_env, split_player, 10000, 10000)\n",
" spot.relabel_game_here(auts, rel_dicts)\n",
" print(spot.are_equivalent(aut, spot.unsplit_2step(auts)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "17a32a72",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}