twa_graph: swap the two passes of merge_edges()

This improves the determinism in a few cases.

* spot/twa/twagraph.cc (merge_edges): Encapsulate the two
passes into lambdas so that they are very easy to swap.
* spot/twa/twagraph.hh (merge_edges): Adjust documentation.
* tests/python/mergedge.py: Add test case.
* tests/core/alternating.test, tests/python/alternation.ipynb:
Determinism was improved.
* tests/core/parity2.test, tests/core/readsave.test,
tests/core/sbacc.test, tests/python/_product_susp.ipynb,
tests/python/atva16-fig2a.ipynb, tests/python/decompose.ipynb,
tests/python/highlighting.ipynb, tests/python/satmin.ipynb,
tests/python/simstate.py: Adjust expected order of edges.
* NEWS: Mention the change.
This commit is contained in:
Alexandre Duret-Lutz 2021-01-19 20:58:04 +01:00
parent e8e31c2723
commit 2072151499
15 changed files with 1963 additions and 1896 deletions

View file

@ -247,7 +247,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da043c8d0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027d80> >"
]
},
"execution_count": 4,
@ -359,7 +359,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7f7da0446d20> >"
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7efc2002e2a0> >"
]
},
"execution_count": 5,
@ -469,7 +469,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da043c8d0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027d80> >"
]
},
"execution_count": 6,
@ -659,30 +659,30 @@
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-146.41C351.28,-156.09 352.89,-165 357,-165 360.02,-165 361.69,-160.19 362.01,-153.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-146.41 365.15,-153.33 361.91,-149.91 362,-153.41 362,-153.41 362,-153.41 361.91,-149.91 358.85,-153.49 361.82,-146.41 361.82,-146.41\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.73,-145.6C344.24,-166.86 346.66,-195 357,-195 366.25,-195 369.16,-172.49 365.74,-152.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.27,-145.6 368.81,-151.79 365,-149.02 365.73,-152.44 365.73,-152.44 365.73,-152.44 365,-149.02 362.64,-153.1 364.27,-145.6 364.27,-145.6\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-145.31C344.37,-162.96 346.93,-183 357,-183 365.73,-183 368.82,-167.93 366.25,-152.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-145.31 369.26,-151.46 365.43,-148.73 366.19,-152.14 366.19,-152.14 366.19,-152.14 365.43,-148.73 363.11,-152.82 364.67,-145.31 364.67,-145.31\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242,-122.41C241.07,-132.09 242.73,-141 247,-141 250.13,-141 251.86,-136.19 252.19,-129.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-122.41 255.33,-129.33 252.09,-125.91 252.18,-129.41 252.18,-129.41 252.18,-129.41 252.09,-125.91 249.03,-129.49 252,-122.41 252,-122.41\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.46,-121.6C233.77,-142.86 236.28,-171 247,-171 256.59,-171 259.61,-148.49 256.06,-128.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.54,-121.6 259.12,-127.75 255.29,-125.01 256.05,-128.43 256.05,-128.43 256.05,-128.43 255.29,-125.01 252.97,-129.11 254.54,-121.6 254.54,-121.6\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-121.31C233.9,-138.96 236.55,-159 247,-159 256.06,-159 259.26,-143.93 256.59,-128.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-121.31 259.6,-127.42 255.74,-124.72 256.53,-128.13 256.53,-128.13 256.53,-128.13 255.74,-124.72 253.46,-128.84 254.96,-121.31 254.96,-121.31\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
@ -702,7 +702,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da0446e70> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e360> >"
]
},
"execution_count": 8,
@ -852,32 +852,32 @@
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M352.18,-146.41C351.28,-156.09 352.89,-165 357,-165 360.02,-165 361.69,-160.19 362.01,-153.81\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"361.82,-146.41 365.15,-153.33 362.41,-149.9 362.5,-153.4 362,-153.41 361.5,-153.42 361.41,-149.92 358.85,-153.49 361.82,-146.41 361.82,-146.41\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-146.41C351.28,-156.09 352.89,-165 357,-165 360.02,-165 361.69,-160.19 362.01,-153.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-146.41 365.15,-153.33 361.91,-149.91 362,-153.41 362,-153.41 362,-153.41 361.91,-149.91 358.85,-153.49 361.82,-146.41 361.82,-146.41\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.73,-145.6C344.24,-166.86 346.66,-195 357,-195 366.25,-195 369.16,-172.49 365.74,-152.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.27,-145.6 368.81,-151.79 365,-149.02 365.73,-152.44 365.73,-152.44 365.73,-152.44 365,-149.02 362.64,-153.1 364.27,-145.6 364.27,-145.6\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M349.33,-145.31C344.37,-162.96 346.93,-183 357,-183 365.73,-183 368.82,-167.93 366.25,-152.42\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"364.67,-145.31 369.26,-151.46 365.92,-148.62 366.68,-152.03 366.19,-152.14 365.7,-152.25 364.94,-148.83 363.11,-152.82 364.67,-145.31 364.67,-145.31\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242,-122.41C241.07,-132.09 242.73,-141 247,-141 250.13,-141 251.86,-136.19 252.19,-129.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-122.41 255.33,-129.33 252.09,-125.91 252.18,-129.41 252.18,-129.41 252.18,-129.41 252.09,-125.91 249.03,-129.49 252,-122.41 252,-122.41\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.46,-121.6C233.77,-142.86 236.28,-171 247,-171 256.59,-171 259.61,-148.49 256.06,-128.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.54,-121.6 259.12,-127.75 255.29,-125.01 256.05,-128.43 256.05,-128.43 256.05,-128.43 255.29,-125.01 252.97,-129.11 254.54,-121.6 254.54,-121.6\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-121.31C233.9,-138.96 236.55,-159 247,-159 256.06,-159 259.26,-143.93 256.59,-128.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-121.31 259.6,-127.42 255.74,-124.72 256.53,-128.13 256.53,-128.13 256.53,-128.13 255.74,-124.72 253.46,-128.84 254.96,-121.31 254.96,-121.31\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
@ -897,7 +897,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da0446e70> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e360> >"
]
},
"execution_count": 11,
@ -1235,7 +1235,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da045a150> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002edb0> >"
]
},
"metadata": {},
@ -1250,9 +1250,9 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"734pt\" height=\"217pt\"\n",
" viewBox=\"0.00 0.00 734.00 216.77\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.684931506849315 0.684931506849315) rotate(0) translate(4 312)\">\n",
"<svg width=\"729pt\" height=\"215pt\"\n",
" viewBox=\"0.00 0.00 729.00 215.29\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.6802721088435374 0.6802721088435374) rotate(0) translate(4 312)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-312 1066,-312 1066,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"381.5\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
@ -1496,7 +1496,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da0446510> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027de0> >"
]
},
"metadata": {},
@ -1679,7 +1679,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da044c6f0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e570> >"
]
},
"metadata": {},
@ -1796,7 +1796,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da044cb10> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e480> >"
]
},
"metadata": {},
@ -1851,7 +1851,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da044ca20> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e6c0> >"
]
},
"metadata": {},
@ -1945,7 +1945,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da04520f0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002ec60> >"
]
},
"execution_count": 14,
@ -2074,7 +2074,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da04520f0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002ec60> >"
]
},
"metadata": {},
@ -2139,7 +2139,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da044cb10> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e480> >"
]
},
"metadata": {},
@ -2194,7 +2194,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da044ca20> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e6c0> >"
]
},
"metadata": {},
@ -2425,7 +2425,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7f7da0468a50> >"
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7efc20044780> >"
]
},
"metadata": {},
@ -2510,7 +2510,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da0468de0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc200449c0> >"
]
},
"metadata": {},
@ -2607,7 +2607,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da0468bd0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc200448d0> >"
]
},
"metadata": {},
@ -2733,30 +2733,30 @@
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-146.41C351.28,-156.09 352.89,-165 357,-165 360.02,-165 361.69,-160.19 362.01,-153.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-146.41 365.15,-153.33 361.91,-149.91 362,-153.41 362,-153.41 362,-153.41 361.91,-149.91 358.85,-153.49 361.82,-146.41 361.82,-146.41\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.73,-145.6C344.24,-166.86 346.66,-195 357,-195 366.25,-195 369.16,-172.49 365.74,-152.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.27,-145.6 368.81,-151.79 365,-149.02 365.73,-152.44 365.73,-152.44 365.73,-152.44 365,-149.02 362.64,-153.1 364.27,-145.6 364.27,-145.6\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-145.31C344.37,-162.96 346.93,-183 357,-183 365.73,-183 368.82,-167.93 366.25,-152.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-145.31 369.26,-151.46 365.43,-148.73 366.19,-152.14 366.19,-152.14 366.19,-152.14 365.43,-148.73 363.11,-152.82 364.67,-145.31 364.67,-145.31\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242,-122.41C241.07,-132.09 242.73,-141 247,-141 250.13,-141 251.86,-136.19 252.19,-129.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-122.41 255.33,-129.33 252.09,-125.91 252.18,-129.41 252.18,-129.41 252.18,-129.41 252.09,-125.91 249.03,-129.49 252,-122.41 252,-122.41\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.46,-121.6C233.77,-142.86 236.28,-171 247,-171 256.59,-171 259.61,-148.49 256.06,-128.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.54,-121.6 259.12,-127.75 255.29,-125.01 256.05,-128.43 256.05,-128.43 256.05,-128.43 255.29,-125.01 252.97,-129.11 254.54,-121.6 254.54,-121.6\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-121.31C233.9,-138.96 236.55,-159 247,-159 256.06,-159 259.26,-143.93 256.59,-128.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-121.31 259.6,-127.42 255.74,-124.72 256.53,-128.13 256.53,-128.13 256.53,-128.13 255.74,-124.72 253.46,-128.84 254.96,-121.31 254.96,-121.31\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
@ -2776,7 +2776,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da0461210> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
]
},
"execution_count": 19,
@ -2861,15 +2861,15 @@
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242,-173.41C241.07,-183.09 242.73,-192 247,-192 250.13,-192 251.86,-187.19 252.19,-180.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-173.41 255.33,-180.33 252.09,-176.91 252.18,-180.41 252.18,-180.41 252.18,-180.41 252.09,-176.91 249.03,-180.49 252,-173.41 252,-173.41\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</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=\"M239.46,-172.6C233.77,-193.86 236.28,-222 247,-222 256.59,-222 259.61,-199.49 256.06,-179.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.54,-172.6 259.12,-178.75 255.29,-176.01 256.05,-179.43 256.05,-179.43 256.05,-179.43 255.29,-176.01 252.97,-180.11 254.54,-172.6 254.54,-172.6\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-225.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-172.31C233.9,-189.96 236.55,-210 247,-210 256.06,-210 259.26,-194.93 256.59,-179.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-172.31 259.6,-178.42 255.74,-175.72 256.53,-179.13 256.53,-179.13 256.53,-179.13 255.74,-175.72 253.46,-179.84 254.96,-172.31 254.96,-172.31\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
@ -2882,15 +2882,15 @@
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-79.41C351.28,-89.09 352.89,-98 357,-98 360.02,-98 361.69,-93.19 362.01,-86.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-79.41 365.15,-86.33 361.91,-82.91 362,-86.41 362,-86.41 362,-86.41 361.91,-82.91 358.85,-86.49 361.82,-79.41 361.82,-79.41\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.73,-78.6C344.24,-99.86 346.66,-128 357,-128 366.25,-128 369.16,-105.49 365.74,-85.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.27,-78.6 368.81,-84.79 365,-82.02 365.73,-85.44 365.73,-85.44 365.73,-85.44 365,-82.02 362.64,-86.1 364.27,-78.6 364.27,-78.6\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-78.31C344.37,-95.96 346.93,-116 357,-116 365.73,-116 368.82,-100.93 366.25,-85.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-78.31 369.26,-84.46 365.43,-81.73 366.19,-85.14 366.19,-85.14 366.19,-85.14 365.43,-81.73 363.11,-85.82 364.67,-78.31 364.67,-78.31\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
@ -2944,7 +2944,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da0461210> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
]
},
"execution_count": 20,
@ -3024,15 +3024,15 @@
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242,-173.41C241.07,-183.09 242.73,-192 247,-192 250.13,-192 251.86,-187.19 252.19,-180.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252,-173.41 255.33,-180.33 252.09,-176.91 252.18,-180.41 252.18,-180.41 252.18,-180.41 252.09,-176.91 249.03,-180.49 252,-173.41 252,-173.41\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</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=\"M239.46,-172.6C233.77,-193.86 236.28,-222 247,-222 256.59,-222 259.61,-199.49 256.06,-179.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.54,-172.6 259.12,-178.75 255.29,-176.01 256.05,-179.43 256.05,-179.43 256.05,-179.43 255.29,-176.01 252.97,-180.11 254.54,-172.6 254.54,-172.6\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-225.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.04,-172.31C233.9,-189.96 236.55,-210 247,-210 256.06,-210 259.26,-194.93 256.59,-179.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.96,-172.31 259.6,-178.42 255.74,-175.72 256.53,-179.13 256.53,-179.13 256.53,-179.13 255.74,-175.72 253.46,-179.84 254.96,-172.31 254.96,-172.31\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"239\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
@ -3045,15 +3045,15 @@
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-79.41C351.28,-89.09 352.89,-98 357,-98 360.02,-98 361.69,-93.19 362.01,-86.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-79.41 365.15,-86.33 361.91,-82.91 362,-86.41 362,-86.41 362,-86.41 361.91,-82.91 358.85,-86.49 361.82,-79.41 361.82,-79.41\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.73,-78.6C344.24,-99.86 346.66,-128 357,-128 366.25,-128 369.16,-105.49 365.74,-85.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.27,-78.6 368.81,-84.79 365,-82.02 365.73,-85.44 365.73,-85.44 365.73,-85.44 365,-82.02 362.64,-86.1 364.27,-78.6 364.27,-78.6\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-78.31C344.37,-95.96 346.93,-116 357,-116 365.73,-116 368.82,-100.93 366.25,-85.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-78.31 369.26,-84.46 365.43,-81.73 366.19,-85.14 366.19,-85.14 366.19,-85.14 365.43,-81.73 363.11,-85.82 364.67,-78.31 364.67,-78.31\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
@ -3107,7 +3107,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7da0461210> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
]
},
"metadata": {},
@ -3212,15 +3212,15 @@
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M352.18,-79.41C351.28,-89.09 352.89,-98 357,-98 360.02,-98 361.69,-93.19 362.01,-86.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"361.82,-79.41 365.15,-86.33 361.91,-82.91 362,-86.41 362,-86.41 362,-86.41 361.91,-82.91 358.85,-86.49 361.82,-79.41 361.82,-79.41\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.73,-78.6C344.24,-99.86 346.66,-128 357,-128 366.25,-128 369.16,-105.49 365.74,-85.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.27,-78.6 368.81,-84.79 365,-82.02 365.73,-85.44 365.73,-85.44 365.73,-85.44 365,-82.02 362.64,-86.1 364.27,-78.6 364.27,-78.6\"/>\n",
"<text text-anchor=\"start\" x=\"353\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.33,-78.31C344.37,-95.96 346.93,-116 357,-116 365.73,-116 368.82,-100.93 366.25,-85.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.67,-78.31 369.26,-84.46 365.43,-81.73 366.19,-85.14 366.19,-85.14 366.19,-85.14 365.43,-81.73 363.11,-85.82 364.67,-78.31 364.67,-78.31\"/>\n",
"<text text-anchor=\"start\" x=\"351\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
@ -3615,7 +3615,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.2"
"version": "3.9.1+"
}
},
"nbformat": 4,