synthesis: fix suboptimal colorization after LAR

* spot/twaalgos/synthesis.cc (ltl_to_game): In LAR and LAR_OLD mode,
for max odd and colorize the game after the split, not before.  The
previous code used to colorize twice, and could waste up to 4 colors
in the process.
* tests/core/ltlsynt.test, tests/python/_mealy.ipynb,
tests/python/games.ipynb, tests/python/synthesis.ipynb,
tests/python/synthesis.py: Adjust all test cases to reflect the fact
that the game uses fewer colors.
This commit is contained in:
Alexandre Duret-Lutz 2022-03-17 14:30:05 +01:00
parent c1e6340228
commit 75818fde13
6 changed files with 1820 additions and 1806 deletions

View file

@ -974,16 +974,13 @@ namespace spot
if (gi.s == algo::LAR) if (gi.s == algo::LAR)
{ {
dpa = to_parity(aut); dpa = to_parity(aut);
// reduce_parity is called by to_parity(), // reduce_parity is called by to_parity()
// but with colorization turned off.
colorize_parity_here(dpa, true);
} }
else else
{ {
dpa = to_parity_old(aut); dpa = to_parity_old(aut);
dpa = reduce_parity_here(dpa, true); dpa = reduce_parity_here(dpa, true);
} }
change_parity_here(dpa, parity_kind_max, parity_style_odd);
if (bv) if (bv)
bv->paritize_time += sw.stop(); bv->paritize_time += sw.stop();
if (vs) if (vs)
@ -995,6 +992,7 @@ namespace spot
if (bv) if (bv)
sw.start(); sw.start();
dpa = split_2step(dpa, outs, true); dpa = split_2step(dpa, outs, true);
change_parity_here(dpa, parity_kind_max, parity_style_odd);
colorize_parity_here(dpa, true); colorize_parity_here(dpa, true);
if (bv) if (bv)
bv->split_time += sw.stop(); bv->split_time += sw.stop();

View file

@ -59,11 +59,11 @@ parity 13;
1 1 1 6,3; 1 1 1 6,3;
parity 5; parity 5;
1 1 0 4,5 "INIT"; 1 1 0 4,5 "INIT";
5 4 1 1,1; 5 2 1 1,1;
4 5 1 0,1; 4 3 1 0,1;
0 1 0 2,3; 0 1 0 2,3;
3 5 1 1; 3 3 1 1;
2 3 1 0,0; 2 1 1 0,0;
EOF EOF
: > out : > out
@ -230,10 +230,10 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 2 states and 3 colors automaton has 2 states and 3 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 4 states, 3 colors DPA has 4 states, 1 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 12 states automaton has 12 states
solving game with acceptance: parity max odd 5 solving game with acceptance: parity max odd 3
game solved in X seconds game solved in X seconds
EOF EOF
ltlsynt -f "G(Fi0 && Fi1 && Fi2) -> G(i1 <-> o0)" --outs="o0" --algo=lar \ ltlsynt -f "G(Fi0 && Fi1 && Fi2) -> G(i1 <-> o0)" --outs="o0" --algo=lar \
@ -569,10 +569,10 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 1 states and 1 colors automaton has 1 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 1 states, 2 colors DPA has 1 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 2 states automaton has 2 states
solving game with acceptance: parity max odd 4 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
EOF EOF
ltlsynt -f '(GFa <-> GFb) && (Gc)' --outs=b,c --verbose 2> out ltlsynt -f '(GFa <-> GFb) && (Gc)' --outs=b,c --verbose 2> out
@ -646,10 +646,10 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 4 states and 1 colors automaton has 4 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 4 states, 4 colors DPA has 4 states, 1 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 9 states automaton has 9 states
solving game with acceptance: parity max odd 6 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
AIG circuit was created in X seconds and has 0 latches and 0 gates AIG circuit was created in X seconds and has 0 latches and 0 gates
EOF EOF
@ -663,20 +663,20 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 2 states and 1 colors automaton has 2 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 2 states, 2 colors DPA has 2 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 4 states automaton has 4 states
solving game with acceptance: parity max odd 4 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
trying to create strategy directly for (a | x) -> x trying to create strategy directly for (a | x) -> x
direct strategy might exist but was not found. direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 2 states and 1 colors automaton has 2 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 2 states, 2 colors DPA has 2 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 4 states automaton has 4 states
solving game with acceptance: parity max odd 4 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
AIG circuit was created in X seconds and has 0 latches and 0 gates AIG circuit was created in X seconds and has 0 latches and 0 gates
EOF EOF
@ -692,20 +692,20 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 1 states and 1 colors automaton has 1 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 1 states, 2 colors DPA has 1 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 2 states automaton has 2 states
solving game with acceptance: parity max odd 4 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
trying to create strategy directly for Gy trying to create strategy directly for Gy
direct strategy might exist but was not found. direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 1 states and 1 colors automaton has 1 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 1 states, 2 colors DPA has 1 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 2 states automaton has 2 states
solving game with acceptance: parity max odd 4 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
AIG circuit was created in X seconds and has 0 latches and 0 gates AIG circuit was created in X seconds and has 0 latches and 0 gates
EOF EOF
@ -720,10 +720,10 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 1 states and 1 colors automaton has 1 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 1 states, 2 colors DPA has 1 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 4 states automaton has 4 states
solving game with acceptance: parity max odd 4 solving game with acceptance: parity max odd 3
game solved in X seconds game solved in X seconds
EOF EOF
ltlsynt -f '!F(a|b)' --outs=b --decompose=yes --aiger --verbose 2> out || true ltlsynt -f '!F(a|b)' --outs=b --decompose=yes --aiger --verbose 2> out || true
@ -737,10 +737,10 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 1 states and 1 colors automaton has 1 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 1 states, 2 colors DPA has 1 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 4 states automaton has 4 states
solving game with acceptance: parity max odd 4 solving game with acceptance: parity max odd 3
game solved in X seconds game solved in X seconds
EOF EOF
ltlsynt -f 'G!(a -> b)' --outs=b --decompose=yes --aiger\ ltlsynt -f 'G!(a -> b)' --outs=b --decompose=yes --aiger\
@ -755,10 +755,10 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 2 states and 1 colors automaton has 2 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 2 states, 4 colors DPA has 2 states, 1 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 5 states automaton has 5 states
solving game with acceptance: parity max odd 6 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
AIG circuit was created in X seconds and has 0 latches and 0 gates AIG circuit was created in X seconds and has 0 latches and 0 gates
EOF EOF
@ -775,30 +775,30 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 2 states and 1 colors automaton has 2 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 2 states, 2 colors DPA has 2 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 4 states automaton has 4 states
solving game with acceptance: parity max odd 4 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
trying to create strategy directly for a -> c trying to create strategy directly for a -> c
direct strategy might exist but was not found. direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 2 states and 1 colors automaton has 2 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 2 states, 2 colors DPA has 2 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 4 states automaton has 4 states
solving game with acceptance: parity max odd 4 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
trying to create strategy directly for a -> d trying to create strategy directly for a -> d
direct strategy might exist but was not found. direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 2 states and 1 colors automaton has 2 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 2 states, 2 colors DPA has 2 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 4 states automaton has 4 states
solving game with acceptance: parity max odd 4 solving game with acceptance: Streett 1
game solved in X seconds game solved in X seconds
AIG circuit was created in X seconds and has 0 latches and 0 gates AIG circuit was created in X seconds and has 0 latches and 0 gates
EOF EOF
@ -814,10 +814,10 @@ direct strategy might exist but was not found.
translating formula done in X seconds translating formula done in X seconds
automaton has 1 states and 1 colors automaton has 1 states and 1 colors
LAR construction done in X seconds LAR construction done in X seconds
DPA has 1 states, 2 colors DPA has 1 states, 0 colors
split inputs and outputs done in X seconds split inputs and outputs done in X seconds
automaton has 4 states automaton has 4 states
solving game with acceptance: parity max odd 4 solving game with acceptance: parity max odd 3
game solved in X seconds game solved in X seconds
EOF EOF
ltlsynt -f '!(F(a | b))' --outs=b, --decompose=yes \ ltlsynt -f '!(F(a | b))' --outs=b, --decompose=yes \

View file

@ -3,6 +3,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 1, "execution_count": 1,
"id": "8bca10b8",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -12,6 +13,7 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"id": "c73e997a",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Test the Mealy printer." "Test the Mealy printer."
@ -20,6 +22,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 2,
"id": "f8eff7ed",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -29,6 +32,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 3, "execution_count": 3,
"id": "ad3c80bc",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -49,6 +53,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 4, "execution_count": 4,
"id": "50130d85",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -60,82 +65,78 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n", "<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n", " -->\n",
"<!-- Pages: 1 -->\n", "<!-- Pages: 1 -->\n",
"<svg width=\"247pt\" height=\"212pt\"\n", "<svg width=\"212pt\" height=\"212pt\"\n",
" viewBox=\"0.00 0.00 247.00 212.07\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 212.00 212.07\" 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 208.07)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 208.07)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-208.07 243,-208.07 243,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-208.07 208,-208.07 208,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", "<text text-anchor=\"start\" x=\"54.5\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"29\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"75.5\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"45\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", "<text text-anchor=\"start\" x=\"91.5\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"87\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", "<text text-anchor=\"start\" x=\"129.5\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"103\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n", "<text text-anchor=\"start\" x=\"145.5\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"149\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", "<text text-anchor=\"start\" x=\"70.5\" y=\"-175.87\" font-family=\"Lato\" font-size=\"14.00\">[Streett 1]</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"203\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"219\" y=\"-189.87\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
"<text text-anchor=\"start\" x=\"64\" y=\"-175.87\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n", "<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"73.5\" cy=\"-75.07\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-75.07\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"73.5\" y=\"-71.37\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"56\" y=\"-71.37\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n", "</g>\n",
"<!-- I&#45;&gt;0 -->\n", "<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n", "<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n", "<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M18.65,-75.07C20.29,-75.07 34.65,-75.07 48.13,-75.07\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-75.07C2.79,-75.07 17.15,-75.07 30.63,-75.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"55.44,-75.07 48.44,-78.22 51.94,-75.07 48.44,-75.07 48.44,-75.07 48.44,-75.07 51.94,-75.07 48.44,-71.92 55.44,-75.07 55.44,-75.07\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-75.07 30.94,-78.22 34.44,-75.07 30.94,-75.07 30.94,-75.07 30.94,-75.07 34.44,-75.07 30.94,-71.92 37.94,-75.07 37.94,-75.07\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n", "<title>1</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"194.5,-133.07 167.5,-115.07 194.5,-97.07 221.5,-115.07 194.5,-133.07\"/>\n", "<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"177,-133.07 150,-115.07 177,-97.07 204,-115.07 177,-133.07\"/>\n",
"<text text-anchor=\"middle\" x=\"194.5\" y=\"-111.37\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"177\" y=\"-111.37\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;1 -->\n", "<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n", "<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n", "<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M79.63,-92.21C84.76,-105.97 94.14,-124.4 109.5,-133.07 129.34,-144.27 155.4,-135.7 173.2,-126.96\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M62.13,-92.21C67.26,-105.97 76.64,-124.4 92,-133.07 111.84,-144.27 137.9,-135.7 155.7,-126.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"179.82,-123.52 175.06,-129.54 176.72,-125.13 173.61,-126.75 173.61,-126.75 173.61,-126.75 176.72,-125.13 172.16,-123.95 179.82,-123.52 179.82,-123.52\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"162.32,-123.52 157.56,-129.54 159.22,-125.13 156.11,-126.75 156.11,-126.75 156.11,-126.75 159.22,-125.13 154.66,-123.95 162.32,-123.52 162.32,-123.52\"/>\n",
"<text text-anchor=\"start\" x=\"110\" y=\"-156.87\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"92.5\" y=\"-156.87\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"121.5\" y=\"-141.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", "<text text-anchor=\"start\" x=\"104\" y=\"-141.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"194.5,-53.07 167.5,-35.07 194.5,-17.07 221.5,-35.07 194.5,-53.07\"/>\n", "<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"177,-53.07 150,-35.07 177,-17.07 204,-35.07 177,-53.07\"/>\n",
"<text text-anchor=\"middle\" x=\"194.5\" y=\"-31.37\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", "<text text-anchor=\"middle\" x=\"177\" y=\"-31.37\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;2 -->\n", "<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n", "<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n", "<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M87.62,-63.58C93.86,-58.69 101.65,-53.37 109.5,-50.07 126.19,-43.04 146.1,-39.3 162.35,-37.32\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M70.12,-63.58C76.36,-58.69 84.15,-53.37 92,-50.07 108.69,-43.04 128.6,-39.3 144.85,-37.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.53,-36.52 162.92,-40.42 166.05,-36.91 162.57,-37.29 162.57,-37.29 162.57,-37.29 166.05,-36.91 162.23,-34.16 169.53,-36.52 169.53,-36.52\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"152.03,-36.52 145.42,-40.42 148.55,-36.91 145.07,-37.29 145.07,-37.29 145.07,-37.29 148.55,-36.91 144.73,-34.16 152.03,-36.52 152.03,-36.52\"/>\n",
"<text text-anchor=\"start\" x=\"117\" y=\"-68.87\" font-family=\"Lato\" font-size=\"14.00\">a | c</text>\n", "<text text-anchor=\"start\" x=\"99.5\" y=\"-68.87\" font-family=\"Lato\" font-size=\"14.00\">a | c</text>\n",
"<text text-anchor=\"start\" x=\"121.5\" y=\"-53.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", "<text text-anchor=\"start\" x=\"104\" y=\"-53.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;0 -->\n", "<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n", "<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M176.84,-108.84C168.63,-105.81 158.58,-102.17 149.5,-99.07 132.27,-93.18 112.66,-86.92 97.82,-82.27\"/>\n", "<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M159.34,-108.84C151.13,-105.81 141.08,-102.17 132,-99.07 114.77,-93.18 95.16,-86.92 80.32,-82.27\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"90.95,-80.13 98.57,-79.21 94.44,-80.69 97.78,-81.74 97.63,-82.21 97.48,-82.69 94.14,-81.65 96.69,-85.22 90.95,-80.13 90.95,-80.13\"/>\n", "<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"73.45,-80.13 81.07,-79.21 76.94,-80.69 80.28,-81.74 80.13,-82.21 79.98,-82.69 76.64,-81.65 79.19,-85.22 73.45,-80.13 73.45,-80.13\"/>\n",
"<text text-anchor=\"start\" x=\"109.5\" y=\"-117.87\" font-family=\"Lato\" font-size=\"14.00\">!b &amp; !d</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-117.87\" font-family=\"Lato\" font-size=\"14.00\">!b &amp; !d</text>\n",
"<text text-anchor=\"start\" x=\"121.5\" y=\"-102.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"104\" y=\"-102.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;0 -->\n", "<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n", "<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M182.23,-25.06C165.46,-11.43 133.34,9.67 109.5,-5.07 93.56,-14.92 84.64,-34.46 79.8,-50.4\"/>\n", "<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M164.73,-25.06C147.96,-11.43 115.84,9.67 92,-5.07 76.06,-14.92 67.14,-34.46 62.3,-50.4\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"77.85,-57.43 76.69,-49.84 78.31,-53.92 79.24,-50.55 79.72,-50.68 80.2,-50.82 79.27,-54.19 82.76,-51.52 77.85,-57.43 77.85,-57.43\"/>\n", "<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"60.35,-57.43 59.19,-49.84 60.81,-53.92 61.74,-50.55 62.22,-50.68 62.7,-50.82 61.77,-54.19 65.26,-51.52 60.35,-57.43 60.35,-57.43\"/>\n",
"<text text-anchor=\"start\" x=\"116\" y=\"-23.87\" font-family=\"Lato\" font-size=\"14.00\">b | d</text>\n", "<text text-anchor=\"start\" x=\"98.5\" y=\"-23.87\" font-family=\"Lato\" font-size=\"14.00\">b | d</text>\n",
"<text text-anchor=\"start\" x=\"121.5\" y=\"-8.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"104\" y=\"-8.87\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f300caabba0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f32ec50ce40> >"
] ]
}, },
"execution_count": 4, "execution_count": 4,
@ -150,6 +151,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 5, "execution_count": 5,
"id": "3d56cda6",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -159,6 +161,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 6, "execution_count": 6,
"id": "c24548a1",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -213,7 +216,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f300c179300> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f32ec571c30> >"
] ]
}, },
"execution_count": 6, "execution_count": 6,
@ -228,6 +231,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 7, "execution_count": 7,
"id": "88f2c0e0",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -237,6 +241,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 8, "execution_count": 8,
"id": "e626997e",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -285,7 +290,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f300c179300> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f32ec571c30> >"
] ]
}, },
"execution_count": 8, "execution_count": 8,
@ -300,7 +305,7 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3", "display_name": "Python 3 (ipykernel)",
"language": "python", "language": "python",
"name": "python3" "name": "python3"
}, },
@ -314,7 +319,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.8.10" "version": "3.9.2"
} }
}, },
"nbformat": 4, "nbformat": 4,

View file

@ -693,18 +693,14 @@
" viewBox=\"0.00 0.00 566.58 353.20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 566.58 353.20\" 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 349.2)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 349.2)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-349.2 562.58,-349.2 562.58,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-349.2 562.58,-349.2 562.58,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"133.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", "<text text-anchor=\"start\" x=\"197.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"156.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", "<text text-anchor=\"start\" x=\"220.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"172.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n", "<text text-anchor=\"start\" x=\"236.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"218.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"282.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"234.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", "<text text-anchor=\"start\" x=\"298.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"276.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", "<text text-anchor=\"start\" x=\"336.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"292.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n", "<text text-anchor=\"start\" x=\"352.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"338.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", "<text text-anchor=\"start\" x=\"223.79\" y=\"-317\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 3]</text>\n",
"<text text-anchor=\"start\" x=\"354.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"392.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"408.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
"<text text-anchor=\"start\" x=\"223.79\" y=\"-317\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
@ -786,7 +782,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M327.39,-123.94C316.58,-123.58 303.48,-121.98 292.66,-117.2 285.87,-114.2 279.46,-109.39 274.03,-104.44\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M327.39,-123.94C316.58,-123.58 303.48,-121.98 292.66,-117.2 285.87,-114.2 279.46,-109.39 274.03,-104.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"268.95,-99.5 276.16,-102.12 271.46,-101.94 273.97,-104.38 273.97,-104.38 273.97,-104.38 271.46,-101.94 271.78,-106.64 268.95,-99.5 268.95,-99.5\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"268.95,-99.5 276.16,-102.12 271.46,-101.94 273.97,-104.38 273.97,-104.38 273.97,-104.38 271.46,-101.94 271.78,-106.64 268.95,-99.5 268.95,-99.5\"/>\n",
"<text text-anchor=\"start\" x=\"296.16\" y=\"-141\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"296.16\" y=\"-141\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-126\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"292.66\" y=\"-126\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node6\" class=\"node\">\n",
@ -800,7 +796,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M360.03,-63.46C367.5,-70.81 378.66,-80.11 390.62,-84.2 399.29,-87.17 409.25,-87.1 418.05,-85.95\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M360.03,-63.46C367.5,-70.81 378.66,-80.11 390.62,-84.2 399.29,-87.17 409.25,-87.1 418.05,-85.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"425.12,-84.78 418.73,-89.03 421.67,-85.35 418.22,-85.92 418.22,-85.92 418.22,-85.92 421.67,-85.35 417.7,-82.82 425.12,-84.78 425.12,-84.78\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"425.12,-84.78 418.73,-89.03 421.67,-85.35 418.22,-85.92 418.22,-85.92 418.22,-85.92 421.67,-85.35 417.7,-82.82 425.12,-84.78 425.12,-84.78\"/>\n",
"<text text-anchor=\"start\" x=\"394.12\" y=\"-106\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"394.12\" y=\"-106\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-91\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", "<text text-anchor=\"start\" x=\"390.62\" y=\"-91\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;6 -->\n", "<!-- 1&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
@ -830,7 +826,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M518.26,-15.49C476.71,-4.55 365.2,18.28 292.66,-28.2 280.22,-36.18 271.55,-50.31 265.96,-62.63\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M518.26,-15.49C476.71,-4.55 365.2,18.28 292.66,-28.2 280.22,-36.18 271.55,-50.31 265.96,-62.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"263.16,-69.23 262.99,-61.56 264.53,-66.01 265.89,-62.78 265.89,-62.78 265.89,-62.78 264.53,-66.01 268.79,-64.01 263.16,-69.23 263.16,-69.23\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"263.16,-69.23 262.99,-61.56 264.53,-66.01 265.89,-62.78 265.89,-62.78 265.89,-62.78 264.53,-66.01 268.79,-64.01 263.16,-69.23 263.16,-69.23\"/>\n",
"<text text-anchor=\"start\" x=\"394.12\" y=\"-20\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"394.12\" y=\"-20\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-5\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", "<text text-anchor=\"start\" x=\"390.62\" y=\"-5\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node8\" class=\"node\">\n", "<g id=\"node8\" class=\"node\">\n",
@ -858,7 +854,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M525.42,-260.02C514.59,-249.31 495.87,-234.82 478.62,-241.2 471.75,-243.74 465.32,-248.3 459.9,-253.11\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M525.42,-260.02C514.59,-249.31 495.87,-234.82 478.62,-241.2 471.75,-243.74 465.32,-248.3 459.9,-253.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"454.82,-257.93 457.73,-250.83 457.36,-255.52 459.9,-253.11 459.9,-253.11 459.9,-253.11 457.36,-255.52 462.07,-255.39 454.82,-257.93 454.82,-257.93\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"454.82,-257.93 457.73,-250.83 457.36,-255.52 459.9,-253.11 459.9,-253.11 459.9,-253.11 457.36,-255.52 462.07,-255.39 454.82,-257.93 454.82,-257.93\"/>\n",
"<text text-anchor=\"start\" x=\"482.12\" y=\"-260\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"482.12\" y=\"-260\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"478.62\" y=\"-245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"478.62\" y=\"-245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node10\" class=\"node\">\n", "<g id=\"node10\" class=\"node\">\n",
@ -886,7 +882,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M372.67,-271.2C386.07,-271.2 403.21,-271.2 417.05,-271.2\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M372.67,-271.2C386.07,-271.2 403.21,-271.2 417.05,-271.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"424.35,-271.2 417.35,-274.35 420.85,-271.2 417.35,-271.2 417.35,-271.2 417.35,-271.2 420.85,-271.2 417.35,-268.05 424.35,-271.2 424.35,-271.2\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"424.35,-271.2 417.35,-274.35 420.85,-271.2 417.35,-271.2 417.35,-271.2 417.35,-271.2 420.85,-271.2 417.35,-268.05 424.35,-271.2 424.35,-271.2\"/>\n",
"<text text-anchor=\"start\" x=\"392.62\" y=\"-290\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n", "<text text-anchor=\"start\" x=\"392.62\" y=\"-290\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-275\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"390.62\" y=\"-275\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 9&#45;&gt;3 -->\n", "<!-- 9&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n", "<g id=\"edge15\" class=\"edge\">\n",
@ -894,7 +890,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M338.79,-261.38C331.25,-254.57 320.21,-246.07 308.66,-242.2 300.14,-239.34 290.35,-238.59 281.64,-238.73\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M338.79,-261.38C331.25,-254.57 320.21,-246.07 308.66,-242.2 300.14,-239.34 290.35,-238.59 281.64,-238.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"274.63,-239.03 281.49,-235.59 278.13,-238.88 281.63,-238.73 281.63,-238.73 281.63,-238.73 278.13,-238.88 281.76,-241.88 274.63,-239.03 274.63,-239.03\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"274.63,-239.03 281.49,-235.59 278.13,-238.88 281.63,-238.73 281.63,-238.73 281.63,-238.73 278.13,-238.88 281.76,-241.88 274.63,-239.03 274.63,-239.03\"/>\n",
"<text text-anchor=\"start\" x=\"296.66\" y=\"-261\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"296.66\" y=\"-261\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-246\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", "<text text-anchor=\"start\" x=\"292.66\" y=\"-246\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n", "</g>\n",
"<!-- 10&#45;&gt;0 -->\n", "<!-- 10&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n", "<g id=\"edge16\" class=\"edge\">\n",
@ -902,7 +898,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M165.88,-128.7C174.34,-117.42 188.34,-101.38 204.66,-93.2 212.78,-89.14 222.48,-87.2 231.24,-86.33\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M165.88,-128.7C174.34,-117.42 188.34,-101.38 204.66,-93.2 212.78,-89.14 222.48,-87.2 231.24,-86.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"238.31,-85.84 231.55,-89.47 234.82,-86.08 231.33,-86.33 231.33,-86.33 231.33,-86.33 234.82,-86.08 231.11,-83.18 238.31,-85.84 238.31,-85.84\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"238.31,-85.84 231.55,-89.47 234.82,-86.08 231.33,-86.33 231.33,-86.33 231.33,-86.33 234.82,-86.08 231.11,-83.18 238.31,-85.84 238.31,-85.84\"/>\n",
"<text text-anchor=\"start\" x=\"206.66\" y=\"-112\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n", "<text text-anchor=\"start\" x=\"206.66\" y=\"-112\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"204.66\" y=\"-97\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"204.66\" y=\"-97\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 10&#45;&gt;3 -->\n", "<!-- 10&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n", "<g id=\"edge17\" class=\"edge\">\n",
@ -910,7 +906,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M173.02,-149.34C186.74,-157.01 206.62,-169.5 220.66,-184.2 230.32,-194.31 238.63,-207.52 244.73,-218.67\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M173.02,-149.34C186.74,-157.01 206.62,-169.5 220.66,-184.2 230.32,-194.31 238.63,-207.52 244.73,-218.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"248.06,-224.96 242,-220.25 246.42,-221.87 244.79,-218.77 244.79,-218.77 244.79,-218.77 246.42,-221.87 247.57,-217.3 248.06,-224.96 248.06,-224.96\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"248.06,-224.96 242,-220.25 246.42,-221.87 244.79,-218.77 244.79,-218.77 244.79,-218.77 246.42,-221.87 247.57,-217.3 248.06,-224.96 248.06,-224.96\"/>\n",
"<text text-anchor=\"start\" x=\"208.66\" y=\"-203\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"208.66\" y=\"-203\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"204.66\" y=\"-188\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"204.66\" y=\"-188\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 11&#45;&gt;1 -->\n", "<!-- 11&#45;&gt;1 -->\n",
"<g id=\"edge18\" class=\"edge\">\n", "<g id=\"edge18\" class=\"edge\">\n",
@ -918,7 +914,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M184.56,-193.82C226.83,-190.75 309.89,-180.98 372.62,-150.2 395.54,-138.96 415.24,-116.94 427.66,-100.59\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M184.56,-193.82C226.83,-190.75 309.89,-180.98 372.62,-150.2 395.54,-138.96 415.24,-116.94 427.66,-100.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"431.89,-94.85 430.27,-102.36 429.81,-97.67 427.73,-100.49 427.73,-100.49 427.73,-100.49 429.81,-97.67 425.2,-98.61 431.89,-94.85 431.89,-94.85\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"431.89,-94.85 430.27,-102.36 429.81,-97.67 427.73,-100.49 427.73,-100.49 427.73,-100.49 429.81,-97.67 425.2,-98.61 431.89,-94.85 431.89,-94.85\"/>\n",
"<text text-anchor=\"start\" x=\"294.66\" y=\"-196\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n", "<text text-anchor=\"start\" x=\"294.66\" y=\"-196\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-181\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"292.66\" y=\"-181\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 11&#45;&gt;3 -->\n", "<!-- 11&#45;&gt;3 -->\n",
"<g id=\"edge19\" class=\"edge\">\n", "<g id=\"edge19\" class=\"edge\">\n",
@ -926,13 +922,13 @@
"<path fill=\"none\" stroke=\"black\" d=\"M174.01,-203.01C190.27,-210.61 215.09,-222.22 233.1,-230.65\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M174.01,-203.01C190.27,-210.61 215.09,-222.22 233.1,-230.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"239.88,-233.82 232.2,-233.71 236.71,-232.34 233.54,-230.85 233.54,-230.85 233.54,-230.85 236.71,-232.34 234.87,-228 239.88,-233.82 239.88,-233.82\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"239.88,-233.82 232.2,-233.71 236.71,-232.34 233.54,-230.85 233.54,-230.85 233.54,-230.85 236.71,-232.34 234.87,-228 239.88,-233.82 239.88,-233.82\"/>\n",
"<text text-anchor=\"start\" x=\"208.66\" y=\"-242\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"208.66\" y=\"-242\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"204.66\" y=\"-227\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"204.66\" y=\"-227\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5c143ec630> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f80642eee70> >"
] ]
}, },
"execution_count": 8, "execution_count": 8,
@ -967,8 +963,8 @@
"States: 12\n", "States: 12\n",
"Start: 4\n", "Start: 4\n",
"AP: 2 \"b\" \"a\"\n", "AP: 2 \"b\" \"a\"\n",
"acc-name: parity max odd 5\n", "acc-name: parity max odd 3\n",
"Acceptance: 5 Fin(4) & (Inf(3) | (Fin(2) & (Inf(1) | Fin(0))))\n", "Acceptance: 3 Fin(2) & (Inf(1) | Fin(0))\n",
"properties: trans-labels explicit-labels trans-acc colored complete\n", "properties: trans-labels explicit-labels trans-acc colored complete\n",
"properties: deterministic\n", "properties: deterministic\n",
"spot-state-player: 0 0 0 0 0 1 1 1 1 1 1 1\n", "spot-state-player: 0 0 0 0 0 1 1 1 1 1 1 1\n",
@ -988,22 +984,22 @@
"[!1] 10 {1}\n", "[!1] 10 {1}\n",
"[1] 11 {1}\n", "[1] 11 {1}\n",
"State: 5\n", "State: 5\n",
"[t] 0 {3}\n", "[t] 0 {1}\n",
"State: 6\n", "State: 6\n",
"[t] 1 {4}\n", "[t] 1 {2}\n",
"State: 7\n", "State: 7\n",
"[t] 0 {4}\n", "[t] 0 {2}\n",
"State: 8\n", "State: 8\n",
"[t] 2 {3}\n", "[t] 2 {1}\n",
"State: 9\n", "State: 9\n",
"[!0] 2 {3}\n", "[!0] 2 {1}\n",
"[0] 3 {4}\n", "[0] 3 {2}\n",
"State: 10\n", "State: 10\n",
"[!0] 0 {3}\n", "[!0] 0 {1}\n",
"[0] 3 {3}\n", "[0] 3 {1}\n",
"State: 11\n", "State: 11\n",
"[!0] 1 {3}\n", "[!0] 1 {1}\n",
"[0] 3 {3}\n", "[0] 3 {1}\n",
"--END--\n" "--END--\n"
] ]
} }
@ -1057,18 +1053,14 @@
" viewBox=\"0.00 0.00 566.58 353.20\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 566.58 353.20\" 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 349.2)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 349.2)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-349.2 562.58,-349.2 562.58,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-349.2 562.58,-349.2 562.58,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"133.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", "<text text-anchor=\"start\" x=\"197.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"156.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", "<text text-anchor=\"start\" x=\"220.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"172.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n", "<text text-anchor=\"start\" x=\"236.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"218.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"282.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"234.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n", "<text text-anchor=\"start\" x=\"298.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"276.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n", "<text text-anchor=\"start\" x=\"336.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"292.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n", "<text text-anchor=\"start\" x=\"352.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"338.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", "<text text-anchor=\"start\" x=\"223.79\" y=\"-317\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 3]</text>\n",
"<text text-anchor=\"start\" x=\"354.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"392.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"408.79\" y=\"-331\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
"<text text-anchor=\"start\" x=\"223.79\" y=\"-317\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
@ -1150,7 +1142,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M327.39,-123.94C316.58,-123.58 303.48,-121.98 292.66,-117.2 285.87,-114.2 279.46,-109.39 274.03,-104.44\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M327.39,-123.94C316.58,-123.58 303.48,-121.98 292.66,-117.2 285.87,-114.2 279.46,-109.39 274.03,-104.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"268.95,-99.5 276.16,-102.12 271.46,-101.94 273.97,-104.38 273.97,-104.38 273.97,-104.38 271.46,-101.94 271.78,-106.64 268.95,-99.5 268.95,-99.5\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"268.95,-99.5 276.16,-102.12 271.46,-101.94 273.97,-104.38 273.97,-104.38 273.97,-104.38 271.46,-101.94 271.78,-106.64 268.95,-99.5 268.95,-99.5\"/>\n",
"<text text-anchor=\"start\" x=\"296.16\" y=\"-141\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"296.16\" y=\"-141\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-126\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"292.66\" y=\"-126\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node6\" class=\"node\">\n",
@ -1164,7 +1156,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M360.03,-63.46C367.5,-70.81 378.66,-80.11 390.62,-84.2 399.29,-87.17 409.25,-87.1 418.05,-85.95\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M360.03,-63.46C367.5,-70.81 378.66,-80.11 390.62,-84.2 399.29,-87.17 409.25,-87.1 418.05,-85.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"425.12,-84.78 418.73,-89.03 421.67,-85.35 418.22,-85.92 418.22,-85.92 418.22,-85.92 421.67,-85.35 417.7,-82.82 425.12,-84.78 425.12,-84.78\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"425.12,-84.78 418.73,-89.03 421.67,-85.35 418.22,-85.92 418.22,-85.92 418.22,-85.92 421.67,-85.35 417.7,-82.82 425.12,-84.78 425.12,-84.78\"/>\n",
"<text text-anchor=\"start\" x=\"394.12\" y=\"-106\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"394.12\" y=\"-106\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-91\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", "<text text-anchor=\"start\" x=\"390.62\" y=\"-91\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;6 -->\n", "<!-- 1&#45;&gt;6 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
@ -1194,7 +1186,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M518.26,-15.49C476.71,-4.55 365.2,18.28 292.66,-28.2 280.22,-36.18 271.55,-50.31 265.96,-62.63\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M518.26,-15.49C476.71,-4.55 365.2,18.28 292.66,-28.2 280.22,-36.18 271.55,-50.31 265.96,-62.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"263.16,-69.23 262.99,-61.56 264.53,-66.01 265.89,-62.78 265.89,-62.78 265.89,-62.78 264.53,-66.01 268.79,-64.01 263.16,-69.23 263.16,-69.23\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"263.16,-69.23 262.99,-61.56 264.53,-66.01 265.89,-62.78 265.89,-62.78 265.89,-62.78 264.53,-66.01 268.79,-64.01 263.16,-69.23 263.16,-69.23\"/>\n",
"<text text-anchor=\"start\" x=\"394.12\" y=\"-20\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"394.12\" y=\"-20\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-5\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", "<text text-anchor=\"start\" x=\"390.62\" y=\"-5\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node8\" class=\"node\">\n", "<g id=\"node8\" class=\"node\">\n",
@ -1222,7 +1214,7 @@
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M525.42,-260.02C514.59,-249.31 495.87,-234.82 478.62,-241.2 471.75,-243.74 465.32,-248.3 459.9,-253.11\"/>\n", "<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M525.42,-260.02C514.59,-249.31 495.87,-234.82 478.62,-241.2 471.75,-243.74 465.32,-248.3 459.9,-253.11\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"454.82,-257.93 457.73,-250.83 457.02,-255.16 459.55,-252.75 459.9,-253.11 460.24,-253.47 457.71,-255.88 462.07,-255.39 454.82,-257.93 454.82,-257.93\"/>\n", "<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"454.82,-257.93 457.73,-250.83 457.02,-255.16 459.55,-252.75 459.9,-253.11 460.24,-253.47 457.71,-255.88 462.07,-255.39 454.82,-257.93 454.82,-257.93\"/>\n",
"<text text-anchor=\"start\" x=\"482.12\" y=\"-260\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"482.12\" y=\"-260\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"478.62\" y=\"-245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"478.62\" y=\"-245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node10\" class=\"node\">\n", "<g id=\"node10\" class=\"node\">\n",
@ -1250,7 +1242,7 @@
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M372.67,-271.2C386.07,-271.2 403.21,-271.2 417.05,-271.2\"/>\n", "<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M372.67,-271.2C386.07,-271.2 403.21,-271.2 417.05,-271.2\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"424.35,-271.2 417.35,-274.35 420.85,-271.7 417.35,-271.7 417.35,-271.2 417.35,-270.7 420.85,-270.7 417.35,-268.05 424.35,-271.2 424.35,-271.2\"/>\n", "<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"424.35,-271.2 417.35,-274.35 420.85,-271.7 417.35,-271.7 417.35,-271.2 417.35,-270.7 420.85,-270.7 417.35,-268.05 424.35,-271.2 424.35,-271.2\"/>\n",
"<text text-anchor=\"start\" x=\"392.62\" y=\"-290\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n", "<text text-anchor=\"start\" x=\"392.62\" y=\"-290\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-275\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"390.62\" y=\"-275\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 9&#45;&gt;3 -->\n", "<!-- 9&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n", "<g id=\"edge15\" class=\"edge\">\n",
@ -1258,7 +1250,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M338.79,-261.38C331.25,-254.57 320.21,-246.07 308.66,-242.2 300.14,-239.34 290.35,-238.59 281.64,-238.73\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M338.79,-261.38C331.25,-254.57 320.21,-246.07 308.66,-242.2 300.14,-239.34 290.35,-238.59 281.64,-238.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"274.63,-239.03 281.49,-235.59 278.13,-238.88 281.63,-238.73 281.63,-238.73 281.63,-238.73 278.13,-238.88 281.76,-241.88 274.63,-239.03 274.63,-239.03\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"274.63,-239.03 281.49,-235.59 278.13,-238.88 281.63,-238.73 281.63,-238.73 281.63,-238.73 278.13,-238.88 281.76,-241.88 274.63,-239.03 274.63,-239.03\"/>\n",
"<text text-anchor=\"start\" x=\"296.66\" y=\"-261\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"296.66\" y=\"-261\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-246\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n", "<text text-anchor=\"start\" x=\"292.66\" y=\"-246\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n", "</g>\n",
"<!-- 10&#45;&gt;0 -->\n", "<!-- 10&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n", "<g id=\"edge16\" class=\"edge\">\n",
@ -1266,7 +1258,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M165.88,-128.7C174.34,-117.42 188.34,-101.38 204.66,-93.2 212.78,-89.14 222.48,-87.2 231.24,-86.33\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M165.88,-128.7C174.34,-117.42 188.34,-101.38 204.66,-93.2 212.78,-89.14 222.48,-87.2 231.24,-86.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"238.31,-85.84 231.55,-89.47 234.82,-86.08 231.33,-86.33 231.33,-86.33 231.33,-86.33 234.82,-86.08 231.11,-83.18 238.31,-85.84 238.31,-85.84\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"238.31,-85.84 231.55,-89.47 234.82,-86.08 231.33,-86.33 231.33,-86.33 231.33,-86.33 234.82,-86.08 231.11,-83.18 238.31,-85.84 238.31,-85.84\"/>\n",
"<text text-anchor=\"start\" x=\"206.66\" y=\"-112\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n", "<text text-anchor=\"start\" x=\"206.66\" y=\"-112\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"204.66\" y=\"-97\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"204.66\" y=\"-97\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 10&#45;&gt;3 -->\n", "<!-- 10&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n", "<g id=\"edge17\" class=\"edge\">\n",
@ -1274,7 +1266,7 @@
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M173.02,-149.34C186.74,-157.01 206.62,-169.5 220.66,-184.2 230.32,-194.31 238.63,-207.52 244.73,-218.67\"/>\n", "<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M173.02,-149.34C186.74,-157.01 206.62,-169.5 220.66,-184.2 230.32,-194.31 238.63,-207.52 244.73,-218.67\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"248.06,-224.96 242,-220.25 245.98,-222.1 244.35,-219.01 244.79,-218.77 245.23,-218.54 246.87,-221.63 247.57,-217.3 248.06,-224.96 248.06,-224.96\"/>\n", "<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"248.06,-224.96 242,-220.25 245.98,-222.1 244.35,-219.01 244.79,-218.77 245.23,-218.54 246.87,-221.63 247.57,-217.3 248.06,-224.96 248.06,-224.96\"/>\n",
"<text text-anchor=\"start\" x=\"208.66\" y=\"-203\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"208.66\" y=\"-203\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"204.66\" y=\"-188\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"204.66\" y=\"-188\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 11&#45;&gt;1 -->\n", "<!-- 11&#45;&gt;1 -->\n",
"<g id=\"edge18\" class=\"edge\">\n", "<g id=\"edge18\" class=\"edge\">\n",
@ -1282,7 +1274,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M184.56,-193.82C226.83,-190.75 309.89,-180.98 372.62,-150.2 395.54,-138.96 415.24,-116.94 427.66,-100.59\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M184.56,-193.82C226.83,-190.75 309.89,-180.98 372.62,-150.2 395.54,-138.96 415.24,-116.94 427.66,-100.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"431.89,-94.85 430.27,-102.36 429.81,-97.67 427.73,-100.49 427.73,-100.49 427.73,-100.49 429.81,-97.67 425.2,-98.61 431.89,-94.85 431.89,-94.85\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"431.89,-94.85 430.27,-102.36 429.81,-97.67 427.73,-100.49 427.73,-100.49 427.73,-100.49 429.81,-97.67 425.2,-98.61 431.89,-94.85 431.89,-94.85\"/>\n",
"<text text-anchor=\"start\" x=\"294.66\" y=\"-196\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n", "<text text-anchor=\"start\" x=\"294.66\" y=\"-196\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-181\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"292.66\" y=\"-181\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"<!-- 11&#45;&gt;3 -->\n", "<!-- 11&#45;&gt;3 -->\n",
"<g id=\"edge19\" class=\"edge\">\n", "<g id=\"edge19\" class=\"edge\">\n",
@ -1290,13 +1282,13 @@
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M174.01,-203.01C190.27,-210.61 215.09,-222.22 233.1,-230.65\"/>\n", "<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M174.01,-203.01C190.27,-210.61 215.09,-222.22 233.1,-230.65\"/>\n",
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"239.88,-233.82 232.2,-233.71 236.5,-232.79 233.33,-231.31 233.54,-230.85 233.75,-230.4 236.92,-231.88 234.87,-228 239.88,-233.82 239.88,-233.82\"/>\n", "<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"239.88,-233.82 232.2,-233.71 236.5,-232.79 233.33,-231.31 233.54,-230.85 233.75,-230.4 236.92,-231.88 234.87,-228 239.88,-233.82 239.88,-233.82\"/>\n",
"<text text-anchor=\"start\" x=\"208.66\" y=\"-242\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"208.66\" y=\"-242\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"204.66\" y=\"-227\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n", "<text text-anchor=\"start\" x=\"204.66\" y=\"-227\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5c143fdf30> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f806443b1b0> >"
] ]
}, },
"execution_count": 11, "execution_count": 11,
@ -1307,11 +1299,18 @@
"source": [ "source": [
"spot.highlight_strategy(game)" "spot.highlight_strategy(game)"
] ]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
} }
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3", "display_name": "Python 3 (ipykernel)",
"language": "python", "language": "python",
"name": "python3" "name": "python3"
}, },
@ -1325,7 +1324,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.7.3" "version": "3.9.2"
} }
}, },
"nbformat": 4, "nbformat": 4,

File diff suppressed because it is too large Load diff

View file

@ -35,18 +35,18 @@ tc.assertEqual(game.to_str(), """HOA: v1
States: 3 States: 3
Start: 0 Start: 0
AP: 1 "a" AP: 1 "a"
acc-name: parity max odd 6 acc-name: Streett 1
Acceptance: 6 Inf(5) | (Fin(4) & (Inf(3) | (Fin(2) & (Inf(1) | Fin(0))))) Acceptance: 2 Fin(0) | Inf(1)
properties: trans-labels explicit-labels state-acc colored complete properties: trans-labels explicit-labels state-acc colored complete
properties: deterministic properties: deterministic
spot-state-player: 0 1 1 spot-state-player: 0 1 1
controllable-AP: controllable-AP:
--BODY-- --BODY--
State: 0 {1} State: 0 {0}
[!0] 1 [!0] 1
[0] 2 [0] 2
State: 1 {4} State: 1 {0}
[t] 0 [t] 0
State: 2 {5} State: 2 {1}
[t] 0 [t] 0
--END--""") --END--""")