sccfilter: some inherently-weak automata should have t acceptance

* spot/twaalgos/sccfilter.cc: If an inherently-weak automaton has
no rejecting cycle, reduce its acceptance to t instead of Büchi.
* spot/twa/acc.hh (operator==, operator<): Fix comparisons of
true acceptances.
* NEWS: Mention these two changes.
* spot/twaalgos/sccfilter.hh: Update documentation.
* spot/twaalgos/determinize.cc (tgba_determinize): The call
to scc_filter assume that the input BA is never reduced to t
acceptance.  Call scc_filter with an extra option to ensure that.
* spot/twaalgos/postproc.cc (do_scc_filter): Adjust to add the
extra option when we want to build Büchi or coBuchi.
(ensure_ba): Don't mark trivial SCCs as accepting.
* tests/core/complement.test, tests/core/dstar.test,
tests/core/ltlsynt.test, tests/core/readsave.test,
tests/core/wdba2.test, tests/python/_product_susp.ipynb,
tests/python/automata-io.ipynb, tests/python/dualize.py,
tests/python/highlighting.ipynb, tests/python/intrun.py,
tests/python/setacc.py, tests/python/simstate.py,
tests/python/stutter-inv.ipynb, tests/python/zlktree.py: Adjust test
cases.
This commit is contained in:
Alexandre Duret-Lutz 2023-11-17 13:41:19 +01:00
parent 13377542cd
commit 0e71dd70c1
20 changed files with 857 additions and 842 deletions

View file

@ -54,11 +54,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"305pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 305.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 301,-160.8 301,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"305pt\" height=\"148pt\"\n",
" viewBox=\"0.00 0.00 305.00 148.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 144)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-144 301,-144 301,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -170,11 +170,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"305pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 305.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 301,-160.8 301,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"305pt\" height=\"148pt\"\n",
" viewBox=\"0.00 0.00 305.00 148.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 144)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-144 301,-144 301,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -247,7 +247,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027d80> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3bb720> >"
]
},
"execution_count": 4,
@ -282,11 +282,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"305pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 305.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 301,-160.8 301,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"305pt\" height=\"148pt\"\n",
" viewBox=\"0.00 0.00 305.00 148.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 144)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-144 301,-144 301,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -359,7 +359,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7efc2002e2a0> >"
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7fb7ec3bbb40> >"
]
},
"execution_count": 5,
@ -392,11 +392,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"305pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 305.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 301,-160.8 301,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"305pt\" height=\"148pt\"\n",
" viewBox=\"0.00 0.00 305.00 148.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 144)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-144 301,-144 301,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -469,7 +469,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027d80> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3bb720> >"
]
},
"execution_count": 6,
@ -702,7 +702,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e360> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3bba50> >"
]
},
"execution_count": 8,
@ -897,7 +897,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e360> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3bba50> >"
]
},
"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 0x7efc2002edb0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3dc8d0> >"
]
},
"metadata": {},
@ -1496,7 +1496,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20027de0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ef60adc0> >"
]
},
"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 0x7efc2002e570> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ef60a7f0> >"
]
},
"metadata": {},
@ -1746,11 +1746,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 170.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 166,-120.8 166,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"59.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"170pt\" height=\"108pt\"\n",
" viewBox=\"0.00 0.00 170.00 108.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 104)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-104 166,-104 166,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"59.5\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -1796,7 +1796,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e480> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3bbdb0> >"
]
},
"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 0x7efc2002e6c0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ef60b810> >"
]
},
"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 0x7efc2002ec60> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3bbc60> >"
]
},
"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 0x7efc2002ec60> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3bbc60> >"
]
},
"metadata": {},
@ -2089,11 +2089,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 170.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 166,-120.8 166,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"59.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"170pt\" height=\"108pt\"\n",
" viewBox=\"0.00 0.00 170.00 108.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 104)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-104 166,-104 166,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"59.5\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -2139,7 +2139,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc2002e480> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3bbdb0> >"
]
},
"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 0x7efc2002e6c0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ef60b810> >"
]
},
"metadata": {},
@ -2232,7 +2232,7 @@
" | a & b\t{0}\n",
"Cycle:\n",
" 1 * 4\n",
" | a\t{0,1}\n",
" | a\t{0}\n",
"\n"
]
},
@ -2245,143 +2245,141 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"600pt\" height=\"262pt\"\n",
" viewBox=\"0.00 0.00 600.00 262.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 258)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-258 596,-258 596,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"250.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"271.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"321.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"337.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"253.5\" y=\"-225.8\" font-family=\"Lato\" font-size=\"14.00\">[gen. Büchi 2]</text>\n",
"<svg width=\"591pt\" height=\"247pt\"\n",
" viewBox=\"0.00 0.00 591.00 247.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 243)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-243 587,-243 587,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"271\" y=\"-224.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"292\" y=\"-224.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"308\" y=\"-224.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"270\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M73,-184C73,-184 50,-184 50,-184 44,-184 38,-178 38,-172 38,-172 38,-160 38,-160 38,-154 44,-148 50,-148 50,-148 73,-148 73,-148 79,-148 85,-154 85,-160 85,-160 85,-172 85,-172 85,-178 79,-184 73,-184\"/>\n",
"<text text-anchor=\"start\" x=\"46\" y=\"-162.3\" font-family=\"Lato\" font-size=\"14.00\">0 * 3</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M73,-169C73,-169 50,-169 50,-169 44,-169 38,-163 38,-157 38,-157 38,-145 38,-145 38,-139 44,-133 50,-133 50,-133 73,-133 73,-133 79,-133 85,-139 85,-145 85,-145 85,-157 85,-157 85,-163 79,-169 73,-169\"/>\n",
"<text text-anchor=\"start\" x=\"46\" y=\"-147.3\" font-family=\"Lato\" font-size=\"14.00\">0 * 3</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.17,-166C2.85,-166 16.72,-166 30.62,-166\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.83,-166 30.83,-169.15 34.33,-166 30.83,-166 30.83,-166 30.83,-166 34.33,-166 30.83,-162.85 37.83,-166 37.83,-166\"/>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.17,-151C2.85,-151 16.72,-151 30.62,-151\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.83,-151 30.83,-154.15 34.33,-151 30.83,-151 30.83,-151 30.83,-151 34.33,-151 30.83,-147.85 37.83,-151 37.83,-151\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M192,-211C192,-211 169,-211 169,-211 163,-211 157,-205 157,-199 157,-199 157,-187 157,-187 157,-181 163,-175 169,-175 169,-175 192,-175 192,-175 198,-175 204,-181 204,-187 204,-187 204,-199 204,-199 204,-205 198,-211 192,-211\"/>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-189.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 2</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M192,-196C192,-196 169,-196 169,-196 163,-196 157,-190 157,-184 157,-184 157,-172 157,-172 157,-166 163,-160 169,-160 169,-160 192,-160 192,-160 198,-160 204,-166 204,-172 204,-172 204,-184 204,-184 204,-190 198,-196 192,-196\"/>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-174.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 2</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=\"M85.06,-171.21C103.47,-175.46 129.64,-181.49 149.77,-186.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"156.61,-187.72 149.08,-189.21 153.2,-186.93 149.79,-186.14 149.79,-186.14 149.79,-186.14 153.2,-186.93 150.5,-183.07 156.61,-187.72 156.61,-187.72\"/>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M85.06,-156.21C103.47,-160.46 129.64,-166.49 149.77,-171.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"156.61,-172.72 149.08,-174.21 153.2,-171.93 149.79,-171.14 149.79,-171.14 149.79,-171.14 153.2,-171.93 150.5,-168.07 156.61,-172.72 156.61,-172.72\"/>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M192,-157C192,-157 169,-157 169,-157 163,-157 157,-151 157,-145 157,-145 157,-133 157,-133 157,-127 163,-121 169,-121 169,-121 192,-121 192,-121 198,-121 204,-127 204,-133 204,-133 204,-145 204,-145 204,-151 198,-157 192,-157\"/>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-135.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 2</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M192,-142C192,-142 169,-142 169,-142 163,-142 157,-136 157,-130 157,-130 157,-118 157,-118 157,-112 163,-106 169,-106 169,-106 192,-106 192,-106 198,-106 204,-112 204,-118 204,-118 204,-130 204,-130 204,-136 198,-142 192,-142\"/>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-120.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 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=\"M85.18,-160.3C90.98,-158.87 97.22,-157.36 103,-156 118.34,-152.4 135.46,-148.58 149.6,-145.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"156.71,-143.92 150.54,-148.49 153.29,-144.67 149.87,-145.42 149.87,-145.42 149.87,-145.42 153.29,-144.67 149.19,-142.34 156.71,-143.92 156.71,-143.92\"/>\n",
"<text text-anchor=\"start\" x=\"115\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M85.18,-145.3C90.98,-143.87 97.22,-142.36 103,-141 118.34,-137.4 135.46,-133.58 149.6,-130.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"156.71,-128.92 150.54,-133.49 153.29,-129.67 149.87,-130.42 149.87,-130.42 149.87,-130.42 153.29,-129.67 149.19,-127.34 156.71,-128.92 156.71,-128.92\"/>\n",
"<text text-anchor=\"start\" x=\"115\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M291,-200C291,-200 268,-200 268,-200 262,-200 256,-194 256,-188 256,-188 256,-176 256,-176 256,-170 262,-164 268,-164 268,-164 291,-164 291,-164 297,-164 303,-170 303,-176 303,-176 303,-188 303,-188 303,-194 297,-200 291,-200\"/>\n",
"<text text-anchor=\"start\" x=\"264\" y=\"-178.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 1</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M291,-185C291,-185 268,-185 268,-185 262,-185 256,-179 256,-173 256,-173 256,-161 256,-161 256,-155 262,-149 268,-149 268,-149 291,-149 291,-149 297,-149 303,-155 303,-161 303,-161 303,-173 303,-173 303,-179 297,-185 291,-185\"/>\n",
"<text text-anchor=\"start\" x=\"264\" y=\"-163.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M204.49,-190.39C217.66,-188.9 234.33,-187.01 248.52,-185.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.68,-184.59 249.08,-188.51 252.2,-184.98 248.72,-185.38 248.72,-185.38 248.72,-185.38 252.2,-184.98 248.37,-182.25 255.68,-184.59 255.68,-184.59\"/>\n",
"<text text-anchor=\"start\" x=\"226.5\" y=\"-206.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"222\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M204.49,-175.39C217.66,-173.9 234.33,-172.01 248.52,-170.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.68,-169.59 249.08,-173.51 252.2,-169.98 248.72,-170.38 248.72,-170.38 248.72,-170.38 252.2,-169.98 248.37,-167.25 255.68,-169.59 255.68,-169.59\"/>\n",
"<text text-anchor=\"start\" x=\"226.5\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"222\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M204.49,-149.19C217.78,-155.08 234.64,-162.56 248.91,-168.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.68,-171.88 248,-171.93 252.48,-170.46 249.28,-169.05 249.28,-169.05 249.28,-169.05 252.48,-170.46 250.55,-166.17 255.68,-171.88 255.68,-171.88\"/>\n",
"<text text-anchor=\"start\" x=\"226.5\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M204.49,-134.19C217.78,-140.08 234.64,-147.56 248.91,-153.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.68,-156.88 248,-156.93 252.48,-155.46 249.28,-154.05 249.28,-154.05 249.28,-154.05 252.48,-155.46 250.55,-151.17 255.68,-156.88 255.68,-156.88\"/>\n",
"<text text-anchor=\"start\" x=\"226.5\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M291,-135C291,-135 268,-135 268,-135 262,-135 256,-129 256,-123 256,-123 256,-111 256,-111 256,-105 262,-99 268,-99 268,-99 291,-99 291,-99 297,-99 303,-105 303,-111 303,-111 303,-123 303,-123 303,-129 297,-135 291,-135\"/>\n",
"<text text-anchor=\"start\" x=\"264\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 1</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M291,-120C291,-120 268,-120 268,-120 262,-120 256,-114 256,-108 256,-108 256,-96 256,-96 256,-90 262,-84 268,-84 268,-84 291,-84 291,-84 297,-84 303,-90 303,-96 303,-96 303,-108 303,-108 303,-114 297,-120 291,-120\"/>\n",
"<text text-anchor=\"start\" x=\"264\" y=\"-98.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M204.33,-124.86C209.91,-122.06 216.01,-119.52 222,-118 230.54,-115.84 240.05,-115.07 248.79,-114.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.91,-115.06 248.88,-118.13 252.41,-115.02 248.91,-114.98 248.91,-114.98 248.91,-114.98 252.41,-115.02 248.95,-111.83 255.91,-115.06 255.91,-115.06\"/>\n",
"<text text-anchor=\"middle\" x=\"230\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M204.33,-109.86C209.91,-107.06 216.01,-104.52 222,-103 230.54,-100.84 240.05,-100.07 248.79,-99.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.91,-100.06 248.88,-103.13 252.41,-100.02 248.91,-99.98 248.91,-99.98 248.91,-99.98 252.41,-100.02 248.95,-96.83 255.91,-100.06 255.91,-100.06\"/>\n",
"<text text-anchor=\"middle\" x=\"230\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M390,-189C390,-189 367,-189 367,-189 361,-189 355,-183 355,-177 355,-177 355,-165 355,-165 355,-159 361,-153 367,-153 367,-153 390,-153 390,-153 396,-153 402,-159 402,-165 402,-165 402,-177 402,-177 402,-183 396,-189 390,-189\"/>\n",
"<text text-anchor=\"start\" x=\"363\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 0</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M390,-174C390,-174 367,-174 367,-174 361,-174 355,-168 355,-162 355,-162 355,-150 355,-150 355,-144 361,-138 367,-138 367,-138 390,-138 390,-138 396,-138 402,-144 402,-150 402,-150 402,-162 402,-162 402,-168 396,-174 390,-174\"/>\n",
"<text text-anchor=\"start\" x=\"363\" y=\"-152.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 0</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M303.49,-179.39C316.66,-177.9 333.33,-176.01 347.52,-174.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.68,-173.59 348.08,-177.51 351.2,-173.98 347.72,-174.38 347.72,-174.38 347.72,-174.38 351.2,-173.98 347.37,-171.25 354.68,-173.59 354.68,-173.59\"/>\n",
"<text text-anchor=\"start\" x=\"325.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"321\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M303.49,-164.39C316.66,-162.9 333.33,-161.01 347.52,-159.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.68,-158.59 348.08,-162.51 351.2,-158.98 347.72,-159.38 347.72,-159.38 347.72,-159.38 351.2,-158.98 347.37,-156.25 354.68,-158.59 354.68,-158.59\"/>\n",
"<text text-anchor=\"start\" x=\"325.5\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"321\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M303.49,-129.8C316.9,-137.26 333.94,-146.75 348.3,-154.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.68,-158.29 347.03,-157.64 351.62,-156.59 348.56,-154.89 348.56,-154.89 348.56,-154.89 351.62,-156.59 350.09,-152.14 354.68,-158.29 354.68,-158.29\"/>\n",
"<text text-anchor=\"start\" x=\"325.5\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M303.49,-114.8C316.9,-122.26 333.94,-131.75 348.3,-139.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.68,-143.29 347.03,-142.64 351.62,-141.59 348.56,-139.89 348.56,-139.89 348.56,-139.89 351.62,-141.59 350.09,-137.14 354.68,-143.29 354.68,-143.29\"/>\n",
"<text text-anchor=\"start\" x=\"325.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M390,-124C390,-124 367,-124 367,-124 361,-124 355,-118 355,-112 355,-112 355,-100 355,-100 355,-94 361,-88 367,-88 367,-88 390,-88 390,-88 396,-88 402,-94 402,-100 402,-100 402,-112 402,-112 402,-118 396,-124 390,-124\"/>\n",
"<text text-anchor=\"start\" x=\"363\" y=\"-102.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 0</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M390,-109C390,-109 367,-109 367,-109 361,-109 355,-103 355,-97 355,-97 355,-85 355,-85 355,-79 361,-73 367,-73 367,-73 390,-73 390,-73 396,-73 402,-79 402,-85 402,-85 402,-97 402,-97 402,-103 396,-109 390,-109\"/>\n",
"<text text-anchor=\"start\" x=\"363\" y=\"-87.3\" font-family=\"Lato\" font-size=\"14.00\">2 * 0</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M303.03,-110.49C308.84,-109.07 315.11,-107.77 321,-107 329.66,-105.87 339.14,-105.4 347.81,-105.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.87,-105.24 347.88,-108.43 351.37,-105.26 347.87,-105.28 347.87,-105.28 347.87,-105.28 351.37,-105.26 347.86,-102.13 354.87,-105.24 354.87,-105.24\"/>\n",
"<text text-anchor=\"middle\" x=\"329\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M303.03,-95.49C308.84,-94.07 315.11,-92.77 321,-92 329.66,-90.87 339.14,-90.4 347.81,-90.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.87,-90.24 347.88,-93.43 351.37,-90.26 347.87,-90.28 347.87,-90.28 347.87,-90.28 351.37,-90.26 347.86,-87.13 354.87,-90.24 354.87,-90.24\"/>\n",
"<text text-anchor=\"middle\" x=\"329\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M580,-138C580,-138 557,-138 557,-138 551,-138 545,-132 545,-126 545,-126 545,-114 545,-114 545,-108 551,-102 557,-102 557,-102 580,-102 580,-102 586,-102 592,-108 592,-114 592,-114 592,-126 592,-126 592,-132 586,-138 580,-138\"/>\n",
"<text text-anchor=\"start\" x=\"553\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 4</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M571,-123C571,-123 548,-123 548,-123 542,-123 536,-117 536,-111 536,-111 536,-99 536,-99 536,-93 542,-87 548,-87 548,-87 571,-87 571,-87 577,-87 583,-93 583,-99 583,-99 583,-111 583,-111 583,-117 577,-123 571,-123\"/>\n",
"<text text-anchor=\"start\" x=\"544\" y=\"-101.3\" font-family=\"Lato\" font-size=\"14.00\">1 * 4</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M402.49,-164.77C431.51,-156.9 482.96,-142.95 527,-131 530.51,-130.05 534.2,-129.05 537.85,-128.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"544.8,-126.17 538.87,-131.04 541.42,-127.09 538.04,-128 538.04,-128 538.04,-128 541.42,-127.09 537.21,-124.96 544.8,-126.17 544.8,-126.17\"/>\n",
"<text text-anchor=\"start\" x=\"453.5\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M402.17,-149.54C434.36,-140.37 493.35,-123.56 528.94,-113.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"535.73,-111.49 529.86,-116.43 532.37,-112.45 529,-113.41 529,-113.41 529,-113.41 532.37,-112.45 528.14,-110.38 535.73,-111.49 535.73,-111.49\"/>\n",
"<text text-anchor=\"start\" x=\"453.5\" y=\"-154.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M402.18,-107.69C436.05,-110.21 499.91,-114.97 537.58,-117.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"544.74,-118.31 537.53,-120.93 541.25,-118.05 537.76,-117.79 537.76,-117.79 537.76,-117.79 541.25,-118.05 538,-114.64 544.74,-118.31 544.74,-118.31\"/>\n",
"<text text-anchor=\"start\" x=\"453.5\" y=\"-118.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M402.17,-92.77C434.23,-95.28 492.86,-99.87 528.49,-102.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"535.73,-103.22 528.51,-105.81 532.24,-102.95 528.75,-102.67 528.75,-102.67 528.75,-102.67 532.24,-102.95 529,-99.53 535.73,-103.22 535.73,-103.22\"/>\n",
"<text text-anchor=\"start\" x=\"453.5\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node10\" class=\"node\">\n",
@ -2392,40 +2390,37 @@
"<!-- 6&#45;&gt;8 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M397.94,-87.77C411.54,-74.32 430.17,-55.9 444.86,-41.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"450.08,-36.21 447.32,-43.37 447.59,-38.67 445.11,-41.13 445.11,-41.13 445.11,-41.13 447.59,-38.67 442.89,-38.89 450.08,-36.21 450.08,-36.21\"/>\n",
"<text text-anchor=\"start\" x=\"420\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M401.5,-72.96C413.37,-63.22 428.15,-51.1 440.8,-40.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"446.44,-36.09 443.03,-42.97 443.74,-38.31 441.03,-40.53 441.03,-40.53 441.03,-40.53 443.74,-38.31 439.03,-38.09 446.44,-36.09 446.44,-36.09\"/>\n",
"<text text-anchor=\"start\" x=\"420\" y=\"-60.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M559.82,-138.15C558.48,-147.54 561.38,-156 568.5,-156 573.73,-156 576.68,-151.44 577.35,-145.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"577.18,-138.15 580.5,-145.08 577.27,-141.65 577.35,-145.15 577.35,-145.15 577.35,-145.15 577.27,-141.65 574.2,-145.23 577.18,-138.15 577.18,-138.15\"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"552.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"568.5\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M551.54,-123.15C550.32,-132.54 552.97,-141 559.5,-141 564.3,-141 567,-136.44 567.61,-130.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"567.46,-123.15 570.76,-130.08 567.54,-126.65 567.61,-130.15 567.61,-130.15 567.61,-130.15 567.54,-126.65 564.46,-130.22 567.46,-123.15 567.46,-123.15\"/>\n",
"<text text-anchor=\"start\" x=\"556\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"551.5\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;7 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>8&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M488.45,-36.16C499.62,-47.53 514.24,-62.53 527,-76 533.25,-82.6 539.95,-89.82 546.08,-96.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"551.06,-101.91 544.01,-98.88 548.7,-99.33 546.33,-96.75 546.33,-96.75 546.33,-96.75 548.7,-99.33 548.65,-94.62 551.06,-101.91 551.06,-101.91\"/>\n",
"<text text-anchor=\"start\" x=\"515.5\" y=\"-94.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"511\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M488.73,-36.03C502.18,-49.32 520.6,-67.53 535.13,-81.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"540.29,-87 533.1,-84.32 537.8,-84.54 535.31,-82.08 535.31,-82.08 535.31,-82.08 537.8,-84.54 537.53,-79.84 540.29,-87 540.29,-87\"/>\n",
"<text text-anchor=\"start\" x=\"511\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M461.54,-36.15C460.32,-45.54 462.97,-54 469.5,-54 474.3,-54 477,-49.44 477.61,-43.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"477.46,-36.15 480.76,-43.08 477.54,-39.65 477.61,-43.15 477.61,-43.15 477.61,-43.15 477.54,-39.65 474.46,-43.22 477.46,-36.15 477.46,-36.15\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"middle\" x=\"469.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7efc20044780> >"
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7fb7ef60a7f0> >"
]
},
"metadata": {},
@ -2440,11 +2435,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"253pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 253.00 164.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 249,-160.8 249,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"101\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"253pt\" height=\"148pt\"\n",
" viewBox=\"0.00 0.00 253.00 148.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 144)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-144 249,-144 249,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"101\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -2510,7 +2505,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc200449c0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ef60af10> >"
]
},
"metadata": {},
@ -2525,89 +2520,89 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"413pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 413.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 409,-120.8 409,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"405pt\" height=\"115pt\"\n",
" viewBox=\"0.00 0.00 405.00 115.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 111)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-111 401,-111 401,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-91.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 3 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- I&#45;&gt;3 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M74.14,-22C85.12,-22 99.52,-22 111.67,-22\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"118.89,-22 111.89,-25.15 115.39,-22.5 111.89,-22.5 111.89,-22 111.89,-21.5 115.39,-21.5 111.89,-18.85 118.89,-22 118.89,-22\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M74.14,-18C85.12,-18 99.52,-18 111.67,-18\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"118.89,-18 111.89,-21.15 115.39,-18.5 111.89,-18.5 111.89,-18 111.89,-17.5 115.39,-17.5 111.89,-14.85 118.89,-18 118.89,-18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"299\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"299\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"299\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"299\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"383\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"383\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"383\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"379\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"379\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M317.39,-22C327.9,-22 341.55,-22 353.6,-22\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"360.85,-22 353.85,-25.15 357.35,-22.5 353.85,-22.5 353.85,-22 353.85,-21.5 357.35,-21.5 353.85,-18.85 360.85,-22 360.85,-22\"/>\n",
"<text text-anchor=\"start\" x=\"335\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M317.31,-18C328.02,-18 341.92,-18 353.71,-18\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"360.74,-18 353.74,-21.15 357.24,-18.5 353.74,-18.5 353.74,-18 353.74,-17.5 357.24,-17.5 353.74,-14.85 360.74,-18 360.74,-18\"/>\n",
"<text text-anchor=\"start\" x=\"335\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M374.99,-42.58C373.89,-52.84 376.55,-62 383,-62 387.83,-62 390.54,-56.85 391.13,-49.95\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"391.01,-42.58 394.27,-49.53 391.56,-46.07 391.62,-49.57 391.12,-49.58 390.62,-49.59 390.56,-46.09 387.97,-49.63 391.01,-42.58 391.01,-42.58\"/>\n",
"<text text-anchor=\"middle\" x=\"383\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M371.97,-34.66C370.41,-44.62 372.75,-54 379,-54 383.69,-54 386.18,-48.73 386.47,-41.89\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"386.03,-34.66 389.6,-41.46 386.74,-38.13 386.96,-41.62 386.46,-41.65 385.96,-41.68 385.74,-38.19 383.31,-41.84 386.03,-34.66 386.03,-34.66\"/>\n",
"<text text-anchor=\"middle\" x=\"379\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"218\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"218\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"218\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"218\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M236.14,-22C247.12,-22 261.52,-22 273.67,-22\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"280.89,-22 273.89,-25.15 277.39,-22.5 273.89,-22.5 273.89,-22 273.89,-21.5 277.39,-21.5 273.89,-18.85 280.89,-22 280.89,-22\"/>\n",
"<text text-anchor=\"middle\" x=\"258.5\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M236.14,-18C247.12,-18 261.52,-18 273.67,-18\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"280.89,-18 273.89,-21.15 277.39,-18.5 273.89,-18.5 273.89,-18 273.89,-17.5 277.39,-17.5 273.89,-14.85 280.89,-18 280.89,-18\"/>\n",
"<text text-anchor=\"middle\" x=\"258.5\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M155.14,-22C166.12,-22 180.52,-22 192.67,-22\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"199.89,-22 192.89,-25.15 196.39,-22.5 192.89,-22.5 192.89,-22 192.89,-21.5 196.39,-21.5 192.89,-18.85 199.89,-22 199.89,-22\"/>\n",
"<text text-anchor=\"middle\" x=\"177.5\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M155.14,-18C166.12,-18 180.52,-18 192.67,-18\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"199.89,-18 192.89,-21.15 196.39,-18.5 192.89,-18.5 192.89,-18 192.89,-17.5 196.39,-17.5 192.89,-14.85 199.89,-18 199.89,-18\"/>\n",
"<text text-anchor=\"middle\" x=\"177.5\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc200448d0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ef60b840> >"
]
},
"metadata": {},
@ -2776,7 +2771,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3dd860> >"
]
},
"execution_count": 19,
@ -2944,7 +2939,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3dd860> >"
]
},
"execution_count": 20,
@ -3107,7 +3102,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7efc20044f30> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb7ec3dd860> >"
]
},
"metadata": {},
@ -3601,7 +3596,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@ -3615,7 +3610,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.1+"
"version": "3.11.6"
}
},
"nbformat": 4,