dot: fix printing of alternating automata

Related to #208.

* spot/twaalgos/dot.cc: Fix missing definitions of universal nodes,
and inclusion of universal nodes inside of SCC when none of the
destination comes back to the SCC.
* tests/python/_altscc.ipynb: Adjust and add more test cases.
* tests/core/alternating.test, tests/core/neverclaimread.test,
tests/core/readsave.test, tests/core/sccdot.test,
tests/python/decompose.ipynb: Adjust test cases.
* NEWS: Mention the bug.
This commit is contained in:
Alexandre Duret-Lutz 2017-05-31 17:14:52 +02:00
parent f6607f1a2c
commit 7b6cfd448c
8 changed files with 1593 additions and 1154 deletions

5
NEWS
View file

@ -6,6 +6,11 @@ New in spot 2.3.4.dev (not yet released)
single ltl2tgba run could produce automata different from those single ltl2tgba run could produce automata different from those
produced by individual runs. produced by individual runs.
- The print_dot() function had a couple of issues when printing
alternating automata: in particular, when using flag 's' (display
SCC) or 'y' (split universal destination by colors) universal
edges could be connected to undefined states.
New in spot 2.3.4 (2017-05-11) New in spot 2.3.4 (2017-05-11)
Bugs fixed: Bugs fixed:

View file

@ -69,6 +69,8 @@ namespace spot
std::vector<std::pair<unsigned, unsigned>>* sprod_ = nullptr; std::vector<std::pair<unsigned, unsigned>>* sprod_ = nullptr;
std::set<unsigned>* incomplete_ = nullptr; std::set<unsigned>* incomplete_ = nullptr;
std::string* name_ = nullptr; std::string* name_ = nullptr;
std::map<std::pair<int, int>, int> univ_done;
acc_cond::mark_t inf_sets_ = 0U; acc_cond::mark_t inf_sets_ = 0U;
acc_cond::mark_t fin_sets_ = 0U; acc_cond::mark_t fin_sets_ = 0U;
unsigned opt_shift_sets_ = 0; unsigned opt_shift_sets_ = 0;
@ -366,28 +368,39 @@ namespace spot
return bdd_format_formula(aut_->get_dict(), label); return bdd_format_formula(aut_->get_dict(), label);
} }
std::set<std::pair<int, int>> done; std::string string_dst(int dst, int color_num = -1)
void
print_dst(int dst, const char* style = nullptr, int scc_num = -1,
int color_num = -1)
{ {
std::ostringstream tmp_dst; std::ostringstream tmp_dst;
tmp_dst << dst; tmp_dst << dst;
if (scc_num >= 0) if (!opt_shared_univ_dest_ && color_num >= 0)
tmp_dst << '.' << scc_num;
if (!done.emplace(std::make_pair(dst, color_num)).second)
return;
else if (!opt_shared_univ_dest_ && color_num > 0)
tmp_dst << '.' << color_num; tmp_dst << '.' << color_num;
std::string dest = tmp_dst.str(); return tmp_dst.str();
os_ << " " << dest << " [label=<>,shape=point]\n"; }
for (unsigned d: aut_->univ_dests(dst))
void
print_dst(int dst, bool print_edges = false,
const char* style = nullptr, int color_num = -1)
{
int& univ = univ_done[std::make_pair(dst, color_num)];
if (univ == 2)
return;
std::string dest = string_dst(dst, color_num);
if (univ == 0)
os_ << " " << dest << " [label=<>,shape=point]\n";
if (print_edges)
{ {
os_ << " " << dest << " -> " << d; for (unsigned d: aut_->univ_dests(dst))
if (style && *style) {
os_ << " [" << style << ']'; os_ << " " << dest << " -> " << d;
os_ << '\n'; if (style && *style)
os_ << " [" << style << ']';
os_ << '\n';
}
univ = 2;
}
else
{
univ = 1;
} }
} }
@ -478,14 +491,9 @@ namespace spot
int init = (int) aut_->get_init_state_number(); int init = (int) aut_->get_init_state_number();
os_ << "=0]\n I -> " << init; os_ << "=0]\n I -> " << init;
if (init >= 0) if (init >= 0)
{ os_ << '\n';
os_ << '\n';
}
else else
{ os_ << " [arrowhead=onormal]\n";
os_ << " [arrowhead=onormal]\n";
print_dst(init);
}
} }
void void
@ -586,63 +594,63 @@ namespace spot
void void
process_link(const twa_graph::edge_storage_t& t, int number, process_link(const twa_graph::edge_storage_t& t, int number,
int scc_num = -1) bool print_edges)
{ {
os_ << " " << t.src << " -> " << (int)t.dst; if (print_edges)
if (scc_num >= 0)
{ {
os_ << '.' << scc_num; os_ << " " << t.src << " -> " << (int)t.dst;
} if (aut_->is_univ_dest(t.dst) && highlight_edges_
if (aut_->is_univ_dest(t.dst) && highlight_edges_ && !opt_shared_univ_dest_)
&& !opt_shared_univ_dest_) {
{ auto idx = aut_->get_graph().index_of_edge(t);
auto idx = aut_->get_graph().index_of_edge(t); auto iter = highlight_edges_->find(idx);
auto iter = highlight_edges_->find(idx); if (iter != highlight_edges_->end())
os_ << '.' << iter->second % palette_mod; os_ << '.' << iter->second % palette_mod;
} }
std::string label; std::string label;
if (!opt_state_labels_) if (!opt_state_labels_)
label = bdd_format_formula(aut_->get_dict(), t.cond); label = bdd_format_formula(aut_->get_dict(), t.cond);
if (!opt_html_labels_) if (!opt_html_labels_)
{ {
os_ << " [label=\""; os_ << " [label=\"";
escape_str(os_, label); escape_str(os_, label);
if (!mark_states_) if (!mark_states_)
if (auto a = t.acc) if (auto a = t.acc)
{ {
if (!opt_state_labels_) if (!opt_state_labels_)
os_ << "\\n"; os_ << "\\n";
output_set(a); output_set(a);
} }
os_ << '"'; os_ << '"';
} }
else else
{ {
os_ << " [label=<"; os_ << " [label=<";
escape_html(os_, label); escape_html(os_, label);
if (!mark_states_) if (!mark_states_)
if (auto a = t.acc) if (auto a = t.acc)
{ {
if (!opt_state_labels_) if (!opt_state_labels_)
os_ << "<br/>"; os_ << "<br/>";
output_html_set(a); output_html_set(a);
} }
os_ << '>'; os_ << '>';
} }
if (opt_ordered_edges_ || opt_numbered_edges_) if (opt_ordered_edges_ || opt_numbered_edges_)
{ {
os_ << ", taillabel=\""; os_ << ", taillabel=\"";
if (opt_ordered_edges_) if (opt_ordered_edges_)
os_ << number; os_ << number;
if (opt_ordered_edges_ && opt_numbered_edges_) if (opt_ordered_edges_ && opt_numbered_edges_)
os_ << ' '; os_ << ' ';
if (opt_numbered_edges_) if (opt_numbered_edges_)
os_ << '#' << aut_->get_graph().index_of_edge(t); os_ << '#' << aut_->get_graph().index_of_edge(t);
os_ << '"'; os_ << '"';
}
} }
std::string highlight; std::string highlight;
auto color_num = -1; int color_num = -1;
if (highlight_edges_) if (highlight_edges_)
{ {
auto idx = aut_->get_graph().index_of_edge(t); auto idx = aut_->get_graph().index_of_edge(t);
@ -654,21 +662,20 @@ namespace spot
<< palette[iter->second % palette_mod] << palette[iter->second % palette_mod]
<< '"'; << '"';
highlight = o.str(); highlight = o.str();
os_ << ", " << highlight; if (print_edges)
os_ << ", " << highlight;
if (!opt_shared_univ_dest_) if (!opt_shared_univ_dest_)
color_num = iter->second % palette_mod; color_num = iter->second % palette_mod;
} }
} }
if (aut_->is_univ_dest(t.dst)) if (print_edges)
os_ << ", arrowhead=onormal";
os_ << "]\n";
if (aut_->is_univ_dest(t.dst))
{ {
if (color_num >= 0) if (aut_->is_univ_dest(t.dst))
print_dst(t.dst, highlight.c_str(), scc_num, color_num); os_ << ", arrowhead=onormal";
else os_ << "]\n";
print_dst(t.dst, highlight.c_str(), scc_num);
} }
if (aut_->is_univ_dest(t.dst))
print_dst(t.dst, print_edges, highlight.c_str(), color_num);
} }
void print(const const_twa_graph_ptr& aut) void print(const const_twa_graph_ptr& aut)
@ -773,39 +780,29 @@ namespace spot
{ {
process_state(s); process_state(s);
int trans_num = 0; int trans_num = 0;
unsigned scc_of_s = si->scc_of(s);
for (auto& t : aut_->out(s)) for (auto& t : aut_->out(s))
{ for (unsigned d: aut_->univ_dests(t.dst))
if (aut_->is_univ_dest(t.dst)) if (si->scc_of(d) == scc_of_s)
{ {
bool to_write = false; process_link(t, trans_num++, false);
for (unsigned d: aut_->univ_dests(t.dst)) break;
{
to_write = si->scc_of(d) == si->scc_of(s);
if (to_write)
break;
}
if (to_write)
process_link(t, trans_num++, i);
else
process_link(t, trans_num++);
} }
else
process_link(t, trans_num++);
}
} }
os_ << " }\n"; os_ << " }\n";
} }
} }
int init = (int) aut_->get_init_state_number();
if (init < 0)
print_dst(init, true);
unsigned ns = aut_->num_states(); unsigned ns = aut_->num_states();
for (unsigned n = 0; n < ns; ++n) for (unsigned n = 0; n < ns; ++n)
{ {
if (!si || !si->reachable_state(n)) if (!si || !si->reachable_state(n))
{ process_state(n);
process_state(n); int trans_num = 0;
int trans_num = 0; for (auto& t: aut_->out(n))
for (auto& t: aut_->out(n)) process_link(t, trans_num++, true);
process_link(t, trans_num++);
}
} }
end(); end();
} }

View file

@ -62,66 +62,66 @@ digraph G {
labelloc="t" labelloc="t"
I [label="", style=invis, width=0] I [label="", style=invis, width=0]
I -> -11 [arrowhead=onormal] I -> -11 [arrowhead=onormal]
-11 [label=<>,shape=point]
-11 -> 0
-11 -> 2
subgraph cluster_0 { subgraph cluster_0 {
color=green color=green
label="" label=""
2 [label="G(a)"] 2 [label="G(a)"]
2 -> 2 [label="a"]
} }
subgraph cluster_1 { subgraph cluster_1 {
color=red color=red
label="" label=""
1 [label="FG(a)\n⓿"] 1 [label="FG(a)\n⓿"]
1 -> 2 [label="a"]
1 -> 1 [label="1"]
} }
subgraph cluster_2 { subgraph cluster_2 {
color=green color=green
label="" label=""
6 [label="t"] 6 [label="t"]
6 -> 6 [label="1"]
} }
subgraph cluster_3 { subgraph cluster_3 {
color=red color=red
label="" label=""
4 [label="F(b)\n⓿"] 4 [label="F(b)\n⓿"]
4 -> 6 [label="b"]
4 -> 4 [label="!b"]
} }
subgraph cluster_4 { subgraph cluster_4 {
color=green color=green
label="" label=""
3 [label="GF(b)"] 3 [label="GF(b)"]
3 -> 3 [label="b"] -8 [label=<>,shape=point]
3 -> -8.4 [label="!b", style=bold, color="#FAA43A", arrowhead=onormal]
-8.4 [label=<>,shape=point]
-8.4 -> 3 [style=bold, color="#FAA43A"]
-8.4 -> 4 [style=bold, color="#FAA43A"]
} }
subgraph cluster_5 { subgraph cluster_5 {
color=red color=red
label="" label=""
5 [label="((a) U (b))\n⓿"] 5 [label="((a) U (b))\n⓿"]
5 -> 6 [label="b"]
5 -> 5 [label="a & !b"]
} }
subgraph cluster_6 { subgraph cluster_6 {
color=black color=black
label="" label=""
0 [label="((((a) U (b)) && GF(b)) && FG(a))"] 0 [label="((((a) U (b)) && GF(b)) && FG(a))"]
0 -> -1 [label="b", arrowhead=onormal]
-1 [label=<>,shape=point]
-1 -> 1
-1 -> 3
0 -> -4 [label="a & !b", style=bold, color="#F15854", arrowhead=onormal]
-4 [label=<>,shape=point]
-4 -> 1 [style=bold, color="#F15854"]
-4 -> 3 [style=bold, color="#F15854"]
-4 -> 5 [style=bold, color="#F15854"]
} }
-11 [label=<>,shape=point]
-11 -> 0
-11 -> 2
0 -> -1 [label="b", arrowhead=onormal]
-1 [label=<>,shape=point]
-1 -> 1
-1 -> 3
0 -> -4 [label="a & !b", style=bold, color="#F15854", arrowhead=onormal]
-4 [label=<>,shape=point]
-4 -> 1 [style=bold, color="#F15854"]
-4 -> 3 [style=bold, color="#F15854"]
-4 -> 5 [style=bold, color="#F15854"]
1 -> 2 [label="a"]
1 -> 1 [label="1"]
2 -> 2 [label="a"]
3 -> 3 [label="b"]
3 -> -8 [label="!b", style=bold, color="#FAA43A", arrowhead=onormal]
-8 -> 3 [style=bold, color="#FAA43A"]
-8 -> 4 [style=bold, color="#FAA43A"]
4 -> 6 [label="b"]
4 -> 4 [label="!b"]
5 -> 6 [label="b"]
5 -> 5 [label="a & !b"]
6 -> 6 [label="1"]
} }
EOF EOF
@ -508,19 +508,19 @@ digraph G {
edge [fontname="Lato"] edge [fontname="Lato"]
I [label="", style=invis, width=0] I [label="", style=invis, width=0]
I -> -1 [arrowhead=onormal] I -> -1 [arrowhead=onormal]
-1 [label=<>,shape=point] -1 [label=<>,shape=point]
-1 -> 0 -1 -> 0
-1 -> 1 -1 -> 1
0 [label=<0>] 0 [label=<0>]
0 -> 0 [label=<!a &amp; !c>] 0 -> 0 [label=<!a &amp; !c>]
0 -> -1.1 [label=<a &amp; b &amp; !c>, style=bold, color="#F17CB0", $style] 0 -> -1.1 [label=<a &amp; b &amp; !c>, style=bold, color="#F17CB0", $style]
-1.1 [label=<>,shape=point] -1.1 [label=<>,shape=point]
-1.1 -> 0 [style=bold, color="#F17CB0"] -1.1 -> 0 [style=bold, color="#F17CB0"]
-1.1 -> 1 [style=bold, color="#F17CB0"] -1.1 -> 1 [style=bold, color="#F17CB0"]
0 -> -1.2 [label=<a &amp; !c>, style=bold, color="#FAA43A", $style] 0 -> -1.2 [label=<a &amp; !c>, style=bold, color="#FAA43A", $style]
-1.2 [label=<>,shape=point] -1.2 [label=<>,shape=point]
-1.2 -> 0 [style=bold, color="#FAA43A"] -1.2 -> 0 [style=bold, color="#FAA43A"]
-1.2 -> 1 [style=bold, color="#FAA43A"] -1.2 -> 1 [style=bold, color="#FAA43A"]
1 [label=<1>] 1 [label=<1>]
1 -> 1 [label=<b>] 1 -> 1 [label=<b>]
} }
@ -574,52 +574,52 @@ digraph G {
color=green color=green
label="" label=""
4 [label="t"] 4 [label="t"]
4 -> 4 [label=<1>]
} }
subgraph cluster_1 { subgraph cluster_1 {
color=green color=green
label="" label=""
1 [label="G(a & b)"] 1 [label="G(a & b)"]
1 -> 1 [label=<a &amp; b>]
} }
subgraph cluster_2 { subgraph cluster_2 {
color=red color=red
label="" label=""
2 [label="F!a"] 2 [label="F!a"]
2 -> 4 [label=<!a>]
2 -> 2 [label=<a<br/><font color="#F17CB0">❶</font>>]
} }
subgraph cluster_3 { subgraph cluster_3 {
color=red color=red
label="" label=""
3 [label="F!b"] 3 [label="F!b"]
3 -> 4 [label=<!b>]
3 -> 3 [label=<b<br/><font color="#5DA5DA">⓿</font>>]
} }
subgraph cluster_4 { subgraph cluster_4 {
color=green color=green
label="" label=""
0 [label="c R (c | G(a & b) | (F!b & F!a))"] 0 [label="c R (c | G(a & b) | (F!b & F!a))"]
-1 [label=<>,shape=point]
-4 [label=<>,shape=point]
-7 [label=<>,shape=point]
-10 [label=<>,shape=point]
}
0 -> 4 [label=<c>] 0 -> 4 [label=<c>]
0 -> 0 [label=<!a &amp; !b &amp; !c>] 0 -> 0 [label=<!a &amp; !b &amp; !c>]
0 -> -1.4 [label=<a &amp; b &amp; !c>, arrowhead=onormal] 0 -> -1 [label=<a &amp; b &amp; !c>, arrowhead=onormal]
-1.4 [label=<>,shape=point] -1 -> 0
-1.4 -> 0 -1 -> 1
-1.4 -> 1 0 -> -4 [label=<a &amp; !b &amp; !c>, arrowhead=onormal]
0 -> -4.4 [label=<a &amp; !b &amp; !c>, arrowhead=onormal] -4 -> 0
-4.4 [label=<>,shape=point] -4 -> 2
-4.4 -> 0 0 -> -7 [label=<!a &amp; b &amp; !c>, arrowhead=onormal]
-4.4 -> 2 -7 -> 0
0 -> -7.4 [label=<!a &amp; b &amp; !c>, arrowhead=onormal] -7 -> 3
-7.4 [label=<>,shape=point] 0 -> -10 [label=<a &amp; b &amp; !c>, arrowhead=onormal]
-7.4 -> 0 -10 -> 0
-7.4 -> 3 -10 -> 2
0 -> -10.4 [label=<a &amp; b &amp; !c>, arrowhead=onormal] -10 -> 3
-10.4 [label=<>,shape=point] 1 -> 1 [label=<a &amp; b>]
-10.4 -> 0 2 -> 4 [label=<!a>]
-10.4 -> 2 2 -> 2 [label=<a<br/><font color="#F17CB0">❶</font>>]
-10.4 -> 3 3 -> 4 [label=<!b>]
} 3 -> 3 [label=<b<br/><font color="#5DA5DA">⓿</font>>]
4 -> 4 [label=<1>]
} }
EOF EOF
@ -670,48 +670,48 @@ digraph G {
color=green color=green
label="" label=""
4 [label="t"] 4 [label="t"]
4 -> 4 [label=<1>]
} }
subgraph cluster_1 { subgraph cluster_1 {
color=red color=red
label="" label=""
2 [label="F!a"] 2 [label="F!a"]
2 -> 4 [label=<!a>]
2 -> 2 [label=<a<br/><font color="#F17CB0">❶</font>>]
} }
subgraph cluster_2 { subgraph cluster_2 {
color=red color=red
label="" label=""
3 [label="F!b"] 3 [label="F!b"]
3 -> 4 [label=<!b>]
3 -> 3 [label=<b<br/><font color="#5DA5DA">⓿</font>>]
} }
subgraph cluster_3 { subgraph cluster_3 {
color=green color=green
label="" label=""
0 [label="c R (c | G(a & b) | (F!b & F!a))"] 0 [label="c R (c | G(a & b) | (F!b & F!a))"]
-1 [label=<>,shape=point]
-4 [label=<>,shape=point]
-7 [label=<>,shape=point]
1 [label="G(a & b)"]
-10 [label=<>,shape=point]
}
0 -> 4 [label=<c>] 0 -> 4 [label=<c>]
0 -> 0 [label=<!a &amp; !b &amp; !c>] 0 -> 0 [label=<!a &amp; !b &amp; !c>]
0 -> -1.3 [label=<a &amp; b &amp; !c>, arrowhead=onormal] 0 -> -1 [label=<a &amp; b &amp; !c>, arrowhead=onormal]
-1.3 [label=<>,shape=point] -1 -> 0
-1.3 -> 0 -1 -> 1
-1.3 -> 1 0 -> -4 [label=<a &amp; !b &amp; !c>, arrowhead=onormal]
0 -> -4.3 [label=<a &amp; !b &amp; !c>, arrowhead=onormal] -4 -> 0
-4.3 [label=<>,shape=point] -4 -> 2
-4.3 -> 0 0 -> -7 [label=<!a &amp; b &amp; !c>, arrowhead=onormal]
-4.3 -> 2 -7 -> 0
0 -> -7.3 [label=<!a &amp; b &amp; !c>, arrowhead=onormal] -7 -> 3
-7.3 [label=<>,shape=point]
-7.3 -> 0
-7.3 -> 3
1 [label="G(a & b)"]
1 -> 1 [label=<a &amp; b>] 1 -> 1 [label=<a &amp; b>]
1 -> -10.3 [label=<a &amp; b &amp; !c>, arrowhead=onormal] 1 -> -10 [label=<a &amp; b &amp; !c>, arrowhead=onormal]
-10.3 [label=<>,shape=point] -10 -> 0
-10.3 -> 0 -10 -> 2
-10.3 -> 2 -10 -> 3
-10.3 -> 3 2 -> 4 [label=<!a>]
} 2 -> 2 [label=<a<br/><font color="#F17CB0">❶</font>>]
3 -> 4 [label=<!b>]
3 -> 3 [label=<b<br/><font color="#5DA5DA">⓿</font>>]
4 -> 4 [label=<1>]
} }
EOF EOF
@ -749,16 +749,16 @@ digraph G {
I -> 0 I -> 0
0 [label=<0>] 0 [label=<0>]
0 -> -1.1 [label=<b &amp; c>, style=bold, color="#F17CB0", arrowhead=onormal] 0 -> -1.1 [label=<b &amp; c>, style=bold, color="#F17CB0", arrowhead=onormal]
-1.1 [label=<>,shape=point] -1.1 [label=<>,shape=point]
-1.1 -> 1 [style=bold, color="#F17CB0"] -1.1 -> 1 [style=bold, color="#F17CB0"]
-1.1 -> 2 [style=bold, color="#F17CB0"] -1.1 -> 2 [style=bold, color="#F17CB0"]
1 [label=<1>] 1 [label=<1>]
1 -> -1.1 [label=<a &amp; b>, style=bold, color="#F17CB0", arrowhead=onormal] 1 -> -1.1 [label=<a &amp; b>, style=bold, color="#F17CB0", arrowhead=onormal]
2 [label=<2>] 2 [label=<2>]
2 -> -1.2 [label=<!a &amp; !b &amp; !c>, style=bold, color="#FAA43A", $style] 2 -> -1.2 [label=<!a &amp; !b &amp; !c>, style=bold, color="#FAA43A", $style]
-1.2 [label=<>,shape=point] -1.2 [label=<>,shape=point]
-1.2 -> 1 [style=bold, color="#FAA43A"] -1.2 -> 1 [style=bold, color="#FAA43A"]
-1.2 -> 2 [style=bold, color="#FAA43A"] -1.2 -> 2 [style=bold, color="#FAA43A"]
} }
EOF EOF
@ -796,19 +796,19 @@ digraph G {
I -> 0 I -> 0
0 [label=<0>] 0 [label=<0>]
0 -> -1.1 [label=<b &amp; c>, style=bold, color="#F17CB0", arrowhead=onormal] 0 -> -1.1 [label=<b &amp; c>, style=bold, color="#F17CB0", arrowhead=onormal]
-1.1 [label=<>,shape=point] -1.1 [label=<>,shape=point]
-1.1 -> 1 [style=bold, color="#F17CB0"] -1.1 -> 1 [style=bold, color="#F17CB0"]
-1.1 -> 2 [style=bold, color="#F17CB0"] -1.1 -> 2 [style=bold, color="#F17CB0"]
1 [label=<1>] 1 [label=<1>]
1 -> -1.3 [label=<a &amp; b>, style=bold, color="#B276B2", arrowhead=onormal] 1 -> -1.3 [label=<a &amp; b>, style=bold, color="#B276B2", arrowhead=onormal]
-1.3 [label=<>,shape=point] -1.3 [label=<>,shape=point]
-1.3 -> 1 [style=bold, color="#B276B2"] -1.3 -> 1 [style=bold, color="#B276B2"]
-1.3 -> 2 [style=bold, color="#B276B2"] -1.3 -> 2 [style=bold, color="#B276B2"]
2 [label=<2>] 2 [label=<2>]
2 -> -1.2 [label=<!a &amp; !b &amp; !c>, style=bold, color="#FAA43A", $style] 2 -> -1.2 [label=<!a &amp; !b &amp; !c>, style=bold, color="#FAA43A", $style]
-1.2 [label=<>,shape=point] -1.2 [label=<>,shape=point]
-1.2 -> 1 [style=bold, color="#FAA43A"] -1.2 -> 1 [style=bold, color="#FAA43A"]
-1.2 -> 2 [style=bold, color="#FAA43A"] -1.2 -> 2 [style=bold, color="#FAA43A"]
} }
EOF EOF
@ -853,35 +853,35 @@ digraph G {
color=green color=green
label="" label=""
3 [label="t"] 3 [label="t"]
3 -> 3 [label=<1>]
} }
subgraph cluster_1 { subgraph cluster_1 {
color=green color=green
label="" label=""
1 [label="Fa"] 1 [label="Fa"]
1 -> 3 [label=<a>]
1 -> 1 [label=<!a>]
} }
subgraph cluster_2 { subgraph cluster_2 {
color=green color=green
label="" label=""
2 [label="G!a"] 2 [label="G!a"]
2 -> 2 [label=<!a>]
} }
subgraph cluster_3 { subgraph cluster_3 {
color=green color=green
label="" label=""
0 [label="G((b & Fa) | (!b & G!a))"] 0 [label="G((b & Fa) | (!b & G!a))"]
0 -> 0 [label=<a &amp; b>] -1 [label=<>,shape=point]
0 -> -1.3 [label=<!a &amp; b>, arrowhead=onormal] -4 [label=<>,shape=point]
-1.3 [label=<>,shape=point]
-1.3 -> 0
-1.3 -> 1
0 -> -4.3 [label=<!a &amp; !b>, arrowhead=onormal]
-4.3 [label=<>,shape=point]
-4.3 -> 0
-4.3 -> 2
} }
0 -> 0 [label=<a &amp; b>]
0 -> -1 [label=<!a &amp; b>, arrowhead=onormal]
-1 -> 0
-1 -> 1
0 -> -4 [label=<!a &amp; !b>, arrowhead=onormal]
-4 -> 0
-4 -> 2
1 -> 3 [label=<a>]
1 -> 1 [label=<!a>]
2 -> 2 [label=<!a>]
3 -> 3 [label=<1>]
} }
EOF EOF

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015 Laboratoire de # Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2017 Laboratoire
# Recherche et Développement de l'Epita (LRDE). # de Recherche et Développement de l'Epita (LRDE).
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
# #
@ -336,15 +336,15 @@ digraph G {
color=green color=green
label="" label=""
1 [label="1", peripheries=2] 1 [label="1", peripheries=2]
1 -> 1 [label="1"]
} }
subgraph cluster_1 { subgraph cluster_1 {
color=red color=red
label="" label=""
0 [label="0"] 0 [label="0"]
}
0 -> 1 [label="b"] 0 -> 1 [label="b"]
0 -> 0 [label="0"] 0 -> 0 [label="0"]
} 1 -> 1 [label="1"]
} }
EOF EOF
diff stdout expected diff stdout expected

View file

@ -327,21 +327,21 @@ digraph G {
subgraph cluster_0 { subgraph cluster_0 {
color=green color=green
1 [label="s1", peripheries=2] 1 [label="s1", peripheries=2]
1 -> 1 [label="a"]
} }
subgraph cluster_1 { subgraph cluster_1 {
color=green color=green
0 [label="s0", peripheries=2] 0 [label="s0", peripheries=2]
0 -> 0 [label="b"]
} }
subgraph cluster_2 { subgraph cluster_2 {
color=black color=black
3 [label="s3"] 3 [label="s3"]
3 -> 1 [label="a"]
3 -> 0 [label="b"]
} }
0 -> 0 [label="b"]
1 -> 1 [label="a"]
2 [label="s2"] 2 [label="s2"]
2 -> 0 [label="b"] 2 -> 0 [label="b"]
3 -> 1 [label="a"]
3 -> 0 [label="b"]
} }
EOF EOF

View file

@ -83,67 +83,67 @@ digraph G {
color=grey color=grey
label="" label=""
5 [label="5"] 5 [label="5"]
5 -> 6 [label="1"]
6 [label="6"] 6 [label="6"]
6 -> 5 [label="1"]
} }
subgraph cluster_1 { subgraph cluster_1 {
color=grey color=grey
label="" label=""
0 [label="0"] 0 [label="0"]
0 -> 0 [label="a & b\n{0,1,2}"]
0 -> 0 [label="!a & !b\n{2}"]
0 -> 5 [label="a\n{2}"]
} }
subgraph cluster_2 { subgraph cluster_2 {
color=green color=green
label="" label=""
9 [label="9"] 9 [label="9"]
9 -> 9 [label="!a & b\n{0,2}"]
9 -> 10 [label="a & b\n{0,1}"]
10 [label="10"] 10 [label="10"]
10 -> 9 [label="!a & b\n{0,1}"]
10 -> 10 [label="a & b\n{0,2}"]
} }
subgraph cluster_3 { subgraph cluster_3 {
color=green color=green
label="" label=""
8 [label="8"] 8 [label="8"]
8 -> 8 [label="!a & b\n{0,2}"]
8 -> 8 [label="a & b\n{0,1}"]
8 -> 9 [label="1"]
} }
subgraph cluster_4 { subgraph cluster_4 {
color=green color=green
label="" label=""
7 [label="7"] 7 [label="7"]
7 -> 7 [label="!a & b\n{0,1}"]
7 -> 7 [label="a & b\n{0,2}"]
7 -> 8 [label="1"]
} }
subgraph cluster_5 { subgraph cluster_5 {
color=black color=black
label="" label=""
2 [label="2"] 2 [label="2"]
2 -> 0 [label="a"]
2 -> 7 [label="b"]
} }
subgraph cluster_6 { subgraph cluster_6 {
color=red color=red
label="" label=""
4 [label="4"] 4 [label="4"]
4 -> 4 [label="!b\n{1,2}"]
4 -> 2 [label="b"]
} }
subgraph cluster_7 { subgraph cluster_7 {
color=green color=green
label="" label=""
1 [label="1"] 1 [label="1"]
3 [label="3"]
}
0 -> 0 [label="a & b\n{0,1,2}"]
0 -> 0 [label="!a & !b\n{2}"]
0 -> 5 [label="a\n{2}"]
1 -> 4 [label="b"] 1 -> 4 [label="b"]
1 -> 3 [label="a & !b"] 1 -> 3 [label="a & !b"]
3 [label="3"] 2 -> 0 [label="a"]
2 -> 7 [label="b"]
3 -> 1 [label="a & b\n{0,1}"] 3 -> 1 [label="a & b\n{0,1}"]
} 4 -> 4 [label="!b\n{1,2}"]
4 -> 2 [label="b"]
5 -> 6 [label="1"]
6 -> 5 [label="1"]
7 -> 7 [label="!a & b\n{0,1}"]
7 -> 7 [label="a & b\n{0,2}"]
7 -> 8 [label="1"]
8 -> 8 [label="!a & b\n{0,2}"]
8 -> 8 [label="a & b\n{0,1}"]
8 -> 9 [label="1"]
9 -> 9 [label="!a & b\n{0,2}"]
9 -> 10 [label="a & b\n{0,1}"]
10 -> 9 [label="!a & b\n{0,1}"]
10 -> 10 [label="a & b\n{0,2}"]
} }
EOF EOF

View file

@ -35,6 +35,7 @@
"cell_type": "code", "cell_type": "code",
"collapsed": true, "collapsed": true,
"input": [ "input": [
"from IPython.display import display\n",
"import spot\n", "import spot\n",
"spot.setup(show_default='.bas')" "spot.setup(show_default='.bas')"
], ],
@ -77,74 +78,74 @@
"<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n", "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
" -->\n", " -->\n",
"<!-- Title: G Pages: 1 -->\n", "<!-- Title: G Pages: 1 -->\n",
"<svg width=\"222pt\" height=\"154pt\"\n", "<svg width=\"222pt\" height=\"206pt\"\n",
" viewBox=\"0.00 0.00 221.60 154.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 221.60 206.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 1) rotate(0) translate(4 150)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 202)\">\n",
"<title>G</title>\n", "<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-150 217.6,-150 217.6,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-202 217.6,-202 217.6,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"85.8\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", "<text text-anchor=\"start\" x=\"85.8\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"107.8\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"107.8\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"123.8\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", "<text text-anchor=\"start\" x=\"123.8\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n", "<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"153.6,-8 153.6,-108 205.6,-108 205.6,-8 153.6,-8\"/>\n", "<polygon fill=\"none\" stroke=\"green\" points=\"153.6,-67 153.6,-167 205.6,-167 205.6,-67 153.6,-67\"/>\n",
"</g>\n", "</g>\n",
"<g id=\"clust2\" class=\"cluster\"><title>cluster_1</title>\n", "<g id=\"clust2\" class=\"cluster\"><title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"red\" points=\"70.6,-30 70.6,-115 122.6,-115 122.6,-30 70.6,-30\"/>\n", "<polygon fill=\"none\" stroke=\"red\" points=\"70.6,-8 70.6,-93 122.6,-93 122.6,-8 70.6,-8\"/>\n",
"</g>\n", "</g>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- &#45;1 -->\n", "<!-- &#45;1 -->\n",
"<g id=\"node2\" class=\"node\"><title>&#45;1</title>\n", "<g id=\"node2\" class=\"node\"><title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-27\" rx=\"1.8\" ry=\"1.8\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-87\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n", "</g>\n",
"<!-- I&#45;&gt;&#45;1 -->\n", "<!-- I&#45;&gt;&#45;1 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;&#45;1</title>\n", "<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.10844,-27C2.6468,-27 20.196,-27 30.7973,-27\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1.10844,-87C2.6468,-87 20.196,-87 30.7973,-87\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.9213,-29.4501 37.9213,-27 30.9212,-24.5501 30.9213,-29.4501\"/>\n", "<polygon fill=\"none\" stroke=\"black\" points=\"30.9213,-89.4501 37.9213,-87 30.9212,-84.5501 30.9213,-89.4501\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-56\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-52.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.7512,-27.5033C45.6352,-29.5588 60.7141,-37.5385 73.9308,-44.5327\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"80.2121,-47.8568 72.5516,-47.3667 77.1186,-46.2197 74.025,-44.5826 74.025,-44.5826 74.025,-44.5826 77.1186,-46.2197 75.4985,-41.7984 80.2121,-47.8568 80.2121,-47.8568\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\"><title>1</title>\n", "<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"179.6\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"179.6\" cy=\"-93\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"179.6\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"179.6\" y=\"-89.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1&#45;&gt;1 -->\n", "<!-- &#45;1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n", "<g id=\"edge3\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.9364,-26.9481C45.8913,-26.7705 59.4203,-26.1875 70.6,-26 93.7079,-25.6124 99.547,-24.3617 122.6,-26 133.061,-26.7434 144.538,-28.2585 154.363,-29.7722\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M41.9032,-87.517C45.7496,-89.2872 58.9667,-95.1002 70.6,-97 99.2154,-101.673 132.637,-99.247 154.636,-96.5896\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.511,-30.9167 154.101,-32.9203 158.055,-30.3633 154.599,-29.8099 154.599,-29.8099 154.599,-29.8099 158.055,-30.3633 155.097,-26.6995 161.511,-30.9167 161.511,-30.9167\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"161.635,-95.6894 155.094,-99.7067 158.163,-96.1359 154.692,-96.5825 154.692,-96.5825 154.692,-96.5825 158.163,-96.1359 154.29,-93.4582 161.635,-95.6894 161.635,-95.6894\"/>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;0 -->\n", "<!-- 0 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>0&#45;&gt;0</title>\n", "<g id=\"node4\" class=\"node\"><title>0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M90.2208,-73.0373C88.9189,-82.8579 91.0453,-92 96.6,-92 100.766,-92 103.004,-86.8576 103.313,-80.1433\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.979,-73.0373 106.454,-79.8818 103.143,-76.5335 103.308,-80.0296 103.308,-80.0296 103.308,-80.0296 103.143,-76.5335 100.161,-80.1774 102.979,-73.0373 102.979,-73.0373\"/>\n", "<text text-anchor=\"middle\" x=\"96.6\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"start\" x=\"93.1\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;1 -->\n", "<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>0&#45;&gt;1</title>\n", "<g id=\"edge2\" class=\"edge\"><title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.383,-51.4416C126.191,-48.2346 142.151,-43.8996 155.206,-40.3538\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M41.7512,-86.0801C46.0172,-81.9542 63.7881,-64.7669 77.7636,-51.2506\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"162.115,-38.4773 156.186,-43.352 158.738,-39.3947 155.36,-40.3121 155.36,-40.3121 155.36,-40.3121 158.738,-39.3947 154.534,-37.2723 162.115,-38.4773 162.115,-38.4773\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"83.0879,-46.1011 80.2461,-53.2319 80.572,-48.5344 78.0562,-50.9676 78.0562,-50.9676 78.0562,-50.9676 80.572,-48.5344 75.8663,-48.7033 83.0879,-46.1011 83.0879,-46.1011\"/>\n",
"<text text-anchor=\"start\" x=\"132.6\" y=\"-50.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;1 -->\n", "<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;1</title>\n", "<g id=\"edge6\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M172.569,-50.6641C171.006,-60.625 173.35,-70 179.6,-70 184.288,-70 186.778,-64.7266 187.071,-57.8876\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M172.569,-109.664C171.006,-119.625 173.35,-129 179.6,-129 184.288,-129 186.778,-123.727 187.071,-116.888\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"186.631,-50.6641 190.201,-57.4598 186.844,-54.1576 187.056,-57.6511 187.056,-57.6511 187.056,-57.6511 186.844,-54.1576 183.912,-57.8425 186.631,-50.6641 186.631,-50.6641\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"186.631,-109.664 190.201,-116.46 186.844,-113.158 187.056,-116.651 187.056,-116.651 187.056,-116.651 186.844,-113.158 183.912,-116.842 186.631,-109.664 186.631,-109.664\"/>\n",
"<text text-anchor=\"start\" x=\"175.1\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"175.1\" y=\"-147.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"171.6\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"171.6\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M111.709,-44.277C124.718,-53.7524 144.16,-67.9144 158.737,-78.5316\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"164.653,-82.8408 157.14,-81.2655 161.823,-80.7801 158.994,-78.7194 158.994,-78.7194 158.994,-78.7194 161.823,-80.7801 160.849,-76.1732 164.653,-82.8408 164.653,-82.8408\"/>\n",
"<text text-anchor=\"start\" x=\"132.6\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M90.2208,-51.0373C88.9189,-60.8579 91.0453,-70 96.6,-70 100.766,-70 103.004,-64.8576 103.313,-58.1433\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.979,-51.0373 106.454,-57.8818 103.143,-54.5335 103.308,-58.0296 103.308,-58.0296 103.308,-58.0296 103.143,-54.5335 100.161,-58.1774 102.979,-51.0373 102.979,-51.0373\"/>\n",
"<text text-anchor=\"start\" x=\"93.1\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faa50350420> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1946fe0e40> >"
] ]
} }
], ],
@ -189,73 +190,68 @@
"<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n", "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
" -->\n", " -->\n",
"<!-- Title: G Pages: 1 -->\n", "<!-- Title: G Pages: 1 -->\n",
"<svg width=\"244pt\" height=\"210pt\"\n", "<svg width=\"154pt\" height=\"211pt\"\n",
" viewBox=\"0.00 0.00 243.90 210.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 153.60 211.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 1) rotate(0) translate(4 206)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 207)\">\n",
"<title>G</title>\n", "<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-206 239.895,-206 239.895,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-207 149.6,-207 149.6,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"95.4476\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", "<text text-anchor=\"start\" x=\"50.3\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"120.448\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"75.3\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"136.448\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", "<text text-anchor=\"start\" x=\"91.3\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n", "<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"70.6,-8 70.6,-93 122.6,-93 122.6,-8 70.6,-8\"/>\n", "<polygon fill=\"none\" stroke=\"green\" points=\"85.6,-8 85.6,-93 137.6,-93 137.6,-8 85.6,-8\"/>\n",
"</g>\n", "</g>\n",
"<g id=\"clust2\" class=\"cluster\"><title>cluster_1</title>\n", "<g id=\"clust2\" class=\"cluster\"><title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"red\" points=\"70.6,-101 70.6,-171 227.895,-171 227.895,-101 70.6,-101\"/>\n", "<polygon fill=\"none\" stroke=\"red\" points=\"30,-101 30,-172 137.6,-172 137.6,-101 30,-101\"/>\n",
"</g>\n", "</g>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- &#45;1 -->\n", "<!-- &#45;1 -->\n",
"<g id=\"node2\" class=\"node\"><title>&#45;1</title>\n", "<g id=\"node2\" class=\"node\"><title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-90\" rx=\"1.8\" ry=\"1.8\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-111\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n", "</g>\n",
"<!-- I&#45;&gt;&#45;1 -->\n", "<!-- I&#45;&gt;&#45;1 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;&#45;1</title>\n", "<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.10844,-90C2.6468,-90 20.196,-90 30.7973,-90\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1.10844,-111C2.6468,-111 20.196,-111 30.7973,-111\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.9213,-92.4501 37.9213,-90 30.9212,-87.5501 30.9213,-92.4501\"/>\n", "<polygon fill=\"none\" stroke=\"black\" points=\"30.9213,-113.45 37.9213,-111 30.9212,-108.55 30.9213,-113.45\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-130\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-126.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.7512,-90.6943C45.7938,-93.6451 61.9639,-105.448 75.5392,-115.357\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"81.541,-119.738 74.0298,-118.155 78.714,-117.674 75.887,-115.611 75.887,-115.611 75.887,-115.611 78.714,-117.674 77.7442,-113.067 81.541,-119.738 81.541,-119.738\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\"><title>1</title>\n", "<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"111.6\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"111.6\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1&#45;&gt;1 -->\n", "<!-- &#45;1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n", "<g id=\"edge3\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.7512,-89.028C46.0802,-84.6041 64.3165,-65.9685 78.3809,-51.5962\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M41.5839,-110.135C46.671,-104.523 75.3805,-72.8525 94.1327,-52.1659\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"83.3402,-46.5283 80.6957,-53.7345 80.8923,-49.0298 78.4443,-51.5314 78.4443,-51.5314 78.4443,-51.5314 80.8923,-49.0298 76.1929,-49.3282 83.3402,-46.5283 83.3402,-46.5283\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"98.8974,-46.9098 96.5299,-54.2117 96.5467,-49.5029 94.196,-52.0961 94.196,-52.0961 94.196,-52.0961 96.5467,-49.5029 91.8622,-49.9805 98.8974,-46.9098 98.8974,-46.9098\"/>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1.1 -->\n", "<!-- 0 -->\n",
"<g id=\"node5\" class=\"node\"><title>&#45;1.1</title>\n", "<g id=\"node4\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.248\" cy=\"-136\" rx=\"26.7961\" ry=\"26.7961\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"111.6\" cy=\"-130\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"193.248\" y=\"-132.3\" font-family=\"Lato\" font-size=\"14.00\">&#45;1.1</text>\n", "<text text-anchor=\"middle\" x=\"111.6\" y=\"-126.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;&#45;1.1 -->\n", "<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>0&#45;&gt;&#45;1.1</title>\n", "<g id=\"edge2\" class=\"edge\"><title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.96,-131.1C127.343,-131.885 144.375,-132.965 159.3,-133.911\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M41.6782,-111.008C45.6648,-111.063 62.4342,-111.502 75.6,-115 79.9607,-116.158 84.4839,-117.765 88.7731,-119.499\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159.287,-136.365 166.428,-134.363 159.597,-131.475 159.287,-136.365\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"95.2635,-122.282 87.5886,-122.419 92.0468,-120.903 88.83,-119.524 88.83,-119.524 88.83,-119.524 92.0468,-120.903 90.0714,-116.629 95.2635,-122.282 95.2635,-122.282\"/>\n",
"<text text-anchor=\"start\" x=\"137.1\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"132.6\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;1 -->\n", "<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;1</title>\n", "<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M90.2208,-51.0373C88.9189,-60.8579 91.0453,-70 96.6,-70 100.766,-70 103.004,-64.8576 103.313,-58.1433\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M103.932,-50.2903C102.083,-60.3892 104.639,-70 111.6,-70 116.821,-70 119.564,-64.5939 119.829,-57.6304\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.979,-51.0373 106.454,-57.8818 103.143,-54.5335 103.308,-58.0296 103.308,-58.0296 103.308,-58.0296 103.143,-54.5335 100.161,-58.1774 102.979,-51.0373 102.979,-51.0373\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"119.268,-50.2903 122.942,-57.0299 119.535,-53.7801 119.801,-57.2699 119.801,-57.2699 119.801,-57.2699 119.535,-53.7801 116.66,-57.5099 119.268,-50.2903 119.268,-50.2903\"/>\n",
"<text text-anchor=\"start\" x=\"92.1\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"107.1\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M94.0998,-125.509C79.778,-121.61 59.6666,-116.136 48.6975,-113.15\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"49.1845,-110.743 41.7867,-111.269 47.8974,-115.471 49.1845,-110.743\"/>\n",
"<text text-anchor=\"start\" x=\"64.1\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"59.6\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faa50350810> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1946fe05a0> >"
] ]
} }
], ],
@ -288,7 +284,7 @@
{ {
"metadata": {}, "metadata": {},
"output_type": "pyout", "output_type": "pyout",
"prompt_number": 5, "prompt_number": 4,
"svg": [ "svg": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
@ -296,26 +292,26 @@
"<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n", "<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
" -->\n", " -->\n",
"<!-- Title: G Pages: 1 -->\n", "<!-- Title: G Pages: 1 -->\n",
"<svg width=\"320pt\" height=\"147pt\"\n", "<svg width=\"222pt\" height=\"218pt\"\n",
" viewBox=\"0.00 0.00 319.90 147.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 221.60 218.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 1) rotate(0) translate(4 143)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 214)\">\n",
"<title>G</title>\n", "<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-143 315.895,-143 315.895,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-214 217.6,-214 217.6,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"133.448\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", "<text text-anchor=\"start\" x=\"84.3\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"158.448\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"109.3\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"174.448\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", "<text text-anchor=\"start\" x=\"125.3\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n", "<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"70.6,-8 70.6,-108 303.895,-108 303.895,-8 70.6,-8\"/>\n", "<polygon fill=\"none\" stroke=\"green\" points=\"30,-8 30,-179 205.6,-179 205.6,-8 30,-8\"/>\n",
"</g>\n", "</g>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- &#45;1 -->\n", "<!-- &#45;1 -->\n",
"<g id=\"node2\" class=\"node\"><title>&#45;1</title>\n", "<g id=\"node2\" class=\"node\"><title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-5\" rx=\"1.8\" ry=\"1.8\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-119\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n", "</g>\n",
"<!-- I&#45;&gt;&#45;1 -->\n", "<!-- I&#45;&gt;&#45;1 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;&#45;1</title>\n", "<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.10844,-5C2.6468,-5 20.196,-5 30.7973,-5\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1.10844,-119C2.6468,-119 20.196,-119 30.7973,-119\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.9213,-7.4501 37.9213,-5 30.9212,-2.5501 30.9213,-7.4501\"/>\n", "<polygon fill=\"none\" stroke=\"black\" points=\"30.9213,-121.45 37.9213,-119 30.9212,-116.55 30.9213,-121.45\"/>\n",
"</g>\n", "</g>\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\"><title>0</title>\n", "<g id=\"node3\" class=\"node\"><title>0</title>\n",
@ -324,18 +320,18 @@
"</g>\n", "</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n", "<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>&#45;1&#45;&gt;0</title>\n", "<g id=\"edge2\" class=\"edge\"><title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.7512,-5.50335C45.6352,-7.55878 60.7141,-15.5385 73.9308,-22.5327\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M41.4154,-118.045C45.3493,-111.944 67.2762,-77.9328 82.0029,-55.0904\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"80.2121,-25.8568 72.5516,-25.3667 77.1186,-24.2197 74.025,-22.5826 74.025,-22.5826 74.025,-22.5826 77.1186,-24.2197 75.4985,-19.7984 80.2121,-25.8568 80.2121,-25.8568\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"85.9447,-48.9762 84.7992,-56.5664 84.0482,-51.9179 82.1517,-54.8595 82.1517,-54.8595 82.1517,-54.8595 84.0482,-51.9179 79.5042,-53.1527 85.9447,-48.9762 85.9447,-48.9762\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\"><title>1</title>\n", "<g id=\"node4\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"179.6\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"179.6\" cy=\"-119\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"179.6\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"179.6\" y=\"-115.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1&#45;&gt;1 -->\n", "<!-- &#45;1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n", "<g id=\"edge3\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.858,-4.88357C48.5396,-4.17795 85.5371,-0.709466 114.6,-7 129.318,-10.1857 144.906,-16.6879 157.013,-22.5131\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M41.68,-119C50.1115,-119 117.098,-119 154.153,-119\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"163.353,-25.6543 155.682,-25.3692 160.217,-24.1005 157.081,-22.5466 157.081,-22.5466 157.081,-22.5466 160.217,-24.1005 158.479,-19.7241 163.353,-25.6543 163.353,-25.6543\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"161.573,-119 154.573,-122.15 158.073,-119 154.573,-119 154.573,-119 154.573,-119 158.073,-119 154.573,-115.85 161.573,-119 161.573,-119\"/>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;0 -->\n", "<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>0&#45;&gt;0</title>\n", "<g id=\"edge4\" class=\"edge\"><title>0&#45;&gt;0</title>\n",
@ -346,30 +342,25 @@
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;1 -->\n", "<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>0&#45;&gt;1</title>\n", "<g id=\"edge5\" class=\"edge\"><title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.778,-34C126.269,-34 141.559,-34 154.293,-34\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M109.552,-46.542C123.311,-60.9805 146.014,-84.8048 161.607,-101.168\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.447,-34 154.447,-37.1501 157.947,-34 154.447,-34.0001 154.447,-34.0001 154.447,-34.0001 157.947,-34 154.447,-30.8501 161.447,-34 161.447,-34\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"166.599,-106.407 159.49,-103.512 164.185,-103.873 161.77,-101.339 161.77,-101.339 161.77,-101.339 164.185,-103.873 164.05,-99.1658 166.599,-106.407 166.599,-106.407\"/>\n",
"<text text-anchor=\"start\" x=\"132.6\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", "<text text-anchor=\"start\" x=\"132.6\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1.0 -->\n", "<!-- 1&#45;&gt;&#45;1 -->\n",
"<g id=\"node5\" class=\"node\"><title>&#45;1.0</title>\n", "<g id=\"edge6\" class=\"edge\"><title>1&#45;&gt;&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"269.248\" cy=\"-43\" rx=\"26.7961\" ry=\"26.7961\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M161.562,-121.928C155.869,-122.775 149.478,-123.582 143.6,-124 106.361,-126.647 96.6185,-128.839 59.6,-124 55.8995,-123.516 51.8909,-122.519 48.5296,-121.541\"/>\n",
"<text text-anchor=\"middle\" x=\"269.248\" y=\"-39.3\" font-family=\"Lato\" font-size=\"14.00\">&#45;1.0</text>\n", "<polygon fill=\"none\" stroke=\"black\" points=\"49.2146,-119.187 41.8003,-119.365 47.7073,-123.85 49.2146,-119.187\"/>\n",
"</g>\n", "<text text-anchor=\"start\" x=\"92.1\" y=\"-129.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<!-- 1&#45;&gt;&#45;1.0 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>1&#45;&gt;&#45;1.0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M197.916,-35.7781C208.593,-36.8744 222.631,-38.3159 235.356,-39.6225\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235.447,-42.0947 242.661,-40.3726 235.948,-37.2203 235.447,-42.0947\"/>\n",
"<text text-anchor=\"start\" x=\"215.6\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faa50350870> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1946fe05d0> >"
] ]
} }
], ],
"prompt_number": 5 "prompt_number": 4
}, },
{ {
"cell_type": "code", "cell_type": "code",
@ -396,7 +387,7 @@
{ {
"metadata": {}, "metadata": {},
"output_type": "pyout", "output_type": "pyout",
"prompt_number": 6, "prompt_number": 5,
"svg": [ "svg": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
@ -444,23 +435,23 @@
"<text text-anchor=\"start\" x=\"94.5\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", "<text text-anchor=\"start\" x=\"94.5\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1.0 -->\n", "<!-- &#45;1 -->\n",
"<g id=\"node4\" class=\"node\"><title>&#45;1.0</title>\n", "<g id=\"node4\" class=\"node\"><title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"208.8\" cy=\"-55\" rx=\"1.8\" ry=\"1.8\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"208.8\" cy=\"-55\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;&#45;1.0 -->\n", "<!-- 1&#45;&gt;&#45;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;&#45;1.0</title>\n", "<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.97,-31.3847C170.435,-30.8121 180.626,-31.2653 189,-35 195.022,-37.6859 200.027,-43.3116 203.355,-47.9143\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M161.97,-31.3847C170.435,-30.8121 180.626,-31.2653 189,-35 195.022,-37.6859 200.027,-43.3116 203.355,-47.9143\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"201.413,-49.4256 207.255,-53.9948 205.538,-46.78 201.413,-49.4256\"/>\n", "<polygon fill=\"none\" stroke=\"black\" points=\"201.413,-49.4256 207.255,-53.9948 205.538,-46.78 201.413,-49.4256\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-38.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"180\" y=\"-38.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1.0&#45;&gt;0 -->\n", "<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>&#45;1.0&#45;&gt;0</title>\n", "<g id=\"edge5\" class=\"edge\"><title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M207.029,-55.3291C199.425,-58.5247 137.182,-83.5412 92,-66 84.8621,-63.2288 78.2913,-58.2479 72.8175,-53.0285\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M207.029,-55.3291C199.425,-58.5247 137.182,-83.5412 92,-66 84.8621,-63.2288 78.2913,-58.2479 72.8175,-53.0285\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"67.7291,-47.8027 74.8694,-50.6204 70.1708,-50.3103 72.6125,-52.8179 72.6125,-52.8179 72.6125,-52.8179 70.1708,-50.3103 70.3556,-55.0155 67.7291,-47.8027 67.7291,-47.8027\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"67.7291,-47.8027 74.8694,-50.6204 70.1708,-50.3103 72.6125,-52.8179 72.6125,-52.8179 72.6125,-52.8179 70.1708,-50.3103 70.3556,-55.0155 67.7291,-47.8027 67.7291,-47.8027\"/>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1.0&#45;&gt;1 -->\n", "<!-- &#45;1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>&#45;1.0&#45;&gt;1</title>\n", "<g id=\"edge6\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.716,-54.9037C202.95,-54.5484 190.109,-53.1643 180,-50 175.648,-48.6378 171.129,-46.8647 166.841,-44.9966\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M206.716,-54.9037C202.95,-54.5484 190.109,-53.1643 180,-50 175.648,-48.6378 171.129,-46.8647 166.841,-44.9966\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"160.351,-42.0283 168.027,-42.0751 163.534,-43.484 166.717,-44.9397 166.717,-44.9397 166.717,-44.9397 163.534,-43.484 165.407,-47.8043 160.351,-42.0283 160.351,-42.0283\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"160.351,-42.0283 168.027,-42.0751 163.534,-43.484 166.717,-44.9397 166.717,-44.9397 166.717,-44.9397 163.534,-43.484 165.407,-47.8043 160.351,-42.0283 160.351,-42.0283\"/>\n",
"</g>\n", "</g>\n",
@ -468,11 +459,11 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faa503508a0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1946fe0660> >"
] ]
} }
], ],
"prompt_number": 6 "prompt_number": 5
}, },
{ {
"cell_type": "code", "cell_type": "code",
@ -499,7 +490,7 @@
{ {
"metadata": {}, "metadata": {},
"output_type": "pyout", "output_type": "pyout",
"prompt_number": 7, "prompt_number": 6,
"svg": [ "svg": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
@ -547,24 +538,24 @@
"<polygon fill=\"black\" stroke=\"black\" points=\"120.847,-34 113.847,-37.1501 117.347,-34 113.847,-34.0001 113.847,-34.0001 113.847,-34.0001 117.347,-34 113.847,-30.8501 120.847,-34 120.847,-34\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"120.847,-34 113.847,-37.1501 117.347,-34 113.847,-34.0001 113.847,-34.0001 113.847,-34.0001 117.347,-34 113.847,-30.8501 120.847,-34 120.847,-34\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1.0 -->\n", "<!-- &#45;1 -->\n",
"<g id=\"node4\" class=\"node\"><title>&#45;1.0</title>\n", "<g id=\"node4\" class=\"node\"><title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"210.8\" cy=\"-70\" rx=\"1.8\" ry=\"1.8\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"210.8\" cy=\"-70\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;&#45;1.0 -->\n", "<!-- 1&#45;&gt;&#45;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;&#45;1.0</title>\n", "<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M156.81,-30.2475C167.377,-28.8262 180.875,-28.8101 191,-35 200.508,-40.8127 205.503,-53.2288 207.894,-61.5983\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M156.81,-30.2475C167.377,-28.8262 180.875,-28.8101 191,-35 200.508,-40.8127 205.503,-53.2288 207.894,-61.5983\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"205.553,-62.3452 209.557,-68.5878 210.32,-61.2108 205.553,-62.3452\"/>\n", "<polygon fill=\"none\" stroke=\"black\" points=\"205.553,-62.3452 209.557,-68.5878 210.32,-61.2108 205.553,-62.3452\"/>\n",
"<text text-anchor=\"start\" x=\"178.5\" y=\"-53.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"178.5\" y=\"-53.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-38.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"175\" y=\"-38.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1.0&#45;&gt;0 -->\n", "<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>&#45;1.0&#45;&gt;0</title>\n", "<g id=\"edge5\" class=\"edge\"><title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M208.937,-70.1497C205.016,-70.8087 188.487,-73.3597 175,-72 137.348,-68.204 127.098,-67.1511 92,-53 87.4332,-51.1587 82.6985,-48.8714 78.2428,-46.5287\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M208.937,-70.1497C205.016,-70.8087 188.487,-73.3597 175,-72 137.348,-68.204 127.098,-67.1511 92,-53 87.4332,-51.1587 82.6985,-48.8714 78.2428,-46.5287\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"71.9664,-43.1024 79.6199,-43.6917 75.0385,-44.7795 78.1106,-46.4566 78.1106,-46.4566 78.1106,-46.4566 75.0385,-44.7795 76.6012,-49.2214 71.9664,-43.1024 71.9664,-43.1024\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"71.9664,-43.1024 79.6199,-43.6917 75.0385,-44.7795 78.1106,-46.4566 78.1106,-46.4566 78.1106,-46.4566 75.0385,-44.7795 76.6012,-49.2214 71.9664,-43.1024 71.9664,-43.1024\"/>\n",
"</g>\n", "</g>\n",
"<!-- &#45;1.0&#45;&gt;1 -->\n", "<!-- &#45;1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>&#45;1.0&#45;&gt;1</title>\n", "<g id=\"edge6\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M208.886,-70.0545C204.745,-70.2648 187.406,-70.7466 175,-65 168.261,-61.8783 161.868,-57.0279 156.434,-52.0833\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M208.886,-70.0545C204.745,-70.2648 187.406,-70.7466 175,-65 168.261,-61.8783 161.868,-57.0279 156.434,-52.0833\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.344,-47.1678 158.567,-49.7641 153.862,-49.599 156.379,-52.0302 156.379,-52.0302 156.379,-52.0302 153.862,-49.599 154.191,-54.2962 151.344,-47.1678 151.344,-47.1678\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"151.344,-47.1678 158.567,-49.7641 153.862,-49.599 156.379,-52.0302 156.379,-52.0302 156.379,-52.0302 153.862,-49.599 154.191,-54.2962 151.344,-47.1678 151.344,-47.1678\"/>\n",
"</g>\n", "</g>\n",
@ -572,11 +563,457 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faa50350cc0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1946fe0570> >"
] ]
} }
], ],
"prompt_number": 7 "prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A corner case for the dot printer"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for a in spot.automata('''\n",
"HOA: v1\n",
"States: 3\n",
"Start: 0\n",
"AP: 2 \"a\" \"b\"\n",
"Acceptance: 1 Fin(0)\n",
"--BODY--\n",
"State: 0\n",
"[0] 1&2\n",
"State: 1\n",
"[1] 1&2 {0}\n",
"State: 2\n",
"[1] 2\n",
"--END--\n",
"HOA: v1\n",
"States: 3\n",
"Start: 0\n",
"AP: 2 \"a\" \"b\"\n",
"Acceptance: 1 Fin(0)\n",
"--BODY--\n",
"State: 0\n",
"[0] 1&2\n",
"State: 1\n",
"[1] 1 {0}\n",
"State: 2\n",
"[1] 2\n",
"--END--\n",
"'''):\n",
" display(a)\n",
"\n",
"a = spot.automaton('''\n",
"HOA: v1\n",
"States: 3\n",
"Start: 0&2\n",
"AP: 2 \"a\" \"b\"\n",
"Acceptance: 1 Fin(0)\n",
"spot.highlight.edges: 2 2\n",
"--BODY--\n",
"State: 0\n",
"[0] 1&2\n",
"State: 1\n",
"[1] 1&2 {0}\n",
"State: 2\n",
"[1] 1&2\n",
"--END--\n",
"''')\n",
"display(a, a.show('.basy'))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"svg": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
" -->\n",
"<!-- Title: G Pages: 1 -->\n",
"<svg width=\"227pt\" height=\"178pt\"\n",
" viewBox=\"0.00 0.00 226.60 178.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 1) rotate(0) translate(4 174)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-174 222.6,-174 222.6,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"86.8\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"111.8\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"127.8\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"158.6,-43 158.6,-128 210.6,-128 210.6,-43 158.6,-43\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\"><title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"red\" points=\"30,-8 30,-79 137.6,-79 137.6,-8 30,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\"><title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30,-87 30,-139 82,-139 82,-87 30,-87\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-113\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-109.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-113C2.79388,-113 17.1543,-113 30.6317,-113\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-113 30.9419,-116.15 34.4419,-113 30.9419,-113 30.9419,-113 30.9419,-113 34.4419,-113 30.9418,-109.85 37.9419,-113 37.9419,-113\"/>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node5\" class=\"node\"><title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"127.8\" cy=\"-69\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.8028,-103.669C86.5994,-94.3414 108.707,-80.4052 119.85,-73.3813\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"121.315,-75.3538 125.93,-69.5484 118.702,-71.2087 121.315,-75.3538\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-93.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\"><title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"184.6\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"184.6\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.221,-86.0373C176.919,-95.8579 179.045,-105 184.6,-105 188.766,-105 191.004,-99.8576 191.313,-93.1433\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"190.979,-86.0373 194.454,-92.8818 191.143,-89.5335 191.308,-93.0296 191.308,-93.0296 191.308,-93.0296 191.143,-89.5335 188.161,-93.1774 190.979,-86.0373 190.979,-86.0373\"/>\n",
"<text text-anchor=\"start\" x=\"180.1\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;&#45;1 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.8052,-33.9269C82.5357,-28.6237 97.0271,-24.1864 108,-31 118.317,-37.4067 123.145,-51.3407 125.273,-60.4374\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"122.894,-61.0426 126.605,-67.4637 127.709,-60.1299 122.894,-61.0426\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-34.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>&#45;1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.751,-69C133.387,-69 146.83,-69 159.375,-69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"166.575,-69 159.575,-72.1501 163.075,-69 159.575,-69.0001 159.575,-69.0001 159.575,-69.0001 163.075,-69 159.575,-65.8501 166.575,-69 166.575,-69\"/>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M125.907,-69.0398C121.857,-69.1912 104.853,-69.5147 92,-65 86.8791,-63.2012 81.7293,-60.5453 77.0147,-57.6956\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"70.8989,-53.752 78.489,-54.8982 73.8404,-55.6488 76.7819,-57.5455 76.7819,-57.5455 76.7819,-57.5455 73.8404,-55.6488 75.0748,-60.1929 70.8989,-53.752 70.8989,-53.752\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1946f72c00> >"
]
},
{
"metadata": {},
"output_type": "display_data",
"svg": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
" -->\n",
"<!-- Title: G Pages: 1 -->\n",
"<svg width=\"218pt\" height=\"240pt\"\n",
" viewBox=\"0.00 0.00 217.60 240.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 1) rotate(0) translate(4 236)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-236 213.6,-236 213.6,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"82.3\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107.3\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"123.3\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"grey\" points=\"149.6,-101 149.6,-201 201.6,-201 201.6,-101 149.6,-101\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\"><title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"149.6,-8 149.6,-93 201.6,-93 201.6,-8 149.6,-8\"/>\n",
"</g>\n",
"<g id=\"clust3\" class=\"cluster\"><title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30,-17 30,-69 82,-69 82,-17 30,-17\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-43C2.79388,-43 17.1543,-43 30.6317,-43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-43 30.9419,-46.1501 34.4419,-43 30.9419,-43.0001 30.9419,-43.0001 30.9419,-43.0001 34.4419,-43 30.9418,-39.8501 37.9419,-43 37.9419,-43\"/>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node5\" class=\"node\"><title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"118.8\" cy=\"-43\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.2602,-43C85.8106,-43 100.495,-43 109.516,-43\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"109.666,-45.4501 116.666,-43 109.666,-40.5501 109.666,-45.4501\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"175.6\" cy=\"-127\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"175.6\" y=\"-123.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M169.221,-144.037C167.919,-153.858 170.045,-163 175.6,-163 179.766,-163 182.004,-157.858 182.313,-151.143\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"181.979,-144.037 185.454,-150.882 182.143,-147.533 182.308,-151.03 182.308,-151.03 182.308,-151.03 182.143,-147.533 179.161,-151.177 181.979,-144.037 181.979,-144.037\"/>\n",
"<text text-anchor=\"start\" x=\"171.1\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"167.6\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\"><title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"175.6\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"175.6\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M169.221,-51.0373C167.919,-60.8579 170.045,-70 175.6,-70 179.766,-70 182.004,-64.8576 182.313,-58.1433\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"181.979,-51.0373 185.454,-57.8818 182.143,-54.5335 182.308,-58.0296 182.308,-58.0296 182.308,-58.0296 182.143,-54.5335 179.161,-58.1774 181.979,-51.0373 181.979,-51.0373\"/>\n",
"<text text-anchor=\"start\" x=\"171.1\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M120.446,-44.3921C123.401,-50.7055 136.067,-77.1972 149.6,-97 152.211,-100.82 155.206,-104.736 158.196,-108.424\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"162.833,-113.987 155.931,-110.627 160.592,-111.299 158.351,-108.61 158.351,-108.61 158.351,-108.61 160.592,-111.299 160.771,-106.594 162.833,-113.987 162.833,-113.987\"/>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>&#45;1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M120.751,-42.8438C124.387,-42.2467 137.83,-40.0388 150.375,-37.9786\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"157.575,-36.796 151.178,-41.0389 154.122,-37.3633 150.668,-37.9305 150.668,-37.9305 150.668,-37.9305 154.122,-37.3633 150.157,-34.8222 157.575,-36.796 157.575,-36.796\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1946f72870> >"
]
},
{
"metadata": {},
"output_type": "display_data",
"svg": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
" -->\n",
"<!-- Title: G Pages: 1 -->\n",
"<svg width=\"275pt\" height=\"180pt\"\n",
" viewBox=\"0.00 0.00 275.20 179.51\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 175.511)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-175.511 271.2,-175.511 271.2,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"111.1\" y=\"-157.311\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"136.1\" y=\"-157.311\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"152.1\" y=\"-157.311\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<g id=\"clust1\" class=\"cluster\"><title>cluster_0</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"70.6,-8 70.6,-79 259.2,-79 259.2,-8 70.6,-8\"/>\n",
"</g>\n",
"<g id=\"clust2\" class=\"cluster\"><title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"70.6,-87 70.6,-139 122.6,-139 122.6,-87 70.6,-87\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- &#45;4 -->\n",
"<g id=\"node2\" class=\"node\"><title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-141\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- I&#45;&gt;&#45;4 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.10844,-141C2.6468,-141 20.196,-141 30.7973,-141\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.9213,-143.45 37.9213,-141 30.9212,-138.55 30.9213,-143.45\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\"><title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"233.2\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"233.2\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>&#45;4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.6453,-141.251C48.1792,-143.145 91.2224,-154.806 122.6,-143 161.522,-128.355 196.795,-93.856 216.29,-72.0775\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"221.13,-66.567 218.877,-73.9052 218.82,-69.1967 216.511,-71.8265 216.511,-71.8265 216.511,-71.8265 218.82,-69.1967 214.144,-69.7478 221.13,-66.567 221.13,-66.567\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node6\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-113\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-109.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.7512,-140.514C45.6352,-138.529 60.7141,-130.825 73.9308,-124.072\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"80.2121,-120.862 75.4119,-126.853 77.0954,-122.455 73.9787,-124.047 73.9787,-124.047 73.9787,-124.047 77.0954,-122.455 72.5454,-121.242 80.2121,-120.862 80.2121,-120.862\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-43\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-39.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node4\" class=\"node\"><title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"168.4\" cy=\"-56\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;&#45;1 -->\n",
"<g id=\"edge7\" class=\"edge\"><title>1&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"#faa43a\" stroke-width=\"2\" d=\"M112.506,-34.3378C123.022,-29.4344 137.206,-25.3123 148.6,-31 155.651,-34.52 160.75,-42.0833 163.843,-47.9744\"/>\n",
"<polygon fill=\"none\" stroke=\"#faa43a\" stroke-width=\"2\" points=\"161.798,-49.3942 166.935,-54.7434 166.255,-47.3582 161.798,-49.3942\"/>\n",
"<text text-anchor=\"start\" x=\"136.1\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"132.6\" y=\"-34.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>&#45;1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M166.439,-56.6548C163.763,-58.4337 155.94,-63.3336 148.6,-65 141.665,-66.5743 139.433,-66.9692 132.6,-65 127.169,-63.4349 121.767,-60.7509 116.891,-57.7844\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"111.032,-53.9389 118.613,-55.1467 113.958,-55.8595 116.884,-57.7801 116.884,-57.7801 116.884,-57.7801 113.958,-55.8595 115.156,-60.4135 111.032,-53.9389 111.032,-53.9389\"/>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>&#45;1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M169.956,-55.0361C171.925,-51.7327 178.95,-40.8603 188.2,-37 195.781,-33.8363 204.234,-35.6641 211.688,-39.0354\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"218.2,-42.4664 210.539,-41.9902 215.104,-40.8349 212.007,-39.2034 212.007,-39.2034 212.007,-39.2034 215.104,-40.8349 213.476,-36.4165 218.2,-42.4664 218.2,-42.4664\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;&#45;1 -->\n",
"<g id=\"edge8\" class=\"edge\"><title>2&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M215.18,-53.8131C203.016,-54.3942 187.18,-55.1507 177.678,-55.6045\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"177.365,-53.1666 170.49,-55.9479 177.599,-58.061 177.365,-53.1666\"/>\n",
"<text text-anchor=\"start\" x=\"188.2\" y=\"-59.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M111.058,-102.01C125.993,-89.8136 149.481,-70.6327 160.829,-61.3656\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"162.62,-63.0668 166.492,-56.7415 159.52,-59.2715 162.62,-63.0668\"/>\n",
"<text text-anchor=\"start\" x=\"137.1\" y=\"-86.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1946f72c00> >"
]
},
{
"metadata": {},
"output_type": "display_data",
"svg": [
"<svg height=\"185pt\" viewBox=\"0.00 0.00 253.20 185.00\" width=\"253pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 181)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" points=\"-4,4 -4,-181 249.2,-181 249.2,4 -4,4\" stroke=\"none\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"100.1\" y=\"-162.8\">Fin(</text>\n",
"<text fill=\"#5da5da\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"125.1\" y=\"-162.8\">\u24ff</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"141.1\" y=\"-162.8\">)</text>\n",
"<g class=\"cluster\" id=\"clust1\"><title>cluster_0</title>\n",
"<polygon fill=\"none\" points=\"8,-8 8,-86 237.2,-86 237.2,-8 8,-8\" stroke=\"green\"/>\n",
"</g>\n",
"<g class=\"cluster\" id=\"clust2\"><title>cluster_1</title>\n",
"<polygon fill=\"none\" points=\"136.6,-94 136.6,-146 188.6,-146 188.6,-94 136.6,-94\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- &#45;4 -->\n",
"<g class=\"node\" id=\"node2\"><title>-4</title>\n",
"<ellipse cx=\"105.8\" cy=\"-104\" fill=\"#ffffaa\" rx=\"1.8\" ry=\"1.8\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- I&#45;&gt;&#45;4 -->\n",
"<g class=\"edge\" id=\"edge1\"><title>I-&gt;-4</title>\n",
"<path d=\"M35.0506,-104C36.6946,-104 77.9811,-104 96.245,-104\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"96.6251,-106.45 103.625,-104 96.625,-101.55 96.6251,-106.45\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node5\"><title>2</title>\n",
"<ellipse cx=\"162.6\" cy=\"-57\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"162.6\" y=\"-53.3\">2</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge3\"><title>-4-&gt;2</title>\n",
"<path d=\"M107.751,-103.184C111.905,-99.6218 128.861,-85.0788 142.652,-73.2513\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"148.321,-68.3886 145.059,-75.3369 145.665,-70.6672 143.008,-72.9458 143.008,-72.9458 143.008,-72.9458 145.665,-70.6672 140.957,-70.5547 148.321,-68.3886 148.321,-68.3886\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node7\"><title>0</title>\n",
"<ellipse cx=\"162.6\" cy=\"-120\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"162.6\" y=\"-116.3\">0</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\"><title>-4-&gt;0</title>\n",
"<path d=\"M107.751,-104.278C111.469,-105.363 125.441,-109.443 138.221,-113.174\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"145.126,-115.19 137.523,-116.252 141.766,-114.209 138.406,-113.228 138.406,-113.228 138.406,-113.228 141.766,-114.209 139.289,-110.204 145.126,-115.19 145.126,-115.19\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\"><title>1</title>\n",
"<ellipse cx=\"34\" cy=\"-34\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"34\" y=\"-30.3\">1</text>\n",
"</g>\n",
"<!-- &#45;1.2 -->\n",
"<g class=\"node\" id=\"node4\"><title>-1.2</title>\n",
"<ellipse cx=\"105.8\" cy=\"-48\" fill=\"#ffffaa\" rx=\"1.8\" ry=\"1.8\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;&#45;1.2 -->\n",
"<g class=\"edge\" id=\"edge7\"><title>1-&gt;-1.2</title>\n",
"<path d=\"M51.8966,-37.389C66.2298,-40.2639 86.1419,-44.2577 96.9907,-46.4337\" fill=\"none\" stroke=\"#faa43a\" stroke-width=\"2\"/>\n",
"<polygon fill=\"none\" points=\"96.6407,-48.8622 103.986,-47.8367 97.6044,-44.0579 96.6407,-48.8622\" stroke=\"#faa43a\" stroke-width=\"2\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"73.5\" y=\"-63.8\">b</text>\n",
"<text fill=\"#5da5da\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"70\" y=\"-48.8\">\u24ff</text>\n",
"</g>\n",
"<!-- &#45;1.2&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge8\"><title>-1.2-&gt;1</title>\n",
"<path d=\"M103.844,-47.304C101.179,-45.4083 93.3825,-40.1514 86,-38 77.5586,-35.54 68.019,-34.3845 59.4929,-33.8924\" fill=\"none\" stroke=\"#faa43a\" stroke-width=\"2\"/>\n",
"<polygon fill=\"#faa43a\" points=\"52.3144,-33.6146 59.431,-30.7377 55.8311,-33.2504 59.3285,-33.3857 59.3092,-33.8854 59.2898,-34.385 55.7924,-34.2496 59.1873,-37.033 52.3144,-33.6146 52.3144,-33.6146\" stroke=\"#faa43a\" stroke-width=\"2\"/>\n",
"</g>\n",
"<!-- &#45;1.2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge9\"><title>-1.2-&gt;2</title>\n",
"<path d=\"M107.751,-48.1562C111.387,-48.7533 124.83,-50.9612 137.375,-53.0214\" fill=\"none\" stroke=\"#faa43a\" stroke-width=\"2\"/>\n",
"<polygon fill=\"#faa43a\" points=\"144.575,-54.204 137.157,-56.1778 141.041,-54.1301 137.587,-53.5629 137.668,-53.0695 137.749,-52.5761 141.203,-53.1433 138.178,-49.9611 144.575,-54.204 144.575,-54.204\" stroke=\"#faa43a\" stroke-width=\"2\"/>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g class=\"node\" id=\"node6\"><title>-1</title>\n",
"<ellipse cx=\"227.4\" cy=\"-58\" fill=\"#ffffaa\" rx=\"1.8\" ry=\"1.8\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 2&#45;&gt;&#45;1 -->\n",
"<g class=\"edge\" id=\"edge10\"><title>2-&gt;-1</title>\n",
"<path d=\"M178.748,-48.5602C187.269,-44.8885 198.076,-42.028 207.6,-45 212.278,-46.46 216.818,-49.5368 220.264,-52.3307\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"218.66,-54.1833 225.496,-57.0596 221.946,-50.5481 218.66,-54.1833\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"198.6\" y=\"-49.8\">b</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge5\"><title>-1-&gt;1</title>\n",
"<path d=\"M225.608,-57.0026C221.981,-52.5346 206.36,-34.3882 188.6,-30 143.956,-18.9689 89.786,-24.6084 59.1641,-29.4687\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"51.9063,-30.677 58.294,-26.4202 55.3588,-30.1022 58.8113,-29.5274 58.8113,-29.5274 58.8113,-29.5274 55.3588,-30.1022 59.3286,-32.6346 51.9063,-30.677 51.9063,-30.677\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge6\"><title>-1-&gt;2</title>\n",
"<path d=\"M225.408,-58.4381C222.651,-59.6279 214.641,-62.9036 207.6,-64 200.865,-65.0487 193.553,-64.5459 186.859,-63.4355\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"179.895,-62.0368 187.378,-60.3269 183.326,-62.726 186.757,-63.4153 186.757,-63.4153 186.757,-63.4153 183.326,-62.726 186.137,-66.5036 179.895,-62.0368 179.895,-62.0368\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g class=\"edge\" id=\"edge4\"><title>0-&gt;-1</title>\n",
"<path d=\"M176.007,-107.751C189.483,-94.4463 210.436,-73.7609 220.548,-63.7776\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"222.332,-65.4595 225.592,-58.798 218.889,-61.9725 222.332,-65.4595\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"199.6\" y=\"-89.8\">a</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text": [
"<IPython.core.display.SVG object>"
]
}
],
"prompt_number": 9
}, },
{ {
"cell_type": "code", "cell_type": "code",

File diff suppressed because it is too large Load diff