replace bdd_satoneset(x,y,bddtrue) loops by minterms_of(x,y)

Because the loops iterate in the opposite order, multiple
test cases need to be adjusted.

* spot/taalgos/tgba2ta.cc, spot/twaalgos/alternation.cc,
spot/twaalgos/dualize.cc, spot/twaalgos/ltl2tgba_fm.cc,
spot/twaalgos/simulation.cc, spot/twaalgos/stutter.cc,
spot/twaalgos/toweak.cc: Replace loops based on
bdd_satonest(x,y,bddtrue) by loops based on minterms_of(x,y).
* tests/core/degenscc.test, tests/core/dualize.test,
tests/core/genltl.test, tests/core/readsave.test,
tests/python/alternation.ipynb, tests/python/automata.ipynb,
tests/python/decompose.ipynb, tests/python/decompose_scc.py,
tests/python/dualize.py, tests/python/sccinfo.py,
tests/python/simstate.py, tests/python/testingaut.ipynb,
tests/python/word.ipynb: Adjust expected test cases.  The
only regression is in genltl.test, but the worsened case
should eventually be fixed as discussed in issue #425 anyway.
This commit is contained in:
Alexandre Duret-Lutz 2021-04-14 17:31:45 +02:00
parent d54dca610e
commit 2a38328a5c
20 changed files with 1315 additions and 1432 deletions

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2010-2018 Laboratoire de Recherche et Développement de // Copyright (C) 2010-2018, 2021 Laboratoire de Recherche et
// l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -410,12 +410,9 @@ namespace spot
delete it; delete it;
} }
bdd satone_tgba_condition; for (bdd satone_tgba_condition: minterms_of(tgba_condition,
while ((satone_tgba_condition = bdd_satoneset(tgba_condition, atomic_propositions_set_))
atomic_propositions_set_,
bddtrue)) != bddfalse)
{ {
tgba_condition -= satone_tgba_condition;
state_ta_explicit* init_state = new state_ta_explicit* init_state = new
state_ta_explicit(tgba_init_state->clone(), state_ta_explicit(tgba_init_state->clone(),
satone_tgba_condition, true, is_acc); satone_tgba_condition, true, is_acc);
@ -441,17 +438,9 @@ namespace spot
bdd tgba_condition = twa_succ_it->cond(); bdd tgba_condition = twa_succ_it->cond();
acc_cond::mark_t tgba_acceptance_conditions = acc_cond::mark_t tgba_acceptance_conditions =
twa_succ_it->acc(); twa_succ_it->acc();
bdd satone_tgba_condition; for (bdd satone_tgba_condition:
while ((satone_tgba_condition = minterms_of(tgba_condition, atomic_propositions_set_))
bdd_satoneset(tgba_condition,
atomic_propositions_set_, bddtrue))
!= bddfalse)
{ {
tgba_condition -= satone_tgba_condition;
bdd all_props = bddtrue;
bdd dest_condition;
bool is_acc = false; bool is_acc = false;
if (degeneralized) if (degeneralized)
{ {
@ -463,12 +452,9 @@ namespace spot
} }
if (satone_tgba_condition == source->get_tgba_condition()) if (satone_tgba_condition == source->get_tgba_condition())
while ((dest_condition = for (bdd dest_condition:
bdd_satoneset(all_props, minterms_of(bddtrue, atomic_propositions_set_))
atomic_propositions_set_, bddtrue))
!= bddfalse)
{ {
all_props -= dest_condition;
state_ta_explicit* new_dest = state_ta_explicit* new_dest =
new state_ta_explicit(tgba_state->clone(), new state_ta_explicit(tgba_state->clone(),
dest_condition, false, is_acc); dest_condition, false, is_acc);

View file

@ -1,6 +1,6 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2016-2019 Laboratoire de Recherche et Développement // Copyright (C) 2016-2019, 2021 Laboratoire de Recherche et
// de l'Epita (LRDE). // Développement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
// //
@ -456,11 +456,8 @@ namespace spot
bdd all_letters = bdd_exist(bs, all_vars_); bdd all_letters = bdd_exist(bs, all_vars_);
// First loop over all possible valuations atomic properties. // First loop over all possible valuations atomic properties.
while (all_letters != bddfalse) for (bdd oneletter: minterms_of(all_letters, ap))
{ {
bdd oneletter = bdd_satoneset(all_letters, ap, bddtrue);
all_letters -= oneletter;
minato_isop isop(bs & oneletter); minato_isop isop(bs & oneletter);
bdd cube; bdd cube;
while ((cube = isop.next()) != bddfalse) while ((cube = isop.next()) != bddfalse)
@ -637,7 +634,7 @@ namespace spot
// If it was the last transition, try the next letter. // If it was the last transition, try the next letter.
if (transition_ == bddfalse) if (transition_ == bddfalse)
{ {
bdd oneletter = bdd_satoneset(all_letters_, ap_, bddtrue); bdd oneletter = bdd_satoneset(all_letters_, ap_, bddfalse);
all_letters_ -= oneletter; all_letters_ -= oneletter;
// Get a sum of possible transitions matching this letter. // Get a sum of possible transitions matching this letter.
isop_ = minato_isop(oneletter & transitions_); isop_ = minato_isop(oneletter & transitions_);

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2017-2019 Laboratoire de Recherche et Développement // Copyright (C) 2017-2019, 2021 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -153,11 +153,8 @@ namespace spot
bdd ap = bdd_exist(bdd_support(delta), all_vars_); bdd ap = bdd_exist(bdd_support(delta), all_vars_);
bdd letters = bdd_exist(delta, all_vars_); bdd letters = bdd_exist(delta, all_vars_);
while (letters != bddfalse) for (bdd oneletter: minterms_of(letters, ap))
{ {
bdd oneletter = bdd_satoneset(letters, ap, bddtrue);
letters -= oneletter;
minato_isop isop(delta & oneletter); minato_isop isop(delta & oneletter);
bdd cube; bdd cube;

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2008-2019 Laboratoire de Recherche et Développement // Copyright (C) 2008-2019, 2021 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// Copyright (C) 2003-2006 Laboratoire d'Informatique de Paris 6 // Copyright (C) 2003-2006 Laboratoire d'Informatique de Paris 6
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université // (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
@ -899,11 +899,8 @@ namespace spot
bdd res_det = bddfalse; bdd res_det = bddfalse;
bdd var_set = bdd_existcomp(bdd_support(res_ndet), dict_.var_set); bdd var_set = bdd_existcomp(bdd_support(res_ndet), dict_.var_set);
bdd all_props = bdd_existcomp(res_ndet, dict_.var_set); bdd all_props = bdd_existcomp(res_ndet, dict_.var_set);
while (all_props != bddfalse) for (bdd label: minterms_of(all_props, var_set))
{ {
bdd label = bdd_satoneset(all_props, var_set, bddtrue);
all_props -= label;
formula dest = formula dest =
dict_.bdd_to_sere(bdd_appex(res_ndet, label, bddop_and, dict_.bdd_to_sere(bdd_appex(res_ndet, label, bddop_and,
dict_.var_set)); dict_.var_set));
@ -998,11 +995,8 @@ namespace spot
// Generate (deterministic) successors // Generate (deterministic) successors
bdd var_set = bdd_existcomp(bdd_support(res), dict_.var_set); bdd var_set = bdd_existcomp(bdd_support(res), dict_.var_set);
bdd all_props = bdd_existcomp(res, dict_.var_set); bdd all_props = bdd_existcomp(res, dict_.var_set);
while (all_props != bddfalse) for (bdd label: minterms_of(all_props, var_set))
{ {
bdd label = bdd_satoneset(all_props, var_set, bddtrue);
all_props -= label;
formula dest = formula dest =
dict_.bdd_to_sere(bdd_appex(res, label, bddop_and, dict_.bdd_to_sere(bdd_appex(res, label, bddop_and,
dict_.var_set)); dict_.var_set));
@ -1475,11 +1469,8 @@ namespace spot
{ {
bdd var_set = bdd_existcomp(bdd_support(f1), dict_.var_set); bdd var_set = bdd_existcomp(bdd_support(f1), dict_.var_set);
bdd all_props = bdd_existcomp(f1, dict_.var_set); bdd all_props = bdd_existcomp(f1, dict_.var_set);
while (all_props != bddfalse) for (bdd label: minterms_of(all_props, var_set))
{ {
bdd label = bdd_satoneset(all_props, var_set, bddtrue);
all_props -= label;
formula dest = formula dest =
dict_.bdd_to_sere(bdd_appex(f1, label, bddop_and, dict_.bdd_to_sere(bdd_appex(f1, label, bddop_and,
dict_.var_set)); dict_.var_set));
@ -1559,11 +1550,8 @@ namespace spot
bdd var_set = bdd_existcomp(bdd_support(f1), dict_.var_set); bdd var_set = bdd_existcomp(bdd_support(f1), dict_.var_set);
bdd all_props = bdd_existcomp(f1, dict_.var_set); bdd all_props = bdd_existcomp(f1, dict_.var_set);
bdd missing = !all_props; bdd missing = !all_props;
while (all_props != bddfalse) for (bdd label: minterms_of(all_props, var_set))
{ {
bdd label = bdd_satoneset(all_props, var_set, bddtrue);
all_props -= label;
formula dest = formula dest =
dict_.bdd_to_sere(bdd_appex(f1, label, bddop_and, dict_.bdd_to_sere(bdd_appex(f1, label, bddop_and,
dict_.var_set)); dict_.var_set));
@ -1793,16 +1781,15 @@ namespace spot
if (t.has_rational) if (t.has_rational)
{ {
bdd res = bddfalse; bdd res = bddfalse;
bdd var_set = bddtrue;
bdd var_set = bdd_existcomp(bdd_support(t.symbolic), d_.var_set); bdd all_props = bddtrue;
bdd all_props = bdd_existcomp(t.symbolic, d_.var_set); if (d_.exprop)
while (all_props != bddfalse) {
var_set = bdd_existcomp(bdd_support(t.symbolic), d_.var_set);
all_props = bdd_existcomp(t.symbolic, d_.var_set);
}
for (bdd one_prop_set: minterms_of(all_props, var_set))
{ {
bdd one_prop_set = bddtrue;
if (d_.exprop)
one_prop_set = bdd_satoneset(all_props, var_set, bddtrue);
all_props -= one_prop_set;
minato_isop isop(t.symbolic & one_prop_set); minato_isop isop(t.symbolic & one_prop_set);
bdd cube; bdd cube;
while ((cube = isop.next()) != bddfalse) while ((cube = isop.next()) != bddfalse)
@ -2110,24 +2097,21 @@ namespace spot
dests.clear(); dests.clear();
// Compute all outgoing arcs. // Compute all outgoing arcs.
// If EXPROP is set, we will refine the symbolic // If EXPROP is set, we will refine the symbolic
// representation of the successors for all combinations of // representation of the successors for all combinations of
// the atomic properties involved in the formula. // the atomic properties involved in the formula.
// VAR_SET is the set of these properties. // VAR_SET is the set of these properties.
bdd var_set = bdd_existcomp(bdd_support(res), d.var_set); // ALL_PROPS is the satisfiable combinations of VAR_SET to consider.
// ALL_PROPS is the combinations we have yet to consider. bdd var_set = bddtrue;
// We used to start with `all_props = bddtrue', but it is bdd all_props = bddtrue;
// more efficient to start with the set of all satisfiable if (exprop)
// variables combinations.
bdd all_props = bdd_existcomp(res, d.var_set);
while (all_props != bddfalse)
{ {
bdd one_prop_set = bddtrue; var_set = bdd_existcomp(bdd_support(res), d.var_set);
if (exprop) all_props = bdd_existcomp(res, d.var_set);
one_prop_set = bdd_satoneset(all_props, var_set, bddtrue); }
all_props -= one_prop_set;
for (bdd one_prop_set: minterms_of(all_props, var_set))
{
// Compute prime implicants. // Compute prime implicants.
// The reason we use prime implicants and not bdd_satone() // The reason we use prime implicants and not bdd_satone()
// is that we do not want to get any negation in front of Next // is that we do not want to get any negation in front of Next

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2012-2020 Laboratoire de Recherche et Développement // Copyright (C) 2012-2021 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -538,7 +538,7 @@ namespace spot
stat.states = bdd_lstate_.size(); stat.states = bdd_lstate_.size();
stat.edges = 0; stat.edges = 0;
unsigned nb_satoneset = 0; unsigned nb_minterms = 0;
unsigned nb_minato = 0; unsigned nb_minato = 0;
auto all_inf = all_inf_; auto all_inf = all_inf_;
@ -573,24 +573,19 @@ namespace spot
bdd all_atomic_prop = bdd_exist(sig, nonapvars); bdd all_atomic_prop = bdd_exist(sig, nonapvars);
// First loop over all possible valuations atomic properties. // First loop over all possible valuations atomic properties.
while (all_atomic_prop != bddfalse) for (bdd one: minterms_of(all_atomic_prop, sup_all_atomic_prop))
{ {
bdd one = bdd_satoneset(all_atomic_prop,
sup_all_atomic_prop,
bddtrue);
all_atomic_prop -= one;
// For each possible valuation, iterate over all possible // For each possible valuation, iterate over all possible
// destination classes. We use minato_isop here, because // destination classes. We use minato_isop here, because
// if the same valuation of atomic properties can go // if the same valuation of atomic properties can go
// to two different classes C1 and C2, iterating on // to two different classes C1 and C2, iterating on
// C1 + C2 with the above bdd_satoneset loop will see // C1 + C2 with the above minters_of loop will see
// C1 then (!C1)C2, instead of C1 then C2. // C1 then (!C1)C2, instead of C1 then C2.
// With minatop_isop, we ensure that the no negative // With minatop_isop, we ensure that the no negative
// class variable will be seen (likewise for promises). // class variable will be seen (likewise for promises).
minato_isop isop(sig & one); minato_isop isop(sig & one);
++nb_satoneset; ++nb_minterms;
bdd cond_acc_dest; bdd cond_acc_dest;
while ((cond_acc_dest = isop.next()) != bddfalse) while ((cond_acc_dest = isop.next()) != bddfalse)
@ -750,8 +745,8 @@ namespace spot
true, // stutter inv. true, // stutter inv.
}); });
// !unambiguous and !semi-deterministic are not preserved // !unambiguous and !semi-deterministic are not preserved
if (!Cosimulation && nb_minato == nb_satoneset) if (!Cosimulation && nb_minato == nb_minterms)
// Note that nb_minato != nb_satoneset does not imply // Note that nb_minato != nb_minterms does not imply
// non-deterministic, because of the merge_edges() above. // non-deterministic, because of the merge_edges() above.
res->prop_universal(true); res->prop_universal(true);
if (Sba) if (Sba)

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2014-2020 Laboratoire de Recherche et Développement de // Copyright (C) 2014-2021 Laboratoire de Recherche et Développement de
// l'Epita (LRDE). // l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -187,7 +187,7 @@ namespace spot
void void
next_edge() next_edge()
{ {
one_ = bdd_satoneset(cond_, aps_, bddtrue); one_ = bdd_satoneset(cond_, aps_, bddfalse);
cond_ -= one_; cond_ -= one_;
if (need_loop_ && (state_->cond() == one_) if (need_loop_ && (state_->cond() == one_)
&& (state_ == it_->dst())) && (state_ == it_->dst()))
@ -313,11 +313,8 @@ namespace spot
for (auto& t : a->out(s.first)) for (auto& t : a->out(s.first))
{ {
bdd all = t.cond; bdd all = t.cond;
while (all != bddfalse) for (bdd one: minterms_of(t.cond, atomic_propositions))
{ {
bdd one = bdd_satoneset(all, atomic_propositions, bddtrue);
all -= one;
stutter_state d(t.dst, one); stutter_state d(t.dst, one);
auto r = ss2num.emplace(d, ss2num.size()); auto r = ss2num.emplace(d, ss2num.size());
@ -408,10 +405,8 @@ namespace spot
// Do not use td in the loop because the new_edge() // Do not use td in the loop because the new_edge()
// might invalidate it. // might invalidate it.
auto acc = td.acc; auto acc = td.acc;
while (all != bddfalse) for (bdd one: minterms_of(all, atomic_propositions))
{ {
bdd one = bdd_satoneset(all, atomic_propositions, bddtrue);
all -= one;
// Skip if there is a loop for this particular letter. // Skip if there is a loop for this particular letter.
if (bdd_implies(one, selfloops[src]) if (bdd_implies(one, selfloops[src])
|| bdd_implies(one, selfloops[dst])) || bdd_implies(one, selfloops[dst]))

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2017, 2018 Laboratoire de Recherche et Développement // Copyright (C) 2017, 2018, 2021 Laboratoire de Recherche et Développement
// de l'Epita (LRDE). // de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -177,11 +177,8 @@ namespace spot
bdd ap = bdd_exist(bdd_support(delta), all_states_); bdd ap = bdd_exist(bdd_support(delta), all_states_);
bdd letters = bdd_exist(delta, all_states_); bdd letters = bdd_exist(delta, all_states_);
while (letters != bddfalse) for (bdd oneletter: minterms_of(letters, ap))
{ {
bdd oneletter = bdd_satoneset(letters, ap, bddtrue);
letters -= oneletter;
minato_isop isop(delta & oneletter); minato_isop isop(delta & oneletter);
bdd cube; bdd cube;

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2017, 2019 Laboratoire de Recherche et Développement de # Copyright (C) 2017, 2019, 2021 Laboratoire de Recherche et Développement de
# l'Epita (LRDE). # l'Epita (LRDE).
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -33,7 +33,7 @@ set -e
cat >input <<EOF cat >input <<EOF
GF((Fp2 & X((p0 & Gp1) | (!p0 & F!p1))) | (G!p2 & X((p0 & F!p1) | (!p0 & Gp1)))) GF((Fp2 & X((p0 & Gp1) | (!p0 & F!p1))) | (G!p2 & X((p0 & F!p1) | (!p0 & Gp1))))
((Gp2&FG((Gp1&Xp0)|(F!p1&X!p0)))|(F!p2 & GF((Gp1 & X!p0) | (Xp0 & F!p1)))) W !p0 ((Gp2&FG((Gp1&Xp0)|(F!p1&X!p0)))|(F!p2 & GF((Gp1 & X!p0) | (Xp0 & F!p1)))) W !p0
G(Fp0 & (F!p1 U (G!p2 M !p0))) p2 & GF(G(p0 & !p1) | (F!p0 & Fp1))
G(((Fp1 & (p1 W Fp0)) | (G!p1 & (!p1 M G!p0))) M FG!p2) G(((Fp1 & (p1 W Fp0)) | (G!p1 & (!p1 M G!p0))) M FG!p2)
Xp0 R F((p0 & FG(Gp2 U p1)) | (!p0 & GF(F!p2 R !p1))) Xp0 R F((p0 & FG(Gp2 U p1)) | (!p0 & GF(F!p2 R !p1)))
GF(p0 & (((p1 & Fp2) | (!p1 & G!p2)) M Gp1)) GF(p0 & (((p1 & Fp2) | (!p1 & G!p2)) M Gp1))
@ -48,8 +48,6 @@ G(XF((p2 & F!p1) | (!p2 & Gp1)) | (p1 & Fp0))
G!p0 | G((Fp1 U p2) & F!p2) G!p0 | G((Fp1 U p2) & F!p2)
EOF EOF
# We want to make sure the degeneralized automaton has fewer SCCs # We want to make sure the degeneralized automaton has fewer SCCs
# (it can be less if the simulation on the BA is lukier than on the TGBA) # (it can be less if the simulation on the BA is lukier than on the TGBA)
ltl2tgba < input | autfilt -B --stats=": '%M'; test %C -ge %c" > test.sh ltl2tgba < input | autfilt -B --stats=": '%M'; test %C -ge %c" > test.sh

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2017, 2019 Laboratoire de Recherche et # Copyright (C) 2017, 2019, 2021 Laboratoire de Recherche et
# Développement de l'Epita (LRDE). # Développement de l'Epita (LRDE).
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -115,11 +115,11 @@ Acceptance: 1 Fin(0)
properties: trans-labels explicit-labels state-acc univ-branch properties: trans-labels explicit-labels state-acc univ-branch
--BODY-- --BODY--
State: 0 State: 0
[!0&!1] 0&7
[0&!1] 0&6&7 [0&!1] 0&6&7
[!0&!1] 0&7
State: 1 State: 1
[!0] 1&3
[0] 1&2&3 [0] 1&2&3
[!0] 1&3
State: 2 State: 2
[0] 4 [0] 4
State: 3 State: 3
@ -135,10 +135,10 @@ State: 6 {0}
State: 7 State: 7
[!1] 7 [!1] 7
State: 8 State: 8
[!0] 1&3
[t] 1&2&3 [t] 1&2&3
[!0&!1] 0&7 [!0] 1&3
[!1] 0&6&7 [!1] 0&6&7
[!0&!1] 0&7
--END-- --END--
EOF EOF
diff output2 expected2 diff output2 expected2

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2016-2020 Laboratoire de Recherche et Développement # Copyright (C) 2016-2021 Laboratoire de Recherche et Développement
# de l'Epita (LRDE). # de l'Epita (LRDE).
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -195,7 +195,7 @@ cat >exp<<EOF
"ms-phi-r=2",1,28 "ms-phi-r=2",1,28
"ms-phi-s=0",1,3 "ms-phi-s=0",1,3
"ms-phi-s=1",1,7 "ms-phi-s=1",1,7
"ms-phi-s=2",1,387 "ms-phi-s=2",1,484
"ms-phi-h=0",1,1 "ms-phi-h=0",1,1
"ms-phi-h=1",2,3 "ms-phi-h=1",2,3
"ms-phi-h=2",4,7 "ms-phi-h=2",4,7

View file

@ -1093,9 +1093,9 @@ ltl2tgba 'GF(a <-> Fb)' | autfilt -B --dot=dA | grep ' (' >out
cat >expected <<EOF cat >expected <<EOF
0 [label="0 (0)", peripheries=2] 0 [label="0 (0)", peripheries=2]
1 [label="1 (0)"] 1 [label="1 (0)"]
2 [label="2 (1)"] 2 [label="2 (1)", peripheries=2]
3 [label="3 (2)", peripheries=2] 3 [label="3 (2)"]
4 [label="4 (2)"] 4 [label="4 (1)"]
EOF EOF
diff out expected diff out expected
# --dot=d should also not use circles # --dot=d should also not use circles

File diff suppressed because it is too large Load diff

View file

@ -178,7 +178,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43cde71b0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a002151e0> >"
] ]
}, },
"execution_count": 2, "execution_count": 2,
@ -657,7 +657,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c131fc0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000cc3c0> >"
] ]
}, },
"execution_count": 6, "execution_count": 6,
@ -733,7 +733,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c1563c0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000cc690> >"
] ]
}, },
"execution_count": 7, "execution_count": 7,
@ -816,7 +816,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c131ba0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000cc2a0> >"
] ]
}, },
"execution_count": 8, "execution_count": 8,
@ -1214,142 +1214,142 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n", "<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n", " -->\n",
"<!-- Pages: 1 -->\n", "<!-- Pages: 1 -->\n",
"<svg width=\"298pt\" height=\"347pt\"\n", "<svg width=\"420pt\" height=\"329pt\"\n",
" viewBox=\"0.00 0.00 298.00 347.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 420.00 329.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 343)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 325)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-343 294,-343 294,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-325 416,-325 416,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"124.5\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", "<text text-anchor=\"start\" x=\"185.5\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"145.5\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"206.5\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"161.5\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", "<text text-anchor=\"start\" x=\"222.5\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-310.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n", "<text text-anchor=\"start\" x=\"184.5\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n", "<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-131\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-113\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-127.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"56\" y=\"-109.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\">\n", "<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n", "<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-131C2.79,-131 17.15,-131 30.63,-131\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-113C2.79,-113 17.15,-113 30.63,-113\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-131 30.94,-134.15 34.44,-131 30.94,-131 30.94,-131 30.94,-131 34.44,-131 30.94,-127.85 37.94,-131 37.94,-131\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-113 30.94,-116.15 34.44,-113 30.94,-113 30.94,-113 30.94,-113 34.44,-113 30.94,-109.85 37.94,-113 37.94,-113\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n", "<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"156\" cy=\"-204\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"168\" cy=\"-186\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"156\" y=\"-200.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"168\" y=\"-182.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\">\n", "<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n", "<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.54,-144.52C75.02,-151.67 83.5,-160.33 92,-167 104.83,-177.07 120.67,-186.36 133.25,-193.11\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M68.04,-126.42C74.5,-133.72 83.12,-142.54 92,-149 108.19,-160.78 128.7,-170.6 144.17,-177.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"139.5,-196.4 131.84,-195.93 136.41,-194.77 133.31,-193.14 133.31,-193.14 133.31,-193.14 136.41,-194.77 134.78,-190.35 139.5,-196.4 139.5,-196.4\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"150.9,-179.94 143.23,-180.18 147.66,-178.6 144.43,-177.26 144.43,-177.26 144.43,-177.26 147.66,-178.6 145.63,-174.35 150.9,-179.94 150.9,-179.94\"/>\n",
"<text text-anchor=\"middle\" x=\"105\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"112\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"156\" cy=\"-66\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"168\" cy=\"-48\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"156\" y=\"-62.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", "<text text-anchor=\"middle\" x=\"168\" y=\"-44.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;2 -->\n", "<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n", "<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n", "<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.46,-121.41C88.11,-110.37 115.57,-92.15 134.44,-79.64\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M71.84,-104.23C90.94,-92.94 124.27,-73.25 145.98,-60.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.48,-75.63 136.39,-82.12 137.56,-77.56 134.65,-79.5 134.65,-79.5 134.65,-79.5 137.56,-77.56 132.91,-76.87 140.48,-75.63 140.48,-75.63\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"152.05,-56.83 147.62,-63.11 149.04,-58.62 146.02,-60.4 146.02,-60.4 146.02,-60.4 149.04,-58.62 144.42,-57.68 152.05,-56.83 152.05,-56.83\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-94.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"270\" cy=\"-123\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"392\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"270\" y=\"-119.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", "<text text-anchor=\"middle\" x=\"392\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;3 -->\n", "<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n", "<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.99,-133.48C105.7,-137.64 175.94,-144.68 234,-135 238.14,-134.31 242.45,-133.19 246.57,-131.91\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M66.06,-97.87C80.49,-75.54 111.07,-34.9 150,-21 225.43,5.94 322.81,-5.73 367.13,-13.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"253.26,-129.63 247.64,-134.87 249.94,-130.76 246.63,-131.88 246.63,-131.88 246.63,-131.88 249.94,-130.76 245.62,-128.9 253.26,-129.63 253.26,-129.63\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"374.28,-14.6 366.83,-16.48 370.83,-13.99 367.39,-13.38 367.39,-13.38 367.39,-13.38 370.83,-13.99 367.94,-10.28 374.28,-14.6 374.28,-14.6\"/>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"204\" y=\"-10.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"270\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"280\" cy=\"-63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"270\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n", "<text text-anchor=\"middle\" x=\"280\" y=\"-59.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\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n", "<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.69,-114.3C74.63,-89.51 98.92,-43.78 136,-24 170.45,-5.63 217.34,-8.89 245.25,-13.23\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M73.97,-114.37C98.9,-115.93 146.72,-117.2 186,-108 212.44,-101.81 240.14,-87.2 258.35,-76.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.26,-14.41 244.84,-16.36 248.81,-13.83 245.36,-13.25 245.36,-13.25 245.36,-13.25 248.81,-13.83 245.88,-10.14 252.26,-14.41 252.26,-14.41\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"264.62,-72.47 260.29,-78.81 261.63,-74.29 258.64,-76.12 258.64,-76.12 258.64,-76.12 261.63,-74.29 257,-73.43 264.62,-72.47 264.62,-72.47\"/>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"155\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;1 -->\n", "<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n", "<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M151.51,-221.78C150.74,-231.31 152.24,-240 156,-240 158.76,-240 160.3,-235.32 160.62,-229.05\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M163,-203.41C162.07,-213.09 163.73,-222 168,-222 171.13,-222 172.86,-217.19 173.19,-210.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"160.49,-221.78 163.77,-228.72 160.56,-225.28 160.62,-228.78 160.62,-228.78 160.62,-228.78 160.56,-225.28 157.47,-228.84 160.49,-221.78 160.49,-221.78\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"173,-203.41 176.33,-210.33 173.09,-206.91 173.18,-210.41 173.18,-210.41 173.18,-210.41 173.09,-206.91 170.03,-210.49 173,-203.41 173,-203.41\"/>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n", "<text text-anchor=\"start\" x=\"162\" y=\"-225.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=\"edge7\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n", "<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M148.82,-220.59C144.33,-238.17 146.72,-258 156,-258 164.05,-258 166.91,-243.09 164.6,-227.66\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M160.04,-202.31C154.9,-219.96 157.55,-240 168,-240 177.06,-240 180.26,-224.93 177.59,-209.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"163.18,-220.59 167.65,-226.83 163.87,-224.02 164.56,-227.45 164.56,-227.45 164.56,-227.45 163.87,-224.02 161.47,-228.07 163.18,-220.59 163.18,-220.59\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"175.96,-202.31 180.6,-208.42 176.74,-205.72 177.53,-209.13 177.53,-209.13 177.53,-209.13 176.74,-205.72 174.46,-209.84 175.96,-202.31 175.96,-202.31\"/>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"164\" y=\"-258.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-261.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"160\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;2 -->\n", "<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n", "<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M147.37,-81.92C145.11,-92.15 147.99,-102 156,-102 162.13,-102 165.25,-96.23 165.37,-88.93\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M158.43,-63.54C155.73,-73.91 158.92,-84 168,-84 174.95,-84 178.45,-78.08 178.5,-70.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"164.63,-81.92 168.5,-88.55 165,-85.4 165.37,-88.88 165.37,-88.88 165.37,-88.88 165,-85.4 162.23,-89.21 164.63,-81.92 164.63,-81.92\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"177.57,-63.54 181.6,-70.08 178.03,-67.01 178.48,-70.48 178.48,-70.48 178.48,-70.48 178.03,-67.01 175.35,-70.89 177.57,-63.54 177.57,-63.54\"/>\n",
"<text text-anchor=\"start\" x=\"143\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n", "<text text-anchor=\"start\" x=\"148\" y=\"-87.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M168.46,-79.62C175.23,-86.88 184.34,-95.45 194,-101 209.77,-110.06 229.59,-115.67 244.9,-118.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.01,-120.38 244.53,-122.09 248.58,-119.69 245.15,-119 245.15,-119 245.15,-119 248.58,-119.69 245.77,-115.91 252.01,-120.38 252.01,-120.38\"/>\n",
"<text text-anchor=\"start\" x=\"194\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;4 -->\n", "<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n", "<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M172.37,-58.22C178.97,-54.95 186.81,-51.18 194,-48 211.19,-40.39 230.95,-32.52 245.86,-26.76\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M185.12,-54.62C190.96,-56.73 197.69,-58.82 204,-60 220.69,-63.13 239.82,-63.85 254.58,-63.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.77,-24.1 247.36,-29.56 249.5,-25.36 246.23,-26.62 246.23,-26.62 246.23,-26.62 249.5,-25.36 245.1,-23.67 252.77,-24.1 252.77,-24.1\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"261.86,-63.72 254.9,-66.95 258.36,-63.76 254.86,-63.8 254.86,-63.8 254.86,-63.8 258.36,-63.76 254.83,-60.65 261.86,-63.72 261.86,-63.72\"/>\n",
"<text text-anchor=\"start\" x=\"194\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"211\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M259.8,-107.89C253.6,-99 244.63,-88.29 234,-82 218.05,-72.56 197.36,-68.63 181.44,-67.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.05,-66.41 181.29,-63.85 177.54,-66.7 181.03,-66.99 181.03,-66.99 181.03,-66.99 177.54,-66.7 180.77,-70.13 174.05,-66.41 174.05,-66.41\"/>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;3 -->\n", "<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n", "<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n", "<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M260.43,-138.54C257.73,-148.91 260.92,-159 270,-159 276.95,-159 280.45,-153.08 280.5,-145.66\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M382.43,-33.54C379.73,-43.91 382.92,-54 392,-54 398.95,-54 402.45,-48.08 402.5,-40.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"279.57,-138.54 283.6,-145.08 280.03,-142.01 280.48,-145.48 280.48,-145.48 280.48,-145.48 280.03,-142.01 277.35,-145.89 279.57,-138.54 279.57,-138.54\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"401.57,-33.54 405.6,-40.08 402.03,-37.01 402.48,-40.48 402.48,-40.48 402.48,-40.48 402.03,-37.01 399.35,-40.89 401.57,-33.54 401.57,-33.54\"/>\n",
"<text text-anchor=\"start\" x=\"250\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"372\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"384\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M265.57,-52.06C259.39,-47.72 251.72,-43.23 244,-41 227.15,-36.15 207.38,-38.29 192.37,-41.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"185.42,-43.04 191.53,-38.4 188.83,-42.26 192.24,-41.47 192.24,-41.47 192.24,-41.47 188.83,-42.26 192.95,-44.54 185.42,-43.04 185.42,-43.04\"/>\n",
"<text text-anchor=\"start\" x=\"204\" y=\"-44.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M297.23,-56.36C316.11,-48.64 347.37,-35.85 368.56,-27.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"375.06,-24.52 369.77,-30.09 371.82,-25.85 368.58,-27.17 368.58,-27.17 368.58,-27.17 371.82,-25.85 367.39,-24.26 375.06,-24.52 375.06,-24.52\"/>\n",
"<text text-anchor=\"start\" x=\"316\" y=\"-51.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=\"edge13\" class=\"edge\">\n", "<g id=\"edge13\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n", "<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M260.43,-33.54C257.73,-43.91 260.92,-54 270,-54 276.95,-54 280.45,-48.08 280.5,-40.66\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M270.43,-78.54C267.73,-88.91 270.92,-99 280,-99 286.95,-99 290.45,-93.08 290.5,-85.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"279.57,-33.54 283.6,-40.08 280.03,-37.01 280.48,-40.48 280.48,-40.48 280.48,-40.48 280.03,-37.01 277.35,-40.89 279.57,-33.54 279.57,-33.54\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"289.57,-78.54 293.6,-85.08 290.03,-82.01 290.48,-85.48 290.48,-85.48 290.48,-85.48 290.03,-82.01 287.35,-85.89 289.57,-78.54 289.57,-78.54\"/>\n",
"<text text-anchor=\"start\" x=\"250\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"267\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"<text text-anchor=\"start\" x=\"262\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c156e40> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000d42a0> >"
] ]
}, },
"execution_count": 12, "execution_count": 12,
@ -1463,7 +1463,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c163300> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000d4630> >"
] ]
}, },
"execution_count": 13, "execution_count": 13,
@ -1594,7 +1594,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c163810> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000d4c00> >"
] ]
}, },
"execution_count": 14, "execution_count": 14,
@ -1816,7 +1816,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c1694b0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000d8510> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1974,7 +1974,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c163210> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000d8420> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2132,7 +2132,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c169180> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000d8300> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2280,7 +2280,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c169360> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000d8270> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2469,7 +2469,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c169210> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a00215fc0> >"
] ]
}, },
"execution_count": 19, "execution_count": 19,
@ -2545,7 +2545,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c169fc0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000e1420> >"
] ]
}, },
"execution_count": 20, "execution_count": 20,
@ -3095,7 +3095,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c156ea0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000ccd50> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -3195,7 +3195,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c156210> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000ccde0> >"
] ]
}, },
"execution_count": 24, "execution_count": 24,
@ -3268,7 +3268,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe440654c60> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000cce70> >"
] ]
}, },
"execution_count": 25, "execution_count": 25,
@ -3439,7 +3439,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c1316c0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a00215ab0> >"
] ]
}, },
"execution_count": 27, "execution_count": 27,
@ -3522,7 +3522,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c156ea0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000ccd50> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -3587,7 +3587,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c156ea0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000ccd50> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -3674,7 +3674,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe43c156ea0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6a000ccd50> >"
] ]
}, },
"execution_count": 29, "execution_count": 29,
@ -3707,7 +3707,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.9.1+" "version": "3.9.2"
} }
}, },
"nbformat": 4, "nbformat": 4,

View file

@ -61,11 +61,11 @@
"</g>\n", "</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n", "<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n", "<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"162,-8 162,-108 214,-108 214,-8 162,-8\"/>\n", "<polygon fill=\"none\" stroke=\"red\" points=\"265,-148 265,-233 317,-233 317,-148 265,-148\"/>\n",
"</g>\n", "</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n", "<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n", "<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"red\" points=\"265,-148 265,-233 317,-233 317,-148 265,-148\"/>\n", "<polygon fill=\"none\" stroke=\"green\" points=\"162,-8 162,-108 214,-108 214,-8 162,-8\"/>\n",
"</g>\n", "</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n", "<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n", "<title>cluster_3</title>\n",
@ -105,28 +105,28 @@
"<polygon fill=\"black\" stroke=\"black\" points=\"358.61,-163.72 351.01,-162.65 355.65,-161.85 352.69,-159.99 352.69,-159.99 352.69,-159.99 355.65,-161.85 354.37,-157.32 358.61,-163.72 358.61,-163.72\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"358.61,-163.72 351.01,-162.65 355.65,-161.85 352.69,-159.99 352.69,-159.99 352.69,-159.99 355.65,-161.85 354.37,-157.32 358.61,-163.72 358.61,-163.72\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n", "<text text-anchor=\"start\" x=\"236\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.71,-144.67C69.74,-131.35 79.55,-112.57 92,-99 113.33,-75.75 144.49,-56.45 165.24,-45.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.59,-41.66 166.91,-47.75 168.5,-43.32 165.42,-44.98 165.42,-44.98 165.42,-44.98 168.5,-43.32 163.93,-42.2 171.59,-41.66 171.59,-41.66\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-176\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-172.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", "<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;3 -->\n", "<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n", "<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.71,-144.67C69.74,-131.35 79.55,-112.57 92,-99 113.33,-75.75 144.49,-56.45 165.24,-45.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.59,-41.66 166.91,-47.75 168.5,-43.32 165.42,-44.98 165.42,-44.98 165.42,-44.98 168.5,-43.32 163.93,-42.2 171.59,-41.66 171.59,-41.66\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-176\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-172.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.01,-159.31C93.17,-157.84 125.14,-156.68 152,-162 156.19,-162.83 160.53,-164.15 164.66,-165.65\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M74.01,-159.31C93.17,-157.84 125.14,-156.68 152,-162 156.19,-162.83 160.53,-164.15 164.66,-165.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.35,-168.3 163.68,-168.66 168.1,-167.02 164.84,-165.73 164.84,-165.73 164.84,-165.73 168.1,-167.02 166,-162.8 171.35,-168.3 171.35,-168.3\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"171.35,-168.3 163.68,-168.66 168.1,-167.02 164.84,-165.73 164.84,-165.73 164.84,-165.73 168.1,-167.02 166,-162.8 171.35,-168.3 171.35,-168.3\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"104.5\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
@ -139,16 +139,8 @@
"<text text-anchor=\"start\" x=\"369.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"369.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"366\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"366\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-49.92C177.11,-60.15 179.99,-70 188,-70 194.13,-70 197.25,-64.23 197.37,-56.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-49.92 200.5,-56.55 197,-53.4 197.37,-56.88 197.37,-56.88 197.37,-56.88 197,-53.4 194.23,-57.21 196.63,-49.92 196.63,-49.92\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"291\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"291\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"291\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n", "<text text-anchor=\"middle\" x=\"291\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
@ -167,31 +159,39 @@
"<polygon fill=\"black\" stroke=\"black\" points=\"298.03,-190.66 301.6,-197.46 298.24,-194.16 298.46,-197.65 298.46,-197.65 298.46,-197.65 298.24,-194.16 295.31,-197.84 298.03,-190.66 298.03,-190.66\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"298.03,-190.66 301.6,-197.46 298.24,-194.16 298.46,-197.65 298.46,-197.65 298.46,-197.65 298.24,-194.16 295.31,-197.84 298.03,-190.66 298.03,-190.66\"/>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", "<text text-anchor=\"start\" x=\"287.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;0 -->\n", "<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n", "<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-49.92C177.11,-60.15 179.99,-70 188,-70 194.13,-70 197.25,-64.23 197.37,-56.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-49.92 200.5,-56.55 197,-53.4 197.37,-56.88 197.37,-56.88 197.37,-56.88 197,-53.4 194.23,-57.21 196.63,-49.92 196.63,-49.92\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M169.95,-178.44C150.76,-180.68 118.75,-182.83 92,-177 87.54,-176.03 82.98,-174.44 78.67,-172.63\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M169.95,-178.44C150.76,-180.68 118.75,-182.83 92,-177 87.54,-176.03 82.98,-174.44 78.67,-172.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-169.66 79.86,-169.71 75.37,-171.12 78.55,-172.57 78.55,-172.57 78.55,-172.57 75.37,-171.12 77.24,-175.44 72.18,-169.66 72.18,-169.66\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-169.66 79.86,-169.71 75.37,-171.12 78.55,-172.57 78.55,-172.57 78.55,-172.57 75.37,-171.12 77.24,-175.44 72.18,-169.66 72.18,-169.66\"/>\n",
"<text text-anchor=\"start\" x=\"102.5\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"102.5\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"114\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"114\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;1 -->\n", "<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n", "<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M200.26,-189.33C213.84,-204.25 238.19,-227.57 265,-237 286.8,-244.67 295.92,-246.47 317,-237 335.81,-228.55 350.87,-210.33 360.62,-195.64\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M200.26,-189.33C213.84,-204.25 238.19,-227.57 265,-237 286.8,-244.67 295.92,-246.47 317,-237 335.81,-228.55 350.87,-210.33 360.62,-195.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.47,-189.6 363.36,-197.2 362.59,-192.55 360.71,-195.5 360.71,-195.5 360.71,-195.5 362.59,-192.55 358.05,-193.81 364.47,-189.6 364.47,-189.6\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"364.47,-189.6 363.36,-197.2 362.59,-192.55 360.71,-195.5 360.71,-195.5 360.71,-195.5 362.59,-192.55 358.05,-193.81 364.47,-189.6 364.47,-189.6\"/>\n",
"<text text-anchor=\"start\" x=\"273.5\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n", "<text text-anchor=\"start\" x=\"273.5\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n", "<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n", "<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.13,-175.66C222.38,-175.34 246.98,-174.85 265.34,-174.49\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M206.13,-175.66C222.38,-175.34 246.98,-174.85 265.34,-174.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"272.78,-174.34 265.85,-177.63 269.28,-174.41 265.78,-174.48 265.78,-174.48 265.78,-174.48 269.28,-174.41 265.72,-171.33 272.78,-174.34 272.78,-174.34\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"272.78,-174.34 265.85,-177.63 269.28,-174.41 265.78,-174.48 265.78,-174.48 265.78,-174.48 269.28,-174.41 265.72,-171.33 272.78,-174.34 272.78,-174.34\"/>\n",
"<text text-anchor=\"start\" x=\"224\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n", "<text text-anchor=\"start\" x=\"224\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;3 -->\n", "<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n", "<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-191.92C177.11,-202.15 179.99,-212 188,-212 194.13,-212 197.25,-206.23 197.37,-198.93\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M179.37,-191.92C177.11,-202.15 179.99,-212 188,-212 194.13,-212 197.25,-206.23 197.37,-198.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-191.92 200.5,-198.55 197,-195.4 197.37,-198.88 197.37,-198.88 197.37,-198.88 197,-195.4 194.23,-199.21 196.63,-191.92 196.63,-191.92\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-191.92 200.5,-198.55 197,-195.4 197.37,-198.88 197.37,-198.88 197.37,-198.88 197,-195.4 194.23,-199.21 196.63,-191.92 196.63,-191.92\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-215.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"170.5\" y=\"-215.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
@ -200,7 +200,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc092f00> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01ba3c0> >"
] ]
}, },
"execution_count": 2, "execution_count": 2,
@ -278,50 +278,50 @@
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-159.04 65.85,-165.88 62.54,-162.53 62.71,-166.03 62.71,-166.03 62.71,-166.03 62.54,-162.53 59.56,-166.18 62.38,-159.04 62.38,-159.04\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-159.04 65.85,-165.88 62.54,-162.53 62.71,-166.03 62.71,-166.03 62.71,-166.03 62.54,-162.53 59.56,-166.18 62.38,-159.04 62.38,-159.04\"/>\n",
"<text text-anchor=\"start\" x=\"36.5\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"36.5\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.42,-130.85C93.58,-111.61 141.12,-72.11 167.78,-49.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.46,-45.25 170.08,-52.15 170.76,-47.49 168.07,-49.73 168.07,-49.73 168.07,-49.73 170.76,-47.49 166.06,-47.3 173.46,-45.25 173.46,-45.25\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-143\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-139.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", "<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;2 -->\n", "<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n", "<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.42,-130.85C93.58,-111.61 141.12,-72.11 167.78,-49.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.46,-45.25 170.08,-52.15 170.76,-47.49 168.07,-49.73 168.07,-49.73 168.07,-49.73 170.76,-47.49 166.06,-47.3 173.46,-45.25 173.46,-45.25\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-143\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-139.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.26,-142.13C96.89,-142.31 136.73,-142.61 162.48,-142.81\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M74.26,-142.13C96.89,-142.31 136.73,-142.61 162.48,-142.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.67,-142.87 162.64,-145.96 166.17,-142.84 162.67,-142.81 162.67,-142.81 162.67,-142.81 166.17,-142.84 162.69,-139.66 169.67,-142.87 169.67,-142.87\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"169.67,-142.87 162.64,-145.96 166.17,-142.84 162.67,-142.81 162.67,-142.81 162.67,-142.81 166.17,-142.84 162.69,-139.66 169.67,-142.87 169.67,-142.87\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"104.5\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;1 -->\n", "<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n", "<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.09,-48.42C173.28,-59.17 176.91,-70 188,-70 196.66,-70 200.78,-63.39 200.34,-55.37\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M177.09,-48.42C173.28,-59.17 176.91,-70 188,-70 196.66,-70 200.78,-63.39 200.34,-55.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-48.42 203.41,-54.64 199.62,-51.84 200.32,-55.27 200.32,-55.27 200.32,-55.27 199.62,-51.84 197.24,-55.91 198.91,-48.42 198.91,-48.42\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-48.42 203.41,-54.64 199.62,-51.84 200.32,-55.27 200.32,-55.27 200.32,-55.27 199.62,-51.84 197.24,-55.91 198.91,-48.42 198.91,-48.42\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;0 -->\n", "<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n", "<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M171.76,-151.12C165.77,-153.88 158.73,-156.62 152,-158 125.88,-163.36 118.06,-163.67 92,-158 87.54,-157.03 82.98,-155.44 78.67,-153.63\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M171.76,-151.12C165.77,-153.88 158.73,-156.62 152,-158 125.88,-163.36 118.06,-163.67 92,-158 87.54,-157.03 82.98,-155.44 78.67,-153.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-150.66 79.86,-150.71 75.37,-152.12 78.55,-153.57 78.55,-153.57 78.55,-153.57 75.37,-152.12 77.24,-156.44 72.18,-150.66 72.18,-150.66\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-150.66 79.86,-150.71 75.37,-152.12 78.55,-153.57 78.55,-153.57 78.55,-153.57 75.37,-152.12 77.24,-156.44 72.18,-150.66 72.18,-150.66\"/>\n",
"<text text-anchor=\"start\" x=\"102.5\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"102.5\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;2 -->\n", "<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n", "<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.09,-157.42C173.28,-168.17 176.91,-179 188,-179 196.66,-179 200.78,-172.39 200.34,-164.37\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M177.09,-157.42C173.28,-168.17 176.91,-179 188,-179 196.66,-179 200.78,-172.39 200.34,-164.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-157.42 203.41,-163.64 199.62,-160.84 200.32,-164.27 200.32,-164.27 200.32,-164.27 199.62,-160.84 197.24,-164.91 198.91,-157.42 198.91,-157.42\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-157.42 203.41,-163.64 199.62,-160.84 200.32,-164.27 200.32,-164.27 200.32,-164.27 199.62,-160.84 197.24,-164.91 198.91,-157.42 198.91,-157.42\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"170.5\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
@ -330,7 +330,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc211360> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01ba2a0> >"
] ]
}, },
"execution_count": 3, "execution_count": 3,
@ -489,7 +489,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc23f3c0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01ba1b0> >"
] ]
}, },
"execution_count": 4, "execution_count": 4,
@ -587,7 +587,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ea4e0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01ba9c0> >"
] ]
}, },
"execution_count": 5, "execution_count": 5,
@ -669,7 +669,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ea840> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6240> >"
] ]
}, },
"execution_count": 6, "execution_count": 6,
@ -743,51 +743,51 @@
"<text text-anchor=\"start\" x=\"36.5\" y=\"-196.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"36.5\" y=\"-196.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"48\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.42,-130.85C93.58,-111.61 141.12,-72.11 167.78,-49.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.46,-45.25 170.08,-52.15 170.76,-47.49 168.07,-49.73 168.07,-49.73 168.07,-49.73 170.76,-47.49 166.06,-47.3 173.46,-45.25 173.46,-45.25\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-150\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-146.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", "<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;2 -->\n", "<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n", "<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.42,-130.85C93.58,-111.61 141.12,-72.11 167.78,-49.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.46,-45.25 170.08,-52.15 170.76,-47.49 168.07,-49.73 168.07,-49.73 168.07,-49.73 170.76,-47.49 166.06,-47.3 173.46,-45.25 173.46,-45.25\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-150\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-146.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.22,-141.22C93.29,-140.58 124.93,-140.18 152,-143 155.68,-143.38 159.55,-143.97 163.32,-144.64\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M74.22,-141.22C93.29,-140.58 124.93,-140.18 152,-143 155.68,-143.38 159.55,-143.97 163.32,-144.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"170.36,-146.01 162.89,-147.77 166.93,-145.34 163.49,-144.68 163.49,-144.68 163.49,-144.68 166.93,-145.34 164.09,-141.58 170.36,-146.01 170.36,-146.01\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"170.36,-146.01 162.89,-147.77 166.93,-145.34 163.49,-144.68 163.49,-144.68 163.49,-144.68 166.93,-145.34 164.09,-141.58 170.36,-146.01 170.36,-146.01\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"104.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;1 -->\n", "<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n", "<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.09,-48.42C173.28,-59.17 176.91,-70 188,-70 196.66,-70 200.78,-63.39 200.34,-55.37\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M177.09,-48.42C173.28,-59.17 176.91,-70 188,-70 196.66,-70 200.78,-63.39 200.34,-55.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-48.42 203.41,-54.64 199.62,-51.84 200.32,-55.27 200.32,-55.27 200.32,-55.27 199.62,-51.84 197.24,-55.91 198.91,-48.42 198.91,-48.42\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-48.42 203.41,-54.64 199.62,-51.84 200.32,-55.27 200.32,-55.27 200.32,-55.27 199.62,-51.84 197.24,-55.91 198.91,-48.42 198.91,-48.42\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;0 -->\n", "<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n", "<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.4,-154.6C164.62,-155.98 158.07,-157.32 152,-158 125.5,-160.99 118.06,-163.67 92,-158 87.54,-157.03 82.98,-155.44 78.67,-153.63\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M170.4,-154.6C164.62,-155.98 158.07,-157.32 152,-158 125.5,-160.99 118.06,-163.67 92,-158 87.54,-157.03 82.98,-155.44 78.67,-153.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-150.66 79.86,-150.71 75.37,-152.12 78.55,-153.57 78.55,-153.57 78.55,-153.57 75.37,-152.12 77.24,-156.44 72.18,-150.66 72.18,-150.66\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-150.66 79.86,-150.71 75.37,-152.12 78.55,-153.57 78.55,-153.57 78.55,-153.57 75.37,-152.12 77.24,-156.44 72.18,-150.66 72.18,-150.66\"/>\n",
"<text text-anchor=\"start\" x=\"102.5\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"102.5\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"114\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"114\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;2 -->\n", "<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n", "<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.09,-164.42C173.28,-175.17 176.91,-186 188,-186 196.66,-186 200.78,-179.39 200.34,-171.37\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M177.09,-164.42C173.28,-175.17 176.91,-186 188,-186 196.66,-186 200.78,-179.39 200.34,-171.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-164.42 203.41,-170.64 199.62,-167.84 200.32,-171.27 200.32,-171.27 200.32,-171.27 199.62,-167.84 197.24,-171.91 198.91,-164.42 198.91,-164.42\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"198.91,-164.42 203.41,-170.64 199.62,-167.84 200.32,-171.27 200.32,-171.27 200.32,-171.27 199.62,-167.84 197.24,-171.91 198.91,-164.42 198.91,-164.42\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"170.5\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
@ -796,7 +796,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0eaab0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6120> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -941,7 +941,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc20bc60> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01bae40> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -972,11 +972,11 @@
"</g>\n", "</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n", "<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n", "<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"162,-8 162,-108 214,-108 214,-8 162,-8\"/>\n", "<polygon fill=\"none\" stroke=\"red\" points=\"265,-148 265,-233 317,-233 317,-148 265,-148\"/>\n",
"</g>\n", "</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n", "<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n", "<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"red\" points=\"265,-148 265,-233 317,-233 317,-148 265,-148\"/>\n", "<polygon fill=\"none\" stroke=\"green\" points=\"162,-8 162,-108 214,-108 214,-8 162,-8\"/>\n",
"</g>\n", "</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n", "<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n", "<title>cluster_3</title>\n",
@ -1015,28 +1015,28 @@
"<polygon fill=\"black\" stroke=\"black\" points=\"358.61,-163.72 351.01,-162.65 355.65,-161.85 352.69,-159.99 352.69,-159.99 352.69,-159.99 355.65,-161.85 354.37,-157.32 358.61,-163.72 358.61,-163.72\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"358.61,-163.72 351.01,-162.65 355.65,-161.85 352.69,-159.99 352.69,-159.99 352.69,-159.99 355.65,-161.85 354.37,-157.32 358.61,-163.72 358.61,-163.72\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n", "<text text-anchor=\"start\" x=\"236\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M62.32,-154.9C67.85,-139.11 77.73,-115.64 92,-99 112.54,-75.05 143.89,-55.91 164.89,-44.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.32,-41.43 166.56,-47.45 168.22,-43.04 165.11,-44.65 165.11,-44.65 165.11,-44.65 168.22,-43.04 163.66,-41.86 171.32,-41.43 171.32,-41.43\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", "<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;3 -->\n", "<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n", "<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M62.32,-154.9C67.85,-139.11 77.73,-115.64 92,-99 112.54,-75.05 143.89,-55.91 164.89,-44.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.32,-41.43 166.56,-47.45 168.22,-43.04 165.11,-44.65 165.11,-44.65 165.11,-44.65 168.22,-43.04 163.66,-41.86 171.32,-41.43 171.32,-41.43\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.16,-172.09C93.19,-172.21 124.79,-172.47 152,-173 155.46,-173.07 159.12,-173.15 162.71,-173.25\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M74.16,-172.09C93.19,-172.21 124.79,-172.47 152,-173 155.46,-173.07 159.12,-173.15 162.71,-173.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"169.91,-173.45 162.83,-176.4 166.41,-173.35 162.91,-173.25 162.91,-173.25 162.91,-173.25 166.41,-173.35 163,-170.11 169.91,-173.45 169.91,-173.45\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"169.91,-173.45 162.83,-176.4 166.41,-173.35 162.91,-173.25 162.91,-173.25 162.91,-173.25 166.41,-173.35 163,-170.11 169.91,-173.45 169.91,-173.45\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"104.5\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
@ -1049,16 +1049,8 @@
"<text text-anchor=\"start\" x=\"369.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"369.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"366\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"366\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-49.92C177.11,-60.15 179.99,-70 188,-70 194.13,-70 197.25,-64.23 197.37,-56.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-49.92 200.5,-56.55 197,-53.4 197.37,-56.88 197.37,-56.88 197.37,-56.88 197,-53.4 194.23,-57.21 196.63,-49.92 196.63,-49.92\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"291\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"291\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"291\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n", "<text text-anchor=\"middle\" x=\"291\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
@ -1077,30 +1069,38 @@
"<polygon fill=\"black\" stroke=\"black\" points=\"298.03,-190.66 301.6,-197.46 298.24,-194.16 298.46,-197.65 298.46,-197.65 298.46,-197.65 298.24,-194.16 295.31,-197.84 298.03,-190.66 298.03,-190.66\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"298.03,-190.66 301.6,-197.46 298.24,-194.16 298.46,-197.65 298.46,-197.65 298.46,-197.65 298.24,-194.16 295.31,-197.84 298.03,-190.66 298.03,-190.66\"/>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", "<text text-anchor=\"start\" x=\"287.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;0 -->\n", "<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n", "<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-49.92C177.11,-60.15 179.99,-70 188,-70 194.13,-70 197.25,-64.23 197.37,-56.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-49.92 200.5,-56.55 197,-53.4 197.37,-56.88 197.37,-56.88 197.37,-56.88 197,-53.4 194.23,-57.21 196.63,-49.92 196.63,-49.92\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M171.36,-181.73C165.44,-184.26 158.55,-186.74 152,-188 125.81,-193.04 118.06,-193.67 92,-188 87.54,-187.03 82.98,-185.44 78.67,-183.63\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M171.36,-181.73C165.44,-184.26 158.55,-186.74 152,-188 125.81,-193.04 118.06,-193.67 92,-188 87.54,-187.03 82.98,-185.44 78.67,-183.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-180.66 79.86,-180.71 75.37,-182.12 78.55,-183.57 78.55,-183.57 78.55,-183.57 75.37,-182.12 77.24,-186.44 72.18,-180.66 72.18,-180.66\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-180.66 79.86,-180.71 75.37,-182.12 78.55,-183.57 78.55,-183.57 78.55,-183.57 75.37,-182.12 77.24,-186.44 72.18,-180.66 72.18,-180.66\"/>\n",
"<text text-anchor=\"start\" x=\"102.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"102.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;1 -->\n", "<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n", "<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M200.17,-187.75C213.65,-203.15 237.91,-227.23 265,-237 286.74,-244.84 295.92,-246.47 317,-237 335.81,-228.55 350.87,-210.33 360.62,-195.64\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M200.17,-187.75C213.65,-203.15 237.91,-227.23 265,-237 286.74,-244.84 295.92,-246.47 317,-237 335.81,-228.55 350.87,-210.33 360.62,-195.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.47,-189.6 363.36,-197.2 362.59,-192.55 360.71,-195.5 360.71,-195.5 360.71,-195.5 362.59,-192.55 358.05,-193.81 364.47,-189.6 364.47,-189.6\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"364.47,-189.6 363.36,-197.2 362.59,-192.55 360.71,-195.5 360.71,-195.5 360.71,-195.5 362.59,-192.55 358.05,-193.81 364.47,-189.6 364.47,-189.6\"/>\n",
"<text text-anchor=\"start\" x=\"273.5\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n", "<text text-anchor=\"start\" x=\"273.5\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n", "<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n", "<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.13,-174C222.38,-174 246.98,-174 265.34,-174\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M206.13,-174C222.38,-174 246.98,-174 265.34,-174\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"272.78,-174 265.78,-177.15 269.28,-174 265.78,-174 265.78,-174 265.78,-174 269.28,-174 265.78,-170.85 272.78,-174 272.78,-174\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"272.78,-174 265.78,-177.15 269.28,-174 265.78,-174 265.78,-174 265.78,-174 269.28,-174 265.78,-170.85 272.78,-174 272.78,-174\"/>\n",
"<text text-anchor=\"start\" x=\"224\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n", "<text text-anchor=\"start\" x=\"224\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;3 -->\n", "<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n", "<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-189.92C177.11,-200.15 179.99,-210 188,-210 194.13,-210 197.25,-204.23 197.37,-196.93\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M179.37,-189.92C177.11,-200.15 179.99,-210 188,-210 194.13,-210 197.25,-204.23 197.37,-196.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-189.92 200.5,-196.55 197,-193.4 197.37,-196.88 197.37,-196.88 197.37,-196.88 197,-193.4 194.23,-197.21 196.63,-189.92 196.63,-189.92\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-189.92 200.5,-196.55 197,-193.4 197.37,-196.88 197.37,-196.88 197.37,-196.88 197,-193.4 194.23,-197.21 196.63,-189.92 196.63,-189.92\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"170.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
@ -1109,7 +1109,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc092cc0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01baea0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1512,7 +1512,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ea570> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6c60> >"
] ]
}, },
"execution_count": 8, "execution_count": 8,
@ -1522,60 +1522,16 @@
], ],
"source": [ "source": [
"aut = spot.automaton(\"\"\"\n", "aut = spot.automaton(\"\"\"\n",
"HOA: v1\n", "HOA: v1 States: 9 Start: 2 AP: 3 \"a\" \"b\" \"c\" acc-name: Rabin 2 Acceptance:\n",
"States: 9\n", "4 (Fin(0) & Inf(1)) | (Fin(2) & Inf(3)) properties: trans-labels\n",
"Start: 2\n", "explicit-labels state-acc complete properties: deterministic --BODY--\n",
"AP: 3 \"a\" \"b\" \"c\"\n", "State: 0 {2} [0&!2] 0 [0&2] 1 [!0&!2] 5 [!0&2] 6 State: 1 {2} [0] 1 [!0]\n",
"acc-name: Rabin 2\n", "6 State: 2 {2} [0&!1&!2] 3 [0&1&!2] 4 [!0&!2] 5 [2] 6 State: 3 {1 2}\n",
"Acceptance: 4 (Fin(0) & Inf(1)) | (Fin(2) & Inf(3))\n", "[0&!2] 0 [0&2] 1 [!0&!2] 5 [!0&2] 6 State: 4 {1 2} [0&!1&!2] 0 [0&!1&2]\n",
"properties: trans-labels explicit-labels state-acc complete\n", "1 [!0&!2] 5 [!0&2] 6 [0&1&!2] 7 [0&1&2] 8 State: 5 {1 2} [0&!1&!2] 0\n",
"properties: deterministic\n", "[!0&!2] 5 [2] 6 [0&1&!2] 7 State: 6 {1 2} [t] 6 State: 7 {3} [0&!1&!2]\n",
"--BODY--\n", "0 [0&!1&2] 1 [!0&!2] 5 [!0&2] 6 [0&1&!2] 7 [0&1&2] 8 State: 8 {3} [0&!1]\n",
"State: 0 {2}\n", "1 [!0] 6 [0&1] 8 --END--\"\"\")\n",
"[0&!2] 0\n",
"[0&2] 1\n",
"[!0&!2] 5\n",
"[!0&2] 6\n",
"State: 1 {2}\n",
"[0] 1\n",
"[!0] 6\n",
"State: 2 {2}\n",
"[0&!1&!2] 3\n",
"[0&1&!2] 4\n",
"[!0&!2] 5\n",
"[2] 6\n",
"State: 3 {1 2}\n",
"[0&!2] 0\n",
"[0&2] 1\n",
"[!0&!2] 5\n",
"[!0&2] 6\n",
"State: 4 {1 2}\n",
"[0&!1&!2] 0\n",
"[0&!1&2] 1\n",
"[!0&!2] 5\n",
"[!0&2] 6\n",
"[0&1&!2] 7\n",
"[0&1&2] 8\n",
"State: 5 {1 2}\n",
"[0&!1&!2] 0\n",
"[!0&!2] 5\n",
"[2] 6\n",
"[0&1&!2] 7\n",
"State: 6 {1 2}\n",
"[t] 6\n",
"State: 7 {3}\n",
"[0&!1&!2] 0\n",
"[0&!1&2] 1\n",
"[!0&!2] 5\n",
"[!0&2] 6\n",
"[0&1&!2] 7\n",
"[0&1&2] 8\n",
"State: 8 {3}\n",
"[0&!1] 1\n",
"[!0] 6\n",
"[0&1] 8\n",
"--END--\n",
"\"\"\")\n",
"aut" "aut"
] ]
}, },
@ -1942,7 +1898,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0eaa50> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6510> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2174,7 +2130,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc092cc0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01baea0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2384,7 +2340,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc21dea0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01bad80> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2772,7 +2728,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ea7b0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6570> >"
] ]
}, },
"execution_count": 10, "execution_count": 10,
@ -2933,7 +2889,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ab3f0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6e70> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -3072,7 +3028,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc211570> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01baf00> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -3224,7 +3180,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc23fa80> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6a20> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -3577,7 +3533,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc21d750> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6120> >"
] ]
}, },
"execution_count": 12, "execution_count": 12,
@ -3587,55 +3543,15 @@
], ],
"source": [ "source": [
"aut = spot.automaton(\"\"\"\n", "aut = spot.automaton(\"\"\"\n",
"HOA: v1\n", "HOA: v1 States: 8 Start: 7 AP: 3 \"a\" \"b\" \"c\" acc-name: Streett\n",
"States: 8\n", "2 Acceptance: 4 (Fin(0) | Inf(1)) & (Fin(2) | Inf(3)) properties:\n",
"Start: 7\n", "trans-labels explicit-labels state-acc complete properties: deterministic\n",
"AP: 3 \"a\" \"b\" \"c\"\n", "--BODY-- State: 0 {2} [0&1] 0 [0&!1] 3 [!0] 4 State: 1 {2} [0&1&2]\n",
"acc-name: Streett 2\n", "0 [0&1&!2] 1 [0&!1&!2] 2 [0&!1&2] 3 [!0&2] 4 [!0&!2] 7 State: 2 {2}\n",
"Acceptance: 4 (Fin(0) | Inf(1)) & (Fin(2) | Inf(3))\n", "[0&1&!2] 1 [0&!1&!2] 2 [0&2] 3 [!0&2] 4 [!0&!2] 7 State: 3 {0 3} [0] 3\n",
"properties: trans-labels explicit-labels state-acc complete\n", "[!0] 4 State: 4 {1 3} [t] 4 State: 5 {3} [0&!1] 3 [!0] 4 [0&1] 5 State:\n",
"properties: deterministic\n", "6 {3} [0&!1&!2] 2 [0&!1&2] 3 [!0&2] 4 [0&1&2] 5 [0&1&!2] 6 [!0&!2]\n",
"--BODY--\n", "7 State: 7 {3} [0&!1&!2] 2 [2] 4 [0&1&!2] 6 [!0&!2] 7 --END--\"\"\")\n",
"State: 0 {2}\n",
"[0&1] 0\n",
"[0&!1] 3\n",
"[!0] 4\n",
"State: 1 {2}\n",
"[0&1&2] 0\n",
"[0&1&!2] 1\n",
"[0&!1&!2] 2\n",
"[0&!1&2] 3\n",
"[!0&2] 4\n",
"[!0&!2] 7\n",
"State: 2 {2}\n",
"[0&1&!2] 1\n",
"[0&!1&!2] 2\n",
"[0&2] 3\n",
"[!0&2] 4\n",
"[!0&!2] 7\n",
"State: 3 {0 3}\n",
"[0] 3\n",
"[!0] 4\n",
"State: 4 {1 3}\n",
"[t] 4\n",
"State: 5 {3}\n",
"[0&!1] 3\n",
"[!0] 4\n",
"[0&1] 5\n",
"State: 6 {3}\n",
"[0&!1&!2] 2\n",
"[0&!1&2] 3\n",
"[!0&2] 4\n",
"[0&1&2] 5\n",
"[0&1&!2] 6\n",
"[!0&!2] 7\n",
"State: 7 {3}\n",
"[0&!1&!2] 2\n",
"[2] 4\n",
"[0&1&!2] 6\n",
"[!0&!2] 7\n",
"--END--\n",
"\"\"\")\n",
"aut" "aut"
] ]
}, },
@ -3960,7 +3876,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ea480> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c01b0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -4137,7 +4053,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc23fae0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6f60> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -4295,7 +4211,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc092c00> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa029e660> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -4313,7 +4229,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"The subtlety of Streett acceptance is that if a path that does not visit any accepting set infinitely often *is* accepting. So when disabling SCCs, we must be careful to label them with a combination of rejecting acceptance sets.\n", "The subtlety of Streett acceptance is that a path that does not visit any accepting set infinitely often *is* accepting. So when disabling SCCs, we must be careful to label them with a combination of rejecting acceptance sets.\n",
"\n", "\n",
"This is easy to understand using an example. In the following extraction of the **strong** and **inherently terminal** parts, the rejecting SCCs (that were either rejecting or strictly inherently weak originally) have been labeled by the same acceptance sets, to ensure that they are rejected." "This is easy to understand using an example. In the following extraction of the **strong** and **inherently terminal** parts, the rejecting SCCs (that were either rejecting or strictly inherently weak originally) have been labeled by the same acceptance sets, to ensure that they are rejected."
] ]
@ -4644,7 +4560,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ea3c0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c0a80> >"
] ]
}, },
"execution_count": 14, "execution_count": 14,
@ -4767,7 +4683,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc23fbd0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c0540> >"
] ]
}, },
"execution_count": 15, "execution_count": 15,
@ -4865,7 +4781,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0eac90> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8090> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -4941,7 +4857,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc21d7e0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c0270> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -5035,7 +4951,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0eaab0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8090> >"
] ]
}, },
"execution_count": 18, "execution_count": 18,
@ -5185,7 +5101,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ab6f0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8a50> >"
] ]
}, },
"execution_count": 19, "execution_count": 19,
@ -5345,7 +5261,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0abb70> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00d0cc0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -5447,7 +5363,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc092c00> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6780> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -5582,7 +5498,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0abae0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c0570> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -5606,7 +5522,7 @@
"# `decompose_scc()` by SCC number\n", "# `decompose_scc()` by SCC number\n",
"\n", "\n",
"Decompose SCC can also be called by SCC numbers.\n", "Decompose SCC can also be called by SCC numbers.\n",
"The example below show the different SCC numbers and the state they contains, before extracting the sub-automaton containing SCC 0 and 2 (i.e., anything leading to states 1 and 4 of the original automaton). This example also shows that when an `scc_info` is available for to automaton to decompose, it can be passed to `decompose_scc()` in lieu of the automaton: doing so is faster because `decompose_scc()` does not need to rebuild this object. " "The example below show the different SCC numbers and the state they contains, before extracting the sub-automaton containing SCC 0 and 1 (i.e., anything leading to states 1 and 4 of the original automaton). This example also shows that when an `scc_info` is available for to automaton to decompose, it can be passed to `decompose_scc()` in lieu of the automaton: doing so is faster because `decompose_scc()` does not need to rebuild this object. "
] ]
}, },
{ {
@ -5619,9 +5535,9 @@
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"SCC #0 contains states [1]\n", "SCC #0 contains states [1]\n",
"SCC #1 contains states [2]\n", "SCC #1 contains states [4]\n",
"SCC #2 contains states [4]\n", "SCC #2 contains states [3]\n",
"SCC #3 contains states [0, 3]\n" "SCC #3 contains states [0, 2]\n"
] ]
}, },
{ {
@ -5647,11 +5563,11 @@
"</g>\n", "</g>\n",
"<g id=\"clust2\" class=\"cluster\">\n", "<g id=\"clust2\" class=\"cluster\">\n",
"<title>cluster_1</title>\n", "<title>cluster_1</title>\n",
"<polygon fill=\"none\" stroke=\"green\" points=\"162,-8 162,-108 214,-108 214,-8 162,-8\"/>\n", "<polygon fill=\"none\" stroke=\"red\" points=\"265,-148 265,-233 317,-233 317,-148 265,-148\"/>\n",
"</g>\n", "</g>\n",
"<g id=\"clust3\" class=\"cluster\">\n", "<g id=\"clust3\" class=\"cluster\">\n",
"<title>cluster_2</title>\n", "<title>cluster_2</title>\n",
"<polygon fill=\"none\" stroke=\"red\" points=\"265,-148 265,-233 317,-233 317,-148 265,-148\"/>\n", "<polygon fill=\"none\" stroke=\"green\" points=\"162,-8 162,-108 214,-108 214,-8 162,-8\"/>\n",
"</g>\n", "</g>\n",
"<g id=\"clust4\" class=\"cluster\">\n", "<g id=\"clust4\" class=\"cluster\">\n",
"<title>cluster_3</title>\n", "<title>cluster_3</title>\n",
@ -5691,28 +5607,28 @@
"<polygon fill=\"black\" stroke=\"black\" points=\"358.61,-163.72 351.01,-162.65 355.65,-161.85 352.69,-159.99 352.69,-159.99 352.69,-159.99 355.65,-161.85 354.37,-157.32 358.61,-163.72 358.61,-163.72\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"358.61,-163.72 351.01,-162.65 355.65,-161.85 352.69,-159.99 352.69,-159.99 352.69,-159.99 355.65,-161.85 354.37,-157.32 358.61,-163.72 358.61,-163.72\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n", "<text text-anchor=\"start\" x=\"236\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">c</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.71,-144.67C69.74,-131.35 79.55,-112.57 92,-99 113.33,-75.75 144.49,-56.45 165.24,-45.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.59,-41.66 166.91,-47.75 168.5,-43.32 165.42,-44.98 165.42,-44.98 165.42,-44.98 168.5,-43.32 163.93,-42.2 171.59,-41.66 171.59,-41.66\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-176\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-172.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", "<text text-anchor=\"middle\" x=\"188\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;3 -->\n", "<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n", "<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.71,-144.67C69.74,-131.35 79.55,-112.57 92,-99 113.33,-75.75 144.49,-56.45 165.24,-45.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.59,-41.66 166.91,-47.75 168.5,-43.32 165.42,-44.98 165.42,-44.98 165.42,-44.98 168.5,-43.32 163.93,-42.2 171.59,-41.66 171.59,-41.66\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b &amp; !c</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188\" cy=\"-176\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188\" y=\"-172.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.01,-159.31C93.17,-157.84 125.14,-156.68 152,-162 156.19,-162.83 160.53,-164.15 164.66,-165.65\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M74.01,-159.31C93.17,-157.84 125.14,-156.68 152,-162 156.19,-162.83 160.53,-164.15 164.66,-165.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.35,-168.3 163.68,-168.66 168.1,-167.02 164.84,-165.73 164.84,-165.73 164.84,-165.73 168.1,-167.02 166,-162.8 171.35,-168.3 171.35,-168.3\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"171.35,-168.3 163.68,-168.66 168.1,-167.02 164.84,-165.73 164.84,-165.73 164.84,-165.73 168.1,-167.02 166,-162.8 171.35,-168.3 171.35,-168.3\"/>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"104.5\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
@ -5725,16 +5641,8 @@
"<text text-anchor=\"start\" x=\"369.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"start\" x=\"369.5\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"366\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"366\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-49.92C177.11,-60.15 179.99,-70 188,-70 194.13,-70 197.25,-64.23 197.37,-56.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-49.92 200.5,-56.55 197,-53.4 197.37,-56.88 197.37,-56.88 197.37,-56.88 197,-53.4 194.23,-57.21 196.63,-49.92 196.63,-49.92\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"291\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"291\" cy=\"-174\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"291\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n", "<text text-anchor=\"middle\" x=\"291\" y=\"-170.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
@ -5753,31 +5661,39 @@
"<polygon fill=\"black\" stroke=\"black\" points=\"298.03,-190.66 301.6,-197.46 298.24,-194.16 298.46,-197.65 298.46,-197.65 298.46,-197.65 298.24,-194.16 295.31,-197.84 298.03,-190.66 298.03,-190.66\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"298.03,-190.66 301.6,-197.46 298.24,-194.16 298.46,-197.65 298.46,-197.65 298.46,-197.65 298.24,-194.16 295.31,-197.84 298.03,-190.66 298.03,-190.66\"/>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", "<text text-anchor=\"start\" x=\"287.5\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;0 -->\n", "<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge8\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n", "<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-49.92C177.11,-60.15 179.99,-70 188,-70 194.13,-70 197.25,-64.23 197.37,-56.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-49.92 200.5,-56.55 197,-53.4 197.37,-56.88 197.37,-56.88 197.37,-56.88 197,-53.4 194.23,-57.21 196.63,-49.92 196.63,-49.92\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M169.95,-178.44C150.76,-180.68 118.75,-182.83 92,-177 87.54,-176.03 82.98,-174.44 78.67,-172.63\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M169.95,-178.44C150.76,-180.68 118.75,-182.83 92,-177 87.54,-176.03 82.98,-174.44 78.67,-172.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-169.66 79.86,-169.71 75.37,-171.12 78.55,-172.57 78.55,-172.57 78.55,-172.57 75.37,-171.12 77.24,-175.44 72.18,-169.66 72.18,-169.66\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"72.18,-169.66 79.86,-169.71 75.37,-171.12 78.55,-172.57 78.55,-172.57 78.55,-172.57 75.37,-171.12 77.24,-175.44 72.18,-169.66 72.18,-169.66\"/>\n",
"<text text-anchor=\"start\" x=\"102.5\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"102.5\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !c</text>\n",
"<text text-anchor=\"start\" x=\"114\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"114\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;1 -->\n", "<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n", "<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M200.26,-189.33C213.84,-204.25 238.19,-227.57 265,-237 286.8,-244.67 295.92,-246.47 317,-237 335.81,-228.55 350.87,-210.33 360.62,-195.64\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M200.26,-189.33C213.84,-204.25 238.19,-227.57 265,-237 286.8,-244.67 295.92,-246.47 317,-237 335.81,-228.55 350.87,-210.33 360.62,-195.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.47,-189.6 363.36,-197.2 362.59,-192.55 360.71,-195.5 360.71,-195.5 360.71,-195.5 362.59,-192.55 358.05,-193.81 364.47,-189.6 364.47,-189.6\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"364.47,-189.6 363.36,-197.2 362.59,-192.55 360.71,-195.5 360.71,-195.5 360.71,-195.5 362.59,-192.55 358.05,-193.81 364.47,-189.6 364.47,-189.6\"/>\n",
"<text text-anchor=\"start\" x=\"273.5\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n", "<text text-anchor=\"start\" x=\"273.5\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; c</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n", "<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n", "<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.13,-175.66C222.38,-175.34 246.98,-174.85 265.34,-174.49\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M206.13,-175.66C222.38,-175.34 246.98,-174.85 265.34,-174.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"272.78,-174.34 265.85,-177.63 269.28,-174.41 265.78,-174.48 265.78,-174.48 265.78,-174.48 269.28,-174.41 265.72,-171.33 272.78,-174.34 272.78,-174.34\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"272.78,-174.34 265.85,-177.63 269.28,-174.41 265.78,-174.48 265.78,-174.48 265.78,-174.48 269.28,-174.41 265.72,-171.33 272.78,-174.34 272.78,-174.34\"/>\n",
"<text text-anchor=\"start\" x=\"224\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n", "<text text-anchor=\"start\" x=\"224\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; c</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;3 -->\n", "<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n", "<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M179.37,-191.92C177.11,-202.15 179.99,-212 188,-212 194.13,-212 197.25,-206.23 197.37,-198.93\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M179.37,-191.92C177.11,-202.15 179.99,-212 188,-212 194.13,-212 197.25,-206.23 197.37,-198.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-191.92 200.5,-198.55 197,-195.4 197.37,-198.88 197.37,-198.88 197.37,-198.88 197,-195.4 194.23,-199.21 196.63,-191.92 196.63,-191.92\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"196.63,-191.92 200.5,-198.55 197,-195.4 197.37,-198.88 197.37,-198.88 197.37,-198.88 197,-195.4 194.23,-199.21 196.63,-191.92 196.63,-191.92\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-215.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n", "<text text-anchor=\"start\" x=\"170.5\" y=\"-215.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !c</text>\n",
@ -5786,7 +5702,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ea1e0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c85d0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -5927,7 +5843,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0ea630> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8cf0> >"
] ]
}, },
"execution_count": 21, "execution_count": 21,
@ -5941,14 +5857,14 @@
"for scc in range(si.scc_count()):\n", "for scc in range(si.scc_count()):\n",
" print(\"SCC #{} contains states {}\".format(scc, list(si.states_of(scc))))\n", " print(\"SCC #{} contains states {}\".format(scc, list(si.states_of(scc))))\n",
"display(aut)\n", "display(aut)\n",
"spot.decompose_scc(si, '0,2')" "spot.decompose_scc(si, '0,1')"
] ]
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"If an SCC number N is prefixed by `a`, it signifies that we want to extract the Nth *accepting* SCC. In the above example SCC 2 is rejecting so SCC `a2` denotes SCC 3." "If an SCC number N is prefixed by `a`, it signifies that we want to extract the (N+1)th *accepting* SCC. In the above example SCC 1 is rejecting so `a0`, `a1`, and `a2` denote respectively SCCs 0, 2, and 3."
] ]
}, },
{ {
@ -6030,7 +5946,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f09cc0eae70> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8b10> >"
] ]
}, },
"execution_count": 22, "execution_count": 22,
@ -6059,7 +5975,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.9.1+" "version": "3.9.2"
} }
}, },
"nbformat": 4, "nbformat": 4,

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: utf-8 -*- # -*- mode: python; coding: utf-8 -*-
# Copyright (C) 2017 Laboratoire de Recherche et # Copyright (C) 2017, 2021 Laboratoire de Recherche et
# Développement de l'Epita # Développement de l'Epita
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -22,7 +22,14 @@ import spot
aut = spot.translate('(Ga -> Gb) W c') aut = spot.translate('(Ga -> Gb) W c')
si = spot.scc_info(aut) si = spot.scc_info(aut)
assert (spot.decompose_scc(si, 2).to_str('hoa', '1.1') == """HOA: v1.1 # Extract the only rejecting SCC. Its number might differ
# if the generation of the automaton changes, so just scan
# for it.
rej = [j for j in range(si.scc_count()) if si.is_rejecting_scc(j)]
assert len(rej) == 1
s = spot.decompose_scc(si, rej[0]).to_str('hoa', '1.1')
assert (s == """HOA: v1.1
States: 3 States: 3
Start: 0 Start: 0
AP: 3 "b" "a" "c" AP: 3 "b" "a" "c"

View file

@ -1,6 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
# -*- mode: python; coding: utf-8 -*- # -*- mode: python; coding: utf-8 -*-
# Copyright (C) 2017-2019 Laboratoire de Recherche et Développement de # Copyright (C) 2017-2019, 2021 Laboratoire de Recherche et Développement de
# l'EPITA. # l'EPITA.
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -573,17 +573,17 @@ properties: deterministic univ-branch
--BODY-- --BODY--
State: 0 {0} State: 0 {0}
[0&1] 0 [0&1] 0
[0&!1] 1 [0&!1] 2
[!0&1] 0&1
[!0&!1] 1&2 [!0&!1] 1&2
[!0&1] 0&2
State: 1 State: 1
[0&1] 0
[0&!1] 1
[!0&!1] 1&2
[!0&1] 0&2
State: 2
[!0&1] 3 [!0&1] 3
[0 | !1] 4 [0 | !1] 4
State: 2
[0&1] 0
[0&!1] 2
[!0&1] 0&1
[!0&!1] 1&2
State: 3 {0} State: 3 {0}
[!0] 3 [!0] 3
[0] 4 [0] 4

View file

@ -1,6 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
# -*- mode: python; coding: utf-8 -*- # -*- mode: python; coding: utf-8 -*-
# Copyright (C) 2017 Laboratoire de Recherche et Développement de # Copyright (C) 2017, 2021 Laboratoire de Recherche et Développement de
# l'EPITA. # l'EPITA.
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -75,10 +75,10 @@ while todo:
todo.add(s) todo.add(s)
assert seen == {0, 1, 2, 3} assert seen == {0, 1, 2, 3}
assert trans == [(0, 0), (0, 1), (0, 2), (0, 3), assert trans == [(0, 0), (0, 1), (0, 2), (0, 3),
(3, 0), (3, 1), (3, 3), (3, 4), (2, 0), (2, 1), (2, 2), (2, 4),
(1, 1), (2, 2), (4, 1), (4, 4)] (1, 1), (4, 1), (4, 4), (3, 3)]
assert transi == [(0, 0, 1), (0, 3, 4), (3, 0, 7), assert transi == [(0, 0, 1), (0, 2, 3), (2, 0, 6),
(3, 3, 9), (1, 1, 5), (2, 2, 6), (4, 4, 12)] (2, 2, 8), (1, 1, 5), (4, 4, 12), (3, 3, 10)]
assert not spot.is_weak_automaton(a, si) assert not spot.is_weak_automaton(a, si)

View file

@ -620,24 +620,24 @@ properties: trans-labels explicit-labels trans-acc stutter-invariant
State: 0 State: 0
[0] 0 [0] 0
[!0] 1 {0} [!0] 1 {0}
[0&1] 2 {0} [!0&1] 2
[!0&1] 3 [0&1] 3 {0}
State: 1 State: 1
[1] 1 [1] 1
[!1] 1 {0} [!1] 1 {0}
[!0&1] 3 [!0&1] 2
[0&1] 4 [0&1] 4
State: 2 State: 2
[0&1] 2 {0}
State: 3
[!1] 1 {0} [!1] 1 {0}
[!0&1] 3 [!0&1] 2
[0&1] 5 [0&1] 5
State: 3
[0&1] 3 {0}
State: 4 State: 4
[0&!1] 6 [0&!1] 6
State: 5 State: 5
[!0&!1] 1 {0} [!0&!1] 1 {0}
[!0&1] 3 [!0&1] 2
[0&1] 5 [0&1] 5
[0&!1] 6 {0} [0&!1] 6 {0}
State: 6 State: 6

View file

@ -34,11 +34,11 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n", "<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n", " -->\n",
"<!-- Pages: 1 -->\n", "<!-- Pages: 1 -->\n",
"<svg width=\"171pt\" height=\"125pt\"\n", "<svg width=\"170pt\" height=\"125pt\"\n",
" viewBox=\"0.00 0.00 171.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 170.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 167,-120.8 167,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 166,-120.8 166,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"58.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n", "<text text-anchor=\"start\" x=\"59.5\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
@ -62,29 +62,29 @@
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n", "<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"140\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n", "<ellipse fill=\"none\" stroke=\"black\" cx=\"140\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"140\" 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=\"edge3\" class=\"edge\">\n", "<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n", "<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.2,-22C85.07,-22 99.39,-22 111.89,-22\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M74.39,-22C84.9,-22 98.55,-22 110.6,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119,-22 112,-25.15 115.5,-22 112,-22 112,-22 112,-22 115.5,-22 112,-18.85 119,-22 119,-22\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"117.85,-22 110.85,-25.15 114.35,-22 110.85,-22 110.85,-22 110.85,-22 114.35,-22 110.85,-18.85 117.85,-22 117.85,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" 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=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n", "<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M132.99,-42.58C131.89,-52.84 134.55,-62 141,-62 145.83,-62 148.54,-56.85 149.13,-49.95\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M131.99,-42.58C130.89,-52.84 133.55,-62 140,-62 144.83,-62 147.54,-56.85 148.13,-49.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.01,-42.58 152.27,-49.53 149.06,-46.08 149.12,-49.58 149.12,-49.58 149.12,-49.58 149.06,-46.08 145.97,-49.63 149.01,-42.58 149.01,-42.58\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"148.01,-42.58 151.27,-49.53 148.06,-46.08 148.12,-49.58 148.12,-49.58 148.12,-49.58 148.06,-46.08 144.97,-49.63 148.01,-42.58 148.01,-42.58\"/>\n",
"<text text-anchor=\"start\" x=\"136.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", "<text text-anchor=\"start\" x=\"136\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f930090abd0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb57416b570> >"
] ]
}, },
"execution_count": 2, "execution_count": 2,
@ -119,272 +119,272 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n", "<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n", " -->\n",
"<!-- Title: G Pages: 1 -->\n", "<!-- Title: G Pages: 1 -->\n",
"<svg width=\"734pt\" height=\"265pt\"\n", "<svg width=\"729pt\" height=\"305pt\"\n",
" viewBox=\"0.00 0.00 734.00 265.23\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 729.00 304.91\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.7042253521126761 0.7042253521126761) rotate(0) translate(4 372)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.7246376811594204 0.7246376811594204) rotate(0) translate(4 416.87)\">\n",
"<title>G</title>\n", "<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 1036.55,-372 1036.55,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-416.87 1002.23,-416.87 1002.23,4 -4,4\"/>\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n", "<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"118\" cy=\"-252\" rx=\"27\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"118\" cy=\"-249.87\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"118\" y=\"-248.3\" font-family=\"Lato\" font-size=\"14.00\">init</text>\n", "<text text-anchor=\"middle\" x=\"118\" y=\"-246.17\" font-family=\"Lato\" font-size=\"14.00\">init</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;1 -->\n", "<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n", "<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n", "<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.22,-252C63.46,-252 73.96,-252 83.7,-252\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M54.22,-249.87C63.46,-249.87 73.96,-249.87 83.7,-249.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"90.97,-252 83.97,-255.15 87.47,-252 83.97,-252 83.97,-252 83.97,-252 87.47,-252 83.97,-248.85 90.97,-252 90.97,-252\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"90.97,-249.87 83.97,-253.02 87.47,-249.87 83.97,-249.87 83.97,-249.87 83.97,-249.87 87.47,-249.87 83.97,-246.72 90.97,-249.87 90.97,-249.87\"/>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"540.97\" cy=\"-197\" rx=\"37.45\" ry=\"26.74\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"536.02\" cy=\"-305.87\" rx=\"36.54\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"540.97\" y=\"-200.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"536.02\" y=\"-309.67\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"540.97\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"536.02\" y=\"-294.67\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;2 -->\n", "<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n", "<g id=\"edge2\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n", "<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M134.19,-266.68C169.2,-298.67 258.8,-370.27 340.71,-350 413,-332.11 429.98,-313.63 482.66,-261 491.6,-252.07 492.34,-248.51 500.66,-239 504.91,-234.14 509.52,-229.06 514.04,-224.18\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M133.65,-264.68C151.51,-281.58 183.48,-308.25 217,-318.87 312.61,-349.15 432.51,-329.96 494.19,-316.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"518.88,-218.98 516.42,-226.25 516.5,-221.54 514.11,-224.1 514.11,-224.1 514.11,-224.1 516.5,-221.54 511.81,-221.96 518.88,-218.98 518.88,-218.98\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"501.06,-314.66 494.93,-319.29 497.65,-315.44 494.23,-316.22 494.23,-316.22 494.23,-316.22 497.65,-315.44 493.54,-313.14 501.06,-314.66 501.06,-314.66\"/>\n",
"<text text-anchor=\"middle\" x=\"322.21\" y=\"-356.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"326.54\" y=\"-338.67\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"250.36\" cy=\"-156\" rx=\"35.21\" ry=\"26.74\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"253.77\" cy=\"-249.87\" rx=\"36.54\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"250.36\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"253.77\" y=\"-253.67\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"250.36\" y=\"-144.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"253.77\" y=\"-238.67\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;3 -->\n", "<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n", "<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n", "<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M136.85,-238.85C157.77,-223.45 192.79,-197.66 218.21,-178.94\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M145.11,-249.87C163.49,-249.87 188.5,-249.87 209.79,-249.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"224.13,-174.58 220.36,-181.27 221.31,-176.65 218.49,-178.73 218.49,-178.73 218.49,-178.73 221.31,-176.65 216.62,-176.19 224.13,-174.58 224.13,-174.58\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"216.86,-249.87 209.86,-253.02 213.36,-249.87 209.86,-249.87 209.86,-249.87 209.86,-249.87 213.36,-249.87 209.86,-246.72 216.86,-249.87 216.86,-249.87\"/>\n",
"<text text-anchor=\"middle\" x=\"180\" y=\"-221.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"181\" y=\"-253.67\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"396.19\" cy=\"-197\" rx=\"37.45\" ry=\"26.74\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"396.48\" cy=\"-195.87\" rx=\"33.88\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"396.19\" y=\"-200.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"396.48\" y=\"-199.67\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"396.19\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"middle\" x=\"396.48\" y=\"-184.67\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;4 -->\n", "<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n", "<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M144.88,-248.75C186.53,-243.23 270.85,-230.86 340.71,-213 345.2,-211.85 349.88,-210.59 354.53,-209.28\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M137.1,-237.15C156.02,-224.67 187.07,-206.46 217,-198.87 263.47,-187.09 318.95,-188.45 355.58,-191.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"361.29,-207.36 355.42,-212.31 357.92,-208.32 354.56,-209.28 354.56,-209.28 354.56,-209.28 357.92,-208.32 353.69,-206.25 361.29,-207.36 361.29,-207.36\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"362.65,-191.97 355.4,-194.52 359.16,-191.68 355.67,-191.38 355.67,-191.38 355.67,-191.38 359.16,-191.68 355.94,-188.24 362.65,-191.97 362.65,-191.97\"/>\n",
"<text text-anchor=\"middle\" x=\"250.36\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"middle\" x=\"253.77\" y=\"-202.67\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 5 -->\n", "<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n", "<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"687.63\" cy=\"-147\" rx=\"35.23\" ry=\"26.76\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"954.64\" cy=\"-156.87\" rx=\"39.69\" ry=\"26.76\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"687.63\" cy=\"-147\" rx=\"39.21\" ry=\"30.74\"/>\n", "<ellipse fill=\"none\" stroke=\"black\" cx=\"954.64\" cy=\"-156.87\" rx=\"43.7\" ry=\"30.74\"/>\n",
"<text text-anchor=\"middle\" x=\"687.63\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"954.64\" y=\"-160.67\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"687.63\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"954.64\" y=\"-145.67\" 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=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n", "<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M575.16,-185.53C595.79,-178.4 622.52,-169.16 644.62,-161.52\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M570.12,-316.01C627.86,-331.93 749.88,-357.65 845.04,-323.87 900.45,-304.2 930.17,-236.98 943.87,-194.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"651.32,-159.2 645.74,-164.47 648.02,-160.35 644.71,-161.49 644.71,-161.49 644.71,-161.49 648.02,-160.35 643.68,-158.51 651.32,-159.2 651.32,-159.2\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"946.01,-187.13 946.95,-194.75 944.98,-190.48 943.94,-193.82 943.94,-193.82 943.94,-193.82 944.98,-190.48 940.94,-192.89 946.01,-187.13 946.01,-187.13\"/>\n",
"<text text-anchor=\"middle\" x=\"614.77\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"736.16\" y=\"-343.67\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 6 -->\n", "<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n", "<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n", "<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"835.46\" cy=\"-148\" rx=\"37.46\" ry=\"26.76\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"662.39\" cy=\"-195.87\" rx=\"36.56\" ry=\"26.76\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"835.46\" cy=\"-148\" rx=\"41.45\" ry=\"30.74\"/>\n", "<ellipse fill=\"none\" stroke=\"black\" cx=\"662.39\" cy=\"-195.87\" rx=\"40.54\" ry=\"30.74\"/>\n",
"<text text-anchor=\"middle\" x=\"835.46\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"662.39\" y=\"-199.67\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"835.46\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"662.39\" y=\"-184.67\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;6 -->\n", "<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n", "<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M574.75,-209.11C612.29,-221.14 675.27,-235.72 726.98,-220 755.27,-211.4 782.88,-192.61 803.03,-176.38\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M560.12,-285.44C579.68,-268.14 607.91,-243.17 629.6,-223.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"808.51,-171.88 805.1,-178.76 805.81,-174.1 803.1,-176.32 803.1,-176.32 803.1,-176.32 805.81,-174.1 801.11,-173.89 808.51,-171.88 808.51,-171.88\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"634.96,-219.24 631.8,-226.24 632.34,-221.56 629.72,-223.88 629.72,-223.88 629.72,-223.88 632.34,-221.56 627.63,-221.52 634.96,-219.24 634.96,-219.24\"/>\n",
"<text text-anchor=\"middle\" x=\"687.63\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n", "<text text-anchor=\"middle\" x=\"598.62\" y=\"-257.67\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n",
"</g>\n", "</g>\n",
"<!-- 7 -->\n", "<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n", "<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n", "<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"988.24\" cy=\"-61\" rx=\"37.46\" ry=\"26.76\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"954.64\" cy=\"-349.87\" rx=\"36.56\" ry=\"26.76\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"988.24\" cy=\"-61\" rx=\"41.45\" ry=\"30.74\"/>\n", "<ellipse fill=\"none\" stroke=\"black\" cx=\"954.64\" cy=\"-349.87\" rx=\"40.54\" ry=\"30.74\"/>\n",
"<text text-anchor=\"middle\" x=\"988.24\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"954.64\" y=\"-353.67\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"988.24\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"middle\" x=\"954.64\" y=\"-338.67\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;7 -->\n", "<!-- 2&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;7</title>\n", "<title>2&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M562.66,-174.54C582.69,-154.1 614.86,-124.51 648.27,-107 742.55,-57.61 870.96,-54.83 939.5,-57.6\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M556.82,-328.05C566.8,-337.6 579.72,-347.73 593.62,-352.87 700.73,-392.5 838.36,-374.03 908.36,-360.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"946.75,-57.93 939.62,-60.76 943.25,-57.77 939.76,-57.61 939.76,-57.61 939.76,-57.61 943.25,-57.77 939.9,-54.47 946.75,-57.93 946.75,-57.93\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"915.33,-358.8 909.09,-363.27 911.9,-359.49 908.47,-360.19 908.47,-360.19 908.47,-360.19 911.9,-359.49 907.85,-357.1 915.33,-358.8 915.33,-358.8\"/>\n",
"<text text-anchor=\"middle\" x=\"760.48\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n", "<text text-anchor=\"middle\" x=\"736.16\" y=\"-379.67\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 8 -->\n", "<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\">\n", "<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n", "<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"988.24\" cy=\"-269\" rx=\"40.13\" ry=\"26.76\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"807.1\" cy=\"-195.87\" rx=\"33.89\" ry=\"26.76\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"988.24\" cy=\"-269\" rx=\"44.11\" ry=\"30.74\"/>\n", "<ellipse fill=\"none\" stroke=\"black\" cx=\"807.1\" cy=\"-195.87\" rx=\"37.88\" ry=\"30.74\"/>\n",
"<text text-anchor=\"middle\" x=\"988.24\" y=\"-272.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"807.1\" y=\"-199.67\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"988.24\" y=\"-257.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"middle\" x=\"807.1\" y=\"-184.67\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;8 -->\n", "<!-- 2&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;8</title>\n", "<title>2&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M568.11,-215.9C577.57,-222.05 588.56,-228.46 599.27,-233 619.92,-241.74 626.28,-240.66 648.27,-245 712.53,-257.69 728.75,-261.13 793.98,-267 838.69,-271.02 850.06,-269.33 894.94,-270 908.32,-270.2 922.8,-270.16 936.23,-270.02\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M572.66,-302.09C607.2,-297.47 660.49,-287.82 703.16,-268.87 729.29,-257.26 755.53,-238.52 774.97,-222.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"943.57,-269.93 936.61,-273.17 940.07,-269.97 936.58,-270.02 936.58,-270.02 936.58,-270.02 940.07,-269.97 936.54,-266.87 943.57,-269.93 943.57,-269.93\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"780.78,-218.21 777.34,-225.07 778.07,-220.42 775.35,-222.62 775.35,-222.62 775.35,-222.62 778.07,-220.42 773.37,-220.18 780.78,-218.21 780.78,-218.21\"/>\n",
"<text text-anchor=\"middle\" x=\"760.48\" y=\"-268.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n", "<text text-anchor=\"middle\" x=\"662.39\" y=\"-296.67\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;2 -->\n", "<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n", "<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M284.42,-148.77C321.3,-141.95 382.51,-134.36 433.66,-146 459.24,-151.82 485.84,-164.59 506.04,-175.89\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M288.84,-258.38C295.37,-259.93 302.16,-261.49 308.54,-262.87 372.6,-276.69 447.36,-290.42 492.94,-298.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"512.36,-179.5 504.72,-178.77 509.32,-177.77 506.28,-176.03 506.28,-176.03 506.28,-176.03 509.32,-177.77 507.85,-173.3 512.36,-179.5 512.36,-179.5\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"499.99,-299.78 492.55,-301.65 496.55,-299.16 493.1,-298.55 493.1,-298.55 493.1,-298.55 496.55,-299.16 493.65,-295.45 499.99,-299.78 499.99,-299.78\"/>\n",
"<text text-anchor=\"middle\" x=\"396.19\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"396.48\" y=\"-289.67\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;3 -->\n", "<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n", "<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M237.35,-181.37C236.45,-191.92 240.79,-200.87 250.36,-200.87 257.68,-200.87 261.94,-195.63 263.13,-188.43\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M240.39,-275.24C239.47,-285.79 243.93,-294.74 253.77,-294.74 261.31,-294.74 265.69,-289.5 266.91,-282.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"263.36,-181.37 266.28,-188.47 263.25,-184.87 263.14,-188.37 263.14,-188.37 263.14,-188.37 263.25,-184.87 259.99,-188.26 263.36,-181.37 263.36,-181.37\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"267.15,-275.24 270.06,-282.34 267.03,-278.74 266.91,-282.24 266.91,-282.24 266.91,-282.24 267.03,-278.74 263.77,-282.13 267.15,-275.24 267.15,-275.24\"/>\n",
"<text text-anchor=\"middle\" x=\"250.36\" y=\"-204.67\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n", "<text text-anchor=\"middle\" x=\"253.77\" y=\"-298.54\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\">\n", "<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n", "<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M277.29,-173.59C285.43,-178.34 294.66,-183 303.71,-186 318.72,-190.97 335.77,-193.75 351.05,-195.28\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M281.96,-232.33C290.26,-227.49 299.57,-222.56 308.54,-218.87 323.81,-212.58 341.31,-207.56 356.59,-203.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"358.4,-195.93 351.14,-198.45 354.91,-195.62 351.42,-195.31 351.42,-195.31 351.42,-195.31 354.91,-195.62 351.7,-192.17 358.4,-195.93 358.4,-195.93\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"363.43,-202.21 357.35,-206.89 360.03,-203.02 356.62,-203.83 356.62,-203.83 356.62,-203.83 360.03,-203.02 355.89,-200.76 363.43,-202.21 363.43,-202.21\"/>\n",
"<text text-anchor=\"middle\" x=\"322.21\" y=\"-197.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n", "<text text-anchor=\"middle\" x=\"326.54\" y=\"-222.67\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M281.96,-143.82C289,-141.48 296.53,-139.35 303.71,-138 424.23,-115.34 569.82,-130 641.82,-139.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"648.98,-140.98 641.61,-143.12 645.51,-140.49 642.05,-140 642.05,-140 642.05,-140 645.51,-140.49 642.49,-136.88 648.98,-140.98 648.98,-140.98\"/>\n",
"<text text-anchor=\"middle\" x=\"467.16\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M267.59,-132.3C291.51,-100.51 339.45,-48 395.19,-48 395.19,-48 395.19,-48 615.77,-48 686.6,-48 759.6,-91.92 800.78,-121.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"806.62,-125.81 799.11,-124.23 803.8,-123.74 800.97,-121.68 800.97,-121.68 800.97,-121.68 803.8,-123.74 802.82,-119.14 806.62,-125.81 806.62,-125.81\"/>\n",
"<text text-anchor=\"middle\" x=\"540.97\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M261.15,-130.24C279.87,-85.93 325.19,0 395.19,0 395.19,0 395.19,0 836.46,0 877.85,0 921.27,-20 950.83,-37.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"956.93,-40.69 949.3,-39.84 953.91,-38.91 950.9,-37.13 950.9,-37.13 950.9,-37.13 953.91,-38.91 952.5,-34.42 956.93,-40.69 956.93,-40.69\"/>\n",
"<text text-anchor=\"middle\" x=\"614.77\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;8 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M264.51,-180.92C279.97,-210.18 303.55,-254.79 303.71,-255 337.27,-297.69 340.88,-336 395.19,-336 395.19,-336 395.19,-336 836.46,-336 878.45,-336 921.78,-314.04 951.16,-295.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"957.21,-291.31 953.07,-297.77 954.28,-293.22 951.35,-295.14 951.35,-295.14 951.35,-295.14 954.28,-293.22 949.63,-292.5 957.21,-291.31 957.21,-291.31\"/>\n",
"<text text-anchor=\"middle\" x=\"614.77\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 9 -->\n", "<!-- 9 -->\n",
"<g id=\"node10\" class=\"node\">\n", "<g id=\"node10\" class=\"node\">\n",
"<title>9</title>\n", "<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"540.97\" cy=\"-275\" rx=\"40.11\" ry=\"26.74\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"536.02\" cy=\"-26.87\" rx=\"39.7\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"540.97\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"536.02\" y=\"-30.67\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"540.97\" y=\"-263.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"middle\" x=\"536.02\" y=\"-15.67\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;9 -->\n", "<!-- 3&#45;&gt;9 -->\n",
"<g id=\"edge12\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;9</title>\n", "<title>3&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M266.43,-180.23C284.59,-206.89 317.81,-248.31 358.71,-266 401.82,-284.65 456.18,-284.63 494.07,-281.36\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M278.25,-229.62C282.43,-225.81 286.67,-221.78 290.54,-217.87 365.55,-141.92 353.95,-86.56 448.42,-36.87 460.74,-30.39 475.38,-27.28 489.09,-25.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"501.42,-280.67 494.75,-284.46 497.94,-281 494.45,-281.33 494.45,-281.33 494.45,-281.33 497.94,-281 494.16,-278.19 501.42,-280.67 501.42,-280.67\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"496.16,-25.4 489.42,-29.08 492.67,-25.67 489.18,-25.94 489.18,-25.94 489.18,-25.94 492.67,-25.67 488.94,-22.8 496.16,-25.4 496.16,-25.4\"/>\n",
"<text text-anchor=\"middle\" x=\"396.19\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n", "<text text-anchor=\"middle\" x=\"396.48\" y=\"-119.67\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;2 -->\n", "<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge18\" class=\"edge\">\n", "<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n", "<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M433.96,-197C452.94,-197 476.24,-197 496.15,-197\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M423.38,-212.29C439.64,-222.96 460.8,-237.52 478.42,-251.87 488.82,-260.34 499.61,-270.3 508.95,-279.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"503.32,-197 496.32,-200.15 499.82,-197 496.32,-197 496.32,-197 496.32,-197 499.82,-197 496.32,-193.85 503.32,-197 503.32,-197\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"513.98,-284.27 506.77,-281.63 511.48,-281.83 508.97,-279.38 508.97,-279.38 508.97,-279.38 511.48,-281.83 511.18,-277.13 513.98,-284.27 513.98,-284.27\"/>\n",
"<text text-anchor=\"middle\" x=\"467.16\" y=\"-200.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n", "<text text-anchor=\"middle\" x=\"463.42\" y=\"-255.67\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;3 -->\n", "<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge17\" class=\"edge\">\n", "<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n", "<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M367.84,-179.29C359.43,-174.59 349.96,-169.99 340.71,-167 325.63,-162.12 308.48,-159.38 293.26,-157.85\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M373.57,-215.72C365.05,-222.46 354.87,-229.4 344.54,-233.87 329.93,-240.2 312.95,-244.02 297.72,-246.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"285.96,-157.19 293.21,-154.68 289.45,-157.51 292.93,-157.82 292.93,-157.82 292.93,-157.82 289.45,-157.51 292.65,-160.96 285.96,-157.19 285.96,-157.19\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"290.39,-247.35 296.89,-243.27 293.86,-246.87 297.33,-246.39 297.33,-246.39 297.33,-246.39 293.86,-246.87 297.76,-249.51 290.39,-247.35 290.39,-247.35\"/>\n",
"<text text-anchor=\"middle\" x=\"322.21\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n", "<text text-anchor=\"middle\" x=\"326.54\" y=\"-247.67\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;4 -->\n", "<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge19\" class=\"edge\">\n", "<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n", "<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M383.18,-222.37C382.28,-232.92 386.62,-241.87 396.19,-241.87 403.51,-241.87 407.77,-236.63 408.97,-229.43\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M384.21,-221.24C383.37,-231.79 387.46,-240.74 396.48,-240.74 403.39,-240.74 407.4,-235.5 408.53,-228.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"409.2,-222.37 412.12,-229.47 409.08,-225.87 408.97,-229.37 408.97,-229.37 408.97,-229.37 409.08,-225.87 405.82,-229.26 409.2,-222.37 409.2,-222.37\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"408.75,-221.24 411.68,-228.33 408.64,-224.74 408.53,-228.24 408.53,-228.24 408.53,-228.24 408.64,-224.74 405.38,-228.14 408.75,-221.24 408.75,-221.24\"/>\n",
"<text text-anchor=\"middle\" x=\"396.19\" y=\"-245.67\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n", "<text text-anchor=\"middle\" x=\"396.48\" y=\"-244.54\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M412.47,-172C434.85,-139.65 480.29,-85.87 535.02,-85.87 535.02,-85.87 535.02,-85.87 808.1,-85.87 849.57,-85.87 891.57,-109.44 919.72,-129.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"925.51,-133.62 917.99,-132.06 922.68,-131.57 919.84,-129.51 919.84,-129.51 919.84,-129.51 922.68,-131.57 921.69,-126.96 925.51,-133.62 925.51,-133.62\"/>\n",
"<text text-anchor=\"middle\" x=\"662.39\" y=\"-89.67\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M430.64,-195.87C476.91,-195.87 561.12,-195.87 614.01,-195.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"621.25,-195.87 614.25,-199.02 617.75,-195.87 614.25,-195.87 614.25,-195.87 614.25,-195.87 617.75,-195.87 614.25,-192.72 621.25,-195.87 621.25,-195.87\"/>\n",
"<text text-anchor=\"middle\" x=\"536.02\" y=\"-199.67\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M408.17,-221.11C423.21,-253.66 453.64,-309.87 496.42,-341.87 543.2,-376.86 564.61,-369.15 621.62,-381.87 739.36,-408.15 777.99,-415.18 893.04,-378.87 900.19,-376.61 907.58,-373.66 914.62,-370.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"920.98,-367.56 915.95,-373.36 917.81,-369.03 914.63,-370.5 914.63,-370.5 914.63,-370.5 917.81,-369.03 913.31,-367.64 920.98,-367.56 920.98,-367.56\"/>\n",
"<text text-anchor=\"middle\" x=\"662.39\" y=\"-401.67\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M428.03,-185.53C483.24,-168.24 603.21,-137.13 703.16,-155.87 725.14,-159.99 748.47,-168.66 767.35,-176.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"774.09,-179.88 766.42,-179.92 770.9,-178.46 767.7,-177.04 767.7,-177.04 767.7,-177.04 770.9,-178.46 768.98,-174.16 774.09,-179.88 774.09,-179.88\"/>\n",
"<text text-anchor=\"middle\" x=\"598.62\" y=\"-155.67\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;9 -->\n", "<!-- 4&#45;&gt;9 -->\n",
"<g id=\"edge20\" class=\"edge\">\n", "<g id=\"edge13\" class=\"edge\">\n",
"<title>4&#45;&gt;9</title>\n", "<title>4&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M426.43,-212.97C448.59,-225.08 479.21,-241.81 503.07,-254.84\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M400.4,-169.17C405.16,-138.14 417.44,-87.31 448.42,-56.87 459.74,-45.75 475.38,-38.74 490.26,-34.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"509.29,-258.24 501.64,-257.65 506.22,-256.56 503.15,-254.88 503.15,-254.88 503.15,-254.88 506.22,-256.56 504.66,-252.12 509.29,-258.24 509.29,-258.24\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"497.03,-32.48 491.11,-37.36 493.65,-33.4 490.27,-34.32 490.27,-34.32 490.27,-34.32 493.65,-33.4 489.44,-31.29 497.03,-32.48 497.03,-32.48\"/>\n",
"<text text-anchor=\"middle\" x=\"467.16\" y=\"-245.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"463.42\" y=\"-60.67\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M674.16,-176.1C673.72,-186.94 678.21,-195.87 687.63,-195.87 694.84,-195.87 699.17,-190.64 700.6,-183.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"701.1,-176.1 703.76,-183.3 700.86,-179.59 700.61,-183.08 700.61,-183.08 700.61,-183.08 700.86,-179.59 697.47,-182.86 701.1,-176.1 701.1,-176.1\"/>\n",
"<text text-anchor=\"middle\" x=\"687.63\" y=\"-199.67\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M726.12,-140.17C732.4,-139.26 738.86,-138.49 744.98,-138 758.72,-136.91 762.26,-136.83 775.98,-138 780,-138.34 784.14,-138.81 788.3,-139.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"795.26,-140.36 787.88,-142.48 791.8,-139.86 788.33,-139.37 788.33,-139.37 788.33,-139.37 791.8,-139.86 788.78,-136.25 795.26,-140.36 795.26,-140.36\"/>\n",
"<text text-anchor=\"middle\" x=\"760.48\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>5&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M719.33,-128.04C739.78,-116.24 767.64,-101.7 793.98,-93 842.17,-77.09 899.84,-68.86 939.57,-64.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"946.77,-64.04 940.12,-67.87 943.29,-64.38 939.81,-64.73 939.81,-64.73 939.81,-64.73 943.29,-64.38 939.49,-61.6 946.77,-64.04 946.77,-64.04\"/>\n",
"<text text-anchor=\"middle\" x=\"835.46\" y=\"-96.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;8 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>5&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M715.09,-169.77C735.44,-186.2 764.9,-207.74 793.98,-221 840.33,-242.13 897.34,-254.84 937.39,-261.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"944.66,-263.06 937.23,-264.99 941.21,-262.47 937.76,-261.88 937.76,-261.88 937.76,-261.88 941.21,-262.47 938.29,-258.78 944.66,-263.06 944.66,-263.06\"/>\n",
"<text text-anchor=\"middle\" x=\"835.46\" y=\"-251.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;5 -->\n", "<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge25\" class=\"edge\">\n", "<g id=\"edge21\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n", "<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M793.93,-152.13C778.6,-153.21 760.99,-153.85 744.98,-153 741.39,-152.81 737.68,-152.55 733.95,-152.25\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M693.3,-175.35C713.67,-162.66 741.81,-147.55 769.16,-140.87 814.83,-129.71 868.53,-136.52 906.17,-144.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"726.78,-151.62 734.03,-149.09 730.27,-151.92 733.75,-152.23 733.75,-152.23 733.75,-152.23 730.27,-151.92 733.48,-155.37 726.78,-151.62 726.78,-151.62\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"913.48,-146 905.97,-147.59 910.06,-145.26 906.64,-144.51 906.64,-144.51 906.64,-144.51 910.06,-145.26 907.31,-141.44 913.48,-146 913.48,-146\"/>\n",
"<text text-anchor=\"middle\" x=\"760.48\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"807.1\" y=\"-144.67\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;6 -->\n", "<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge26\" class=\"edge\">\n", "<g id=\"edge22\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n", "<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M821.6,-177.58C821.3,-188.21 825.92,-196.87 835.46,-196.87 842.76,-196.87 847.19,-191.79 848.72,-184.64\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M650.76,-225.94C650.64,-236.34 654.52,-244.74 662.39,-244.74 668.29,-244.74 671.95,-240.01 673.35,-233.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"849.32,-177.58 851.87,-184.83 849.03,-181.07 848.73,-184.56 848.73,-184.56 848.73,-184.56 849.03,-181.07 845.59,-184.29 849.32,-177.58 849.32,-177.58\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"674.01,-225.94 676.52,-233.19 673.7,-229.42 673.38,-232.91 673.38,-232.91 673.38,-232.91 673.7,-229.42 670.25,-232.63 674.01,-225.94 674.01,-225.94\"/>\n",
"<text text-anchor=\"middle\" x=\"835.46\" y=\"-200.67\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n", "<text text-anchor=\"middle\" x=\"662.39\" y=\"-248.54\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;7 -->\n", "<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge27\" class=\"edge\">\n", "<g id=\"edge23\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n", "<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M869.33,-129.97C886.31,-120.58 907.32,-108.82 925.94,-98 933.5,-93.61 941.53,-88.84 949.2,-84.23\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M691.61,-217.55C712.39,-232.95 741.68,-253.54 769.16,-268.87 815.89,-294.94 872.64,-318.78 910.76,-333.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"955.54,-80.41 951.18,-86.72 952.55,-82.21 949.55,-84.02 949.55,-84.02 949.55,-84.02 952.55,-82.21 947.92,-81.32 955.54,-80.41 955.54,-80.41\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"917.65,-336.43 909.98,-336.82 914.39,-335.16 911.13,-333.89 911.13,-333.89 911.13,-333.89 914.39,-335.16 912.27,-330.95 917.65,-336.43 917.65,-336.43\"/>\n",
"<text text-anchor=\"middle\" x=\"910.44\" y=\"-118.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n", "<text text-anchor=\"middle\" x=\"807.1\" y=\"-308.67\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;8 -->\n", "<!-- 6&#45;&gt;8 -->\n",
"<g id=\"edge28\" class=\"edge\">\n", "<g id=\"edge24\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n", "<title>6&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M864.75,-170.29C882.39,-184.23 905.54,-202.59 925.94,-219 934.89,-226.2 944.53,-234.03 953.47,-241.32\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M703.16,-194.31C709.19,-194.13 715.34,-193.97 721.16,-193.87 734.49,-193.64 737.83,-193.63 751.16,-193.87 754.7,-193.93 758.38,-194.02 762.07,-194.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"958.92,-245.77 951.51,-243.78 956.21,-243.56 953.5,-241.34 953.5,-241.34 953.5,-241.34 956.21,-243.56 955.49,-238.9 958.92,-245.77 958.92,-245.77\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"769.16,-194.34 762.07,-197.28 765.66,-194.23 762.16,-194.13 762.16,-194.13 762.16,-194.13 765.66,-194.23 762.26,-190.98 769.16,-194.34 769.16,-194.34\"/>\n",
"<text text-anchor=\"middle\" x=\"910.44\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n", "<text text-anchor=\"middle\" x=\"736.16\" y=\"-197.67\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;5 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>8&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M843.33,-186.43C862.38,-181.33 886.15,-174.96 906.74,-169.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"913.59,-167.6 907.64,-172.46 910.21,-168.51 906.83,-169.41 906.83,-169.41 906.83,-169.41 910.21,-168.51 906.01,-166.37 913.59,-167.6 913.59,-167.6\"/>\n",
"<text text-anchor=\"middle\" x=\"878.04\" y=\"-185.67\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;6 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>8&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M770.85,-205.48C764.35,-206.89 757.58,-208.12 751.16,-208.87 737.91,-210.42 734.41,-210.34 721.16,-208.87 716.87,-208.39 712.43,-207.72 708.01,-206.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"701.1,-205.61 708.56,-203.83 704.53,-206.27 707.97,-206.93 707.97,-206.93 707.97,-206.93 704.53,-206.27 707.38,-210.02 701.1,-205.61 701.1,-205.61\"/>\n",
"<text text-anchor=\"middle\" x=\"736.16\" y=\"-213.67\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;7 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>8&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M831.16,-220.27C856.66,-247.26 897.77,-290.76 925.24,-319.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"930.2,-325.07 923.1,-322.15 927.8,-322.53 925.39,-319.98 925.39,-319.98 925.39,-319.98 927.8,-322.53 927.68,-317.82 930.2,-325.07 930.2,-325.07\"/>\n",
"<text text-anchor=\"middle\" x=\"878.04\" y=\"-285.67\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M794,-224.97C793.57,-235.81 797.94,-244.74 807.1,-244.74 814.11,-244.74 818.31,-239.51 819.71,-232.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"820.19,-224.97 822.86,-232.17 819.96,-228.46 819.72,-231.95 819.72,-231.95 819.72,-231.95 819.96,-228.46 816.58,-231.74 820.19,-224.97 820.19,-224.97\"/>\n",
"<text text-anchor=\"middle\" x=\"807.1\" y=\"-248.54\" font-family=\"Lato\" font-size=\"14.00\">{}</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
@ -425,137 +425,137 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n", "<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n", " -->\n",
"<!-- Title: G Pages: 1 -->\n", "<!-- Title: G Pages: 1 -->\n",
"<svg width=\"734pt\" height=\"136pt\"\n", "<svg width=\"729pt\" height=\"121pt\"\n",
" viewBox=\"0.00 0.00 734.00 135.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 729.00 121.10\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.9523809523809523 0.9523809523809523) rotate(0) translate(4 139)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.9615384615384615 0.9615384615384615) rotate(0) translate(4 122)\">\n",
"<title>G</title>\n", "<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-139 769.95,-139 769.95,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-122 754.54,-122 754.54,4 -4,4\"/>\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n", "<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"118\" cy=\"-61\" rx=\"27\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"118\" cy=\"-59\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"118\" y=\"-57.3\" font-family=\"Lato\" font-size=\"14.00\">init</text>\n", "<text text-anchor=\"middle\" x=\"118\" y=\"-55.3\" font-family=\"Lato\" font-size=\"14.00\">init</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;1 -->\n", "<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n", "<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n", "<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.22,-61C63.46,-61 73.96,-61 83.7,-61\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M54.22,-59C63.46,-59 73.96,-59 83.7,-59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"90.97,-61 83.97,-64.15 87.47,-61 83.97,-61 83.97,-61 83.97,-61 87.47,-61 83.97,-57.85 90.97,-61 90.97,-61\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"90.97,-59 83.97,-62.15 87.47,-59 83.97,-59 83.97,-59 83.97,-59 87.47,-59 83.97,-55.85 90.97,-59 90.97,-59\"/>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"537.95,-131 483.95,-131 483.95,-93 537.95,-93 537.95,-131\"/>\n", "<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"522.54,-108 468.54,-108 468.54,-70 522.54,-70 522.54,-108\"/>\n",
"<text text-anchor=\"middle\" x=\"510.95\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"495.54\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"510.95\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"495.54\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;2 -->\n", "<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n", "<g id=\"edge2\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n", "<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.65,-71.23C147.68,-74.31 155.58,-77.53 163,-80 240.62,-105.87 260.75,-113.38 342,-123 375.08,-126.92 383.65,-123.68 416.95,-123 438.74,-122.56 444.32,-123.64 465.95,-121 469.35,-120.59 472.88,-120.05 476.4,-119.44\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M140.16,-69.4C159.6,-78.3 189.47,-90.38 217,-95 304.48,-109.68 327.88,-101.61 416.54,-99 431.67,-98.56 435.51,-98.81 450.54,-97 453.93,-96.6 457.45,-96.1 460.96,-95.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"483.54,-118.12 477.23,-122.49 480.1,-118.76 476.66,-119.39 476.66,-119.39 476.66,-119.39 480.1,-118.76 476.09,-116.3 483.54,-118.12 483.54,-118.12\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"468.09,-94.35 461.71,-98.61 464.64,-94.93 461.19,-95.5 461.19,-95.5 461.19,-95.5 464.64,-94.93 460.67,-92.4 468.09,-94.35 468.09,-94.35\"/>\n",
"<text text-anchor=\"middle\" x=\"305.5\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"326.54\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"269,-80 215,-80 215,-42 269,-42 269,-80\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"253.77\" cy=\"-59\" rx=\"36.54\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"253.77\" y=\"-62.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"253.77\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;3 -->\n", "<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n", "<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n", "<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M145.17,-61C163.51,-61 188.15,-61 207.86,-61\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M145.11,-59C163.49,-59 188.5,-59 209.79,-59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"214.87,-61 207.87,-64.15 211.37,-61 207.87,-61 207.87,-61 207.87,-61 211.37,-61 207.87,-57.85 214.87,-61 214.87,-61\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"216.86,-59 209.86,-62.15 213.36,-59 209.86,-59 209.86,-59 209.86,-59 213.36,-59 209.86,-55.85 216.86,-59 216.86,-59\"/>\n",
"<text text-anchor=\"middle\" x=\"180\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"181\" y=\"-62.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"379.48\" cy=\"-55\" rx=\"37.45\" ry=\"26.74\"/>\n", "<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"416.54,-42 362.54,-42 362.54,-4 416.54,-4 416.54,-42\"/>\n",
"<text text-anchor=\"middle\" x=\"379.48\" y=\"-58.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"389.54\" y=\"-26.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"379.48\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"middle\" x=\"389.54\" y=\"-11.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;4 -->\n", "<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n", "<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M138.75,-49.17C157.59,-38.62 187.14,-23.95 215,-18 258.44,-8.72 308.19,-23.66 341.29,-37.24\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M137.08,-46.18C155.98,-33.62 187,-15.34 217,-8 272.07,5.47 288.59,-0.85 344.54,-10 348.08,-10.58 351.75,-11.36 355.37,-12.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"348.09,-40.1 340.42,-40.29 344.87,-38.74 341.64,-37.38 341.64,-37.38 341.64,-37.38 344.87,-38.74 342.87,-34.48 348.09,-40.1 348.09,-40.1\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"362.26,-14.08 354.69,-15.33 358.88,-13.18 355.5,-12.29 355.5,-12.29 355.5,-12.29 358.88,-13.18 356.3,-9.24 362.26,-14.08 362.26,-14.08\"/>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"middle\" x=\"253.77\" y=\"-11.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 5 -->\n", "<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n", "<title>5</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"647.95,-102 593.95,-102 593.95,-64 647.95,-64 647.95,-102\"/>\n", "<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"632.54,-108 578.54,-108 578.54,-70 632.54,-70 632.54,-108\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651.95,-106 589.95,-106 589.95,-60 651.95,-60 651.95,-106\"/>\n", "<polygon fill=\"none\" stroke=\"black\" points=\"636.54,-112 574.54,-112 574.54,-66 636.54,-66 636.54,-112\"/>\n",
"<text text-anchor=\"middle\" x=\"620.95\" y=\"-86.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"605.54\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"620.95\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"605.54\" y=\"-77.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=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n", "<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M538.1,-104.98C551.51,-101.38 568.08,-96.93 582.79,-92.98\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M522.68,-89C536.1,-89 552.66,-89 567.38,-89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"589.85,-91.08 583.9,-95.94 586.47,-91.99 583.09,-92.9 583.09,-92.9 583.09,-92.9 586.47,-91.99 582.27,-89.86 589.85,-91.08 589.85,-91.08\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"574.43,-89 567.43,-92.15 570.93,-89 567.43,-89 567.43,-89 567.43,-89 570.93,-89 567.43,-85.85 574.43,-89 574.43,-89\"/>\n",
"<text text-anchor=\"middle\" x=\"563.95\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"548.54\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;2 -->\n", "<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n", "<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M269.32,-71.84C275.09,-74.03 281.21,-76.21 287,-78 352.37,-98.25 432.39,-106.7 476.6,-110.02\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M290.05,-63.63C296.21,-64.43 302.56,-65.25 308.54,-66 361.95,-72.78 424.02,-80.41 461.25,-84.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"483.64,-110.53 476.43,-113.16 480.15,-110.28 476.66,-110.02 476.66,-110.02 476.66,-110.02 480.15,-110.28 476.89,-106.88 483.64,-110.53 483.64,-110.53\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"468.35,-85.82 461.02,-88.1 464.88,-85.4 461.4,-84.97 461.4,-84.97 461.4,-84.97 464.88,-85.4 461.78,-81.84 468.35,-85.82 468.35,-85.82\"/>\n",
"<text text-anchor=\"middle\" x=\"379.48\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"389.54\" y=\"-83.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n", "<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M269.01,-48.43C274.8,-46.18 281.01,-44.18 287,-43 303.35,-39.78 321.53,-41.17 337.34,-43.94\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M289.01,-51.19C305.82,-47.21 326.31,-42.13 344.54,-37 348.02,-36.02 351.64,-34.96 355.24,-33.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"344.42,-45.3 336.96,-47.07 340.99,-44.64 337.55,-43.98 337.55,-43.98 337.55,-43.98 340.99,-44.64 338.14,-40.88 344.42,-45.3 344.42,-45.3\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"362.1,-31.74 356.35,-36.82 358.76,-32.77 355.42,-33.81 355.42,-33.81 355.42,-33.81 358.76,-32.77 354.48,-30.8 362.1,-31.74 362.1,-31.74\"/>\n",
"<text text-anchor=\"middle\" x=\"305.5\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n", "<text text-anchor=\"middle\" x=\"326.54\" y=\"-50.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"761.95,-64 707.95,-64 707.95,-26 761.95,-26 761.95,-64\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"765.95,-68 703.95,-68 703.95,-22 765.95,-22 765.95,-68\"/>\n",
"<text text-anchor=\"middle\" x=\"734.95\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"734.95\" y=\"-33.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M268.45,-41.7C294.6,-23.83 337.21,0 378.48,0 378.48,0 378.48,0 621.95,0 648.54,0 676.28,-11.05 697.51,-22.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"703.88,-25.65 696.22,-25.09 700.8,-23.99 697.72,-22.32 697.72,-22.32 697.72,-22.32 700.8,-23.99 699.22,-19.55 703.88,-25.65 703.88,-25.65\"/>\n",
"<text text-anchor=\"middle\" x=\"510.95\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;2 -->\n", "<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n", "<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M413.28,-67.14C429.33,-73.3 448.82,-81.14 465.95,-89 469.67,-90.7 473.51,-92.57 477.32,-94.47\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M416.63,-38.86C427.2,-45.34 439.5,-52.96 450.54,-60 454.29,-62.39 458.19,-64.92 462.07,-67.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"483.65,-97.69 475.98,-97.32 480.53,-96.1 477.41,-94.51 477.41,-94.51 477.41,-94.51 480.53,-96.1 478.84,-91.71 483.65,-97.69 483.65,-97.69\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"468.1,-71.39 460.52,-70.19 465.17,-69.47 462.24,-67.56 462.24,-67.56 462.24,-67.56 465.17,-69.47 463.97,-64.92 468.1,-71.39 468.1,-71.39\"/>\n",
"<text text-anchor=\"middle\" x=\"450.45\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n", "<text text-anchor=\"middle\" x=\"442.54\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;3 -->\n", "<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n", "<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M341.85,-57.11C335.89,-57.42 329.77,-57.73 324,-58 308.44,-58.72 291.19,-59.37 276.62,-59.89\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M362.3,-16.42C346.35,-13.62 325.81,-12.17 308.54,-18 299.06,-21.21 289.92,-26.82 281.96,-32.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"269.27,-60.15 276.16,-56.75 272.77,-60.02 276.27,-59.9 276.27,-59.9 276.27,-59.9 272.77,-60.02 276.38,-63.05 269.27,-60.15 269.27,-60.15\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"276.12,-37.59 279.6,-30.75 278.85,-35.4 281.57,-33.21 281.57,-33.21 281.57,-33.21 278.85,-35.4 283.55,-35.66 276.12,-37.59 276.12,-37.59\"/>\n",
"<text text-anchor=\"middle\" x=\"305.5\" y=\"-62.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n", "<text text-anchor=\"middle\" x=\"326.54\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"746.54,-75 692.54,-75 692.54,-37 746.54,-37 746.54,-75\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"750.54,-79 688.54,-79 688.54,-33 750.54,-33 750.54,-79\"/>\n",
"<text text-anchor=\"middle\" x=\"719.54\" y=\"-59.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"719.54\" y=\"-44.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M416.91,-24.08C466.7,-26.36 577.86,-32.59 670.54,-46 674.08,-46.52 677.75,-47.13 681.42,-47.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"688.43,-49.14 680.96,-50.92 684.99,-48.48 681.55,-47.82 681.55,-47.82 681.55,-47.82 684.99,-48.48 682.14,-44.73 688.43,-49.14 688.43,-49.14\"/>\n",
"<text text-anchor=\"middle\" x=\"548.54\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 5&#45;&gt;6 -->\n", "<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge11\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n", "<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M645.79,-59.86C653,-54.26 661.31,-49.02 669.95,-46 678.31,-43.08 687.67,-41.88 696.59,-41.61\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M636.6,-81.43C647.35,-78.61 659.53,-75.3 670.54,-72 674.17,-70.92 677.94,-69.74 681.7,-68.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"703.63,-41.58 696.64,-44.76 700.13,-41.6 696.63,-41.61 696.63,-41.61 696.63,-41.61 700.13,-41.6 696.62,-38.46 703.63,-41.58 703.63,-41.58\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"688.42,-66.36 682.73,-71.52 685.09,-67.44 681.76,-68.52 681.76,-68.52 681.76,-68.52 685.09,-67.44 680.79,-65.53 688.42,-66.36 688.42,-66.36\"/>\n",
"<text text-anchor=\"middle\" x=\"677.95\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"662.54\" y=\"-80.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;5 -->\n", "<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\">\n", "<g id=\"edge12\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n", "<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M703.86,-55.21C690.04,-59.9 673.52,-65.51 658.94,-70.45\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M688.29,-50.13C677.41,-49.17 665.2,-49.45 654.54,-53 648.44,-55.04 642.5,-58.18 636.98,-61.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"651.97,-72.82 657.58,-67.58 655.28,-71.69 658.6,-70.57 658.6,-70.57 658.6,-70.57 655.28,-71.69 659.61,-73.55 651.97,-72.82 651.97,-72.82\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"631.19,-65.84 635.12,-59.24 634.05,-63.83 636.92,-61.82 636.92,-61.82 636.92,-61.82 634.05,-63.83 638.73,-64.4 631.19,-65.84 631.19,-65.84\"/>\n",
"<text text-anchor=\"middle\" x=\"677.95\" y=\"-69.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"662.54\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
@ -595,118 +595,118 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n", "<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n", " -->\n",
"<!-- Title: G Pages: 1 -->\n", "<!-- Title: G Pages: 1 -->\n",
"<svg width=\"639pt\" height=\"184pt\"\n", "<svg width=\"625pt\" height=\"112pt\"\n",
" viewBox=\"0.00 0.00 639.00 184.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 625.00 112.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 180)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 108)\">\n",
"<title>G</title>\n", "<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-180 635,-180 635,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-108 621,-108 621,4 -4,4\"/>\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n", "<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"118\" cy=\"-153\" rx=\"27\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"118\" cy=\"-51\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"118\" y=\"-149.3\" font-family=\"Lato\" font-size=\"14.00\">init</text>\n", "<text text-anchor=\"middle\" x=\"118\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">init</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;1 -->\n", "<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n", "<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n", "<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.22,-153C63.46,-153 73.96,-153 83.7,-153\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M54.22,-51C63.46,-51 73.96,-51 83.7,-51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"90.97,-153 83.97,-156.15 87.47,-153 83.97,-153 83.97,-153 83.97,-153 87.47,-153 83.97,-149.85 90.97,-153 90.97,-153\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"90.97,-51 83.97,-54.15 87.47,-51 83.97,-51 83.97,-51 83.97,-51 87.47,-51 83.97,-47.85 90.97,-51 90.97,-51\"/>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"517,-105 463,-105 463,-69 517,-69 517,-105\"/>\n", "<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"503,-93 449,-93 449,-57 503,-57 503,-93\"/>\n",
"<text text-anchor=\"middle\" x=\"490\" y=\"-83.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", "<text text-anchor=\"middle\" x=\"476\" y=\"-71.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;2 -->\n", "<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n", "<g id=\"edge2\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n", "<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M144.03,-158.27C150.2,-159.37 156.82,-160.38 163,-161 186,-163.3 191.89,-161.78 215,-162 295.98,-162.78 317.88,-162.36 396,-141 418.53,-134.84 424.74,-133.62 445,-122 451.22,-118.43 457.5,-114.02 463.29,-109.56\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M140.08,-61.43C147.21,-64.59 155.32,-67.81 163,-70 263.26,-98.54 292.8,-89.06 397,-86 412.13,-85.56 415.99,-85.97 431,-84 434.4,-83.56 437.92,-83 441.44,-82.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"468.89,-105.1 465.37,-111.92 466.15,-107.28 463.41,-109.46 463.41,-109.46 463.41,-109.46 466.15,-107.28 461.45,-106.99 468.89,-105.1 468.89,-105.1\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"448.58,-81.04 442.28,-85.43 445.14,-81.69 441.7,-82.33 441.7,-82.33 441.7,-82.33 445.14,-81.69 441.12,-79.23 448.58,-81.04 448.58,-81.04\"/>\n",
"<text text-anchor=\"middle\" x=\"305.5\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"307\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"269,-103 215,-103 215,-67 269,-67 269,-103\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"244\" cy=\"-51\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-81.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", "<text text-anchor=\"middle\" x=\"244\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;3 -->\n", "<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n", "<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n", "<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M137.53,-140.08C145.27,-134.87 154.44,-128.94 163,-124 177.67,-115.54 194.41,-107.02 208.62,-100.12\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M145.3,-51C164.04,-51 189.38,-51 209.56,-51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"214.95,-97.07 210.01,-102.94 211.8,-98.59 208.64,-100.11 208.64,-100.11 208.64,-100.11 211.8,-98.59 207.27,-97.27 214.95,-97.07 214.95,-97.07\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"216.74,-51 209.74,-54.15 213.24,-51 209.74,-51 209.74,-51 209.74,-51 213.24,-51 209.74,-47.85 216.74,-51 216.74,-51\"/>\n",
"<text text-anchor=\"middle\" x=\"180\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"middle\" x=\"181\" y=\"-54.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"369\" cy=\"-114\" rx=\"27\" ry=\"18\"/>\n", "<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"397,-36 343,-36 343,0 397,0 397,-36\"/>\n",
"<text text-anchor=\"middle\" x=\"369\" y=\"-110.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"370\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;4 -->\n", "<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n", "<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M145.11,-151.04C184.28,-147.81 260.45,-140.33 324,-127 328.4,-126.08 333,-124.93 337.49,-123.7\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M139.35,-39.97C158.72,-30.05 188.98,-15.98 217,-9 248.16,-1.24 256.92,-4.33 289,-3 304.99,-2.34 309.22,-0.38 325,-3 328.59,-3.6 332.28,-4.45 335.93,-5.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"344.43,-121.72 338.56,-126.67 341.06,-122.68 337.7,-123.64 337.7,-123.64 337.7,-123.64 341.06,-122.68 336.83,-120.61 344.43,-121.72 344.43,-121.72\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"342.84,-7.52 335.23,-8.52 339.49,-6.51 336.13,-5.51 336.13,-5.51 336.13,-5.51 339.49,-6.51 337.04,-2.49 342.84,-7.52 342.84,-7.52\"/>\n",
"<text text-anchor=\"middle\" x=\"242\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n", "<text text-anchor=\"middle\" x=\"244\" y=\"-12.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 5 -->\n", "<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n", "<title>5</title>\n",
"<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"627,-40 573,-40 573,-4 627,-4 627,-40\"/>\n", "<polygon fill=\"#ffffaa\" stroke=\"black\" points=\"613,-52 559,-52 559,-16 613,-16 613,-52\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"631,-44 569,-44 569,0 631,0 631,-44\"/>\n", "<polygon fill=\"none\" stroke=\"black\" points=\"617,-56 555,-56 555,-12 617,-12 617,-56\"/>\n",
"<text text-anchor=\"middle\" x=\"600\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n", "<text text-anchor=\"middle\" x=\"586\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;5 -->\n", "<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n", "<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M517.14,-71.27C530.8,-63.05 547.73,-52.86 562.64,-43.88\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M503.14,-65.08C516.68,-59.94 533.43,-53.58 548.24,-47.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"568.89,-40.12 564.52,-46.43 565.89,-41.92 562.9,-43.73 562.9,-43.73 562.9,-43.73 565.89,-41.92 561.27,-41.03 568.89,-40.12 568.89,-40.12\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"554.89,-45.43 549.47,-50.86 551.62,-46.67 548.35,-47.91 548.35,-47.91 548.35,-47.91 551.62,-46.67 547.23,-44.97 554.89,-45.43 554.89,-45.43\"/>\n",
"<text text-anchor=\"middle\" x=\"543\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"529\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;2 -->\n", "<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n", "<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M269.03,-80.64C274.93,-79.71 281.17,-78.78 287,-78 335.09,-71.56 347.64,-68.12 396,-72 415.83,-73.59 437.81,-77.05 455.42,-80.25\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M270.57,-54.66C276.61,-55.48 283.03,-56.3 289,-57 342.32,-63.21 404.42,-68.91 441.67,-72.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"462.68,-81.6 455.22,-83.42 459.24,-80.96 455.8,-80.32 455.8,-80.32 455.8,-80.32 459.24,-80.96 456.37,-77.23 462.68,-81.6 462.68,-81.6\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"448.78,-72.79 441.54,-75.32 445.3,-72.48 441.81,-72.18 441.81,-72.18 441.81,-72.18 445.3,-72.48 442.08,-69.04 448.78,-72.79 448.78,-72.79\"/>\n",
"<text text-anchor=\"middle\" x=\"369\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"370\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n", "<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M269.08,-81.75C285.23,-80.6 306.21,-80.7 324,-86 331.29,-88.17 338.53,-91.93 344.97,-96.01\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M269.5,-44.48C288.52,-39.42 315.09,-32.35 335.99,-26.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"351.12,-100.14 343.55,-98.85 348.22,-98.18 345.31,-96.23 345.31,-96.23 345.31,-96.23 348.22,-98.18 347.07,-93.62 351.12,-100.14 351.12,-100.14\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"342.84,-24.96 336.89,-29.81 339.46,-25.86 336.08,-26.76 336.08,-26.76 336.08,-26.76 339.46,-25.86 335.27,-23.72 342.84,-24.96 342.84,-24.96\"/>\n",
"<text text-anchor=\"middle\" x=\"305.5\" y=\"-89.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n", "<text text-anchor=\"middle\" x=\"307\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M269.26,-74.49C275.04,-72.45 281.17,-70.48 287,-69 384.49,-44.2 502.67,-30.79 561.68,-25.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"568.92,-24.52 562.25,-28.31 565.44,-24.85 561.95,-25.17 561.95,-25.17 561.95,-25.17 565.44,-24.85 561.66,-22.04 568.92,-24.52 568.92,-24.52\"/>\n",
"<text text-anchor=\"middle\" x=\"429.5\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;2 -->\n", "<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n", "<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M394.95,-108.34C412.67,-104.32 436.65,-98.88 455.97,-94.49\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M397.24,-32.38C410.92,-39.88 427.76,-49.11 442.28,-57.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"462.85,-92.93 456.72,-97.55 459.44,-93.71 456.02,-94.48 456.02,-94.48 456.02,-94.48 459.44,-93.71 455.33,-91.41 462.85,-92.93 462.85,-92.93\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"448.76,-60.62 441.11,-60.02 445.7,-58.94 442.63,-57.26 442.63,-57.26 442.63,-57.26 445.7,-58.94 444.14,-54.49 448.76,-60.62 448.76,-60.62\"/>\n",
"<text text-anchor=\"middle\" x=\"429.5\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\">{a, b}</text>\n", "<text text-anchor=\"middle\" x=\"423\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;3 -->\n", "<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n", "<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M342.21,-111.13C326.16,-109.03 305.2,-105.72 287,-101 283.45,-100.08 279.79,-98.99 276.16,-97.81\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M342.96,-9.99C326.9,-6.43 306.17,-4.36 289,-11 278.83,-14.93 269.56,-22.43 262.18,-29.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"269.27,-95.47 276.91,-94.74 272.58,-96.6 275.9,-97.72 275.9,-97.72 275.9,-97.72 272.58,-96.6 274.88,-100.7 269.27,-95.47 269.27,-95.47\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"257.39,-34.99 259.88,-27.73 259.78,-32.43 262.18,-29.88 262.18,-29.88 262.18,-29.88 259.78,-32.43 264.48,-32.04 257.39,-34.99 257.39,-34.99\"/>\n",
"<text text-anchor=\"middle\" x=\"305.5\" y=\"-111.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n", "<text text-anchor=\"middle\" x=\"307\" y=\"-14.8\" font-family=\"Lato\" font-size=\"14.00\">{b}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M397.24,-19.96C434.91,-22.78 504.49,-27.98 547.55,-31.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"554.75,-31.74 547.54,-34.36 551.26,-31.48 547.77,-31.22 547.77,-31.22 547.77,-31.22 551.26,-31.48 548,-28.08 554.75,-31.74 554.75,-31.74\"/>\n",
"<text text-anchor=\"middle\" x=\"476\" y=\"-30.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"<!-- 5&#45;&gt;5 -->\n", "<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge11\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n", "<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M589.63,-44.21C588.78,-53.8 592.23,-62 600,-62 605.7,-62 609.08,-57.58 610.14,-51.43\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M575.63,-56.21C574.78,-65.8 578.23,-74 586,-74 591.7,-74 595.08,-69.58 596.14,-63.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"610.37,-44.21 613.29,-51.31 610.26,-47.71 610.15,-51.21 610.15,-51.21 610.15,-51.21 610.26,-47.71 607,-51.11 610.37,-44.21 610.37,-44.21\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"596.37,-56.21 599.29,-63.31 596.26,-59.71 596.15,-63.21 596.15,-63.21 596.15,-63.21 596.26,-59.71 593,-63.11 596.37,-56.21 596.37,-56.21\"/>\n",
"<text text-anchor=\"middle\" x=\"600\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n", "<text text-anchor=\"middle\" x=\"586\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\">{a}</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
@ -723,6 +723,13 @@
"source": [ "source": [
"spot.minimize_ta(ta).show('.A')" "spot.minimize_ta(ta).show('.A')"
] ]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
} }
], ],
"metadata": { "metadata": {
@ -741,7 +748,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.7.5" "version": "3.9.2"
} }
}, },
"nbformat": 4, "nbformat": 4,

View file

@ -31,14 +31,14 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n", "<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n", " -->\n",
"<!-- Pages: 1 -->\n", "<!-- Pages: 1 -->\n",
"<svg width=\"465pt\" height=\"232pt\"\n", "<svg width=\"574pt\" height=\"194pt\"\n",
" viewBox=\"0.00 0.00 464.50 232.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 574.00 194.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 228)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 190)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-228 460.5,-228 460.5,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-190 570,-190 570,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"207.25\" y=\"-209.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", "<text text-anchor=\"start\" x=\"262.5\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"229.25\" y=\"-209.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"283.5\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"245.25\" y=\"-209.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", "<text text-anchor=\"start\" x=\"299.5\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"205.25\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n", "<text text-anchor=\"start\" x=\"261.5\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
@ -68,105 +68,105 @@
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"218\" cy=\"-109\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"222\" cy=\"-99\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"218\" y=\"-105.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", "<text text-anchor=\"middle\" x=\"222\" y=\"-95.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;2 -->\n", "<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n", "<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n", "<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.77,-58.91C166.03,-68.62 184.1,-82.94 197.79,-93.78\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M154.86,-57.35C167.53,-65.33 185.9,-76.9 200.06,-85.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"203.35,-98.19 195.91,-96.31 200.61,-96.02 197.87,-93.84 197.87,-93.84 197.87,-93.84 200.61,-96.02 199.82,-91.37 203.35,-98.19 203.35,-98.19\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"206.24,-89.71 198.64,-88.64 203.28,-87.84 200.31,-85.98 200.31,-85.98 200.31,-85.98 203.28,-87.84 201.99,-83.31 206.24,-89.71 206.24,-89.71\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-83.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", "<text text-anchor=\"start\" x=\"175\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"327\" cy=\"-81\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"330\" cy=\"-67\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"327\" y=\"-77.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", "<text text-anchor=\"middle\" x=\"330\" y=\"-63.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;3 -->\n", "<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n", "<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M157.27,-50.51C185.39,-54.68 242.77,-63.5 291,-73 294.65,-73.72 298.51,-74.54 302.27,-75.37\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M157,-49.41C176.9,-51.1 210.86,-54.05 240,-57 261.93,-59.22 286.86,-62.05 304.75,-64.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"309.31,-76.97 301.79,-78.49 305.9,-76.19 302.48,-75.42 302.48,-75.42 302.48,-75.42 305.9,-76.19 303.18,-72.35 309.31,-76.97 309.31,-76.97\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"311.95,-64.97 304.63,-67.29 308.47,-64.56 305,-64.16 305,-64.16 305,-64.16 308.47,-64.56 305.36,-61.03 311.95,-64.97 311.95,-64.97\"/>\n",
"<text text-anchor=\"start\" x=\"212.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", "<text text-anchor=\"start\" x=\"218.5\" y=\"-60.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n", "</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n", "<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"436\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"546\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"436\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n", "<text text-anchor=\"middle\" x=\"546\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;4 -->\n", "<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n", "<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M157.14,-46.26C207.03,-41.18 352.37,-26.4 410.53,-20.49\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M152.24,-35.67C167.12,-22.05 193.67,-2 221,-2 221,-2 221,-2 439,-2 467.47,-2 499.76,-7.71 521.14,-12.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"417.82,-19.75 411.17,-23.59 414.34,-20.1 410.85,-20.46 410.85,-20.46 410.85,-20.46 414.34,-20.1 410.53,-17.32 417.82,-19.75 417.82,-19.75\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"528.23,-13.88 520.71,-15.44 524.81,-13.12 521.39,-12.37 521.39,-12.37 521.39,-12.37 524.81,-13.12 522.07,-9.29 528.23,-13.88 528.23,-13.88\"/>\n",
"<text text-anchor=\"start\" x=\"267\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", "<text text-anchor=\"start\" x=\"324.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;2 -->\n", "<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n", "<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M211.27,-126.04C209.89,-135.86 212.14,-145 218,-145 222.4,-145 224.76,-139.86 225.09,-133.14\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M214.97,-115.66C213.41,-125.62 215.75,-135 222,-135 226.69,-135 229.18,-129.73 229.47,-122.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"224.73,-126.04 228.23,-132.87 224.91,-129.53 225.08,-133.03 225.08,-133.03 225.08,-133.03 224.91,-129.53 221.93,-133.18 224.73,-126.04 224.73,-126.04\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"229.03,-115.66 232.6,-122.46 229.24,-119.16 229.46,-122.65 229.46,-122.65 229.46,-122.65 229.24,-119.16 226.31,-122.84 229.03,-115.66 229.03,-115.66\"/>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-163.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"204\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"210\" y=\"-148.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;3 -->\n", "<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n", "<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M231.09,-96.52C237.34,-90.95 245.45,-84.98 254,-82 269.38,-76.64 287.75,-76.47 302.09,-77.61\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M239.98,-101.62C254.76,-103.19 276.51,-103.75 294,-97 300.58,-94.46 306.78,-90.11 312.08,-85.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"309.18,-78.3 301.91,-80.75 305.7,-77.96 302.22,-77.62 302.22,-77.62 302.22,-77.62 305.7,-77.96 302.52,-74.48 309.18,-78.3 309.18,-78.3\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"317.45,-80.48 314.49,-87.56 314.89,-82.87 312.34,-85.26 312.34,-85.26 312.34,-85.26 314.89,-82.87 310.18,-82.96 317.45,-80.48 317.45,-80.48\"/>\n",
"<text text-anchor=\"start\" x=\"254\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"260\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"268\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M311.9,-67.8C297.23,-68.92 275.71,-71.59 258,-78 252.96,-79.82 247.84,-82.4 243.14,-85.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"237.01,-88.89 241.33,-82.54 240,-87.06 242.98,-85.23 242.98,-85.23 242.98,-85.23 240,-87.06 244.63,-87.91 237.01,-88.89 237.01,-88.89\"/>\n",
"<text text-anchor=\"start\" x=\"258\" y=\"-81.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M320.77,-82.54C318.17,-92.91 321.25,-103 330,-103 336.7,-103 340.08,-97.08 340.12,-89.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"339.23,-82.54 343.23,-89.1 339.67,-86.01 340.1,-89.49 340.1,-89.49 340.1,-89.49 339.67,-86.01 336.98,-89.88 339.23,-82.54 339.23,-82.54\"/>\n",
"<text text-anchor=\"start\" x=\"314\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"322\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 5 -->\n", "<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n", "<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n", "<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"327\" cy=\"-170\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"438\" cy=\"-57\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"327\" y=\"-166.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n", "<text text-anchor=\"middle\" x=\"438\" y=\"-53.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;5 -->\n", "<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M231.56,-121.4C237.92,-127.24 245.99,-134 254,-139 269.38,-148.59 288.25,-156.6 302.81,-162.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"309.58,-164.54 301.92,-165.1 306.29,-163.34 303.01,-162.14 303.01,-162.14 303.01,-162.14 306.29,-163.34 304.09,-159.18 309.58,-164.54 309.58,-164.54\"/>\n",
"<text text-anchor=\"start\" x=\"254\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M310.66,-89.07C304.67,-91.94 297.64,-94.97 291,-97 275.42,-101.77 257.32,-104.77 243.17,-106.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.17,-107.43 242.74,-103.46 239.64,-107.01 243.12,-106.59 243.12,-106.59 243.12,-106.59 239.64,-107.01 243.49,-109.72 236.17,-107.43 236.17,-107.43\"/>\n",
"<text text-anchor=\"start\" x=\"255.5\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"264.5\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n", "<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M317.77,-96.54C315.17,-106.91 318.25,-117 327,-117 333.7,-117 337.08,-111.08 337.12,-103.66\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M348.03,-65.39C365.57,-63.74 393.06,-61.15 412.84,-59.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"336.23,-96.54 340.23,-103.1 336.67,-100.01 337.1,-103.49 337.1,-103.49 337.1,-103.49 336.67,-100.01 333.98,-103.88 336.23,-96.54 336.23,-96.54\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"420.01,-58.6 413.34,-62.4 416.53,-58.93 413.04,-59.26 413.04,-59.26 413.04,-59.26 416.53,-58.93 412.75,-56.12 420.01,-58.6 420.01,-58.6\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"366\" y=\"-66.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=\"edge11\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n", "<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M426.77,-33.54C424.17,-43.91 427.25,-54 436,-54 442.7,-54 446.08,-48.08 446.12,-40.66\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M536.77,-33.54C534.17,-43.91 537.25,-54 546,-54 552.7,-54 556.08,-48.08 556.12,-40.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"445.23,-33.54 449.23,-40.1 445.67,-37.01 446.1,-40.49 446.1,-40.49 446.1,-40.49 445.67,-37.01 442.98,-40.88 445.23,-33.54 445.23,-33.54\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"555.23,-33.54 559.23,-40.1 555.67,-37.01 556.1,-40.49 556.1,-40.49 556.1,-40.49 555.67,-37.01 552.98,-40.88 555.23,-33.54 555.23,-33.54\"/>\n",
"<text text-anchor=\"start\" x=\"415.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"526\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"428\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"538\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 5&#45;&gt;4 -->\n", "<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge12\" class=\"edge\">\n", "<g id=\"edge12\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n", "<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M338.07,-155.7C357.19,-128.54 398.8,-69.43 420.76,-38.22\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M455.1,-51.08C472.92,-44.52 501.79,-33.9 522,-26.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"424.88,-32.37 423.43,-39.91 422.87,-35.23 420.85,-38.1 420.85,-38.1 420.85,-38.1 422.87,-35.23 418.28,-36.28 424.88,-32.37 424.88,-32.37\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"528.75,-23.98 523.27,-29.35 525.46,-25.19 522.18,-26.4 522.18,-26.4 522.18,-26.4 525.46,-25.19 521.09,-23.44 528.75,-23.98 528.75,-23.98\"/>\n",
"<text text-anchor=\"start\" x=\"363\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"474\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f956c0198d0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f14f57d93c0> >"
] ]
}, },
"execution_count": 2, "execution_count": 2,
@ -198,10 +198,12 @@
" 0\n", " 0\n",
" | !a\n", " | !a\n",
" 1\n", " 1\n",
" | a\n", " | !a\n",
"Cycle:\n", "Cycle:\n",
" 2\n", " 2\n",
" | a & b\t{0}\n", " | a & b\t{0}\n",
" 3\n",
" | !a & b\n",
"\n" "\n"
] ]
} }
@ -253,16 +255,16 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"!a; a; cycle{a & b}\n" "!a; !a; cycle{a & b; !a & b}\n"
] ]
}, },
{ {
"data": { "data": {
"text/latex": [ "text/latex": [
"$\\lnot a; a; \\mathsf{cycle}\\{a \\land b\\}$" "$\\lnot a; \\lnot a; \\mathsf{cycle}\\{a \\land b; \\lnot a \\land b\\}$"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_word; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_word > *' at 0x7f956c019de0> >" "<spot.twa_word; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_word > *' at 0x7f14f57d9ed0> >"
] ]
}, },
"execution_count": 5, "execution_count": 5,
@ -292,14 +294,14 @@
"data": { "data": {
"image/svg+xml": [ "image/svg+xml": [
"\n", "\n",
"<svg height=\"112\" width=\"200\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n", "<svg height=\"112\" width=\"300\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
"<rect x=\"0\" y=\"0\" width=\"200\" height=\"100\" fill=\"#f4f4f4\"/>\n", "<rect x=\"0\" y=\"0\" width=\"300\" height=\"100\" fill=\"#f4f4f4\"/>\n",
"<line x1=\"100\" y1=\"0\" x2=\"100\" y2=\"100\"\n", "<line x1=\"100\" y1=\"0\" x2=\"100\" y2=\"100\"\n",
" stroke=\"white\" stroke-width=\"4\"/>\n", " stroke=\"white\" stroke-width=\"4\"/>\n",
"<line x1=\"150\" y1=\"0\" x2=\"150\" y2=\"100\"\n", "<line x1=\"200\" y1=\"0\" x2=\"200\" y2=\"100\"\n",
" stroke=\"white\" stroke-width=\"4\"/>\n", " stroke=\"white\" stroke-width=\"4\"/>\n",
"<line x1=\"0\" y1=\"0\" x2=\"200\" y2=\"0\" stroke=\"white\" stroke-width=\"4\"/><text x=\"3\" y=\"30\" text-anchor=\"start\" font-size=\"20\">a</text><line x1=\"50\" y1=\"0\" x2=\"50\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"0\" y1=\"45\" x2=\"50\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"100\" y1=\"0\" x2=\"100\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"50\" y1=\"5\" x2=\"50\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"50\" y1=\"5\" x2=\"100\" y2=\"5\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"150\" y1=\"0\" x2=\"150\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"100\" y1=\"5\" x2=\"150\" y2=\"5\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"200\" y1=\"0\" x2=\"200\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"150\" y1=\"5\" x2=\"200\" y2=\"5\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"0\" y1=\"50\" x2=\"200\" y2=\"50\" stroke=\"white\" stroke-width=\"4\"/><text x=\"3\" y=\"80\" text-anchor=\"start\" font-size=\"20\">b</text><line x1=\"50\" y1=\"50\" x2=\"50\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"100\" y1=\"50\" x2=\"100\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"150\" y1=\"50\" x2=\"150\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"100\" y1=\"55\" x2=\"150\" y2=\"55\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"200\" y1=\"50\" x2=\"200\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"150\" y1=\"55\" x2=\"200\" y2=\"55\" stroke=\"#ff0000\" stroke-width=\"2\"/><text x=\"0\" y=\"110\" text-anchor=\"start\" font-size=\"10\">prefix</text><text x=\"100\" y=\"110\" text-anchor=\"start\" font-size=\"10\">cycle</text>\n", "<line x1=\"0\" y1=\"0\" x2=\"300\" y2=\"0\" stroke=\"white\" stroke-width=\"4\"/><text x=\"3\" y=\"30\" text-anchor=\"start\" font-size=\"20\">a</text><line x1=\"50\" y1=\"0\" x2=\"50\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"0\" y1=\"45\" x2=\"50\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"100\" y1=\"0\" x2=\"100\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"50\" y1=\"45\" x2=\"100\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"150\" y1=\"0\" x2=\"150\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"100\" y1=\"5\" x2=\"100\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"100\" y1=\"5\" x2=\"150\" y2=\"5\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"200\" y1=\"0\" x2=\"200\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"150\" y1=\"5\" x2=\"150\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"150\" y1=\"45\" x2=\"200\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"250\" y1=\"0\" x2=\"250\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"200\" y1=\"5\" x2=\"200\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"200\" y1=\"5\" x2=\"250\" y2=\"5\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"300\" y1=\"0\" x2=\"300\" y2=\"50\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"250\" y1=\"5\" x2=\"250\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"250\" y1=\"45\" x2=\"300\" y2=\"45\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"0\" y1=\"50\" x2=\"300\" y2=\"50\" stroke=\"white\" stroke-width=\"4\"/><text x=\"3\" y=\"80\" text-anchor=\"start\" font-size=\"20\">b</text><line x1=\"50\" y1=\"50\" x2=\"50\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"100\" y1=\"50\" x2=\"100\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"150\" y1=\"50\" x2=\"150\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"100\" y1=\"55\" x2=\"150\" y2=\"55\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"200\" y1=\"50\" x2=\"200\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"150\" y1=\"55\" x2=\"200\" y2=\"55\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"250\" y1=\"50\" x2=\"250\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"200\" y1=\"55\" x2=\"250\" y2=\"55\" stroke=\"#ff0000\" stroke-width=\"2\"/><line x1=\"300\" y1=\"50\" x2=\"300\" y2=\"100\" stroke=\"white\" stroke-width=\"1\"/><line x1=\"250\" y1=\"55\" x2=\"300\" y2=\"55\" stroke=\"#ff0000\" stroke-width=\"2\"/><text x=\"0\" y=\"110\" text-anchor=\"start\" font-size=\"10\">prefix</text><text x=\"100\" y=\"110\" text-anchor=\"start\" font-size=\"10\">cycle</text>\n",
"<text x=\"150\" y=\"110\" text-anchor=\"start\" font-size=\"10\">cycle</text></svg>" "<text x=\"200\" y=\"110\" text-anchor=\"start\" font-size=\"10\">cycle</text></svg>"
], ],
"text/plain": [ "text/plain": [
"<spot.jupyter.SVG object>" "<spot.jupyter.SVG object>"
@ -331,22 +333,24 @@
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"!a\n", "!a\n",
"a\n", "!a\n",
"a & b\n" "a & b\n",
"!a & b\n"
] ]
} }
], ],
"source": [ "source": [
"print(spot.bdd_format_formula(aut.get_dict(), word.prefix[0]))\n", "print(spot.bdd_format_formula(aut.get_dict(), word.prefix[0]))\n",
"print(spot.bdd_format_formula(aut.get_dict(), word.prefix[1]))\n", "print(spot.bdd_format_formula(aut.get_dict(), word.prefix[1]))\n",
"print(spot.bdd_format_formula(aut.get_dict(), word.cycle[0]))" "print(spot.bdd_format_formula(aut.get_dict(), word.cycle[0]))\n",
"print(spot.bdd_format_formula(aut.get_dict(), word.cycle[1]))"
] ]
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Calling `simplifify()` will produce a shorter word that is compatible with the original word. For instance in the above word, the initial `a` is compatible with both `a & b` and `a & !b`. The word obtained by restricting `a` to `a & b` is therefore still accepted, allowing us to remove the prefix." "Calling `simplifify()` will produce a shorter word that is compatible with the original word. For instance in the above word, the second `a` is compatible with `!a & b`, so the prefix can be shortened by rotating the cycle."
] ]
}, },
{ {
@ -358,7 +362,7 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"!a; cycle{a & b}\n" "!a; cycle{!a & b; a & b}\n"
] ]
} }
], ],
@ -382,10 +386,10 @@
{ {
"data": { "data": {
"text/latex": [ "text/latex": [
"$\\lnot a; \\mathsf{cycle}\\{a \\land b\\}$" "$\\lnot a; \\mathsf{cycle}\\{\\lnot a \\land b; a \\land b\\}$"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_word; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_word > *' at 0x7f956c0388a0> >" "<spot.twa_word; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_word > *' at 0x7f14f57d9660> >"
] ]
}, },
"execution_count": 9, "execution_count": 9,
@ -436,7 +440,7 @@
"$a; a \\land b; \\mathsf{cycle}\\{\\lnot a \\land \\lnot b; \\lnot a \\land b\\}$" "$a; a \\land b; \\mathsf{cycle}\\{\\lnot a \\land \\lnot b; \\lnot a \\land b\\}$"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_word; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_word > *' at 0x7f956c038b70> >" "<spot.twa_word; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_word > *' at 0x7f14f5799ea0> >"
] ]
}, },
"execution_count": 11, "execution_count": 11,
@ -501,76 +505,76 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n", "<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n", " -->\n",
"<!-- Pages: 1 -->\n", "<!-- Pages: 1 -->\n",
"<svg width=\"380pt\" height=\"86pt\"\n", "<svg width=\"377pt\" height=\"86pt\"\n",
" viewBox=\"0.00 0.00 380.00 86.36\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 377.00 86.28\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 82.36)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 82.28)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-82.36 376,-82.36 376,4 -4,4\"/>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-82.28 373,-82.28 373,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"183\" y=\"-63.16\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n", "<text text-anchor=\"start\" x=\"181.5\" y=\"-63.08\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-48.16\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n", "<text text-anchor=\"start\" x=\"173.5\" y=\"-48.08\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n", "<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22.36\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.66\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", "<text text-anchor=\"middle\" x=\"56\" y=\"-18.58\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n", "</g>\n",
"<!-- I&#45;&gt;0 -->\n", "<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n", "<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n", "<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22.36C2.79,-22.36 17.15,-22.36 30.63,-22.36\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22.28C2.79,-22.28 17.15,-22.28 30.63,-22.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22.36 30.94,-25.51 34.44,-22.36 30.94,-22.36 30.94,-22.36 30.94,-22.36 34.44,-22.36 30.94,-19.21 37.94,-22.36 37.94,-22.36\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22.28 30.94,-25.43 34.44,-22.28 30.94,-22.28 30.94,-22.28 30.94,-22.28 34.44,-22.28 30.94,-19.13 37.94,-22.28 37.94,-22.28\"/>\n",
"</g>\n", "</g>\n",
"<!-- 1 -->\n", "<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n", "<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n", "<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"135\" cy=\"-22.36\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"135\" cy=\"-22.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"135\" y=\"-18.66\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", "<text text-anchor=\"middle\" x=\"135\" y=\"-18.58\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;1 -->\n", "<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n", "<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n", "<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.09,-22.36C84.56,-22.36 98.12,-22.36 109.69,-22.36\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M74.09,-22.28C84.56,-22.28 98.12,-22.28 109.69,-22.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"116.96,-22.36 109.96,-25.51 113.46,-22.36 109.96,-22.36 109.96,-22.36 109.96,-22.36 113.46,-22.36 109.96,-19.21 116.96,-22.36 116.96,-22.36\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"116.96,-22.28 109.96,-25.43 113.46,-22.28 109.96,-22.28 109.96,-22.28 109.96,-22.28 113.46,-22.28 109.96,-19.13 116.96,-22.28 116.96,-22.28\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-26.16\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-26.08\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n", "<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n", "<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"241\" cy=\"-22.36\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"239\" cy=\"-22.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"241\" y=\"-18.66\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", "<text text-anchor=\"middle\" x=\"239\" y=\"-18.58\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;2 -->\n", "<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n", "<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n", "<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.17,-22.36C170.18,-22.36 196.4,-22.36 215.57,-22.36\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M153.3,-22.28C169.96,-22.28 195.3,-22.28 213.93,-22.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"222.8,-22.36 215.8,-25.51 219.3,-22.36 215.8,-22.36 215.8,-22.36 215.8,-22.36 219.3,-22.36 215.8,-19.21 222.8,-22.36 222.8,-22.36\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"220.95,-22.28 213.95,-25.43 217.45,-22.28 213.95,-22.28 213.95,-22.28 213.95,-22.28 217.45,-22.28 213.95,-19.13 220.95,-22.28 220.95,-22.28\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-26.16\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"171\" y=\"-26.08\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3 -->\n", "<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n", "<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n", "<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"354\" cy=\"-22.36\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"351\" cy=\"-22.28\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"354\" y=\"-18.66\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", "<text text-anchor=\"middle\" x=\"351\" y=\"-18.58\" 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=\"edge4\" class=\"edge\">\n", "<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n", "<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M259.34,-22.36C278,-22.36 307.8,-22.36 328.76,-22.36\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M257.19,-22.28C275.59,-22.28 304.95,-22.28 325.71,-22.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"335.78,-22.36 328.78,-25.51 332.28,-22.36 328.78,-22.36 328.78,-22.36 328.78,-22.36 332.28,-22.36 328.78,-19.21 335.78,-22.36 335.78,-22.36\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"332.93,-22.28 325.93,-25.43 329.43,-22.28 325.93,-22.28 325.93,-22.28 325.93,-22.28 329.43,-22.28 325.93,-19.13 332.93,-22.28 332.93,-22.28\"/>\n",
"<text text-anchor=\"start\" x=\"277\" y=\"-26.16\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"275\" y=\"-26.08\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;2 -->\n", "<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n", "<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M338.69,-12.5C332.6,-8.87 325.24,-5.2 318,-3.36 300.34,1.12 294.66,1.12 277,-3.36 272.14,-4.6 267.22,-6.66 262.67,-8.98\"/>\n", "<path fill=\"none\" stroke=\"black\" d=\"M335.69,-12.42C329.6,-8.79 322.24,-5.12 315,-3.28 297.77,1.09 292.23,1.09 275,-3.28 270.14,-4.52 265.22,-6.58 260.67,-8.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.31,-12.5 260.91,-6.35 259.37,-10.8 262.44,-9.11 262.44,-9.11 262.44,-9.11 259.37,-10.8 263.96,-11.86 256.31,-12.5 256.31,-12.5\"/>\n", "<polygon fill=\"black\" stroke=\"black\" points=\"254.31,-12.42 258.91,-6.27 257.37,-10.72 260.44,-9.03 260.44,-9.03 260.44,-9.03 257.37,-10.72 261.96,-11.78 254.31,-12.42 254.31,-12.42\"/>\n",
"<text text-anchor=\"start\" x=\"279\" y=\"-7.16\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"277\" y=\"-7.08\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n", "</g>\n",
"</g>\n", "</g>\n",
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f956c0388d0> >" "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f14f5799ed0> >"
] ]
}, },
"execution_count": 13, "execution_count": 13,
@ -599,7 +603,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.7.5" "version": "3.9.2"
} }
}, },
"nbformat": 4, "nbformat": 4,