remove_fin: ignore more useless transitions

Do not clone transitions that are necessarily part of on accepting
cycle in the main copy of the automaton.

* spot/twaalgos/remfin.cc: Use propagate_marks_vector to ignore more
edges.
* tests/core/remfin.test, tests/python/remfin.py,
tests/python/automata.ipynb: Adjust.
* tests/sanity/style.test: Do not choke on C++17 if statements with
initializer.
This commit is contained in:
Alexandre Duret-Lutz 2020-07-24 15:38:42 +02:00
parent 91db0e1e29
commit 7fbf4e0e3c
6 changed files with 269 additions and 288 deletions

3
NEWS
View file

@ -48,6 +48,9 @@ New in spot 2.9.3.dev (not yet released)
- Translations for formulas such as FGp1 & FGp2 &...& FGp32 which
used to take ages are now instantaneous. (See issue #412.)
- remove_fin() learned to remove more unnecessary edges by using
propagate_marks_vector().
Bugs fixed:
- Handle xor and <-> in a more natural way when translating

View file

@ -26,6 +26,7 @@
#include <spot/twaalgos/isdet.hh>
#include <spot/twaalgos/mask.hh>
#include <spot/twaalgos/alternation.hh>
#include <spot/twaalgos/degen.hh>
// #define TRACE
#ifdef TRACE
@ -621,6 +622,17 @@ namespace spot
bool sbacc = res->prop_state_acc().is_true();
scc_info si(aut, scc_info_options::TRACK_STATES);
unsigned nscc = si.scc_count();
// Help remove more useless transition by propagating marks.
auto propmarks = propagate_marks_vector(aut, &si);
// Edges that are already satisfying the acceptance of the
// main copy do not need to be duplicated in the clones, so
// we fill allacc_edge to remember those. Of course this is
// only needed if the main copy can be accepting and if we
// will create clones.
std::vector<bool> allacc_edge(aut->edge_vector().size(), false);
std::vector<unsigned> state_map(nst);
for (unsigned n = 0; n < nscc; ++n)
{
@ -668,10 +680,11 @@ namespace spot
a = (t.acc & main_sets) | main_add;
res->new_edge(s, t.dst, t.cond, a);
// remember edges that are completely accepting
if (check_main_acc && main_acc.accepting(a))
allacc_edge[aut->edge_number(t)] = true;
if (check_main_acc)
if (unsigned en = aut->edge_number(t);
main_acc.accepting(a | (propmarks[en] & main_sets)))
allacc_edge[en] = true;
}
// We do not need any other copy if the SCC is non-accepting,
// of if it does not intersect any Fin.
if (!intersects_fin)
@ -693,12 +706,16 @@ namespace spot
auto ns = state_map[s];
for (auto& t: aut->out(s))
{
if ((t.acc & r) || si.scc_of(t.dst) != n
// edges that are already accepting in the
// main copy need not be copied in the
// clone, since cycles going through them
// are already accepted.
|| allacc_edge[aut->edge_number(t)])
if (unsigned en = aut->edge_number(t);
// Ignore edges have r, or that
// necessarily go through r.
((t.acc | propmarks[en]) & r)
// Ignore edges between SCCs.
|| si.scc_of(t.dst) != n
// Ignore edges that are already accepting
// in the main copy need not be copied in
// the clone.
|| allacc_edge[en])
continue;
auto nd = state_map[t.dst];
res->new_edge(ns, nd, t.cond, (t.acc & k) | a);

View file

@ -877,14 +877,12 @@ State: 0
State: 1
[2] 0
[!2] 1
[0&2] 2
[0&!2] 3
[2] 4
[!2] 5
State: 2
[0] 2 {0 2}
State: 3
[0&2] 2 {0 2}
[0&!2] 3 {0}
State: 4
[1 | 2] 4 {1 2}
@ -1457,7 +1455,7 @@ State: 3
[1] 3
--END--
HOA: v1
States: 6
States: 5
Start: 0
AP: 3 "a" "b" "c"
acc-name: Buchi
@ -1468,25 +1466,20 @@ State: 0
[t] 0
[!1&!2] 1
[0] 2
[1 | 2] 4
[1 | 2] 3
State: 1
[2] 0
[!2] 1
[0&2] 2
[0&!2] 3
[2] 4
[!2] 5
[2] 3
[!2] 4
State: 2
[0] 2 {0}
State: 3
[0&2] 2
[0&!2] 3
[1 | 2] 3 {0}
[!1&!2] 4
State: 4
[1 | 2] 4 {0}
[!1&!2] 5
State: 5
[2] 4 {0}
[!2] 5
[2] 3 {0}
[!2] 4
--END--
EOF

View file

@ -178,7 +178,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382c04b0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd494e1b0> >"
]
},
"execution_count": 2,
@ -657,7 +657,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382c09f0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd494e090> >"
]
},
"execution_count": 6,
@ -733,7 +733,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382c00f0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd494e7e0> >"
]
},
"execution_count": 7,
@ -816,7 +816,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382c0c00> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd494eae0> >"
]
},
"execution_count": 8,
@ -1349,7 +1349,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382c05a0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd494ede0> >"
]
},
"execution_count": 12,
@ -1463,7 +1463,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382c0ab0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd494e630> >"
]
},
"execution_count": 13,
@ -1594,7 +1594,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382df240> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49052d0> >"
]
},
"execution_count": 14,
@ -1816,7 +1816,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfc90> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905cf0> >"
]
},
"metadata": {},
@ -1831,188 +1831,174 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"482pt\" height=\"315pt\"\n",
" viewBox=\"0.00 0.00 482.00 315.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 311)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-311 478,-311 478,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"161.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"182.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"198.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"238.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"254.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"288.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"304.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"203\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\">[Fin&#45;less 3]</text>\n",
"<svg width=\"374pt\" height=\"281pt\"\n",
" viewBox=\"0.00 0.00 374.00 280.55\" 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 276.55)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-276.55 370,-276.55 370,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-258.35\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"128.5\" y=\"-258.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"144.5\" y=\"-258.35\" font-family=\"Lato\" font-size=\"14.00\">) | (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-258.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"200.5\" y=\"-258.35\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"234.5\" y=\"-258.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"250.5\" y=\"-258.35\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"149\" y=\"-244.35\" font-family=\"Lato\" font-size=\"14.00\">[Fin&#45;less 3]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-97\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-93.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-55.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-51.85\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-97C2.79,-97 17.15,-97 30.63,-97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-97 30.94,-100.15 34.44,-97 30.94,-97 30.94,-97 30.94,-97 34.44,-97 30.94,-93.85 37.94,-97 37.94,-97\"/>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-55.55C2.79,-55.55 17.15,-55.55 30.63,-55.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-55.55 30.94,-58.7 34.44,-55.55 30.94,-55.55 30.94,-55.55 30.94,-55.55 34.44,-55.55 30.94,-52.4 37.94,-55.55 37.94,-55.55\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-114.04C48.32,-123.86 50.45,-133 56,-133 60.17,-133 62.4,-127.86 62.71,-121.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-114.04 65.85,-120.88 62.54,-117.53 62.71,-121.03 62.71,-121.03 62.71,-121.03 62.54,-117.53 59.56,-121.18 62.38,-114.04 62.38,-114.04\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-72.59C48.32,-82.41 50.45,-91.55 56,-91.55 60.17,-91.55 62.4,-86.41 62.71,-79.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-72.59 65.85,-79.43 62.54,-76.09 62.71,-79.58 62.71,-79.58 62.71,-79.58 62.54,-76.09 59.56,-79.73 62.38,-72.59 62.38,-72.59\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-110.35\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-95.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"160\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"160\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"160\" cy=\"-132.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"160\" y=\"-128.85\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.27,-103C87.57,-108.77 108.46,-118.47 124,-131 131.88,-137.36 139.2,-145.75 145.08,-153.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.28,-159.12 142.59,-155.36 147.2,-156.31 145.12,-153.49 145.12,-153.49 145.12,-153.49 147.2,-156.31 147.66,-151.62 149.28,-159.12 149.28,-159.12\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-148.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-134.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.27,-61.55C87.57,-67.33 108.46,-77.03 124,-89.55 131.88,-95.91 139.2,-104.3 145.08,-111.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.28,-117.67 142.59,-113.92 147.2,-114.86 145.12,-112.04 145.12,-112.04 145.12,-112.04 147.2,-114.86 147.66,-110.17 149.28,-117.67 149.28,-117.67\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-107.35\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-93.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-93.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"268\" cy=\"-117\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"268\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"268\" cy=\"-55.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"268\" y=\"-51.85\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.42,-98.17C105.92,-100.35 174.44,-105.43 232,-112 235.48,-112.4 239.14,-112.87 242.73,-113.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"249.93,-114.37 242.56,-116.51 246.47,-113.88 243,-113.39 243,-113.39 243,-113.39 246.47,-113.88 243.44,-110.27 249.93,-114.37 249.93,-114.37\"/>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.19,-55.55C111.43,-55.55 199.67,-55.55 242.64,-55.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"249.87,-55.55 242.87,-58.7 246.37,-55.55 242.87,-55.55 242.87,-55.55 242.87,-55.55 246.37,-55.55 242.87,-52.4 249.87,-55.55 249.87,-55.55\"/>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-74.35\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-59.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"456\" cy=\"-134\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"456\" y=\"-130.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"348\" cy=\"-142.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348\" y=\"-138.85\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.58,-80.98C78.87,-53.43 112.57,0 159,0 159,0 159,0 377,0 426.84,0 445.39,-70.1 451.84,-108.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"452.97,-116.21 448.78,-109.77 452.43,-112.75 451.9,-109.29 451.9,-109.29 451.9,-109.29 452.43,-112.75 455.01,-108.81 452.97,-116.21 452.97,-116.21\"/>\n",
"<text text-anchor=\"middle\" x=\"268\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.01,-45.44C77.18,-41.45 84.67,-37.2 92,-34.55 173.14,-5.25 216.36,22.36 286,-28.55 315.98,-50.47 332.69,-91.67 340.76,-118.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"342.81,-125.11 337.82,-119.27 341.83,-121.75 340.85,-118.39 340.85,-118.39 340.85,-118.39 341.83,-121.75 343.87,-117.5 342.81,-125.11 342.81,-125.11\"/>\n",
"<text text-anchor=\"middle\" x=\"214\" y=\"-5.35\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M141.73,-173.91C127.17,-173.02 106.45,-169.73 92,-159 79.24,-149.53 70.47,-133.93 64.9,-120.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.27,-114.12 67.78,-119.47 63.56,-117.37 64.85,-120.63 64.85,-120.63 64.85,-120.63 63.56,-117.37 61.92,-121.79 62.27,-114.12 62.27,-114.12\"/>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M141.73,-132.47C127.17,-131.57 106.45,-128.28 92,-117.55 79.24,-108.08 70.47,-92.48 64.9,-79.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.27,-72.67 67.78,-78.02 63.56,-75.93 64.85,-79.18 64.85,-79.18 64.85,-79.18 63.56,-75.93 61.92,-80.34 62.27,-72.67 62.27,-72.67\"/>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-148.35\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-133.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M151.02,-189.92C148.68,-200.15 151.67,-210 160,-210 166.38,-210 169.63,-204.23 169.75,-196.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.98,-189.92 172.87,-196.53 169.36,-193.4 169.74,-196.87 169.74,-196.87 169.74,-196.87 169.36,-193.4 166.61,-197.22 168.98,-189.92 168.98,-189.92\"/>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M151.02,-148.47C148.68,-158.7 151.67,-168.55 160,-168.55 166.38,-168.55 169.63,-162.78 169.75,-155.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.98,-148.47 172.87,-155.08 169.36,-151.95 169.74,-155.43 169.74,-155.43 169.74,-155.43 169.36,-151.95 166.61,-155.77 168.98,-148.47 168.98,-148.47\"/>\n",
"<text text-anchor=\"start\" x=\"144\" y=\"-187.35\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-172.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.47,-169.15C192.31,-164.41 214.43,-156.38 232,-146 237.89,-142.52 243.8,-138.07 249.04,-133.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.44,-129.07 251.19,-136.02 251.79,-131.35 249.14,-133.63 249.14,-133.63 249.14,-133.63 251.79,-131.35 247.08,-131.25 254.44,-129.07 254.44,-129.07\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"214\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.88,-128.82C193.2,-124.79 215.81,-117.2 232,-104.55 241.24,-97.34 249.1,-87.04 255.01,-77.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"258.79,-71.53 257.85,-79.15 256.98,-74.52 255.16,-77.51 255.16,-77.51 255.16,-77.51 256.98,-74.52 252.47,-75.88 258.79,-71.53 258.79,-71.53\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-140.35\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-126.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"214\" y=\"-126.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M171.45,-188.1C177.73,-195.52 186.36,-204.07 196,-209 275.04,-249.38 316.7,-278.62 394,-235 422.9,-218.69 439.65,-182.57 448.06,-158.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"450.31,-151.42 451.11,-159.06 449.21,-154.75 448.12,-158.07 448.12,-158.07 448.12,-158.07 449.21,-154.75 445.12,-157.09 450.31,-151.42 450.31,-151.42\"/>\n",
"<text text-anchor=\"start\" x=\"318\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.47,-147.69C184.68,-168.66 213.75,-205.35 250,-217.55 265.16,-222.66 271.55,-224.43 286,-217.55 308.68,-206.77 325.68,-182.97 335.9,-165.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"339.36,-158.75 338.75,-166.41 337.67,-161.82 335.99,-164.89 335.99,-164.89 335.99,-164.89 337.67,-161.82 333.23,-163.38 339.36,-158.75 339.36,-158.75\"/>\n",
"<text text-anchor=\"start\" x=\"264\" y=\"-225.35\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"376\" cy=\"-160\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"376\" y=\"-156.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"268\" cy=\"-142.55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"268\" y=\"-138.85\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.91,-184.17C181.05,-188.05 188.56,-192.02 196,-194 211.46,-198.11 216.11,-195.86 232,-194 274.81,-188.98 323.38,-175.78 351.47,-167.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"358.49,-165.26 352.71,-170.3 355.15,-166.27 351.8,-167.29 351.8,-167.29 351.8,-167.29 355.15,-166.27 350.88,-164.27 358.49,-165.26 358.49,-165.26\"/>\n",
"<text text-anchor=\"start\" x=\"252\" y=\"-194.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.36,-143.98C180.52,-148.52 188.2,-153.22 196,-155.55 211.33,-160.14 216.25,-158.38 232,-155.55 236.17,-154.8 240.49,-153.59 244.61,-152.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"251.31,-149.74 245.82,-155.11 248.02,-150.94 244.74,-152.15 244.74,-152.15 244.74,-152.15 248.02,-150.94 243.65,-149.2 251.31,-149.74 251.31,-149.74\"/>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-161.35\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.4,-109.27C234,-101.12 204.76,-88.8 178,-84 144.45,-77.99 105.14,-84.71 80.65,-90.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.54,-92.27 79.58,-87.53 76.94,-91.43 80.34,-90.59 80.34,-90.59 80.34,-90.59 76.94,-91.43 81.1,-93.65 73.54,-92.27 73.54,-92.27\"/>\n",
"<text text-anchor=\"start\" x=\"154\" y=\"-87.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.48,-50.26C226.61,-43.25 181.05,-32.24 142,-36.55 120.83,-38.89 97.22,-44.41 80.26,-48.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.43,-50.75 79.37,-45.88 76.81,-49.83 80.19,-48.92 80.19,-48.92 80.19,-48.92 76.81,-49.83 81.01,-51.96 73.43,-50.75 73.43,-50.75\"/>\n",
"<text text-anchor=\"start\" x=\"154\" y=\"-40.35\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.02,-115.84C234.83,-115.59 212.49,-117.22 196,-127 186.19,-132.82 178.26,-142.56 172.44,-151.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.76,-157.81 169.65,-150.19 170.56,-154.81 172.36,-151.81 172.36,-151.81 172.36,-151.81 170.56,-154.81 175.06,-153.43 168.76,-157.81 168.76,-157.81\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.73,-61.29C232.66,-67.86 204.84,-78.61 196,-85.55 187.16,-92.49 179.43,-102.2 173.5,-110.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.69,-116.88 170.84,-109.29 171.59,-113.94 173.49,-111 173.49,-111 173.49,-111 171.59,-113.94 176.13,-112.71 169.69,-116.88 169.69,-116.88\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-89.35\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M258.77,-132.54C256.17,-142.91 259.25,-153 268,-153 274.7,-153 278.08,-147.08 278.12,-139.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"277.23,-132.54 281.23,-139.1 277.67,-136.01 278.1,-139.49 278.1,-139.49 278.1,-139.49 277.67,-136.01 274.98,-139.88 277.23,-132.54 277.23,-132.54\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M286.08,-115.8C310.23,-114.41 355.71,-112.91 394,-118 406.64,-119.68 420.41,-123.15 431.66,-126.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"438.65,-128.53 431.04,-129.53 435.3,-127.52 431.95,-126.51 431.95,-126.51 431.95,-126.51 435.3,-127.52 432.86,-123.49 438.65,-128.53 438.65,-128.53\"/>\n",
"<text text-anchor=\"start\" x=\"370\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M285.1,-123.53C303.02,-130.8 332.13,-142.61 352.35,-150.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"359.1,-153.55 351.43,-153.84 355.85,-152.23 352.61,-150.92 352.61,-150.92 352.61,-150.92 355.85,-152.23 353.79,-148 359.1,-153.55 359.1,-153.55\"/>\n",
"<text text-anchor=\"start\" x=\"304\" y=\"-147.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M260.97,-72.22C259.41,-82.18 261.75,-91.55 268,-91.55 272.69,-91.55 275.18,-86.28 275.47,-79.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"275.03,-72.22 278.6,-79.01 275.24,-75.71 275.46,-79.2 275.46,-79.2 275.46,-79.2 275.24,-75.71 272.31,-79.4 275.03,-72.22 275.03,-72.22\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-95.35\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M448.97,-150.66C447.41,-160.62 449.75,-170 456,-170 460.69,-170 463.18,-164.73 463.47,-157.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"463.03,-150.66 466.6,-157.46 463.24,-154.16 463.46,-157.65 463.46,-157.65 463.46,-157.65 463.24,-154.16 460.31,-157.84 463.03,-150.66 463.03,-150.66\"/>\n",
"<text text-anchor=\"middle\" x=\"456\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M340.97,-159.22C339.41,-169.18 341.75,-178.55 348,-178.55 352.69,-178.55 355.18,-173.28 355.47,-166.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"355.03,-159.22 358.6,-166.01 355.24,-162.71 355.46,-166.2 355.46,-166.2 355.46,-166.2 355.24,-162.71 352.31,-166.4 355.03,-159.22 355.03,-159.22\"/>\n",
"<text text-anchor=\"middle\" x=\"348\" y=\"-182.35\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M393.54,-154.49C404.68,-150.77 419.53,-145.82 431.84,-141.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"438.75,-139.42 433.1,-144.62 435.43,-140.52 432.11,-141.63 432.11,-141.63 432.11,-141.63 435.43,-140.52 431.11,-138.64 438.75,-139.42 438.75,-139.42\"/>\n",
"<text text-anchor=\"start\" x=\"412\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M286.31,-142.55C297.02,-142.55 310.92,-142.55 322.71,-142.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"329.74,-142.55 322.74,-145.7 326.24,-142.55 322.74,-142.55 322.74,-142.55 322.74,-142.55 326.24,-142.55 322.74,-139.4 329.74,-142.55 329.74,-142.55\"/>\n",
"<text text-anchor=\"start\" x=\"304\" y=\"-146.35\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M368.97,-176.66C367.41,-186.62 369.75,-196 376,-196 380.69,-196 383.18,-190.73 383.47,-183.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"383.03,-176.66 386.6,-183.46 383.24,-180.16 383.46,-183.65 383.46,-183.65 383.46,-183.65 383.24,-180.16 380.31,-183.84 383.03,-176.66 383.03,-176.66\"/>\n",
"<text text-anchor=\"start\" x=\"360\" y=\"-214.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"368\" y=\"-199.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M260.97,-159.22C259.41,-169.18 261.75,-178.55 268,-178.55 272.69,-178.55 275.18,-173.28 275.47,-166.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"275.03,-159.22 278.6,-166.01 275.24,-162.71 275.46,-166.2 275.46,-166.2 275.46,-166.2 275.24,-162.71 272.31,-166.4 275.03,-159.22 275.03,-159.22\"/>\n",
"<text text-anchor=\"start\" x=\"252\" y=\"-197.35\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"260\" y=\"-182.35\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfc30> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905cc0> >"
]
},
"metadata": {},
@ -2027,171 +2013,150 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"492pt\" height=\"229pt\"\n",
" viewBox=\"0.00 0.00 492.00 228.63\" 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 224.63)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-224.63 488,-224.63 488,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"221.5\" y=\"-206.43\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"242.5\" y=\"-206.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"258.5\" y=\"-206.43\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"220.5\" y=\"-192.43\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"384pt\" height=\"263pt\"\n",
" viewBox=\"0.00 0.00 384.00 263.42\" 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 259.42)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-259.42 380,-259.42 380,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"167.5\" y=\"-241.22\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-241.22\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"204.5\" y=\"-241.22\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"166.5\" y=\"-227.22\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-123.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-119.93\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-19.42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-15.72\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-123.63C2.79,-123.63 17.15,-123.63 30.63,-123.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-123.63 30.94,-126.78 34.44,-123.63 30.94,-123.63 30.94,-123.63 30.94,-123.63 34.44,-123.63 30.94,-120.48 37.94,-123.63 37.94,-123.63\"/>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-19.42C2.79,-19.42 17.15,-19.42 30.63,-19.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-19.42 30.94,-22.57 34.44,-19.42 30.94,-19.42 30.94,-19.42 30.94,-19.42 34.44,-19.42 30.94,-16.27 37.94,-19.42 37.94,-19.42\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-140.67C48.32,-150.49 50.45,-159.63 56,-159.63 60.17,-159.63 62.4,-154.49 62.71,-147.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-140.67 65.85,-147.52 62.54,-144.17 62.71,-147.66 62.71,-147.66 62.71,-147.66 62.54,-144.17 59.56,-147.81 62.38,-140.67 62.38,-140.67\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-163.43\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-36.46C48.32,-46.28 50.45,-55.42 56,-55.42 60.17,-55.42 62.4,-50.28 62.71,-43.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-36.46 65.85,-43.3 62.54,-39.96 62.71,-43.45 62.71,-43.45 62.71,-43.45 62.54,-39.96 59.56,-43.6 62.38,-36.46 62.38,-36.46\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-59.22\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"144\" cy=\"-60.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-56.93\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"144\" cy=\"-57.42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-53.72\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.2,-113.23C85.35,-102.86 107.21,-86.86 123.09,-75.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"129.06,-70.84 125.28,-77.52 126.24,-72.91 123.42,-74.98 123.42,-74.98 123.42,-74.98 126.24,-72.91 121.55,-72.44 129.06,-70.84 129.06,-70.84\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-116.43\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-101.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.65,-26.66C78.68,-29.43 85.65,-32.6 92,-35.42 101.27,-39.54 111.53,-43.99 120.41,-47.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"126.88,-50.57 119.21,-50.71 123.67,-49.2 120.45,-47.82 120.45,-47.82 120.45,-47.82 123.67,-49.2 121.69,-44.92 126.88,-50.57 126.88,-50.57\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-60.22\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-45.22\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M134.49,-41.94C128.44,-32.66 119.39,-21.67 108,-16.42 99.48,-12.5 89.3,-12.32 80.28,-13.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.35,-14.64 79.74,-10.37 76.81,-14.06 80.26,-13.48 80.26,-13.48 80.26,-13.48 76.81,-14.06 80.78,-16.59 73.35,-14.64 73.35,-14.64\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-20.22\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M136.33,-73.71C134.48,-83.81 137.04,-93.42 144,-93.42 149.22,-93.42 151.96,-88.02 152.23,-81.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.67,-73.71 155.34,-80.45 151.93,-77.2 152.2,-80.69 152.2,-80.69 152.2,-80.69 151.93,-77.2 149.06,-80.93 151.67,-73.71 151.67,-73.71\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-97.22\" 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",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"252\" cy=\"-112.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"252\" y=\"-108.93\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M66.6,-138.23C72.83,-146.47 81.69,-156.19 92,-161.63 119.58,-176.21 130.84,-168.07 162,-166.63 186.08,-165.52 195.1,-173.64 216,-161.63 226.41,-155.65 234.52,-145.18 240.31,-135.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"243.77,-129.21 243.12,-136.86 242.07,-132.27 240.37,-135.33 240.37,-135.33 240.37,-135.33 242.07,-132.27 237.62,-133.8 243.77,-129.21 243.77,-129.21\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-173.43\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M125.67,-59.03C115.17,-58.9 101.92,-60.3 92,-66.63 79.78,-74.44 71.15,-88.2 65.52,-100.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.7,-106.7 62.62,-99.03 64.1,-103.49 65.5,-100.29 65.5,-100.29 65.5,-100.29 64.1,-103.49 68.39,-101.55 62.7,-106.7 62.7,-106.7\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-70.43\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M136.33,-76.92C134.48,-87.02 137.04,-96.63 144,-96.63 149.22,-96.63 151.96,-91.23 152.23,-84.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.67,-76.92 155.34,-83.66 151.93,-80.41 152.2,-83.9 152.2,-83.9 152.2,-83.9 151.93,-80.41 149.06,-84.14 151.67,-76.92 151.67,-76.92\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-100.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"252\" cy=\"-34.42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"252\" y=\"-30.72\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M159.82,-69.52C165.98,-73.11 173.27,-77.2 180,-80.63 195.94,-88.76 214.38,-97.04 228.47,-103.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"235,-105.94 227.33,-106.08 231.79,-104.56 228.57,-103.18 228.57,-103.18 228.57,-103.18 231.79,-104.56 229.82,-100.29 235,-105.94 235,-105.94\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-115.43\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-100.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M162.03,-53.73C179.75,-49.88 207.63,-43.83 227.46,-39.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"234.36,-38.03 228.19,-42.6 230.94,-38.78 227.52,-39.52 227.52,-39.52 227.52,-39.52 230.94,-38.78 226.85,-36.44 234.36,-38.03 234.36,-38.03\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-67.22\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-52.22\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"360\" cy=\"-31.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"360\" y=\"-27.93\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"252\" cy=\"-153.42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"252\" y=\"-149.72\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.63,-55.85C167.41,-54.32 173.95,-52.74 180,-51.63 234.76,-41.59 299.93,-35.84 334.54,-33.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"341.85,-32.75 335.1,-36.39 338.36,-33 334.87,-33.25 334.87,-33.25 334.87,-33.25 338.36,-33 334.64,-30.11 341.85,-32.75 341.85,-32.75\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-47.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M151.72,-73.86C157.63,-86.72 167.28,-104.39 180,-116.42 193.83,-129.51 213.2,-139.19 228.21,-145.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"234.76,-147.94 227.1,-148.31 231.51,-146.66 228.25,-145.38 228.25,-145.38 228.25,-145.38 231.51,-146.66 229.41,-142.45 234.76,-147.94 234.76,-147.94\"/>\n",
"<text text-anchor=\"start\" x=\"182\" y=\"-142.22\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"466\" cy=\"-31.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"466\" y=\"-27.93\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"358\" cy=\"-102.42\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"358\" y=\"-98.72\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M159.99,-51.97C166.06,-48.71 173.22,-45.19 180,-42.63 263.86,-11.07 289.41,8.8 378,-4.63 400.3,-8.02 424.76,-16.01 442.04,-22.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"448.99,-25.06 441.33,-25.52 445.72,-23.82 442.44,-22.58 442.44,-22.58 442.44,-22.58 445.72,-23.82 443.56,-19.63 448.99,-25.06 448.99,-25.06\"/>\n",
"<text text-anchor=\"start\" x=\"300\" y=\"-8.43\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M158.02,-69.15C164.24,-74.08 172.05,-79.37 180,-82.42 231.54,-102.2 297.26,-104.12 332.33,-103.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"339.74,-103.29 332.82,-106.61 336.24,-103.37 332.74,-103.46 332.74,-103.46 332.74,-103.46 336.24,-103.37 332.66,-100.31 339.74,-103.29 339.74,-103.29\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-104.22\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M236.27,-122.14C230.24,-125.51 223.03,-128.9 216,-130.63 120.51,-154.22 124.8,-135.34 92,-131.63 88.3,-131.22 84.42,-130.56 80.65,-129.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.6,-128.23 81.12,-126.67 77.02,-128.99 80.44,-129.75 80.44,-129.75 80.44,-129.75 77.02,-128.99 79.76,-132.82 73.6,-128.23 73.6,-128.23\"/>\n",
"<text text-anchor=\"start\" x=\"138\" y=\"-145.43\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M236.63,-24.79C230.52,-21.2 223.17,-17.49 216,-15.42 127.59,10.1 126.03,-3.2 92,-8.42 88.07,-9.03 83.97,-9.99 80.02,-11.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.14,-13.22 78.9,-8.15 76.48,-12.19 79.83,-11.16 79.83,-11.16 79.83,-11.16 76.48,-12.19 80.75,-14.17 73.14,-13.22 73.14,-13.22\"/>\n",
"<text text-anchor=\"start\" x=\"138\" y=\"-5.22\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244.59,-96.08C239,-84.16 229.63,-68.94 216,-61.63 201.75,-54 183.47,-53.93 169.02,-55.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.86,-56.72 168.33,-52.59 165.33,-56.21 168.79,-55.7 168.79,-55.7 168.79,-55.7 165.33,-56.21 169.24,-58.82 161.86,-56.72 161.86,-56.72\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-65.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.77,-128.18C240.17,-138.54 243.25,-148.63 252,-148.63 258.7,-148.63 262.08,-142.72 262.12,-135.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"261.23,-128.18 265.23,-134.73 261.67,-131.65 262.1,-135.12 262.1,-135.12 262.1,-135.12 261.67,-131.65 258.98,-135.51 261.23,-128.18 261.23,-128.18\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-152.43\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M266.86,-102.05C285.43,-87.86 318.48,-62.6 339.54,-46.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"345.14,-42.23 341.49,-48.98 342.36,-44.35 339.58,-46.48 339.58,-46.48 339.58,-46.48 342.36,-44.35 337.66,-43.97 345.14,-42.23 345.14,-42.23\"/>\n",
"<text text-anchor=\"start\" x=\"288\" y=\"-87.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M235.22,-27.35C220.45,-21.79 198.03,-16.11 180,-23.42 172.43,-26.5 165.59,-32.08 160.01,-37.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.26,-43.13 157.6,-35.82 157.6,-40.53 159.94,-37.93 159.94,-37.93 159.94,-37.93 157.6,-40.53 162.28,-40.03 155.26,-43.13 155.26,-43.13\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-27.22\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M269.91,-115.19C294.64,-118.21 341.68,-121.13 378,-106.63 407.37,-94.91 433.74,-68.93 449.56,-50.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"454.12,-45.52 451.96,-52.89 451.84,-48.18 449.57,-50.84 449.57,-50.84 449.57,-50.84 451.84,-48.18 447.17,-48.8 454.12,-45.52 454.12,-45.52\"/>\n",
"<text text-anchor=\"start\" x=\"356\" y=\"-118.43\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M268.54,-42.19C282.85,-49.58 304.44,-61.32 322,-73.42 327.63,-77.3 333.46,-81.88 338.71,-86.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"344.14,-90.83 336.76,-88.71 341.47,-88.57 338.8,-86.31 338.8,-86.31 338.8,-86.31 341.47,-88.57 340.83,-83.9 344.14,-90.83 344.14,-90.83\"/>\n",
"<text text-anchor=\"start\" x=\"301\" y=\"-77.22\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M351.02,-47.55C348.68,-57.78 351.67,-67.63 360,-67.63 366.38,-67.63 369.63,-61.86 369.75,-54.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"368.98,-47.55 372.87,-54.17 369.36,-51.03 369.74,-54.51 369.74,-54.51 369.74,-54.51 369.36,-51.03 366.61,-54.85 368.98,-47.55 368.98,-47.55\"/>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-86.43\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"352\" y=\"-71.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M243.02,-169.34C240.68,-179.57 243.67,-189.42 252,-189.42 258.38,-189.42 261.63,-183.65 261.75,-176.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"260.98,-169.34 264.87,-175.95 261.36,-172.82 261.74,-176.3 261.74,-176.3 261.74,-176.3 261.36,-172.82 258.61,-176.64 260.98,-169.34 260.98,-169.34\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-208.22\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"244\" y=\"-193.22\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M378.17,-31.63C395.18,-31.63 421.4,-31.63 440.57,-31.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"447.8,-31.63 440.8,-34.78 444.3,-31.63 440.8,-31.63 440.8,-31.63 440.8,-31.63 444.3,-31.63 440.8,-28.48 447.8,-31.63 447.8,-31.63\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-35.43\" font-family=\"Lato\" font-size=\"14.00\">!a | !b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M268.8,-145.68C286.46,-137.01 315.19,-122.93 335.04,-113.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"341.4,-110.07 336.5,-115.98 338.25,-111.62 335.11,-113.16 335.11,-113.16 335.11,-113.16 338.25,-111.62 333.72,-110.33 341.4,-110.07 341.4,-110.07\"/>\n",
"<text text-anchor=\"start\" x=\"288\" y=\"-139.22\" font-family=\"Lato\" font-size=\"14.00\">!a | !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M457.02,-47.55C454.68,-57.78 457.67,-67.63 466,-67.63 472.38,-67.63 475.63,-61.86 475.75,-54.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"474.98,-47.55 478.87,-54.17 475.36,-51.03 475.74,-54.51 475.74,-54.51 475.74,-54.51 475.36,-51.03 472.61,-54.85 474.98,-47.55 474.98,-47.55\"/>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-71.43\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.02,-118.34C346.68,-128.57 349.67,-138.42 358,-138.42 364.38,-138.42 367.63,-132.65 367.75,-125.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"366.98,-118.34 370.87,-124.95 367.36,-121.82 367.74,-125.3 367.74,-125.3 367.74,-125.3 367.36,-121.82 364.61,-125.64 366.98,-118.34 366.98,-118.34\"/>\n",
"<text text-anchor=\"start\" x=\"353.5\" y=\"-142.22\" 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 0x7f37382dfed0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905f90> >"
]
},
"metadata": {},
@ -2206,11 +2171,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"506pt\" height=\"203pt\"\n",
" viewBox=\"0.00 0.00 506.00 202.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 198.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-198.8 502,-198.8 502,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"227.5\" y=\"-164.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"390pt\" height=\"245pt\"\n",
" viewBox=\"0.00 0.00 390.00 244.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 240.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-240.8 386,-240.8 386,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"169.5\" y=\"-206.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -2255,91 +2220,91 @@
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"248\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"248\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"248\" cy=\"-70\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"248\" y=\"-66.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.94,-58.57C179.36,-60.71 204.19,-63.75 222.52,-66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"229.95,-66.91 222.61,-69.18 226.47,-66.48 223,-66.06 223,-66.06 223,-66.06 226.47,-66.48 223.38,-62.93 229.95,-66.91 229.95,-66.91\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-67.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.94,-58.77C179.36,-61.07 204.19,-64.35 222.52,-66.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"229.95,-67.75 222.59,-69.95 226.48,-67.29 223.01,-66.83 223.01,-66.83 223.01,-66.83 226.48,-67.29 223.42,-63.71 229.95,-67.75 229.95,-67.75\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"360\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"360\" cy=\"-51\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"360\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"360\" cy=\"-35\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"360\" cy=\"-35\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"360\" y=\"-31.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M160.7,-47.59C178.45,-40.5 205.44,-30.9 230,-27 265.58,-21.35 306.42,-31.84 332.45,-40.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"339.39,-43.12 331.74,-43.77 336.08,-41.96 332.78,-40.8 332.78,-40.8 332.78,-40.8 336.08,-41.96 333.83,-37.83 339.39,-43.12 339.39,-43.12\"/>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-30.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M160.73,-47.88C178.5,-41.03 205.5,-31.76 230,-28 264.65,-22.68 305.08,-26.46 331.31,-30.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"338.32,-31.27 330.93,-33.35 334.86,-30.75 331.39,-30.23 331.39,-30.23 331.39,-30.23 334.86,-30.75 331.86,-27.12 338.32,-31.27 338.32,-31.27\"/>\n",
"<text text-anchor=\"start\" x=\"230\" y=\"-31.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"476\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"476\" cy=\"-100\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"476\" y=\"-96.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"360\" cy=\"-142\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"360\" cy=\"-142\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"360\" y=\"-138.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M154.68,-72.58C170.62,-90.45 198.76,-117.83 230,-129 305.95,-156.17 402.75,-127.67 448.62,-110.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.27,-108.19 449.83,-113.61 451.99,-109.43 448.72,-110.66 448.72,-110.66 448.72,-110.66 451.99,-109.43 447.61,-107.72 455.27,-108.19 455.27,-108.19\"/>\n",
"<text text-anchor=\"start\" x=\"286\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M154.84,-72.27C170.91,-89.9 199.19,-117.22 230,-130 262.66,-143.55 303.86,-144.98 330.79,-144.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"337.99,-143.76 331.13,-147.21 334.49,-143.91 331,-144.06 331,-144.06 331,-144.06 334.49,-143.91 330.86,-140.91 337.99,-143.76 337.99,-143.76\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.02,-84.92C236.68,-95.15 239.67,-105 248,-105 254.38,-105 257.63,-99.23 257.75,-91.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.98,-84.92 260.87,-91.53 257.36,-88.4 257.74,-91.87 257.74,-91.87 257.74,-91.87 257.36,-88.4 254.61,-92.22 256.98,-84.92 256.98,-84.92\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.02,-85.92C236.68,-96.15 239.67,-106 248,-106 254.38,-106 257.63,-100.23 257.75,-92.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.98,-85.92 260.87,-92.53 257.36,-89.4 257.74,-92.87 257.74,-92.87 257.74,-92.87 257.36,-89.4 254.61,-93.22 256.98,-85.92 256.98,-85.92\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M266.13,-70.23C280.64,-70.86 301.9,-70.83 320,-67 324.42,-66.06 328.97,-64.65 333.34,-63.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"340,-60.4 334.65,-65.91 336.75,-61.69 333.49,-62.98 333.49,-62.98 333.49,-62.98 336.75,-61.69 332.33,-60.05 340,-60.4 340,-60.4\"/>\n",
"<text text-anchor=\"start\" x=\"284\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M263.96,-61.25C270.02,-57.99 277.19,-54.48 284,-52 299.17,-46.48 316.74,-42.38 331.06,-39.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"338.23,-38.25 331.92,-42.64 334.79,-38.9 331.35,-39.54 331.35,-39.54 331.35,-39.54 334.79,-38.9 330.77,-36.44 338.23,-38.25 338.23,-38.25\"/>\n",
"<text text-anchor=\"start\" x=\"284\" y=\"-55.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M263.38,-79.41C281.59,-91.33 313.21,-112.03 335.07,-126.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"340.96,-130.19 333.38,-129 338.03,-128.28 335.11,-126.36 335.11,-126.36 335.11,-126.36 338.03,-128.28 336.83,-123.72 340.96,-130.19 340.96,-130.19\"/>\n",
"<text text-anchor=\"start\" x=\"286\" y=\"-117.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M342.55,-36.96C335.95,-32.06 328.01,-27.04 320,-24 228.34,10.78 198.03,-9.31 100,-8 96.44,-7.95 95.52,-7.51 92,-8 88.09,-8.55 84,-9.42 80.06,-10.44\"/>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M339.45,-26.85C333.32,-24.61 326.47,-22.4 320,-21 224.28,-0.21 197.93,-9.75 100,-8 96.45,-7.94 95.52,-7.51 92,-8 88.09,-8.55 84,-9.42 80.06,-10.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.18,-12.36 79.07,-7.44 76.55,-11.42 79.92,-10.47 79.92,-10.47 79.92,-10.47 76.55,-11.42 80.77,-13.51 73.18,-12.36 73.18,-12.36\"/>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-10.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M338.24,-46.81C322.96,-44.52 301.83,-43.06 284,-48 278.84,-49.43 273.67,-51.85 268.95,-54.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"262.84,-58.33 267.13,-51.97 265.81,-56.49 268.79,-54.65 268.79,-54.65 268.79,-54.65 265.81,-56.49 270.45,-57.32 262.84,-58.33 262.84,-58.33\"/>\n",
"<text text-anchor=\"start\" x=\"284\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.6,-59.42C399.44,-67.52 428.04,-79.82 448.83,-88.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.28,-91.52 447.6,-91.65 452.06,-90.14 448.85,-88.76 448.85,-88.76 448.85,-88.76 452.06,-90.14 450.09,-85.86 455.28,-91.52 455.28,-91.52\"/>\n",
"<text text-anchor=\"start\" x=\"400\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M344.2,-51C337.47,-57.17 329,-63.56 320,-67 305.08,-72.7 287.1,-73.4 272.96,-72.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"265.96,-72.23 273.15,-69.56 269.45,-72.46 272.94,-72.7 272.94,-72.7 272.94,-72.7 269.45,-72.46 272.73,-75.84 265.96,-72.23 265.96,-72.23\"/>\n",
"<text text-anchor=\"start\" x=\"284\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M465.57,-119.76C463.8,-130.35 467.28,-140 476,-140 482.68,-140 486.28,-134.34 486.81,-126.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"486.43,-119.76 489.94,-126.58 486.61,-123.25 486.8,-126.75 486.8,-126.75 486.8,-126.75 486.61,-123.25 483.65,-126.91 486.43,-119.76 486.43,-119.76\"/>\n",
"<text text-anchor=\"start\" x=\"460\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.57,-161.76C347.8,-172.35 351.28,-182 360,-182 366.68,-182 370.28,-176.34 370.81,-168.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"370.43,-161.76 373.94,-168.58 370.61,-165.25 370.8,-168.75 370.8,-168.75 370.8,-168.75 370.61,-165.25 367.65,-168.91 370.43,-161.76 370.43,-161.76\"/>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfa80> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905ae0> >"
]
},
"metadata": {},
@ -2528,7 +2493,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382df1b0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905720> >"
]
},
"execution_count": 19,
@ -2604,7 +2569,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfae0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905a80> >"
]
},
"execution_count": 20,
@ -3154,7 +3119,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfe10> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49055d0> >"
]
},
"metadata": {},
@ -3254,7 +3219,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382c0e10> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905ed0> >"
]
},
"execution_count": 24,
@ -3327,7 +3292,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfba0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905420> >"
]
},
"execution_count": 25,
@ -3498,7 +3463,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfc00> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd494e990> >"
]
},
"execution_count": 27,
@ -3581,7 +3546,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfe10> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49055d0> >"
]
},
"metadata": {},
@ -3646,7 +3611,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfe10> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49055d0> >"
]
},
"metadata": {},
@ -3733,7 +3698,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f37382dfe10> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49055d0> >"
]
},
"execution_count": 29,
@ -3766,7 +3731,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.4"
"version": "3.8.5"
}
},
"nbformat": 4,

View file

@ -92,4 +92,4 @@ State: 2
""")
b = spot.remove_fin(a)
size = (b.num_states(), b.num_edges())
assert size == (5, 17);
assert size == (5, 15);

View file

@ -1,6 +1,6 @@
#! /bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2009-2019 Laboratoire de Recherche et Développement de
# Copyright (C) 2009-2020 Laboratoire de Recherche et Développement de
# l'Epita (LRDE).
# Copyright (C) 2004, 2005 Laboratoire d'Informatique de Paris 6
# (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
@ -158,7 +158,10 @@ for dir in "$TOP/spot" "$TOP/bin" "$TOP/tests"; do
$GREP '[ ]if ([^()]*).*{' $tmp &&
diag 'Opening { should be on its own line.'
$GREP '[ ]if (.*).*;' $tmp &&
$GREP '[ ]if ([^()]*).*;' $tmp &&
diag 'if body should be on another line.'
$GREP '[ ]if ([^()]*([^()]*)[^()]*).*;' $tmp &&
diag 'if body should be on another line.'
$GREP '[ ]else.*;' $tmp &&