simplify_acceptance: Use color inclusions to simplify a condition

This fixes #406.

* spot/twaalgos/cleanacc.cc: Add the simplification.
* tests/core/remfin.test, tests/python/automata.ipynb,
tests/python/remfin.py: Update tests.
* tests/python/simplacc.py: Update and add tests.
This commit is contained in:
Florian Renkin 2020-07-25 19:15:17 +02:00
parent 05e6e08859
commit 5ec9d55fea
5 changed files with 395 additions and 273 deletions

View file

@ -613,6 +613,100 @@ namespace spot
}
}
static
acc_cond::mark_t merge_marks(acc_cond::mark_t colors,
std::vector<acc_cond::mark_t> inclusions)
{
bool changed;
do
{
changed = false;
for (unsigned c : colors.sets())
{
if ((inclusions[c] & colors) != acc_cond::mark_t {})
{
auto new_colors = (colors - inclusions[c]);
if (new_colors != colors)
changed = true;
colors = new_colors;
break;
}
}
} while (changed);
return colors;
}
static
acc_cond::acc_code merge_colors(acc_cond::acc_code code,
std::vector<acc_cond::mark_t> inclusions)
{
if (code.empty())
return {};
int pos = code.size() - 1;
acc_cond::acc_code result;
do
{
switch (code[pos].sub.op)
{
case acc_cond::acc_op::And:
{
result = acc_cond::acc_code::t();
--pos;
while (pos > 0)
{
result = merge_colors(acc_cond::acc_code(&code[pos]), inclusions)
& result;
pos -= (code[pos].sub.size + 1);
}
return result;
}
case acc_cond::acc_op::Or:
{
result = acc_cond::acc_code::f();
--pos;
while (pos > 0)
{
result = merge_colors(acc_cond::acc_code(&code[pos]), inclusions)
| result;
pos -= (code[pos].sub.size + 1);
}
return result;
}
case acc_cond::acc_op::Fin:
{
auto res = acc_cond::acc_code::fin(merge_marks(code[pos - 1].mark,
inclusions));
return res;
}
case acc_cond::acc_op::Inf:
{
auto res = acc_cond::acc_code::inf(merge_marks(code[pos - 1].mark,
inclusions));
return res;
}
default:
SPOT_UNREACHABLE();
}
} while (pos > 0);
SPOT_UNREACHABLE();
}
// Create a vector of marks such that for every color c, result[c] contains
// all the colors that are on every transitions that also contain c
// (c is excluded).
static std::vector<acc_cond::mark_t> included_marks(twa_graph_ptr aut)
{
std::vector<acc_cond::mark_t> result(SPOT_MAX_ACCSETS,
acc_cond::mark_t::all());
for (unsigned i = 0; i < SPOT_MAX_ACCSETS; ++i)
result[i]^= acc_cond::mark_t {i};
for (auto& e: aut->edges())
for (auto c : e.acc.sets())
result[c] &= e.acc;
return result;
}
twa_graph_ptr simplify_acceptance_here(twa_graph_ptr aut)
{
for (;;)
@ -621,7 +715,10 @@ namespace spot
merge_identical_marks_here(aut);
if (aut->acc().is_generalized_buchi())
break;
acc_cond::acc_code old = aut->get_acceptance();
auto inc = included_marks(aut);
auto new_code = merge_colors(aut->get_acceptance(), inc);
aut->set_acceptance(acc_cond(aut->num_sets(), new_code));
acc_cond::acc_code old = new_code;
aut->set_acceptance(aut->acc().unit_propagation());
simplify_complementary_marks_here(aut);
fuse_marks_here(aut);

View file

@ -311,48 +311,46 @@ State: 2 {0}
[!1] 2
--END--
HOA: v1
States: 4
States: 3
Start: 0
AP: 2 "a" "b"
Acceptance: 4 Inf(0) | Inf(3) | (Inf(1)&Inf(2))
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[t] 0 {1 3}
[0] 1 {1 3}
[!0] 2 {1 3}
[t] 0 {0}
[0] 1 {0}
[!0] 2 {0}
State: 1
[1] 0 {1}
[0&1] 1 {1}
[!0&1] 2 {1 2}
[1] 0
[0&1] 1
[!0&1] 2 {0}
State: 2
[!1] 0
[0&!1] 1
[!0&!1] 2
[!0&!1] 3
State: 3
[!0&!1] 3 {0}
[!0&!1] 2 {0}
--END--
HOA: v1
States: 3
Start: 0
AP: 2 "a" "b"
acc-name: generalized-Buchi 2
Acceptance: 2 Inf(0)&Inf(1)
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[t] 0 {1}
[0] 1 {1}
[!0] 2 {0 1}
[t] 0
[0] 1
[!0] 2 {0}
State: 1
[1] 0 {1}
[0&1] 1 {0 1}
[!0&1] 2 {0 1}
[1] 0
[0&1] 1 {0}
[!0&1] 2 {0}
State: 2
[!1] 0
[0&!1] 1 {0 1}
[!0&!1] 2 {0 1}
[0&!1] 1 {0}
[!0&!1] 2 {0}
--END--
HOA: v1
States: 1
@ -842,25 +840,23 @@ HOA: v1
States: 4
Start: 0
AP: 2 "b" "c"
acc-name: generalized-Buchi 2
Acceptance: 2 Inf(0)&Inf(1)
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[!0] 0
[!0] 1
[0] 0
[0] 1
[0&!1] 2
[0&1] 3
[t] 0
[0&!1] 1
[0&1] 2
[!0] 3
State: 1
[!0] 1 {0 1}
[!0 | !1] 1 {0}
[0&1] 2
State: 2
[!0 | !1] 2 {0 1}
[0&1] 3 {0}
[!1] 1 {0}
[1] 2
State: 3
[!1] 2 {0 1}
[1] 3 {0}
[!0] 3 {0}
--END--
HOA: v1
States: 6
@ -912,7 +908,7 @@ State: 2 {0}
[!1] 2
--END--
HOA: v1
States: 4
States: 3
Start: 0
AP: 2 "a" "b"
acc-name: Buchi
@ -930,10 +926,7 @@ State: 1
State: 2
[!1] 0
[0&!1] 1
[!0&!1] 2
[!0&!1] 3
State: 3
[!0&!1] 3 {0}
[!0&!1] 2 {0}
--END--
HOA: v1
States: 3

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 0x7f5bd494e1b0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1940090f00> >"
]
},
"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 0x7f5bd494e090> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1940108e10> >"
]
},
"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 0x7f5bd494e7e0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1940108870> >"
]
},
"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 0x7f5bd494eae0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1940108ab0> >"
]
},
"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 0x7f5bd494ede0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f194009f600> >"
]
},
"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 0x7f5bd494e630> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19401080f0> >"
]
},
"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 0x7f5bd49052d0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400ad270> >"
]
},
"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 0x7f5bd4905cf0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400b1480> >"
]
},
"metadata": {},
@ -1831,174 +1831,178 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\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",
"<svg width=\"466pt\" height=\"318pt\"\n",
" viewBox=\"0.00 0.00 466.00 318.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 314)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-314 462,-314 462,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"208.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"229.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"245.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"207.5\" y=\"-281.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<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",
"<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",
"</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,-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",
"<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",
"</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,-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",
"<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=\"-136.8\" 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=\"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",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"144\" cy=\"-176\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-172.3\" 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,-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",
"<path fill=\"none\" stroke=\"black\" d=\"M72.2,-105.37C82.86,-111.64 97.09,-120.86 108,-131 115.74,-138.2 123.11,-147.22 129.08,-155.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"133.35,-161.23 126.71,-157.39 131.31,-158.39 129.26,-155.55 129.26,-155.55 129.26,-155.55 131.31,-158.39 131.82,-153.71 133.35,-161.23 133.35,-161.23\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-149.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=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\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",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"252\" cy=\"-119\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"252\" y=\"-115.3\" 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.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",
"<path fill=\"none\" stroke=\"black\" d=\"M74.22,-98.34C103.45,-100.7 164.59,-106.02 216,-113 219.57,-113.49 223.34,-114.06 227.03,-114.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"233.95,-115.83 226.52,-117.77 230.5,-115.25 227.04,-114.67 227.04,-114.67 227.04,-114.67 230.5,-115.25 227.57,-111.56 233.95,-115.83 233.95,-115.83\"/>\n",
"<text text-anchor=\"start\" x=\"138.5\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\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",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"440\" cy=\"-136\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"440\" y=\"-132.3\" 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=\"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",
"<path fill=\"none\" stroke=\"black\" d=\"M63.02,-80.1C74.14,-52.31 100.69,0 143,0 143,0 143,0 361,0 411.52,0 429.79,-71.5 436.01,-110.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"437.1,-118.22 432.97,-111.75 436.59,-114.76 436.08,-111.3 436.08,-111.3 436.08,-111.3 436.59,-114.76 439.2,-110.84 437.1,-118.22 437.1,-118.22\"/>\n",
"<text text-anchor=\"start\" x=\"247.5\" y=\"-3.8\" 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,-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",
"<path fill=\"none\" stroke=\"black\" d=\"M125.85,-174.31C115.15,-172.51 101.63,-168.76 92,-161 79.24,-150.72 70.43,-134.47 64.85,-120.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.21,-114.13 67.68,-119.52 63.48,-117.39 64.74,-120.65 64.74,-120.65 64.74,-120.65 63.48,-117.39 61.81,-121.79 62.21,-114.13 62.21,-114.13\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-172.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"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",
"<path fill=\"none\" stroke=\"black\" d=\"M136.33,-192.29C134.48,-202.39 137.04,-212 144,-212 149.22,-212 151.96,-206.59 152.23,-199.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.67,-192.29 155.34,-199.03 151.93,-195.78 152.2,-199.27 152.2,-199.27 152.2,-199.27 151.93,-195.78 149.06,-199.51 151.67,-192.29 151.67,-192.29\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-215.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</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.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",
"<path fill=\"none\" stroke=\"black\" d=\"M161.36,-170.46C176.12,-165.14 198.2,-156.39 216,-146 221.53,-142.77 227.16,-138.79 232.26,-134.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"237.94,-130.37 234.41,-137.18 235.2,-132.54 232.46,-134.71 232.46,-134.71 232.46,-134.71 235.2,-132.54 230.5,-132.25 237.94,-130.37 237.94,-130.37\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"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",
"<path fill=\"none\" stroke=\"black\" d=\"M155.36,-190.53C161.61,-198.16 170.24,-206.96 180,-212 258.83,-252.67 300.75,-280.59 378,-237 406.9,-220.69 423.65,-184.57 432.06,-160.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"434.31,-153.42 435.11,-161.06 433.21,-156.75 432.12,-160.07 432.12,-160.07 432.12,-160.07 433.21,-156.75 429.12,-159.09 434.31,-153.42 434.31,-153.42\"/>\n",
"<text text-anchor=\"start\" x=\"302\" y=\"-262.8\" 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=\"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",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"360\" cy=\"-162\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"360\" y=\"-158.3\" 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.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",
"<path fill=\"none\" stroke=\"black\" d=\"M158.84,-186.67C164.97,-190.75 172.49,-194.92 180,-197 195.42,-201.27 200.12,-198.92 216,-197 258.86,-191.83 307.41,-178.25 335.49,-169.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"342.51,-167.41 336.76,-172.5 339.17,-168.45 335.83,-169.5 335.83,-169.5 335.83,-169.5 339.17,-168.45 334.89,-166.49 342.51,-167.41 342.51,-167.41\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-197.8\" 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=\"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",
"<path fill=\"none\" stroke=\"black\" d=\"M235.79,-110.87C218.5,-102.14 189.13,-88.86 162,-84 134.06,-78.99 101.59,-84.77 80.24,-90.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.45,-91.92 79.42,-87.09 76.84,-91.03 80.22,-90.14 80.22,-90.14 80.22,-90.14 76.84,-91.03 81.02,-93.18 73.45,-91.92 73.45,-91.92\"/>\n",
"<text text-anchor=\"start\" x=\"138\" y=\"-87.8\" 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.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",
"<path fill=\"none\" stroke=\"black\" d=\"M234.01,-117.19C218.82,-116.39 196.47,-117.32 180,-127 169.65,-133.08 161.54,-143.57 155.75,-153.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"152.27,-159.5 152.94,-151.86 153.98,-156.45 155.69,-153.39 155.69,-153.39 155.69,-153.39 153.98,-156.45 158.44,-154.93 152.27,-159.5 152.27,-159.5\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-130.8\" 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=\"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",
"<path fill=\"none\" stroke=\"black\" d=\"M242.77,-134.54C240.17,-144.91 243.25,-155 252,-155 258.7,-155 262.08,-149.08 262.12,-141.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"261.23,-134.54 265.23,-141.1 261.67,-138.01 262.1,-141.49 262.1,-141.49 262.1,-141.49 261.67,-138.01 258.98,-141.88 261.23,-134.54 261.23,-134.54\"/>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-158.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=\"M270.08,-117.8C294.23,-116.41 339.71,-114.91 378,-120 390.64,-121.68 404.41,-125.15 415.66,-128.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"422.65,-130.53 415.04,-131.53 419.3,-129.52 415.95,-128.51 415.95,-128.51 415.95,-128.51 419.3,-129.52 416.86,-125.49 422.65,-130.53 422.65,-130.53\"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-123.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=\"M269.1,-125.53C287.02,-132.8 316.13,-144.61 336.35,-152.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"343.1,-155.55 335.43,-155.84 339.85,-154.23 336.61,-152.92 336.61,-152.92 336.61,-152.92 339.85,-154.23 337.79,-150 343.1,-155.55 343.1,-155.55\"/>\n",
"<text text-anchor=\"start\" x=\"288\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\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",
"<path fill=\"none\" stroke=\"black\" d=\"M432.97,-152.66C431.41,-162.62 433.75,-172 440,-172 444.69,-172 447.18,-166.73 447.47,-159.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"447.03,-152.66 450.6,-159.46 447.24,-156.16 447.46,-159.65 447.46,-159.65 447.46,-159.65 447.24,-156.16 444.31,-159.84 447.03,-152.66 447.03,-152.66\"/>\n",
"<text text-anchor=\"start\" x=\"435.5\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\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",
"<path fill=\"none\" stroke=\"black\" d=\"M377.54,-156.49C388.68,-152.77 403.53,-147.82 415.84,-143.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"422.75,-141.42 417.1,-146.62 419.43,-142.52 416.11,-143.63 416.11,-143.63 416.11,-143.63 419.43,-142.52 415.11,-140.64 422.75,-141.42 422.75,-141.42\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\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",
"<path fill=\"none\" stroke=\"black\" d=\"M352.97,-178.66C351.41,-188.62 353.75,-198 360,-198 364.69,-198 367.18,-192.73 367.47,-185.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"367.03,-178.66 370.6,-185.46 367.24,-182.16 367.46,-185.65 367.46,-185.65 367.46,-185.65 367.24,-182.16 364.31,-185.84 367.03,-178.66 367.03,-178.66\"/>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-216.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"352\" y=\"-201.8\" 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 0x7f5bd4905cc0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400b13f0> >"
]
},
"metadata": {},
@ -2013,150 +2017,171 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\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",
"<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",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\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",
"<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",
"</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,-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",
"<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",
"</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,-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",
"<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",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\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",
"<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",
"</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=\"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",
"<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",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\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",
"<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",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\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",
"<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",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\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",
"<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",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\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",
"<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",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\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",
"<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",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\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",
"<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",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\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",
"<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",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\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",
"<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",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\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",
"<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",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\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",
"<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",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\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",
"<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",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\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",
"<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",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905f90> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400b16f0> >"
]
},
"metadata": {},
@ -2171,11 +2196,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\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",
"<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",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
@ -2220,91 +2245,91 @@
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\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",
"<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",
"</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.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",
"<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",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\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",
"<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",
"</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.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",
"<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",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\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",
"<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",
"</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.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",
"<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",
"</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,-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",
"<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",
"</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=\"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",
"<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",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\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",
"<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",
"<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=\"-10.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"<text text-anchor=\"start\" x=\"190\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<g id=\"edge11\" class=\"edge\">\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",
"<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",
"</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=\"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",
"<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",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905ae0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400b1420> >"
]
},
"metadata": {},
@ -2493,7 +2518,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905720> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400b18a0> >"
]
},
"execution_count": 19,
@ -2569,7 +2594,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905a80> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400b1e70> >"
]
},
"execution_count": 20,
@ -3119,7 +3144,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49055d0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19402232a0> >"
]
},
"metadata": {},
@ -3219,7 +3244,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905ed0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1940108f60> >"
]
},
"execution_count": 24,
@ -3292,7 +3317,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd4905420> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400b1bd0> >"
]
},
"execution_count": 25,
@ -3463,7 +3488,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd494e990> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19400b8b40> >"
]
},
"execution_count": 27,
@ -3546,7 +3571,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49055d0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19402232a0> >"
]
},
"metadata": {},
@ -3611,7 +3636,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49055d0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19402232a0> >"
]
},
"metadata": {},
@ -3698,7 +3723,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5bd49055d0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f19402232a0> >"
]
},
"execution_count": 29,
@ -3731,9 +3756,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
"version": "3.8.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
"nbformat_minor": 4
}

View file

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

View file

@ -60,6 +60,11 @@ HOA: v1 States: 2 Start: 0 AP: 2 "p0" "p1" Acceptance: 5 Fin(0) &
(((Fin(1)|Fin(2)|Fin(3))&Inf(4)|Fin(3))) properties: trans-labels
explicit-labels trans-acc --BODY-- State: 0 [!0&!1] 0 {0 1 3} [0&1] 1
{0 2} [0&!1] 0 {2} State: 1 [0&1] 0 {0 2} [0&1] 1 {1} [0&!1] 1 {4} --END--
/* Issue #406 */
HOA: v1 States: 2 Start: 0 AP: 2 "p0" "p1" Acceptance: 4
(Fin(3) & (Inf(1) | Fin(0))) | (Inf(0)&Inf(2)&Inf(3)) properties: trans-labels
explicit-labels trans-acc deterministic --BODY-- State: 0 [0&!1] 0 {2 3}
[!0&!1] 1 {0 1} State: 1 [!0&!1] 0 {0 1} [0&1] 1 {1 2} --END--
"""))
res = []
@ -90,8 +95,10 @@ assert res == [
'((Inf(1) & Fin(2)) | Fin(5)) & (Inf(0) | (Inf(1) & (Inf(3) | Fin(4))))',
'Inf(0)',
'Fin(0)',
'Fin(0)|Fin(1)|Fin(2)',
'Inf(0)&Inf(1)&Inf(2)',
'((Fin(0)|Fin(1)) & Inf(3)) | Fin(2)',
'((Inf(0)&Inf(1)) | Fin(3)) & Inf(2)',
'Fin(0)',
'Inf(0)',
'(Fin(0) & Inf(2)) | Fin(1)',
'(Inf(0) | Fin(2)) & Inf(1)',
'(Fin(2) & (Inf(1) | Fin(0))) | (Inf(0)&Inf(2))',
'(Inf(2) | (Fin(1) & Inf(0))) & (Fin(0)|Fin(2))',
]