scc_filter_states: also remove useless acceptance marks

* src/twaalgos/sccfilter.hh,
src/twaalgos/sccfilter.cc (scc_filter_states): Remove useless acceptance
marks while preserving state-based acceptance.  Add a new argument
to specify if all useless mark have to be removed, like for scc_filter.
* src/twaalgos/simulation.cc: Use the new parameter.
* src/twaalgos/postproc.cc: Likewise.  Also call do_scc_filter even
after WDBA simplification to cleanup trivial SCCs.  Preserve state-based
acceptance for weak automata.
* src/tests/readsave.test: Add one test.
* src/tests/dstar.test, src/tests/prodor.test, src/tests/remfin.test,
src/tests/sim3.test, wrap/python/tests/automata.ipynb,
wrap/python/tests/piperead.ipynb: Adjust expected output.
* NEWS: Mention the change.
This commit is contained in:
Alexandre Duret-Lutz 2015-10-14 19:03:09 +02:00
parent 2af3678893
commit cd2e527526
12 changed files with 368 additions and 279 deletions

8
NEWS
View file

@ -10,6 +10,14 @@ New in spot 1.99.4a (not yet released)
are declared as weak. This code was previously in are declared as weak. This code was previously in
dtgba_complement(). dtgba_complement().
* scc_filter_states() has learnt to remove useless acceptance marks
that are on transitions between SCCs, while preserving state-based
acceptance. The most visible effect is in the output of "ltl2tgba
-s XXXa": it used to have 5 accepting states, it now has only one.
(Changing removing acceptance of those 4 states has no effect on
the language, but it speedup some algorithms like NDFS-based
emptiness checks, as discussed in our Spin'15 paper.)
Python: Python:
* Add bindings for complete() and dtwa_complement() * Add bindings for complete() and dtwa_complement()

View file

@ -244,7 +244,7 @@ digraph G {
node [shape="circle"] node [shape="circle"]
I [label="", style=invis, width=0] I [label="", style=invis, width=0]
I -> 0 I -> 0
0 [label="0", peripheries=2] 0 [label="0"]
0 -> 1 [label="!a & !b"] 0 -> 1 [label="!a & !b"]
0 -> 2 [label="a & !b"] 0 -> 2 [label="a & !b"]
1 [label="1", peripheries=2] 1 [label="1", peripheries=2]

View file

@ -96,15 +96,15 @@ Acceptance: 2 Inf(0) | Inf(1)
properties: trans-labels explicit-labels state-acc complete properties: trans-labels explicit-labels state-acc complete
properties: deterministic properties: deterministic
--BODY-- --BODY--
State: 0 {0 1} State: 0 {1}
[0] 1 [0] 1
[!0] 2 [!0] 2
State: 1 {0 1} State: 1 {1}
[0&1] 3 [0&1] 3
[!0&1] 4 [!0&1] 4
[0&!1] 5 [0&!1] 5
[!0&!1] 6 [!0&!1] 6
State: 2 {0} State: 2
[0&1] 3 [0&1] 3
[!0&1] 4 [!0&1] 4
[0&!1] 5 [0&!1] 5

View file

@ -700,3 +700,40 @@ diff output3 expect3
$autfilt -Hk input 2>stderr && exit 1 $autfilt -Hk input 2>stderr && exit 1
grep 'print_hoa.*k' stderr grep 'print_hoa.*k' stderr
cat >input4 <<EOF
HOA: v1
States: 3
Start: 0
AP: 2 "a" "b"
Acceptance: 2 Inf(0) & Inf(1)
--BODY--
State: 0 {0} [0] 1
State: 1 {1} [1] 2
State: 2 {0 1} [0] 2
--END--
EOF
$autfilt -H --small --high input4 >output4
cat output4
cat >expect4<<EOF
HOA: v1
States: 3
Start: 1
AP: 2 "a" "b"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc deterministic
properties: inherently-weak
--BODY--
State: 0
[1] 2
State: 1
[0] 0
State: 2 {0}
[0] 2
--END--
EOF
diff output4 expect4

View file

@ -663,7 +663,7 @@ State: 6
[0] 0 [0] 0
[!0] 6 [!0] 6
State: 7 State: 7
[0] 4 {0} [0] 4
[!0] 6 [!0] 6
State: 8 State: 8
[0] 8 {0} [0] 8 {0}
@ -679,22 +679,22 @@ properties: trans-labels explicit-labels trans-acc
State: 0 State: 0
[0&1] 0 {0} [0&1] 0 {0}
[!0&1] 1 {0} [!0&1] 1 {0}
[0&!1] 11 {0} [0&!1] 11
[!0&!1] 12 [!0&!1] 12
State: 1 State: 1
[0&1] 0 {0} [0&1] 0 {0}
[!0&1] 1 {0} [!0&1] 1 {0}
[0&!1] 11 {0} [0&!1] 11
[!0&!1] 12 [!0&!1] 12
State: 2 State: 2
[!0&1] 2 {0} [!0&1] 2 {0}
[0&1] 9 [0&1] 9
[!0&!1] 10 {0} [!0&!1] 10
[0&!1] 11 {0} [0&!1] 11
State: 3 State: 3
[!0&1] 1 {0} [!0&1] 1
[0&1] 3 {0} [0&1] 3 {0}
[0&!1] 11 {0} [0&!1] 11
[!0&!1] 12 [!0&!1] 12
State: 4 State: 4
[!0&1] 4 {0} [!0&1] 4 {0}
@ -706,7 +706,7 @@ State: 5
[!0&!1] 10 {0} [!0&!1] 10 {0}
[0&!1] 12 [0&!1] 12
State: 6 State: 6
[!0&1] 4 {0} [!0&1] 4
[0&1] 6 {0} [0&1] 6 {0}
[0&!1] 11 {0} [0&!1] 11 {0}
[!0&!1] 12 [!0&!1] 12
@ -750,23 +750,23 @@ Start: 0
AP: 2 "p1" "p0" AP: 2 "p1" "p0"
acc-name: Buchi acc-name: Buchi
Acceptance: 1 Inf(0) Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc complete properties: trans-labels explicit-labels trans-acc complete
properties: deterministic properties: deterministic
--BODY-- --BODY--
State: 0 State: 0
[!1] 0 [!1] 0
[0&1] 2 [0&1] 2
[!0&1] 3 [!0&1] 3
State: 1 {0} State: 1
[!1] 1 [!1] 1 {0}
[1] 2 [1] 2 {0}
State: 2 {0} State: 2
[!1] 1 [!1] 1 {0}
[1] 2 [1] 2 {0}
State: 3 {0} State: 3
[!1] 0 [!1] 0 {0}
[0&1] 2 [0&1] 2
[!0&1] 3 [!0&1] 3 {0}
--END-- --END--
HOA: v1 HOA: v1
States: 5 States: 5
@ -782,7 +782,7 @@ State: 1
[t] 1 {0} [t] 1 {0}
State: 2 State: 2
[!0&1] 0 [!0&1] 0
[0] 1 {0} [0] 1
[!0&!1] 2 {0} [!0&!1] 2 {0}
State: 3 State: 3
[1] 0 [1] 0

View file

@ -60,7 +60,7 @@ Acceptance: 4 (Fin(0) & Inf(1)) | (Fin(2) & Inf(3))
properties: trans-labels explicit-labels state-acc complete properties: trans-labels explicit-labels state-acc complete
properties: deterministic properties: deterministic
--BODY-- --BODY--
State: 0 {0} State: 0
[!1] 1 [!1] 1
[1] 3 [1] 3
State: 1 {1 3} State: 1 {1 3}

View file

@ -144,8 +144,10 @@ namespace spot
{ {
if (scc_filter_ == 0) if (scc_filter_ == 0)
return a; return a;
if (state_based_ && a->has_state_based_acc()) // If the automaton is weak, using transition-based acceptance
return scc_filter_states(a); // won't help, so let's preserve it.
if ((state_based_ || a->is_inherently_weak()) && a->has_state_based_acc())
return scc_filter_states(a, arg);
else else
return scc_filter(a, arg); return scc_filter(a, arg);
} }
@ -186,7 +188,7 @@ namespace spot
|| (type_ == Monitor && a->num_sets() == 0)) || (type_ == Monitor && a->num_sets() == 0))
{ {
if (tgb_used) if (tgb_used)
a = do_scc_filter(a); a = do_scc_filter(a, true);
if (COMP_) if (COMP_)
a = complete(a); a = complete(a);
if (SBACC_) if (SBACC_)
@ -202,7 +204,7 @@ namespace spot
// ignored. // ignored.
a = scc_filter_states(a); a = scc_filter_states(a);
else else
a = do_scc_filter(a); a = do_scc_filter(a, (PREF_ == Any));
if (type_ == Monitor) if (type_ == Monitor)
{ {
@ -445,10 +447,12 @@ namespace spot
sim = nullptr; sim = nullptr;
} }
if (type_ == TGBA && level_ == High && scc_filter_ != 0) if (level_ == High && scc_filter_ != 0)
{ {
if (dba && !dba_is_minimal) // WDBA is already clean. if (dba)
{ {
// Do that even for WDBA, to remove marks from transitions
// leaving trivial SCCs.
dba = do_scc_filter(dba, true); dba = do_scc_filter(dba, true);
assert(!sim); assert(!sim);
} }

View file

@ -126,8 +126,10 @@ namespace spot
// Remove acceptance conditions from all edges outside of // Remove acceptance conditions from all edges outside of
// non-accepting SCCs. If "RemoveAll" is false, keep those on // non-accepting SCCs. If "RemoveAll" is false, keep those on
// transitions entering accepting SCCs. // transitions entering accepting SCCs. If "PreserveSBA", is set
template <bool RemoveAll, class next_filter = id_filter> // only touch a transition if all its neighbor siblings can be
// touched as well.
template <bool RemoveAll, bool PreserveSBA, class next_filter = id_filter>
struct acc_filter_mask: next_filter struct acc_filter_mask: next_filter
{ {
acc_cond::mark_t accmask; acc_cond::mark_t accmask;
@ -154,16 +156,47 @@ namespace spot
if (keep) if (keep)
{ {
unsigned u = this->si->scc_of(dst); unsigned u = this->si->scc_of(src);
// If the edge is between two SCCs, we can simplify unsigned v = this->si->scc_of(dst);
// remove the acceptance sets. If the SCC is non-accepting, // The basic rules are as follows:
// we can only remove the Inf sets. //
if (RemoveAll && u != this->si->scc_of(src)) // - If an edge is between two SCCs, is OK to remove
acc = 0U; // all acceptance sets, as this edge cannot be part
else if (this->si->is_rejecting_scc(u)) // of any loop.
// - If an edge is in an non-accepting SCC, we can only
// remove the Inf sets, as removinf the Fin sets
// might make the SCC accepting.
//
// The above rules are made more complex with two flags:
//
// - If PreserveSBA is set, we have to tree a transition
// leaving an SCC as other transitions inside the SCC,
// otherwise we will break the property that all
// transitions leaving the same state have identical set
// membership.
// - If RemoveAll is false, we like to keep the membership
// of transitions entering an SCC. This can only be
// done if PreserveSBA is unset, unfortunately.
if (u == v)
{
if (this->si->is_rejecting_scc(u))
acc &= accmask; acc &= accmask;
} }
else if (PreserveSBA && this->si->is_rejecting_scc(u))
{
if (!this->si->is_trivial(u))
acc &= accmask; // No choice.
else if (RemoveAll)
acc = 0U;
}
else if (!PreserveSBA)
{
if (RemoveAll)
acc = 0U;
else if (this->si->is_rejecting_scc(v))
acc &= accmask;
}
}
return filtered_trans(keep, cond, acc); return filtered_trans(keep, cond, acc);
} }
}; };
@ -186,7 +219,7 @@ namespace spot
auto& acc = this->si->get_aut()->acc(); auto& acc = this->si->get_aut()->acc();
if (!acc.is_generalized_buchi()) if (!acc.is_generalized_buchi())
throw std::runtime_error throw std::runtime_error
("simplification of SCC acceptance work only with " ("simplification of SCC acceptance works only with "
"generalized Büchi acceptance"); "generalized Büchi acceptance");
unsigned scc_count = this->si->scc_count(); unsigned scc_count = this->si->scc_count();
@ -243,10 +276,11 @@ namespace spot
twa_graph_ptr scc_filter_apply(const_twa_graph_ptr aut, twa_graph_ptr scc_filter_apply(const_twa_graph_ptr aut,
scc_info* given_si, Args&&... args) scc_info* given_si, Args&&... args)
{ {
unsigned in_n = aut->num_states();
if (in_n == 0) // nothing to filter.
return make_twa_graph(aut, twa::prop_set::all());
twa_graph_ptr filtered = make_twa_graph(aut->get_dict()); twa_graph_ptr filtered = make_twa_graph(aut->get_dict());
unsigned in_n = aut->num_states(); // Number of input states.
if (in_n == 0) // Nothing to filter.
return filtered;
filtered->copy_ap_of(aut); filtered->copy_ap_of(aut);
// Compute scc_info if not supplied. // Compute scc_info if not supplied.
@ -302,9 +336,16 @@ namespace spot
} }
twa_graph_ptr twa_graph_ptr
scc_filter_states(const const_twa_graph_ptr& aut, scc_info* given_si) scc_filter_states(const const_twa_graph_ptr& aut, bool remove_all_useless,
scc_info* given_si)
{ {
auto res = scc_filter_apply<state_filter<>>(aut, given_si); twa_graph_ptr res;
if (remove_all_useless)
res = scc_filter_apply<state_filter
<acc_filter_mask<true, true>>>(aut, given_si);
else
res = scc_filter_apply<state_filter
<acc_filter_mask<false, true>>>(aut, given_si);
res->prop_copy(aut, { true, true, true, true }); res->prop_copy(aut, { true, true, true, true });
return res; return res;
} }
@ -321,21 +362,25 @@ namespace spot
res = res =
scc_filter_apply<state_filter scc_filter_apply<state_filter
<acc_filter_mask <acc_filter_mask
<true, acc_filter_simplify<>>>>(aut, given_si); <true, false,
acc_filter_simplify<>>>>(aut, given_si);
else else
res = res =
scc_filter_apply<state_filter scc_filter_apply<state_filter
<acc_filter_mask <acc_filter_mask
<false, acc_filter_simplify<>>>>(aut, given_si); <false, false,
acc_filter_simplify<>>>>(aut, given_si);
} }
else else
{ {
if (remove_all_useless) if (remove_all_useless)
res = scc_filter_apply<state_filter res = scc_filter_apply<state_filter
<acc_filter_mask<true>>>(aut, given_si); <acc_filter_mask
<true, false>>>(aut, given_si);
else else
res = scc_filter_apply<state_filter res = scc_filter_apply<state_filter
<acc_filter_mask<false>>>(aut, given_si); <acc_filter_mask
<false, false>>>(aut, given_si);
} }
res->merge_edges(); res->merge_edges();
res->prop_copy(aut, res->prop_copy(aut,
@ -357,7 +402,8 @@ namespace spot
res = scc_filter_apply<susp_filter res = scc_filter_apply<susp_filter
<state_filter <state_filter
<acc_filter_mask <acc_filter_mask
<true, acc_filter_simplify<>>>>>(aut, given_si, <true, false,
acc_filter_simplify<>>>>>(aut, given_si,
suspvars, suspvars,
ignoredvars, ignoredvars,
early_susp); early_susp);
@ -365,7 +411,8 @@ namespace spot
res = scc_filter_apply<susp_filter res = scc_filter_apply<susp_filter
<state_filter <state_filter
<acc_filter_mask <acc_filter_mask
<false, acc_filter_simplify<>>>>>(aut, given_si, <false, false,
acc_filter_simplify<>>>>>(aut, given_si,
suspvars, suspvars,
ignoredvars, ignoredvars,
early_susp); early_susp);

View file

@ -63,14 +63,14 @@ namespace spot
/// \brief Prune unaccepting SCCs. /// \brief Prune unaccepting SCCs.
/// ///
/// This is an abridged version of scc_filter(), that only removes /// This is an abridged version of scc_filter(), that preserves
/// useless states, without touching at the acceptance conditions. /// state-based acceptance. I.e., if the input TωA has the SBA
/// /// property, (i.e., transitions leaving accepting states are all
/// Especially, if the input TωA has the SBA property, (i.e., /// marked as accepting), then the output TωA will also have that
/// transitions leaving accepting states are all marked as /// property.
/// accepting), then the output TGBA will also have that property.
SPOT_API twa_graph_ptr SPOT_API twa_graph_ptr
scc_filter_states(const const_twa_graph_ptr& aut, scc_filter_states(const const_twa_graph_ptr& aut,
bool remove_all_useless = false,
scc_info* given_si = nullptr); scc_info* given_si = nullptr);
/// \brief Prune unaccepting SCCs, superfluous acceptance /// \brief Prune unaccepting SCCs, superfluous acceptance

View file

@ -777,7 +777,7 @@ namespace spot
res = cosimul.run(); res = cosimul.run();
if (Sba) if (Sba)
res = scc_filter_states(res); res = scc_filter_states(res, false);
else else
res = scc_filter(res, false); res = scc_filter(res, false);

View file

@ -17,8 +17,7 @@
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.4.3+" "version": "3.4.3+"
}, },
"name": "", "name": ""
"signature": "sha256:6b034a8346695a3f327fd50e8c768209ea3d931598b99d5d80508685976c255e"
}, },
"nbformat": 3, "nbformat": 3,
"nbformat_minor": 0, "nbformat_minor": 0,
@ -177,7 +176,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998ab6540> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e58013ea0> >"
] ]
} }
], ],
@ -316,7 +315,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG at 0x7f2999748ef0>" "<IPython.core.display.SVG object>"
] ]
} }
], ],
@ -469,7 +468,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG at 0x7f29980f6400>" "<IPython.core.display.SVG object>"
] ]
} }
], ],
@ -569,7 +568,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a8be40> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6720> >"
] ]
} }
], ],
@ -639,7 +638,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a8bed0> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6870> >"
] ]
} }
], ],
@ -715,7 +714,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a8b840> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6600> >"
] ]
} }
], ],
@ -838,7 +837,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG at 0x7f299809eda0>" "<IPython.core.display.SVG object>"
] ]
} }
], ],
@ -1028,7 +1027,7 @@
"</svg>" "</svg>"
], ],
"text": [ "text": [
"<IPython.core.display.SVG at 0x7f29980bb710>" "<IPython.core.display.SVG object>"
] ]
} }
], ],
@ -1175,7 +1174,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a280f0> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6180> >"
] ]
} }
], ],
@ -1276,7 +1275,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a28120> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6330> >"
] ]
} }
], ],
@ -1394,7 +1393,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a28150> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe66c0> >"
] ]
} }
], ],
@ -1427,11 +1426,11 @@
"<!-- 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=\"332pt\" height=\"92pt\"\n", "<svg width=\"325pt\" height=\"92pt\"\n",
" viewBox=\"0.00 0.00 332.00 92.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 325.00 92.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 88)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 88)\">\n",
"<title>G</title>\n", "<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-88 328,-88 328,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-88 321,-88 321,4 -4,4\"/>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\"><title>0</title>\n", "<g id=\"node2\" class=\"node\"><title>0</title>\n",
@ -1473,28 +1472,27 @@
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\"><title>3</title>\n", "<g id=\"node5\" class=\"node\"><title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"306\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"299\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"306\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", "<text text-anchor=\"middle\" x=\"299\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;3 -->\n", "<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>2&#45;&gt;3</title>\n", "<g id=\"edge5\" class=\"edge\"><title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M236.403,-18C249.193,-18 266.732,-18 280.874,-18\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M236.142,-18C247.115,-18 261.521,-18 273.67,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"287.916,-18 280.916,-21.1501 284.416,-18 280.916,-18.0001 280.916,-18.0001 280.916,-18.0001 284.416,-18 280.916,-14.8501 287.916,-18 287.916,-18\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"280.892,-18 273.892,-21.1501 277.392,-18 273.892,-18.0001 273.892,-18.0001 273.892,-18.0001 277.392,-18 273.892,-14.8501 280.892,-18 280.892,-18\"/>\n",
"<text text-anchor=\"start\" x=\"257.5\" y=\"-36.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"254\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"254\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;3 -->\n", "<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>3&#45;&gt;3</title>\n", "<g id=\"edge6\" class=\"edge\"><title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M298.332,-34.2903C296.483,-44.3892 299.039,-54 306,-54 311.221,-54 313.964,-48.5939 314.229,-41.6304\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M291.969,-34.6641C290.406,-44.625 292.75,-54 299,-54 303.688,-54 306.178,-48.7266 306.471,-41.8876\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"313.668,-34.2903 317.342,-41.0299 313.935,-37.7801 314.201,-41.2699 314.201,-41.2699 314.201,-41.2699 313.935,-37.7801 311.06,-41.5099 313.668,-34.2903 313.668,-34.2903\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"306.031,-34.6641 309.601,-41.4598 306.244,-38.1576 306.456,-41.6511 306.456,-41.6511 306.456,-41.6511 306.244,-38.1576 303.312,-41.8425 306.031,-34.6641 306.031,-34.6641\"/>\n",
"<text text-anchor=\"start\" x=\"301.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"294.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"291\" y=\"-57.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 0x7f2998a28180> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6de0> >"
] ]
} }
], ],
@ -1571,13 +1569,13 @@
"</g>\n", "</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\"><title>4</title>\n", "<g id=\"node6\" class=\"node\"><title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"508.5\" cy=\"-283\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"508.5\" cy=\"-278\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"508.5\" y=\"-279.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n", "<text text-anchor=\"middle\" x=\"508.5\" y=\"-274.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;4 -->\n", "<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>0&#45;&gt;4</title>\n", "<g id=\"edge5\" class=\"edge\"><title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.7109,-300.095C60.7583,-350.7 76.8361,-490 161.5,-490 161.5,-490 161.5,-490 334.5,-490 409.803,-490 436.423,-457.369 472,-391 486.472,-364.002 496.445,-330.044 502.054,-307.488\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M57.7109,-300.095C60.7583,-350.7 76.8361,-490 161.5,-490 161.5,-490 161.5,-490 334.5,-490 408.778,-490 436.783,-460.399 472,-395 487.961,-365.36 497.771,-327.541 502.925,-303.052\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"503.722,-300.589 505.139,-308.133 502.9,-303.991 502.077,-307.393 502.077,-307.393 502.077,-307.393 502.9,-303.991 499.015,-306.653 503.722,-300.589 503.722,-300.589\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"504.377,-295.904 506.07,-303.391 503.68,-299.334 502.983,-302.764 502.983,-302.764 502.983,-302.764 503.68,-299.334 499.896,-302.137 504.377,-295.904 504.377,-295.904\"/>\n",
"<text text-anchor=\"start\" x=\"254\" y=\"-493.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"254\" y=\"-493.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 5 -->\n", "<!-- 5 -->\n",
@ -1593,13 +1591,13 @@
"</g>\n", "</g>\n",
"<!-- 6 -->\n", "<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\"><title>6</title>\n", "<g id=\"node8\" class=\"node\"><title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"618\" cy=\"-283\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"618\" cy=\"-278\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"618\" y=\"-279.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n", "<text text-anchor=\"middle\" x=\"618\" y=\"-274.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;6 -->\n", "<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge7\" class=\"edge\"><title>0&#45;&gt;6</title>\n", "<g id=\"edge7\" class=\"edge\"><title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.3587,-300.051C55.3315,-357.603 60.4873,-533 161.5,-533 161.5,-533 161.5,-533 509.5,-533 606.428,-533 617.041,-372.437 617.433,-308.663\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M56.3587,-300.051C55.3315,-357.603 60.4873,-533 161.5,-533 161.5,-533 161.5,-533 509.5,-533 608.298,-533 617.736,-368.458 617.626,-303.721\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"617.435,-301.383 620.583,-308.384 617.434,-304.883 617.433,-308.383 617.433,-308.383 617.433,-308.383 617.434,-304.883 614.283,-308.382 617.435,-301.383 617.435,-301.383\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"617.571,-296.339 620.774,-303.315 617.597,-299.839 617.624,-303.339 617.624,-303.339 617.624,-303.339 617.597,-299.839 614.474,-303.362 617.571,-296.339 617.571,-296.339\"/>\n",
"<text text-anchor=\"start\" x=\"315\" y=\"-536.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"315\" y=\"-536.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;1 -->\n", "<!-- 1&#45;&gt;1 -->\n",
@ -1622,8 +1620,8 @@
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;4 -->\n", "<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\"><title>1&#45;&gt;4</title>\n", "<g id=\"edge11\" class=\"edge\"><title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M172.479,-209.649C178.749,-200.27 187.958,-188.807 199,-182 280.605,-131.693 320.87,-128.502 413,-155 442.746,-163.556 452.659,-167.835 472,-192 487.02,-210.766 481.177,-220.641 490,-243 492.191,-248.553 494.69,-254.474 497.1,-260.012\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M172.479,-209.649C178.749,-200.27 187.958,-188.807 199,-182 280.605,-131.693 320.87,-128.502 413,-155 442.746,-163.556 452.505,-167.959 472,-192 486.613,-210.02 481.031,-219.603 490,-241 492.04,-245.866 494.368,-251.022 496.647,-255.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"500.076,-266.765 494.371,-261.63 498.665,-263.563 497.253,-260.36 497.253,-260.36 497.253,-260.36 498.665,-263.563 500.136,-259.09 500.076,-266.765 500.076,-266.765\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"499.691,-262.296 493.841,-257.325 498.188,-259.135 496.686,-255.974 496.686,-255.974 496.686,-255.974 498.188,-259.135 499.531,-254.622 499.691,-262.296 499.691,-262.296\"/>\n",
"<text text-anchor=\"start\" x=\"313\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"313\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;5 -->\n", "<!-- 1&#45;&gt;5 -->\n",
@ -1634,9 +1632,9 @@
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;6 -->\n", "<!-- 1&#45;&gt;6 -->\n",
"<g id=\"edge13\" class=\"edge\"><title>1&#45;&gt;6</title>\n", "<g id=\"edge13\" class=\"edge\"><title>1&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M168.227,-242.485C175.273,-267.677 188.792,-312.631 199,-326 234.13,-372.011 256.369,-376.996 313,-389 382.136,-403.654 403.101,-406.733 472,-391 524.906,-378.919 541.436,-374.049 582,-338 592.089,-329.034 600.373,-316.487 606.345,-305.64\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M168.269,-242.453C175.368,-267.605 188.955,-312.508 199,-326 236.272,-376.061 253.88,-387.996 313,-408 430.568,-447.78 491.922,-418.385 582,-333 591.795,-323.715 600.06,-311.146 606.094,-300.367\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"609.76,-299.154 609.286,-306.815 608.129,-302.251 606.499,-305.348 606.499,-305.348 606.499,-305.348 608.129,-302.251 603.711,-303.88 609.76,-299.154 609.76,-299.154\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"609.556,-293.932 609.013,-301.589 607.898,-297.014 606.239,-300.097 606.239,-300.097 606.239,-300.097 607.898,-297.014 603.465,-298.604 609.556,-293.932 609.556,-293.932\"/>\n",
"<text text-anchor=\"start\" x=\"374\" y=\"-404.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"374\" y=\"-428.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;1 -->\n", "<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge14\" class=\"edge\"><title>2&#45;&gt;1</title>\n", "<g id=\"edge14\" class=\"edge\"><title>2&#45;&gt;1</title>\n",
@ -1658,9 +1656,9 @@
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;4 -->\n", "<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge17\" class=\"edge\"><title>2&#45;&gt;4</title>\n", "<g id=\"edge17\" class=\"edge\"><title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M292.56,-282.074C333.285,-282.249 436.286,-282.693 483.359,-282.896\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M292.652,-281.815C308.555,-281.636 332.877,-281.341 354,-281 399.698,-280.262 453.044,-279.167 483.291,-278.524\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"490.415,-282.926 483.402,-286.046 486.916,-282.911 483.416,-282.896 483.416,-282.896 483.416,-282.896 486.916,-282.911 483.429,-279.746 490.415,-282.926 490.415,-282.926\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"490.465,-278.371 483.534,-281.67 486.965,-278.446 483.466,-278.52 483.466,-278.52 483.466,-278.52 486.965,-278.446 483.399,-275.371 490.465,-278.371 490.465,-278.371\"/>\n",
"<text text-anchor=\"start\" x=\"372\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"372\" y=\"-283.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;5 -->\n", "<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge18\" class=\"edge\"><title>2&#45;&gt;5</title>\n", "<g id=\"edge18\" class=\"edge\"><title>2&#45;&gt;5</title>\n",
@ -1670,9 +1668,9 @@
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;6 -->\n", "<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge19\" class=\"edge\"><title>2&#45;&gt;6</title>\n", "<g id=\"edge19\" class=\"edge\"><title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M287.591,-294.625C294.456,-301.07 303.549,-308.484 313,-313 399.658,-354.404 435.08,-370.831 527,-343 554.774,-334.591 581.811,-314.471 598.881,-299.843\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M287.995,-294.51C294.839,-300.673 303.787,-307.689 313,-312 399.778,-352.61 435.301,-365.764 527,-338 554.774,-329.591 581.811,-309.471 598.881,-294.843\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"604.274,-295.117 601.085,-302.1 601.642,-297.424 599.009,-299.73 599.009,-299.73 599.009,-299.73 601.642,-297.424 596.933,-297.361 604.274,-295.117 604.274,-295.117\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"604.274,-290.117 601.085,-297.1 601.642,-292.424 599.009,-294.73 599.009,-294.73 599.009,-294.73 601.642,-292.424 596.933,-292.361 604.274,-290.117 604.274,-290.117\"/>\n",
"<text text-anchor=\"start\" x=\"433\" y=\"-359.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"433\" y=\"-355.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;1 -->\n", "<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge20\" class=\"edge\"><title>3&#45;&gt;1</title>\n", "<g id=\"edge20\" class=\"edge\"><title>3&#45;&gt;1</title>\n",
@ -1694,8 +1692,8 @@
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge23\" class=\"edge\"><title>3&#45;&gt;4</title>\n", "<g id=\"edge23\" class=\"edge\"><title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M402.231,-197.183C409.049,-208.102 419.309,-222.663 431,-233 446.653,-246.84 454.532,-244.537 472,-256 477.398,-259.542 483.045,-263.641 488.207,-267.558\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M402.231,-197.183C409.049,-208.102 419.309,-222.663 431,-233 446.653,-246.84 454.005,-245.383 472,-256 476.723,-258.786 481.753,-261.846 486.497,-264.775\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"493.999,-272.029 486.533,-270.245 491.228,-269.89 488.458,-267.751 488.458,-267.751 488.458,-267.751 491.228,-269.89 490.382,-265.258 493.999,-272.029 493.999,-272.029\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"492.733,-268.65 485.125,-267.631 489.761,-266.802 486.788,-264.955 486.788,-264.955 486.788,-264.955 489.761,-266.802 488.45,-262.28 492.733,-268.65 492.733,-268.65\"/>\n",
"<text text-anchor=\"start\" x=\"431\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"431\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;5 -->\n", "<!-- 3&#45;&gt;5 -->\n",
@ -1706,45 +1704,45 @@
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;6 -->\n", "<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge25\" class=\"edge\"><title>3&#45;&gt;6</title>\n", "<g id=\"edge25\" class=\"edge\"><title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M410.49,-183.825C426.702,-185.943 451.607,-190.192 472,-198 519.682,-216.255 569.921,-249.264 596.947,-268.331\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M410.445,-183.944C426.625,-186.149 451.507,-190.459 472,-198 518.961,-215.282 569.09,-246.043 596.372,-263.967\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"602.986,-272.633 595.457,-271.137 600.136,-270.602 597.285,-268.571 597.285,-268.571 597.285,-268.571 600.136,-270.602 599.113,-266.006 602.986,-272.633 602.986,-272.633\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"602.48,-268.016 594.905,-266.773 599.563,-266.082 596.646,-264.148 596.646,-264.148 596.646,-264.148 599.563,-266.082 598.387,-261.523 602.48,-268.016 602.48,-268.016\"/>\n",
"<text text-anchor=\"start\" x=\"490\" y=\"-227.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"490\" y=\"-225.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;1 -->\n", "<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge26\" class=\"edge\"><title>4&#45;&gt;1</title>\n", "<g id=\"edge26\" class=\"edge\"><title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M506.342,-301.215C503.871,-322.954 496.141,-358.439 472,-375 456.974,-385.308 449.145,-376.677 431,-375 351.317,-367.635 325.844,-377.242 254,-342 224.607,-327.582 219.126,-318.821 199,-293 188.235,-279.189 179.164,-261.627 172.885,-247.81\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M506.449,-296.022C504.091,-317.954 496.482,-354.141 472,-371 391.5,-426.437 342.22,-384.081 254,-342 224.451,-327.905 219.126,-318.821 199,-293 188.235,-279.189 179.164,-261.627 172.885,-247.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"170.033,-241.361 175.745,-246.488 171.449,-244.562 172.864,-247.763 172.864,-247.763 172.864,-247.763 171.449,-244.562 169.984,-249.037 170.033,-241.361 170.033,-241.361\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"170.033,-241.361 175.745,-246.488 171.449,-244.562 172.864,-247.763 172.864,-247.763 172.864,-247.763 171.449,-244.562 169.984,-249.037 170.033,-241.361 170.033,-241.361\"/>\n",
"<text text-anchor=\"start\" x=\"316.5\" y=\"-373.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"316.5\" y=\"-392.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;2 -->\n", "<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge27\" class=\"edge\"><title>4&#45;&gt;2</title>\n", "<g id=\"edge27\" class=\"edge\"><title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M491.55,-290.063C485.542,-292.396 478.571,-294.719 472,-296 402.638,-309.517 382.319,-309.734 313,-296 308.054,-295.02 302.898,-293.471 298.05,-291.754\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M491.961,-285.82C485.881,-288.543 478.755,-291.331 472,-293 403.39,-309.947 382.37,-308.503 313,-295 308.092,-294.045 302.954,-292.586 298.11,-290.987\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"291.227,-289.165 298.889,-288.703 294.499,-290.406 297.772,-291.648 297.772,-291.648 297.772,-291.648 294.499,-290.406 296.654,-294.593 291.227,-289.165 291.227,-289.165\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"291.284,-288.585 298.933,-287.938 294.586,-289.747 297.888,-290.909 297.888,-290.909 297.888,-290.909 294.586,-289.747 296.842,-293.88 291.284,-288.585 291.284,-288.585\"/>\n",
"<text text-anchor=\"start\" x=\"374\" y=\"-309.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"374\" y=\"-308.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;3 -->\n", "<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge28\" class=\"edge\"><title>4&#45;&gt;3</title>\n", "<g id=\"edge28\" class=\"edge\"><title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M502.475,-265.839C497.166,-250.421 487.401,-228.101 472,-214 467.641,-210.009 437.851,-198.43 416.257,-190.355\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M500.06,-261.823C492.171,-245.236 479.794,-220.915 472,-214 467.579,-210.078 437.805,-198.481 416.231,-190.383\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"409.576,-187.87 417.235,-187.358 412.857,-189.09 416.137,-190.31 416.137,-190.31 416.137,-190.31 412.857,-189.09 415.039,-193.263 409.576,-187.87 409.576,-187.87\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"409.557,-187.891 417.217,-187.389 412.836,-189.116 416.115,-190.34 416.115,-190.34 416.115,-190.34 412.836,-189.116 415.013,-193.291 409.557,-187.891 409.557,-187.891\"/>\n",
"<text text-anchor=\"start\" x=\"433\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"433\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;4 -->\n", "<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge29\" class=\"edge\"><title>4&#45;&gt;4</title>\n", "<g id=\"edge29\" class=\"edge\"><title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M499.267,-298.541C496.669,-308.909 499.746,-319 508.5,-319 515.202,-319 518.577,-313.085 518.624,-305.659\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M499.267,-293.541C496.669,-303.909 499.746,-314 508.5,-314 515.202,-314 518.577,-308.085 518.624,-300.659\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"517.733,-298.541 521.729,-305.095 518.168,-302.014 518.603,-305.487 518.603,-305.487 518.603,-305.487 518.168,-302.014 515.477,-305.879 517.733,-298.541 517.733,-298.541\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"517.733,-293.541 521.729,-300.095 518.168,-297.014 518.603,-300.487 518.603,-300.487 518.603,-300.487 518.168,-297.014 515.477,-300.879 517.733,-293.541 517.733,-293.541\"/>\n",
"<text text-anchor=\"start\" x=\"488\" y=\"-322.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"488\" y=\"-317.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;5 -->\n", "<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge30\" class=\"edge\"><title>4&#45;&gt;5</title>\n", "<g id=\"edge30\" class=\"edge\"><title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M521.004,-269.73C540.24,-247.541 578.977,-202.859 600.907,-177.563\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M521.415,-264.81C540.646,-243.522 578.577,-201.534 600.43,-177.342\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"605.578,-172.175 603.373,-179.527 603.286,-174.819 600.993,-177.464 600.993,-177.464 600.993,-177.464 603.286,-174.819 598.613,-175.4 605.578,-172.175 605.578,-172.175\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"605.358,-171.887 603.003,-179.193 603.012,-174.484 600.666,-177.082 600.666,-177.082 600.666,-177.082 603.012,-174.484 598.328,-174.97 605.358,-171.887 605.358,-171.887\"/>\n",
"<text text-anchor=\"start\" x=\"546.5\" y=\"-242.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"546.5\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;6 -->\n", "<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge31\" class=\"edge\"><title>4&#45;&gt;6</title>\n", "<g id=\"edge31\" class=\"edge\"><title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M526.772,-283C544.638,-283 572.686,-283 592.767,-283\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M526.772,-278C544.638,-278 572.686,-278 592.767,-278\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"599.771,-283 592.771,-286.15 596.271,-283 592.771,-283 592.771,-283 592.771,-283 596.271,-283 592.771,-279.85 599.771,-283 599.771,-283\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"599.771,-278 592.771,-281.15 596.271,-278 592.771,-278 592.771,-278 592.771,-278 596.271,-278 592.771,-274.85 599.771,-278 599.771,-278\"/>\n",
"<text text-anchor=\"start\" x=\"545\" y=\"-286.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"545\" y=\"-281.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 5&#45;&gt;5 -->\n", "<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge32\" class=\"edge\"><title>5&#45;&gt;5</title>\n", "<g id=\"edge32\" class=\"edge\"><title>5&#45;&gt;5</title>\n",
@ -1754,221 +1752,217 @@
"</g>\n", "</g>\n",
"<!-- 7 -->\n", "<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\"><title>7</title>\n", "<g id=\"node9\" class=\"node\"><title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"731\" cy=\"-176\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"731\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"731\" y=\"-172.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n", "<text text-anchor=\"middle\" x=\"731\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n", "</g>\n",
"<!-- 5&#45;&gt;7 -->\n", "<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge33\" class=\"edge\"><title>5&#45;&gt;7</title>\n", "<g id=\"edge33\" class=\"edge\"><title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M636.072,-158.841C651.587,-158.999 675.034,-159.994 695,-164 698.936,-164.79 703.037,-165.909 706.987,-167.15\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M636.061,-158.269C651.569,-157.936 675.011,-158.262 695,-162 698.946,-162.738 703.052,-163.831 707.004,-165.061\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"713.866,-169.47 706.226,-170.218 710.549,-168.352 707.233,-167.233 707.233,-167.233 707.233,-167.233 710.549,-168.352 708.239,-164.248 713.866,-169.47 713.866,-169.47\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"713.883,-167.378 706.244,-168.129 710.566,-166.261 707.249,-165.144 707.249,-165.144 707.249,-165.144 710.566,-166.261 708.255,-162.159 713.883,-167.378 713.883,-167.378\"/>\n",
"<text text-anchor=\"start\" x=\"656\" y=\"-167.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"656\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 8 -->\n", "<!-- 8 -->\n",
"<g id=\"node10\" class=\"node\"><title>8</title>\n", "<g id=\"node10\" class=\"node\"><title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"731\" cy=\"-270\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"731\" cy=\"-268\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"731\" y=\"-266.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n", "<text text-anchor=\"middle\" x=\"731\" y=\"-264.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
"</g>\n", "</g>\n",
"<!-- 5&#45;&gt;8 -->\n", "<!-- 5&#45;&gt;8 -->\n",
"<g id=\"edge34\" class=\"edge\"><title>5&#45;&gt;8</title>\n", "<g id=\"edge34\" class=\"edge\"><title>5&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M626.246,-175.292C632.397,-187.908 642.108,-205.314 654,-218 669.83,-234.887 692.063,-249.306 708.393,-258.646\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M626.703,-174.907C632.971,-186.813 642.624,-203.036 654,-215 670.048,-231.878 692.253,-246.617 708.517,-256.238\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"714.556,-262.091 706.909,-261.425 711.501,-260.383 708.446,-258.675 708.446,-258.675 708.446,-258.675 711.501,-260.383 709.983,-255.926 714.556,-262.091 714.556,-262.091\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"714.652,-259.792 707.016,-259.009 711.623,-258.038 708.595,-256.283 708.595,-256.283 708.595,-256.283 711.623,-258.038 710.174,-253.557 714.652,-259.792 714.652,-259.792\"/>\n",
"<text text-anchor=\"start\" x=\"654\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"654\" y=\"-250.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;6 -->\n", "<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge35\" class=\"edge\"><title>6&#45;&gt;6</title>\n", "<g id=\"edge35\" class=\"edge\"><title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M608.767,-298.541C606.169,-308.909 609.246,-319 618,-319 624.702,-319 628.077,-313.085 628.124,-305.659\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M608.767,-293.541C606.169,-303.909 609.246,-314 618,-314 624.702,-314 628.077,-308.085 628.124,-300.659\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"627.233,-298.541 631.229,-305.095 627.668,-302.014 628.103,-305.487 628.103,-305.487 628.103,-305.487 627.668,-302.014 624.977,-305.879 627.233,-298.541 627.233,-298.541\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"627.233,-293.541 631.229,-300.095 627.668,-297.014 628.103,-300.487 628.103,-300.487 628.103,-300.487 627.668,-297.014 624.977,-300.879 627.233,-293.541 627.233,-293.541\"/>\n",
"<text text-anchor=\"start\" x=\"599.5\" y=\"-322.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"599.5\" y=\"-317.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;7 -->\n", "<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge36\" class=\"edge\"><title>6&#45;&gt;7</title>\n", "<g id=\"edge36\" class=\"edge\"><title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M622.422,-265.333C626.786,-247.328 636.028,-219.738 654,-203 668.217,-189.759 689.349,-182.939 705.723,-179.47\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M622.587,-260.4C627.051,-242.801 636.342,-216.101 654,-200 668.298,-186.963 689.422,-180.42 705.773,-177.162\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"712.87,-178.101 706.587,-182.512 709.432,-178.76 705.995,-179.418 705.995,-179.418 705.995,-179.418 709.432,-178.76 705.402,-176.325 712.87,-178.101 712.87,-178.101\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"712.909,-175.884 706.573,-180.219 709.463,-176.501 706.018,-177.118 706.018,-177.118 706.018,-177.118 709.463,-176.501 705.463,-174.017 712.909,-175.884 712.909,-175.884\"/>\n",
"<text text-anchor=\"start\" x=\"656\" y=\"-206.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"656\" y=\"-203.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;8 -->\n", "<!-- 6&#45;&gt;8 -->\n",
"<g id=\"edge37\" class=\"edge\"><title>6&#45;&gt;8</title>\n", "<g id=\"edge37\" class=\"edge\"><title>6&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M636.344,-280.969C654.998,-278.784 684.797,-275.294 705.763,-272.839\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M636.344,-276.438C654.998,-274.757 684.797,-272.072 705.763,-270.183\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"712.778,-272.017 706.192,-275.96 709.302,-272.424 705.826,-272.831 705.826,-272.831 705.826,-272.831 709.302,-272.424 705.459,-269.703 712.778,-272.017 712.778,-272.017\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"712.778,-269.552 706.089,-273.317 709.292,-269.866 705.806,-270.18 705.806,-270.18 705.806,-270.18 709.292,-269.866 705.524,-267.042 712.778,-269.552 712.778,-269.552\"/>\n",
"<text text-anchor=\"start\" x=\"654\" y=\"-281.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"654\" y=\"-277.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 7&#45;&gt;7 -->\n", "<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge38\" class=\"edge\"><title>7&#45;&gt;7</title>\n", "<g id=\"edge38\" class=\"edge\"><title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M722.021,-191.916C719.679,-202.15 722.672,-212 731,-212 737.376,-212 740.625,-206.226 740.746,-198.927\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M722.021,-189.916C719.679,-200.15 722.672,-210 731,-210 737.376,-210 740.625,-204.226 740.746,-196.927\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"739.979,-191.916 743.872,-198.532 740.36,-195.395 740.741,-198.874 740.741,-198.874 740.741,-198.874 740.36,-195.395 737.61,-199.217 739.979,-191.916 739.979,-191.916\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"739.979,-189.916 743.872,-196.532 740.36,-193.395 740.741,-196.874 740.741,-196.874 740.741,-196.874 740.36,-193.395 737.61,-197.217 739.979,-189.916 739.979,-189.916\"/>\n",
"<text text-anchor=\"start\" x=\"712.5\" y=\"-215.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"712.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 9 -->\n", "<!-- 9 -->\n",
"<g id=\"node11\" class=\"node\"><title>9</title>\n", "<g id=\"node11\" class=\"node\"><title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"837.5\" cy=\"-321\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"837.5\" cy=\"-319\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"837.5\" y=\"-317.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n", "<text text-anchor=\"middle\" x=\"837.5\" y=\"-315.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
"</g>\n", "</g>\n",
"<!-- 7&#45;&gt;9 -->\n", "<!-- 7&#45;&gt;9 -->\n",
"<g id=\"edge39\" class=\"edge\"><title>7&#45;&gt;9</title>\n", "<g id=\"edge39\" class=\"edge\"><title>7&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M744.505,-187.995C759.187,-202.494 783.724,-228.064 801,-253 810.907,-267.299 819.947,-284.711 826.425,-298.335\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M742.755,-187.857C756.533,-205.716 781.02,-237.825 801,-266 808.357,-276.375 816.258,-288.107 822.734,-297.892\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"829.391,-304.689 823.576,-299.679 827.911,-301.518 826.43,-298.346 826.43,-298.346 826.43,-298.346 827.911,-301.518 829.284,-297.013 829.391,-304.689 829.391,-304.689\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"826.763,-304.006 820.281,-299.895 824.837,-301.084 822.911,-298.161 822.911,-298.161 822.911,-298.161 824.837,-301.084 825.541,-296.428 826.763,-304.006 826.763,-304.006\"/>\n",
"<text text-anchor=\"start\" x=\"767\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"767\" y=\"-269.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"776\" y=\"-256.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 10 -->\n", "<!-- 10 -->\n",
"<g id=\"node12\" class=\"node\"><title>10</title>\n", "<g id=\"node12\" class=\"node\"><title>10</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"950.448\" cy=\"-226\" rx=\"21.3963\" ry=\"21.3963\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"950.448\" cy=\"-224\" rx=\"21.3963\" ry=\"21.3963\"/>\n",
"<text text-anchor=\"middle\" x=\"950.448\" y=\"-222.3\" font-family=\"Lato\" font-size=\"14.00\">10</text>\n", "<text text-anchor=\"middle\" x=\"950.448\" y=\"-220.3\" font-family=\"Lato\" font-size=\"14.00\">10</text>\n",
"</g>\n", "</g>\n",
"<!-- 7&#45;&gt;10 -->\n", "<!-- 7&#45;&gt;10 -->\n",
"<g id=\"edge40\" class=\"edge\"><title>7&#45;&gt;10</title>\n", "<g id=\"edge40\" class=\"edge\"><title>7&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M749.167,-173.628C773.4,-170.841 818.828,-167.686 856,-177 881.638,-183.424 908.06,-198.171 926.239,-209.819\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M748.986,-175.353C773.003,-177.455 818.177,-182.108 856,-190 880.921,-195.2 887.178,-197.021 911,-206 915.448,-207.677 920.096,-209.651 924.56,-211.667\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"932.546,-213.95 924.964,-212.75 929.618,-212.032 926.69,-210.115 926.69,-210.115 926.69,-210.115 929.618,-212.032 928.416,-207.48 932.546,-213.95 932.546,-213.95\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"930.924,-214.62 923.248,-214.531 927.749,-213.147 924.574,-211.674 924.574,-211.674 924.574,-211.674 927.749,-213.147 925.9,-208.816 930.924,-214.62 930.924,-214.62\"/>\n",
"<text text-anchor=\"start\" x=\"819\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"819\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"829.5\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 8&#45;&gt;8 -->\n", "<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge41\" class=\"edge\"><title>8&#45;&gt;8</title>\n", "<g id=\"edge41\" class=\"edge\"><title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M722.021,-285.916C719.679,-296.15 722.672,-306 731,-306 737.376,-306 740.625,-300.226 740.746,-292.927\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M722.021,-283.916C719.679,-294.15 722.672,-304 731,-304 737.376,-304 740.625,-298.226 740.746,-290.927\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"739.979,-285.916 743.872,-292.532 740.36,-289.395 740.741,-292.874 740.741,-292.874 740.741,-292.874 740.36,-289.395 737.61,-293.217 739.979,-285.916 739.979,-285.916\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"739.979,-283.916 743.872,-290.532 740.36,-287.395 740.741,-290.874 740.741,-290.874 740.741,-290.874 740.36,-287.395 737.61,-291.217 739.979,-283.916 739.979,-283.916\"/>\n",
"<text text-anchor=\"start\" x=\"710.5\" y=\"-309.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"710.5\" y=\"-307.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 8&#45;&gt;9 -->\n", "<!-- 8&#45;&gt;9 -->\n",
"<g id=\"edge42\" class=\"edge\"><title>8&#45;&gt;9</title>\n", "<g id=\"edge42\" class=\"edge\"><title>8&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M747.419,-277.525C765.17,-286.188 794.46,-300.483 814.577,-310.301\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M747.419,-275.525C765.17,-284.188 794.46,-298.483 814.577,-308.301\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"821.017,-313.444 813.345,-313.205 817.872,-311.909 814.727,-310.374 814.727,-310.374 814.727,-310.374 817.872,-311.909 816.108,-307.543 821.017,-313.444 821.017,-313.444\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"821.017,-311.444 813.345,-311.205 817.872,-309.909 814.727,-308.374 814.727,-308.374 814.727,-308.374 817.872,-309.909 816.108,-305.543 821.017,-311.444 821.017,-311.444\"/>\n",
"<text text-anchor=\"start\" x=\"767\" y=\"-321.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"767\" y=\"-304.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"776\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 8&#45;&gt;10 -->\n", "<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge43\" class=\"edge\"><title>8&#45;&gt;10</title>\n", "<g id=\"edge43\" class=\"edge\"><title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M740.078,-254.24C746.053,-244.436 755.193,-232.653 767,-227 817.622,-202.762 885.572,-211.597 922.612,-219.334\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M740.078,-252.24C746.053,-242.436 755.193,-230.653 767,-225 817.622,-200.762 885.572,-209.597 922.612,-217.334\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"929.594,-220.857 922.084,-222.443 926.174,-220.111 922.755,-219.365 922.755,-219.365 922.755,-219.365 926.174,-220.111 923.426,-216.288 929.594,-220.857 929.594,-220.857\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"929.594,-218.857 922.084,-220.443 926.174,-218.111 922.755,-217.365 922.755,-217.365 922.755,-217.365 926.174,-218.111 923.426,-214.288 929.594,-218.857 929.594,-218.857\"/>\n",
"<text text-anchor=\"start\" x=\"819\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"819\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"829.5\" y=\"-215.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 9&#45;&gt;9 -->\n", "<!-- 9&#45;&gt;9 -->\n",
"<g id=\"edge44\" class=\"edge\"><title>9&#45;&gt;9</title>\n", "<g id=\"edge44\" class=\"edge\"><title>9&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M828.521,-336.916C826.179,-347.15 829.172,-357 837.5,-357 843.876,-357 847.125,-351.226 847.246,-343.927\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M828.521,-334.916C826.179,-345.15 829.172,-355 837.5,-355 843.876,-355 847.125,-349.226 847.246,-341.927\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"846.479,-336.916 850.372,-343.532 846.86,-340.395 847.241,-343.874 847.241,-343.874 847.241,-343.874 846.86,-340.395 844.11,-344.217 846.479,-336.916 846.479,-336.916\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"846.479,-334.916 850.372,-341.532 846.86,-338.395 847.241,-341.874 847.241,-341.874 847.241,-341.874 846.86,-338.395 844.11,-342.217 846.479,-334.916 846.479,-334.916\"/>\n",
"<text text-anchor=\"start\" x=\"820.5\" y=\"-375.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"820.5\" y=\"-373.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"829.5\" y=\"-360.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"829.5\" y=\"-358.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 9&#45;&gt;10 -->\n", "<!-- 9&#45;&gt;10 -->\n",
"<g id=\"edge45\" class=\"edge\"><title>9&#45;&gt;10</title>\n", "<g id=\"edge45\" class=\"edge\"><title>9&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M842.449,-303.446C847.146,-286.574 856.635,-261.552 874,-247 887.255,-235.893 905.962,-230.639 921.432,-228.164\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M842.449,-301.446C847.146,-284.574 856.635,-259.552 874,-245 887.255,-233.893 905.962,-228.639 921.432,-226.164\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"928.729,-227.158 922.224,-231.234 925.262,-227.636 921.794,-228.114 921.794,-228.114 921.794,-228.114 925.262,-227.636 921.364,-224.993 928.729,-227.158 928.729,-227.158\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"928.729,-225.158 922.224,-229.234 925.262,-225.636 921.794,-226.114 921.794,-226.114 921.794,-226.114 925.262,-225.636 921.364,-222.993 928.729,-225.158 928.729,-225.158\"/>\n",
"<text text-anchor=\"start\" x=\"874\" y=\"-265.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"874\" y=\"-263.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"884.5\" y=\"-250.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"884.5\" y=\"-248.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 11 -->\n", "<!-- 11 -->\n",
"<g id=\"node13\" class=\"node\"><title>11</title>\n", "<g id=\"node13\" class=\"node\"><title>11</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1190.24\" cy=\"-320\" rx=\"21.3963\" ry=\"21.3963\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1190.24\" cy=\"-318\" rx=\"21.3963\" ry=\"21.3963\"/>\n",
"<text text-anchor=\"middle\" x=\"1190.24\" y=\"-316.3\" font-family=\"Lato\" font-size=\"14.00\">11</text>\n", "<text text-anchor=\"middle\" x=\"1190.24\" y=\"-314.3\" font-family=\"Lato\" font-size=\"14.00\">11</text>\n",
"</g>\n", "</g>\n",
"<!-- 9&#45;&gt;11 -->\n", "<!-- 9&#45;&gt;11 -->\n",
"<g id=\"edge46\" class=\"edge\"><title>9&#45;&gt;11</title>\n", "<g id=\"edge46\" class=\"edge\"><title>9&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M839.947,-339.074C843.366,-376.939 853.261,-462.691 874,-482 925.334,-529.795 960.93,-503.936 1030.9,-499 1084.58,-495.213 1111.02,-518.263 1150.79,-482 1170.19,-464.316 1181.41,-390.203 1186.3,-348.617\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M839.947,-337.074C843.366,-374.939 853.261,-460.691 874,-480 925.334,-527.795 960.93,-501.936 1030.9,-497 1084.58,-493.213 1111.02,-516.263 1150.79,-480 1170.19,-462.316 1181.41,-388.203 1186.3,-346.617\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1187.11,-341.497 1189.45,-348.809 1186.72,-344.975 1186.32,-348.452 1186.32,-348.452 1186.32,-348.452 1186.72,-344.975 1183.19,-348.095 1187.11,-341.497 1187.11,-341.497\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"1187.11,-339.497 1189.45,-346.809 1186.72,-342.975 1186.32,-346.452 1186.32,-346.452 1186.32,-346.452 1186.72,-342.975 1183.19,-346.095 1187.11,-339.497 1187.11,-339.497\"/>\n",
"<text text-anchor=\"start\" x=\"991.896\" y=\"-522.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"991.896\" y=\"-520.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1002.4\" y=\"-507.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1002.4\" y=\"-505.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 12 -->\n", "<!-- 12 -->\n",
"<g id=\"node14\" class=\"node\"><title>12</title>\n", "<g id=\"node14\" class=\"node\"><title>12</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1070.34\" cy=\"-321\" rx=\"21.3963\" ry=\"21.3963\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1070.34\" cy=\"-319\" rx=\"21.3963\" ry=\"21.3963\"/>\n",
"<text text-anchor=\"middle\" x=\"1070.34\" y=\"-317.3\" font-family=\"Lato\" font-size=\"14.00\">12</text>\n", "<text text-anchor=\"middle\" x=\"1070.34\" y=\"-315.3\" font-family=\"Lato\" font-size=\"14.00\">12</text>\n",
"</g>\n", "</g>\n",
"<!-- 9&#45;&gt;12 -->\n", "<!-- 9&#45;&gt;12 -->\n",
"<g id=\"edge47\" class=\"edge\"><title>9&#45;&gt;12</title>\n", "<g id=\"edge47\" class=\"edge\"><title>9&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M854.953,-326.076C860.894,-327.667 867.691,-329.213 874,-330 943.195,-338.635 961.625,-337.999 1030.9,-330 1034.73,-329.558 1038.73,-328.875 1042.65,-328.079\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M854.953,-324.076C860.894,-325.667 867.691,-327.213 874,-328 943.195,-336.635 961.625,-335.999 1030.9,-328 1034.73,-327.558 1038.73,-326.875 1042.65,-326.079\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1049.54,-326.552 1043.39,-331.141 1046.13,-327.309 1042.71,-328.066 1042.71,-328.066 1042.71,-328.066 1046.13,-327.309 1042.03,-324.99 1049.54,-326.552 1049.54,-326.552\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"1049.54,-324.552 1043.39,-329.141 1046.13,-325.309 1042.71,-326.066 1042.71,-326.066 1042.71,-326.066 1046.13,-325.309 1042.03,-322.99 1049.54,-324.552 1049.54,-324.552\"/>\n",
"<text text-anchor=\"start\" x=\"929.948\" y=\"-354.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"929.948\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"942.448\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"942.448\" y=\"-337.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 10&#45;&gt;9 -->\n", "<!-- 10&#45;&gt;9 -->\n",
"<g id=\"edge48\" class=\"edge\"><title>10&#45;&gt;9</title>\n", "<g id=\"edge48\" class=\"edge\"><title>10&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M938.445,-243.876C931.44,-254.332 921.692,-267.332 911,-277 908.786,-279.002 880.266,-296.135 859.668,-308.418\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M938.445,-241.876C931.44,-252.332 921.692,-265.332 911,-275 908.786,-277.002 880.266,-294.135 859.668,-306.418\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"853.568,-312.052 857.97,-305.763 856.575,-310.261 859.582,-308.47 859.582,-308.47 859.582,-308.47 856.575,-310.261 861.194,-311.176 853.568,-312.052 853.568,-312.052\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"853.568,-310.052 857.97,-303.763 856.575,-308.261 859.582,-306.47 859.582,-306.47 859.582,-306.47 856.575,-308.261 861.194,-309.176 853.568,-310.052 853.568,-310.052\"/>\n",
"<text text-anchor=\"start\" x=\"875.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"875.5\" y=\"-314.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"884.5\" y=\"-301.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"884.5\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 10&#45;&gt;10 -->\n", "<!-- 10&#45;&gt;10 -->\n",
"<g id=\"edge49\" class=\"edge\"><title>10&#45;&gt;10</title>\n", "<g id=\"edge49\" class=\"edge\"><title>10&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M940.451,-245.077C938.584,-255.682 941.917,-265.448 950.448,-265.448 956.98,-265.448 960.464,-259.724 960.901,-252.281\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M940.451,-243.077C938.584,-253.682 941.917,-263.448 950.448,-263.448 956.98,-263.448 960.464,-257.724 960.901,-250.281\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"960.446,-245.077 964.031,-251.865 960.667,-248.57 960.887,-252.063 960.887,-252.063 960.887,-252.063 960.667,-248.57 957.744,-252.262 960.446,-245.077 960.446,-245.077\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"960.446,-243.077 964.031,-249.865 960.667,-246.57 960.887,-250.063 960.887,-250.063 960.887,-250.063 960.667,-246.57 957.744,-250.262 960.446,-243.077 960.446,-243.077\"/>\n",
"<text text-anchor=\"start\" x=\"931.948\" y=\"-284.248\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"931.948\" y=\"-282.248\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"942.448\" y=\"-269.248\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"942.448\" y=\"-267.248\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 10&#45;&gt;11 -->\n", "<!-- 10&#45;&gt;11 -->\n",
"<g id=\"edge50\" class=\"edge\"><title>10&#45;&gt;11</title>\n", "<g id=\"edge50\" class=\"edge\"><title>10&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M968.572,-213.756C975.193,-209.079 982.858,-203.735 989.896,-199 1030,-172.02 1045.42,-147.36 1091.79,-161 1121.71,-169.802 1131.84,-174.229 1150.79,-199 1171.73,-226.362 1181.43,-265.419 1185.81,-291.689\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M968.572,-211.756C975.193,-207.079 982.858,-201.735 989.896,-197 1030,-170.02 1045.42,-145.36 1091.79,-159 1121.71,-167.802 1131.84,-172.229 1150.79,-197 1171.73,-224.362 1181.43,-263.419 1185.81,-289.689\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1186.91,-298.74 1182.72,-292.309 1186.37,-295.282 1185.84,-291.823 1185.84,-291.823 1185.84,-291.823 1186.37,-295.282 1188.95,-291.338 1186.91,-298.74 1186.91,-298.74\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"1186.91,-296.74 1182.72,-290.309 1186.37,-293.282 1185.84,-289.823 1185.84,-289.823 1185.84,-289.823 1186.37,-293.282 1188.95,-289.338 1186.91,-296.74 1186.91,-296.74\"/>\n",
"<text text-anchor=\"start\" x=\"1051.84\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"1051.84\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1062.34\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1062.34\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 10&#45;&gt;12 -->\n", "<!-- 10&#45;&gt;12 -->\n",
"<g id=\"edge51\" class=\"edge\"><title>10&#45;&gt;12</title>\n", "<g id=\"edge51\" class=\"edge\"><title>10&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M962.313,-244.032C969.27,-254.542 979.014,-267.546 989.896,-277 991.093,-278.04 1022.16,-295.149 1045.08,-307.72\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M962.313,-242.032C969.27,-252.542 979.014,-265.546 989.896,-275 991.093,-276.04 1022.16,-293.149 1045.08,-305.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1051.3,-311.128 1043.65,-310.526 1048.23,-309.446 1045.16,-307.763 1045.16,-307.763 1045.16,-307.763 1048.23,-309.446 1046.68,-305.001 1051.3,-311.128 1051.3,-311.128\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"1051.3,-309.128 1043.65,-308.526 1048.23,-307.446 1045.16,-305.763 1045.16,-305.763 1045.16,-305.763 1048.23,-307.446 1046.68,-303.001 1051.3,-309.128 1051.3,-309.128\"/>\n",
"<text text-anchor=\"start\" x=\"989.896\" y=\"-317.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"989.896\" y=\"-315.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1002.4\" y=\"-302.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1002.4\" y=\"-300.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 11&#45;&gt;9 -->\n", "<!-- 11&#45;&gt;9 -->\n",
"<g id=\"edge52\" class=\"edge\"><title>11&#45;&gt;9</title>\n", "<g id=\"edge52\" class=\"edge\"><title>11&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1175.79,-336.339C1158.66,-355.709 1127.01,-386.889 1091.79,-399 1047.72,-414.154 960.01,-416.671 929,-407 894.956,-396.383 867.29,-363.89 851.866,-342.025\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1175.79,-334.339C1158.66,-353.709 1127.01,-384.889 1091.79,-397 1047.72,-412.154 960.01,-414.671 929,-405 894.956,-394.383 867.29,-361.89 851.866,-340.025\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"847.845,-336.167 854.403,-340.156 849.826,-339.053 851.806,-341.939 851.806,-341.939 851.806,-341.939 849.826,-339.053 849.209,-343.721 847.845,-336.167 847.845,-336.167\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"847.845,-334.167 854.403,-338.156 849.826,-337.053 851.806,-339.939 851.806,-339.939 851.806,-339.939 849.826,-337.053 849.209,-341.721 847.845,-334.167 847.845,-334.167\"/>\n",
"<text text-anchor=\"start\" x=\"993.396\" y=\"-430.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"993.396\" y=\"-428.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"1002.4\" y=\"-415.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1002.4\" y=\"-413.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 11&#45;&gt;10 -->\n", "<!-- 11&#45;&gt;10 -->\n",
"<g id=\"edge53\" class=\"edge\"><title>11&#45;&gt;10</title>\n", "<g id=\"edge53\" class=\"edge\"><title>11&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1174.22,-305.599C1167.38,-299.452 1159,-292.454 1150.79,-287 1101.17,-254.014 1088.8,-241.065 1030.9,-227 1014.08,-222.915 994.661,-222.594 979.233,-223.329\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1174.22,-303.599C1167.38,-297.452 1159,-290.454 1150.79,-285 1101.17,-252.014 1088.8,-239.065 1030.9,-225 1014.08,-220.915 994.661,-220.594 979.233,-221.329\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"972.008,-223.762 978.807,-220.198 975.502,-223.552 978.996,-223.343 978.996,-223.343 978.996,-223.343 975.502,-223.552 979.184,-226.487 972.008,-223.762 972.008,-223.762\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"972.008,-221.762 978.807,-218.198 975.502,-221.552 978.996,-221.343 978.996,-221.343 978.996,-221.343 975.502,-221.552 979.184,-224.487 972.008,-221.762 972.008,-221.762\"/>\n",
"<text text-anchor=\"start\" x=\"1051.84\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"1051.84\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"1062.34\" y=\"-251.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1062.34\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 11&#45;&gt;11 -->\n", "<!-- 11&#45;&gt;11 -->\n",
"<g id=\"edge54\" class=\"edge\"><title>11&#45;&gt;11</title>\n", "<g id=\"edge54\" class=\"edge\"><title>11&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1179.89,-339.077C1177.95,-349.682 1181.4,-359.448 1190.24,-359.448 1197.01,-359.448 1200.61,-353.724 1201.07,-346.281\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1179.89,-337.077C1177.95,-347.682 1181.4,-357.448 1190.24,-357.448 1197.01,-357.448 1200.61,-351.724 1201.07,-344.281\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1200.6,-339.077 1204.2,-345.857 1200.82,-342.57 1201.05,-346.062 1201.05,-346.062 1201.05,-346.062 1200.82,-342.57 1197.91,-346.268 1200.6,-339.077 1200.6,-339.077\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"1200.6,-337.077 1204.2,-343.857 1200.82,-340.57 1201.05,-344.062 1201.05,-344.062 1201.05,-344.062 1200.82,-340.57 1197.91,-344.268 1200.6,-337.077 1200.6,-337.077\"/>\n",
"<text text-anchor=\"start\" x=\"1171.74\" y=\"-378.248\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"1171.74\" y=\"-376.248\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1182.24\" y=\"-363.248\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1182.24\" y=\"-361.248\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 11&#45;&gt;12 -->\n", "<!-- 11&#45;&gt;12 -->\n",
"<g id=\"edge55\" class=\"edge\"><title>11&#45;&gt;12</title>\n", "<g id=\"edge55\" class=\"edge\"><title>11&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1173.07,-306.515C1166.57,-301.921 1158.73,-297.354 1150.79,-295 1133.32,-289.82 1127.22,-289.662 1109.79,-295 1103.92,-296.798 1098.14,-299.829 1092.92,-303.2\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1173.07,-304.515C1166.57,-299.921 1158.73,-295.354 1150.79,-293 1133.32,-287.82 1127.22,-287.662 1109.79,-293 1103.92,-294.798 1098.14,-297.829 1092.92,-301.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1087.06,-307.259 1091.02,-300.68 1089.94,-305.264 1092.82,-303.269 1092.82,-303.269 1092.82,-303.269 1089.94,-305.264 1094.61,-305.857 1087.06,-307.259 1087.06,-307.259\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"1087.06,-305.259 1091.02,-298.68 1089.94,-303.264 1092.82,-301.269 1092.82,-301.269 1092.82,-301.269 1089.94,-303.264 1094.61,-303.857 1087.06,-305.259 1087.06,-305.259\"/>\n",
"<text text-anchor=\"start\" x=\"1109.79\" y=\"-313.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"1109.79\" y=\"-311.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1122.29\" y=\"-298.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1122.29\" y=\"-296.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 12&#45;&gt;9 -->\n", "<!-- 12&#45;&gt;9 -->\n",
"<g id=\"edge56\" class=\"edge\"><title>12&#45;&gt;9</title>\n", "<g id=\"edge56\" class=\"edge\"><title>12&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1052.16,-333.174C1045.66,-337.507 1038.09,-342.239 1030.9,-346 989.658,-367.544 974.545,-379.504 929,-370 902.519,-364.474 875.705,-348.345 858.215,-336.087\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1052.16,-331.174C1045.66,-335.507 1038.09,-340.239 1030.9,-344 989.658,-365.544 974.545,-377.504 929,-368 902.519,-362.474 875.705,-346.345 858.215,-334.087\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"852.211,-331.773 859.734,-333.3 855.054,-333.816 857.896,-335.858 857.896,-335.858 857.896,-335.858 855.054,-333.816 856.058,-338.416 852.211,-331.773 852.211,-331.773\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"852.211,-329.773 859.734,-331.3 855.054,-331.816 857.896,-333.858 857.896,-333.858 857.896,-333.858 855.054,-331.816 856.058,-336.416 852.211,-329.773 852.211,-329.773\"/>\n",
"<text text-anchor=\"start\" x=\"933.448\" y=\"-391.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"933.448\" y=\"-389.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"942.448\" y=\"-376.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"942.448\" y=\"-374.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 12&#45;&gt;10 -->\n", "<!-- 12&#45;&gt;10 -->\n",
"<g id=\"edge57\" class=\"edge\"><title>12&#45;&gt;10</title>\n", "<g id=\"edge57\" class=\"edge\"><title>12&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1064.53,-300.174C1059.29,-282.284 1049.12,-257.195 1030.9,-243 1016.33,-231.649 995.874,-227.463 979.37,-226.081\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1064.53,-298.174C1059.29,-280.284 1049.12,-255.195 1030.9,-241 1016.33,-229.649 995.874,-225.463 979.37,-224.081\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"972.101,-225.628 979.283,-222.919 975.594,-225.845 979.087,-226.063 979.087,-226.063 979.087,-226.063 975.594,-225.845 978.891,-229.207 972.101,-225.628 972.101,-225.628\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"972.101,-223.628 979.283,-220.919 975.594,-223.845 979.087,-224.063 979.087,-224.063 979.087,-224.063 975.594,-223.845 978.891,-227.207 972.101,-223.628 972.101,-223.628\"/>\n",
"<text text-anchor=\"start\" x=\"991.896\" y=\"-261.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"991.896\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"1002.4\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1002.4\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 12&#45;&gt;11 -->\n", "<!-- 12&#45;&gt;11 -->\n",
"<g id=\"edge58\" class=\"edge\"><title>12&#45;&gt;11</title>\n", "<g id=\"edge58\" class=\"edge\"><title>12&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1091.67,-323.512C1097.51,-324.126 1103.89,-324.694 1109.79,-325 1127.99,-325.944 1132.61,-326.177 1150.79,-325 1154.39,-324.767 1158.17,-324.412 1161.9,-323.996\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1091.67,-321.512C1097.51,-322.126 1103.89,-322.694 1109.79,-323 1127.99,-323.944 1132.61,-324.177 1150.79,-323 1154.39,-322.767 1158.17,-322.412 1161.9,-321.996\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1168.94,-323.139 1162.37,-327.113 1165.46,-323.563 1161.99,-323.986 1161.99,-323.986 1161.99,-323.986 1165.46,-323.563 1161.61,-320.859 1168.94,-323.139 1168.94,-323.139\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"1168.94,-321.139 1162.37,-325.113 1165.46,-321.563 1161.99,-321.986 1161.99,-321.986 1161.99,-321.986 1165.46,-321.563 1161.61,-318.859 1168.94,-321.139 1168.94,-321.139\"/>\n",
"<text text-anchor=\"start\" x=\"1111.79\" y=\"-343.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"1111.79\" y=\"-341.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1122.29\" y=\"-328.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1122.29\" y=\"-326.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n", "</g>\n",
"<!-- 12&#45;&gt;12 -->\n", "<!-- 12&#45;&gt;12 -->\n",
"<g id=\"edge59\" class=\"edge\"><title>12&#45;&gt;12</title>\n", "<g id=\"edge59\" class=\"edge\"><title>12&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1059.99,-340.077C1058.06,-350.682 1061.51,-360.448 1070.34,-360.448 1077.11,-360.448 1080.72,-354.724 1081.17,-347.281\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1059.99,-338.077C1058.06,-348.682 1061.51,-358.448 1070.34,-358.448 1077.11,-358.448 1080.72,-352.724 1081.17,-345.281\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1080.7,-340.077 1084.3,-346.857 1080.93,-343.57 1081.16,-347.062 1081.16,-347.062 1081.16,-347.062 1080.93,-343.57 1078.01,-347.268 1080.7,-340.077 1080.7,-340.077\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"1080.7,-338.077 1084.3,-344.857 1080.93,-341.57 1081.16,-345.062 1081.16,-345.062 1081.16,-345.062 1080.93,-341.57 1078.01,-345.268 1080.7,-338.077 1080.7,-338.077\"/>\n",
"<text text-anchor=\"start\" x=\"1049.84\" y=\"-379.248\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"1049.84\" y=\"-377.248\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"1062.34\" y=\"-364.248\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n", "<text text-anchor=\"start\" x=\"1062.34\" y=\"-362.248\" 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 0x7f2998a8bde0> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6d20> >"
] ]
} }
], ],
@ -2171,7 +2165,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a8bfc0> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe66f0> >"
] ]
} }
], ],
@ -2327,7 +2321,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a8bea0> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6e70> >"
] ]
} }
], ],
@ -2397,7 +2391,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2998a281e0> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e4afe6660> >"
] ]
} }
], ],

View file

@ -43,7 +43,7 @@
"source": [ "source": [
"# Reading automata output from processes\n", "# Reading automata output from processes\n",
"\n", "\n",
"If an argument of `spot.automata` ends with `|`, then it is interpreted as a shell command that outputs and automaton." "If an argument of `spot.automata` ends with `|`, then it is interpreted as a shell command that outputs one automaton or more."
] ]
}, },
{ {
@ -110,7 +110,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faffcc25750> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f3fa02ed390> >"
] ]
}, },
{ {
@ -123,46 +123,45 @@
"<!-- 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=\"179pt\" height=\"85pt\"\n", "<svg width=\"171pt\" height=\"85pt\"\n",
" viewBox=\"0.00 0.00 179.00 85.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 171.00 85.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 81)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 81)\">\n",
"<title>G</title>\n", "<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-81 175,-81 175,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-81 167,-81 167,4 -4,4\"/>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\"><title>0</title>\n", "<g id=\"node2\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"60\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"60\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n", "<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"60\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n", "</g>\n",
"<!-- I&#45;&gt;0 -->\n", "<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;0</title>\n", "<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.16638,-22C2.84121,-22 16.884,-22 30.7112,-22\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-22C2.79388,-22 17.1543,-22 30.6317,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.8555,-22 30.8556,-25.1501 34.3555,-22 30.8555,-22.0001 30.8555,-22.0001 30.8555,-22.0001 34.3555,-22 30.8555,-18.8501 37.8555,-22 37.8555,-22\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-22 30.9419,-25.1501 34.4419,-22 30.9419,-22.0001 30.9419,-22.0001 30.9419,-22.0001 34.4419,-22 30.9418,-18.8501 37.9419,-22 37.9419,-22\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\"><title>1</title>\n", "<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"149\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"149\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n", "<ellipse fill=\"none\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;1 -->\n", "<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;1</title>\n", "<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M82.0603,-22C93.3045,-22 107.303,-22 119.507,-22\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M74.1977,-22C85.0734,-22 99.3874,-22 111.887,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"126.832,-22 119.832,-25.1501 123.332,-22 119.832,-22.0001 119.832,-22.0001 119.832,-22.0001 123.332,-22 119.832,-18.8501 126.832,-22 126.832,-22\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"118.997,-22 111.997,-25.1501 115.497,-22 111.997,-22.0001 111.997,-22.0001 111.997,-22.0001 115.497,-22 111.997,-18.8501 118.997,-22 118.997,-22\"/>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;1 -->\n", "<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>1&#45;&gt;1</title>\n", "<g id=\"edge3\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.994,-42.5808C139.886,-52.8447 142.555,-62 149,-62 153.834,-62 156.544,-56.8502 157.129,-49.9451\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M132.994,-42.5808C131.886,-52.8447 134.555,-62 141,-62 145.834,-62 148.544,-56.8502 149.129,-49.9451\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"157.006,-42.5808 160.273,-49.5273 157.065,-46.0803 157.123,-49.5798 157.123,-49.5798 157.123,-49.5798 157.065,-46.0803 153.973,-49.6324 157.006,-42.5808 157.006,-42.5808\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"149.006,-42.5808 152.273,-49.5273 149.065,-46.0803 149.123,-49.5798 149.123,-49.5798 149.123,-49.5798 149.065,-46.0803 145.973,-49.6324 149.006,-42.5808 149.006,-42.5808\"/>\n",
"<text text-anchor=\"middle\" x=\"149\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"141\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</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 0x7faffcc257e0> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f3fa02ed420> >"
] ]
}, },
{ {
@ -208,7 +207,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faffcc257b0> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f3fa02ed3f0> >"
] ]
}, },
{ {
@ -265,7 +264,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faffcc25750> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f3fa02ed390> >"
] ]
} }
], ],
@ -342,7 +341,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faffcc25f60> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f3fa02ed480> >"
] ]
} }
], ],
@ -374,8 +373,8 @@
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)", "\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-4-765c7cc6937f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mspot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mautomaton\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'non-existing-command|'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32m<ipython-input-4-765c7cc6937f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mspot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mautomaton\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'non-existing-command|'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomaton\u001b[1;34m(filename)\u001b[0m\n\u001b[0;32m 216\u001b[0m See `spot.automata()` for a list of supported formats.\"\"\"\n\u001b[0;32m 217\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 218\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 219\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 220\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Failed to read automaton from {}\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomaton\u001b[1;34m(filename)\u001b[0m\n\u001b[0;32m 369\u001b[0m See `spot.automata` for a list of supported formats.\"\"\"\n\u001b[0;32m 370\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 371\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 372\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 373\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Failed to read automaton from {}\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomata\u001b[1;34m(*filenames)\u001b[0m\n\u001b[0;32m 208\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 209\u001b[0m raise RuntimeError(\"Command {} exited with exit status {}\"\n\u001b[1;32m--> 210\u001b[1;33m .format(filename[:-1], ret))\n\u001b[0m\u001b[0;32m 211\u001b[0m \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomata\u001b[1;34m(*filenames)\u001b[0m\n\u001b[0;32m 360\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 361\u001b[0m raise RuntimeError(\"Command {} exited with exit status {}\"\n\u001b[1;32m--> 362\u001b[1;33m .format(filename[:-1], ret))\n\u001b[0m\u001b[0;32m 363\u001b[0m \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 364\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mRuntimeError\u001b[0m: Command non-existing-command exited with exit status 127" "\u001b[1;31mRuntimeError\u001b[0m: Command non-existing-command exited with exit status 127"
] ]
} }
@ -446,7 +445,7 @@
"</svg>\n" "</svg>\n"
], ],
"text": [ "text": [
"<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faffcc25720> >" "<spot_impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f3fa02edea0> >"
] ]
}, },
{ {
@ -457,7 +456,7 @@
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)", "\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-5-21a24ff75c32>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mspot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mautomata\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"ltl2tgba -H 'a U b'|\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'ltl2tgba -f \"syntax U U error\"|'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mdisplay\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m<ipython-input-5-21a24ff75c32>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mspot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mautomata\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"ltl2tgba -H 'a U b'|\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'ltl2tgba -f \"syntax U U error\"|'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mdisplay\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomata\u001b[1;34m(*filenames)\u001b[0m\n\u001b[0;32m 208\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 209\u001b[0m raise RuntimeError(\"Command {} exited with exit status {}\"\n\u001b[1;32m--> 210\u001b[1;33m .format(filename[:-1], ret))\n\u001b[0m\u001b[0;32m 211\u001b[0m \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomata\u001b[1;34m(*filenames)\u001b[0m\n\u001b[0;32m 360\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 361\u001b[0m raise RuntimeError(\"Command {} exited with exit status {}\"\n\u001b[1;32m--> 362\u001b[1;33m .format(filename[:-1], ret))\n\u001b[0m\u001b[0;32m 363\u001b[0m \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 364\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mRuntimeError\u001b[0m: Command ltl2tgba -f \"syntax U U error\" exited with exit status 2" "\u001b[1;31mRuntimeError\u001b[0m: Command ltl2tgba -f \"syntax U U error\" exited with exit status 2"
] ]
} }
@ -488,8 +487,8 @@
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)", "\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-6-029e1e5901f7>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mspot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mautomaton\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'false|'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32m<ipython-input-6-029e1e5901f7>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mspot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mautomaton\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'false|'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomaton\u001b[1;34m(filename)\u001b[0m\n\u001b[0;32m 216\u001b[0m See `spot.automata()` for a list of supported formats.\"\"\"\n\u001b[0;32m 217\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 218\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 219\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 220\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Failed to read automaton from {}\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomaton\u001b[1;34m(filename)\u001b[0m\n\u001b[0;32m 369\u001b[0m See `spot.automata` for a list of supported formats.\"\"\"\n\u001b[0;32m 370\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 371\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 372\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 373\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Failed to read automaton from {}\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomata\u001b[1;34m(*filenames)\u001b[0m\n\u001b[0;32m 208\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 209\u001b[0m raise RuntimeError(\"Command {} exited with exit status {}\"\n\u001b[1;32m--> 210\u001b[1;33m .format(filename[:-1], ret))\n\u001b[0m\u001b[0;32m 211\u001b[0m \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/home-ssd/adl/git/spot/wrap/python/spot.py\u001b[0m in \u001b[0;36mautomata\u001b[1;34m(*filenames)\u001b[0m\n\u001b[0;32m 360\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 361\u001b[0m raise RuntimeError(\"Command {} exited with exit status {}\"\n\u001b[1;32m--> 362\u001b[1;33m .format(filename[:-1], ret))\n\u001b[0m\u001b[0;32m 363\u001b[0m \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 364\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mRuntimeError\u001b[0m: Command false exited with exit status 1" "\u001b[1;31mRuntimeError\u001b[0m: Command false exited with exit status 1"
] ]
} }