specialize scc_filter for inherently_weak automata

Part of issue #351.

* spot/twaalgos/sccfilter.cc, spot/twaalgos/sccfilter.hh: Specialize
for inherently-weak automata.
* spot/twaalgos/postproc.cc: Simplify.
* tests/core/dca2.test, tests/core/parity2.test,
tests/core/prodor.test, tests/core/randomize.test,
tests/python/automata.ipynb, tests/python/highlighting.ipynb,
tests/python/product.ipynb, tests/python/remfin.py,
tests/python/stutter-inv.ipynb: Adjust.
* NEWS: Mention it.
This commit is contained in:
Alexandre Duret-Lutz 2018-06-11 15:01:49 +02:00
parent 2fad1ff6de
commit 95d732e331
13 changed files with 1245 additions and 2011 deletions

6
NEWS
View file

@ -122,6 +122,12 @@ New in spot 2.5.3.dev (not yet released)
to update an external structure that references states of the twa to update an external structure that references states of the twa
that we want to purge. that we want to purge.
- spot::scc_filter() now automatically turns automata marked as
inherently-weak into weak automata with state-based acceptance.
The acceptance condition is set to Büchi unless the input had
co-Büchi or t acceptance. spot::scc_filter_states() will pass
inherently-weak automata to spot::scc_filter().
- spot::cleanup_parity() and spot::cleanup_parity_here() are smarter - spot::cleanup_parity() and spot::cleanup_parity_here() are smarter
and now remove from the acceptance condition the parity colors and now remove from the acceptance condition the parity colors
that are not used in the automaton. that are not used in the automaton.

View file

@ -38,7 +38,6 @@
#include <spot/twaalgos/alternation.hh> #include <spot/twaalgos/alternation.hh>
#include <spot/twaalgos/parity.hh> #include <spot/twaalgos/parity.hh>
#include <spot/twaalgos/cobuchi.hh> #include <spot/twaalgos/cobuchi.hh>
#include <spot/twaalgos/dot.hh>
#include <spot/twaalgos/rabin2parity.hh> #include <spot/twaalgos/rabin2parity.hh>
namespace spot namespace spot
@ -166,10 +165,7 @@ namespace spot
{ {
if (scc_filter_ == 0) if (scc_filter_ == 0)
return a; return a;
// If the automaton is weak, using transition-based acceptance if (state_based_ && a->prop_state_acc().is_true())
// won't help, so let's preserve state-based acceptance.
if ((state_based_ || a->prop_inherently_weak().is_true())
&& a->prop_state_acc().is_true())
return scc_filter_states(a, arg); return scc_filter_states(a, arg);
else else
return scc_filter(a, arg); return scc_filter(a, arg);

View file

@ -124,6 +124,53 @@ namespace spot
} }
}; };
// Transform inherently weak automata into weak Büchi automata.
template <bool buchi, class next_filter = id_filter>
struct weak_filter: next_filter
{
acc_cond::mark_t acc_m = {0};
acc_cond::mark_t rej_m = {};
template<typename... Args>
weak_filter(scc_info* si, Args&&... args)
: next_filter(si, std::forward<Args>(args)...)
{
if (!buchi)
{
acc_m = {};
if (si->get_aut()->acc().is_co_buchi())
rej_m = {0};
}
}
filtered_trans trans(unsigned src, unsigned dst,
bdd cond, acc_cond::mark_t acc)
{
bool keep;
std::tie(keep, cond, acc) =
this->next_filter::trans(src, dst, cond, acc);
if (keep)
{
unsigned ss = this->si->scc_of(src);
if (this->si->is_accepting_scc(ss))
acc = acc_m;
else
acc = rej_m;
}
return filtered_trans(keep, cond, acc);
}
void fix_acceptance(const twa_graph_ptr& out)
{
if (buchi)
out->set_buchi();
else
out->copy_acceptance_of(this->si->get_aut());
}
};
// Remove acceptance conditions from all edges outside of // Remove acceptance conditions from all edges outside of
// non-accepting SCCs. If "RemoveAll" is false, keep those on // non-accepting SCCs. If "RemoveAll" is false, keep those on
// transitions entering accepting SCCs. If "PreserveSBA", is set // transitions entering accepting SCCs. If "PreserveSBA", is set
@ -160,7 +207,7 @@ namespace spot
unsigned v = this->si->scc_of(dst); unsigned v = this->si->scc_of(dst);
// The basic rules are as follows: // The basic rules are as follows:
// //
// - If an edge is between two SCCs, is OK to remove // - If an edge is between two SCCs, it is OK to remove
// all acceptance sets, as this edge cannot be part // all acceptance sets, as this edge cannot be part
// of any loop. // of any loop.
// - If an edge is in an non-accepting SCC, we can only // - If an edge is in an non-accepting SCC, we can only
@ -370,6 +417,10 @@ namespace spot
scc_info* given_si) scc_info* given_si)
{ {
twa_graph_ptr res; twa_graph_ptr res;
// For weak automata, scc_filter() is already doing the right
// thing and preserves state-based acceptance.
if (aut->prop_inherently_weak())
return scc_filter(aut, remove_all_useless, given_si);
if (remove_all_useless) if (remove_all_useless)
res = scc_filter_apply<state_filter res = scc_filter_apply<state_filter
<acc_filter_mask<true, true>>>(aut, given_si); <acc_filter_mask<true, true>>>(aut, given_si);
@ -385,9 +436,18 @@ namespace spot
scc_info* given_si) scc_info* given_si)
{ {
twa_graph_ptr res; twa_graph_ptr res;
// acc_filter_simplify only works for generalized Büchi if (aut->prop_inherently_weak())
if (aut->acc().is_generalized_buchi())
{ {
if (aut->acc().is_t() || aut->acc().is_co_buchi())
res =
scc_filter_apply<state_filter<weak_filter<false>>>(aut, given_si);
else
res =
scc_filter_apply<state_filter<weak_filter<true>>>(aut, given_si);
}
else if (aut->acc().is_generalized_buchi())
{
// acc_filter_simplify only works for generalized Büchi
if (remove_all_useless) if (remove_all_useless)
res = res =
scc_filter_apply<state_filter scc_filter_apply<state_filter
@ -421,6 +481,11 @@ namespace spot
false, false,
true, true,
}); });
if (aut->prop_inherently_weak())
{
res->prop_weak(true);
res->prop_state_acc(true);
}
return res; return res;
} }

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*- // -*- coding: utf-8 -*-
// Copyright (C) 2009, 2010, 2012, 2013, 2014, 2015 Laboratoire de // Copyright (C) 2009, 2010, 2012, 2013, 2014, 2015, 2018 Laboratoire de
// Recherche et Developpement de l'Epita (LRDE). // Recherche et Developpement de l'Epita (LRDE).
// //
// This file is part of Spot, a model checking library. // This file is part of Spot, a model checking library.
@ -50,13 +50,18 @@ namespace spot
/// degeneralization) will work better if transitions going to an /// degeneralization) will work better if transitions going to an
/// accepting SCC are accepting. /// accepting SCC are accepting.
/// ///
/// If the input is inherently weak, the output will be a weak
/// automaton with state-based acceptance. The acceptance condition
/// is set to Büchi unless the input was co-Büchi or t (in which
/// case we keep this acceptance).
///
/// If \a given_sm is supplied, the function will use its result /// If \a given_sm is supplied, the function will use its result
/// without computing a map of its own. /// without computing a map of its own.
/// ///
/// \warning Calling scc_filter on a TωA that has the SBA property /// \warning Calling scc_filter on a TωA that is not inherently weak
/// (i.e., transitions leaving accepting states are all marked as /// and has the SBA property (i.e., transitions leaving accepting
/// accepting) may destroy this property. Use scc_filter_states() /// states are all marked as accepting) may destroy this property.
/// instead. /// Use scc_filter_states() instead.
SPOT_API twa_graph_ptr SPOT_API twa_graph_ptr
scc_filter(const const_twa_graph_ptr& aut, bool remove_all_useless = false, scc_filter(const const_twa_graph_ptr& aut, bool remove_all_useless = false,
scc_info* given_si = nullptr); scc_info* given_si = nullptr);

View file

@ -67,7 +67,11 @@ while read l_f; do
autfilt -q --acceptance-is=Streett-like and.hoa autfilt -q --acceptance-is=Streett-like and.hoa
# Streett | Streett # Streett | Streett
autfilt r.hoa --name="($l_f)|!($r_f)" --product-or=l.hoa -S > or.hoa autfilt r.hoa --name="($l_f)|!($r_f)" --product-or=l.hoa -S > or.hoa
autfilt -q -v --acceptance-is=Streett-like or.hoa if ! grep -q ' weak' l.hoa; then
if ! grep -q ' weak' r.hoa; then
autfilt -q -v --acceptance-is=Streett-like or.hoa || exit 1
fi
fi
autcross --language-preserved --verbose -F or.hoa -F and.hoa \ autcross --language-preserved --verbose -F or.hoa -F and.hoa \
'autfilt %H --stats=%M | ltl2tgba >%O' \ 'autfilt %H --stats=%M | ltl2tgba >%O' \

View file

@ -236,7 +236,7 @@ AP: 1 "a"
acc-name: Buchi acc-name: Buchi
Acceptance: 1 Inf(0) Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc stutter-invariant properties: trans-labels explicit-labels state-acc stutter-invariant
properties: inherently-weak properties: weak
--BODY-- --BODY--
State: 0 State: 0
[t] 0 [t] 0
@ -270,7 +270,7 @@ AP: 1 "a"
acc-name: Rabin 1 acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1) Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels state-acc stutter-invariant properties: trans-labels explicit-labels state-acc stutter-invariant
properties: inherently-weak properties: weak
--BODY-- --BODY--
State: 0 State: 0
[t] 0 [t] 0
@ -304,7 +304,7 @@ AP: 1 "a"
acc-name: Buchi acc-name: Buchi
Acceptance: 1 Inf(0) Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc stutter-invariant properties: trans-labels explicit-labels state-acc stutter-invariant
properties: inherently-weak properties: weak
--BODY-- --BODY--
State: 0 State: 0
[t] 0 [t] 0
@ -338,7 +338,7 @@ AP: 1 "a"
acc-name: Streett 1 acc-name: Streett 1
Acceptance: 2 Fin(0) | Inf(1) Acceptance: 2 Fin(0) | Inf(1)
properties: trans-labels explicit-labels state-acc colored properties: trans-labels explicit-labels state-acc colored
properties: stutter-invariant inherently-weak properties: stutter-invariant weak
--BODY-- --BODY--
State: 0 {0} State: 0 {0}
[t] 0 [t] 0
@ -372,7 +372,7 @@ AP: 1 "a"
acc-name: parity min odd 3 acc-name: parity min odd 3
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2)) Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
properties: trans-labels explicit-labels state-acc colored properties: trans-labels explicit-labels state-acc colored
properties: stutter-invariant inherently-weak properties: stutter-invariant weak
--BODY-- --BODY--
State: 0 {2} State: 0 {2}
[t] 0 [t] 0
@ -406,7 +406,7 @@ AP: 1 "a"
acc-name: parity max even 3 acc-name: parity max even 3
Acceptance: 3 Inf(2) | (Fin(1) & Inf(0)) Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))
properties: trans-labels explicit-labels state-acc colored properties: trans-labels explicit-labels state-acc colored
properties: stutter-invariant inherently-weak properties: stutter-invariant weak
--BODY-- --BODY--
State: 0 {1} State: 0 {1}
[t] 0 [t] 0

View file

@ -57,23 +57,24 @@ HOA: v1
States: 3 States: 3
Start: 0 Start: 0
AP: 2 "a" "b" AP: 2 "a" "b"
Acceptance: 2 Inf(0) | Inf(1) acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc complete properties: trans-labels explicit-labels trans-acc complete
properties: stutter-invariant properties: stutter-invariant
--BODY-- --BODY--
State: 0 State: 0
[!0] 0 [!0] 0
[0] 0 {1} [0] 0 {0}
[!0&1] 1 [!0&1] 1
[0&1] 1 {1} [0&1] 1 {0}
State: 1 State: 1
[!0&1] 1 {0} [!0&1] 1 {0}
[0&1] 1 {0 1} [0&1] 1 {0}
[!0&!1] 2 {0} [!0&!1] 2 {0}
[0&!1] 2 {0 1} [0&!1] 2 {0}
State: 2 State: 2
[!0] 2 [!0] 2
[0] 2 {1} [0] 2 {0}
--END-- --END--
EOF EOF
diff por.hoa exp diff por.hoa exp
@ -88,18 +89,18 @@ HOA: v1
States: 2 States: 2
Start: 0 Start: 0
AP: 2 "a" "b" AP: 2 "a" "b"
acc-name: generalized-Buchi 2 acc-name: Buchi
Acceptance: 2 Inf(0)&Inf(1) Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc stutter-invariant properties: trans-labels explicit-labels trans-acc stutter-invariant
--BODY-- --BODY--
State: 0 State: 0
[!0] 0 [!0] 0
[0] 0 {1} [0] 0
[!0&1] 1 [!0&1] 1
[0&1] 1 {1} [0&1] 1
State: 1 State: 1
[!0&1] 1 {0} [!0&1] 1
[0&1] 1 {0 1} [0&1] 1 {0}
--END-- --END--
EOF EOF
diff pand.hoa exp diff pand.hoa exp

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2014, 2015, 2017 Laboratoire de Recherche et # Copyright (C) 2014, 2015, 2017, 2018 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.
@ -33,7 +33,7 @@ AP: 4 "a" "b" "c" "d"
acc-name: all acc-name: all
Acceptance: 0 t Acceptance: 0 t
properties: trans-labels explicit-labels state-acc stutter-invariant properties: trans-labels explicit-labels state-acc stutter-invariant
properties: inherently-weak properties: weak
--BODY-- --BODY--
State: 0 State: 0
[0] 1 [0] 1

File diff suppressed because it is too large Load diff

View file

@ -240,7 +240,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128edca50> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7feca4075120> >"
] ]
}, },
"execution_count": 4, "execution_count": 4,
@ -352,7 +352,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7f0128e4cd50> >" "<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7fec96f528d0> >"
] ]
}, },
"execution_count": 5, "execution_count": 5,
@ -462,7 +462,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128edca50> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7feca4075120> >"
] ]
}, },
"execution_count": 6, "execution_count": 6,
@ -695,7 +695,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e4cab0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f528a0> >"
] ]
}, },
"execution_count": 8, "execution_count": 8,
@ -892,7 +892,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e4cab0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f528a0> >"
] ]
}, },
"execution_count": 11, "execution_count": 11,
@ -977,7 +977,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d8a0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52a50> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1032,7 +1032,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d780> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f529f0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1126,7 +1126,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d090> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52ab0> >"
] ]
}, },
"execution_count": 13, "execution_count": 13,
@ -1257,7 +1257,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d090> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52ab0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1322,7 +1322,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d8a0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52a50> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1377,7 +1377,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d780> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f529f0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1609,7 +1609,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7f0128e6db40> >" "<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7fec96f52b40> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1624,14 +1624,11 @@
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n", "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n", " -->\n",
"<!-- Pages: 1 -->\n", "<!-- Pages: 1 -->\n",
"<svg width=\"247pt\" height=\"172pt\"\n", "<svg width=\"255pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 247.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 255.00 164.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 1) rotate(0) translate(4 168)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 160.8)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-168 243,-168 243,4 -4,4\"/>\n", "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-160.8 251,-160.8 251,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"98.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n", "<text text-anchor=\"start\" x=\"100.5\" y=\"-126.6\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<text text-anchor=\"start\" x=\"120.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"136.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
@ -1648,14 +1645,15 @@
"<!-- 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=\"#000000\" cx=\"221\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"225\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"221\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n", "<ellipse fill=\"none\" stroke=\"#000000\" cx=\"225\" cy=\"-62\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"225\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#e31a1c\" stroke-width=\"2\" d=\"M73.4307,-67.3514C86.8358,-71.1754 105.8972,-75.9862 123,-78 139.3316,-79.923 143.6906,-80.1034 160,-78 172.3813,-76.4032 185.8347,-73.0547 196.949,-69.8317\"/>\n", "<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M73.4307,-67.3514C86.8358,-71.1754 105.8972,-75.9862 123,-78 139.3316,-79.923 143.6752,-79.9797 160,-78 172.3248,-76.5054 185.6823,-73.472 197.0644,-70.4443\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"203.88,-67.7515 198.081,-72.7808 200.6715,-69.2366 197.3192,-70.2427 197.1754,-69.7638 197.0317,-69.2849 200.384,-68.2788 196.2699,-66.7467 203.88,-67.7515 203.88,-67.7515\"/>\n", "<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"203.8692,-68.5737 197.9546,-73.4666 200.6269,-69.9836 197.2521,-70.9113 197.1196,-70.4292 196.9871,-69.9471 200.3619,-69.0194 196.2846,-67.3919 203.8692,-68.5737 203.8692,-68.5737\"/>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"123\" y=\"-82.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 2 -->\n", "<!-- 2 -->\n",
@ -1674,17 +1672,16 @@
"<!-- 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=\"#e31a1c\" stroke-width=\"2\" d=\"M214.2664,-79.0373C212.8922,-88.8579 215.1367,-98 221,-98 225.3975,-98 227.7594,-92.8576 228.0858,-86.1433\"/>\n", "<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M217.3173,-82.9908C216.3688,-93.0872 218.9297,-102 225,-102 229.5527,-102 232.1314,-96.9866 232.7361,-90.2204\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"227.7336,-79.0373 231.2263,-85.8728 228.4063,-82.5083 228.5796,-86.004 228.0802,-86.0287 227.5808,-86.0535 227.4075,-82.5578 224.934,-86.1847 227.7336,-79.0373 227.7336,-79.0373\"/>\n", "<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"232.6827,-82.9908 235.8844,-89.9673 233.2086,-86.487 233.2345,-89.9869 232.7345,-89.9906 232.2345,-89.9943 232.2086,-86.4944 229.5846,-90.0139 232.6827,-82.9908 232.6827,-82.9908\"/>\n",
"<text text-anchor=\"start\" x=\"217.5\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n", "<text text-anchor=\"start\" x=\"221.5\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"213\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;1 -->\n", "<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n", "<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M157.588,-26.9041C169.5193,-33.5075 185.9223,-42.5859 199.0562,-49.855\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M157.5996,-26.4836C169.3289,-32.6643 185.468,-41.1688 199.0128,-48.3062\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"205.2072,-53.2593 197.5573,-52.6257 202.1449,-51.5645 199.0827,-49.8696 199.0827,-49.8696 199.0827,-49.8696 202.1449,-51.5645 200.6081,-47.1136 205.2072,-53.2593 205.2072,-53.2593\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"205.423,-51.684 197.7616,-51.2074 202.3265,-50.0523 199.2301,-48.4206 199.2301,-48.4206 199.2301,-48.4206 202.3265,-50.0523 200.6986,-45.6338 205.423,-51.684 205.423,-51.684\"/>\n",
"<text text-anchor=\"start\" x=\"178\" y=\"-44.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n", "<text text-anchor=\"start\" x=\"178\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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",
@ -1697,7 +1694,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dba0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52c00> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1794,7 +1791,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d180> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52b10> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1962,7 +1959,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52d80> >"
] ]
}, },
"execution_count": 18, "execution_count": 18,
@ -2130,7 +2127,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52d80> >"
] ]
}, },
"execution_count": 19, "execution_count": 19,
@ -2293,7 +2290,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fec96f52d80> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2757,13 +2754,6 @@
"spot.highlight_languages(aut)\n", "spot.highlight_languages(aut)\n",
"aut.show('.bas')" "aut.show('.bas')"
] ]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
} }
], ],
"metadata": { "metadata": {
@ -2782,7 +2772,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.5" "version": "3.6.5+"
} }
}, },
"nbformat": 4, "nbformat": 4,

File diff suppressed because it is too large Load diff

View file

@ -27,10 +27,9 @@ Start: 0
AP: 1 "a" AP: 1 "a"
acc-name: co-Buchi acc-name: co-Buchi
Acceptance: 1 Fin(0) Acceptance: 1 Fin(0)
properties: trans-labels explicit-labels state-acc deterministic properties: trans-labels explicit-labels state-acc deterministic weak
properties: inherently-weak
--BODY-- --BODY--
State: 0 State: 0 {0}
[0] 1 [0] 1
State: 1 State: 1
[t] 1 [t] 1

View file

@ -302,7 +302,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642b47b0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a00c1660> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -449,153 +449,153 @@
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n", "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n", " -->\n",
"<!-- Pages: 1 -->\n", "<!-- Pages: 1 -->\n",
"<svg width=\"518pt\" height=\"230pt\"\n", "<svg width=\"553pt\" height=\"227pt\"\n",
" viewBox=\"0.00 0.00 518.00 230.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 553.48 226.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 226)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 222.7401)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-226 514,-226 514,4 -4,4\"/>\n", "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-222.7401 549.4802,-222.7401 549.4802,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n", "<text text-anchor=\"start\" x=\"251.7401\" y=\"-204.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"273.7401\" y=\"-204.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"272\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n", "<text text-anchor=\"start\" x=\"289.7401\" y=\"-204.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n", "<text text-anchor=\"start\" x=\"249.7401\" y=\"-190.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[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=\"#000000\" cx=\"56\" cy=\"-81\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-84.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-77.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n", "<text text-anchor=\"middle\" x=\"56\" y=\"-81.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-81C4.178,-81 17.9448,-81 30.9241,-81\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-84.8701C4.178,-84.8701 17.9448,-84.8701 30.9241,-84.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-81 30.9808,-84.1501 34.4807,-81 30.9807,-81.0001 30.9807,-81.0001 30.9807,-81.0001 34.4807,-81 30.9807,-77.8501 37.9807,-81 37.9807,-81\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-84.8701 30.9808,-88.0202 34.4807,-84.8701 30.9807,-84.8702 30.9807,-84.8702 30.9807,-84.8702 34.4807,-84.8701 30.9807,-81.7202 37.9807,-84.8701 37.9807,-84.8701\"/>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;0 -->\n", "<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n", "<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n", "<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-98.0373C48.3189,-107.8579 50.4453,-117 56,-117 60.166,-117 62.4036,-111.8576 62.7128,-105.1433\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-101.9074C48.3189,-111.728 50.4453,-120.8701 56,-120.8701 60.166,-120.8701 62.4036,-115.7276 62.7128,-109.0134\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-98.0373 65.8541,-104.8818 62.5434,-101.5335 62.7076,-105.0296 62.7076,-105.0296 62.7076,-105.0296 62.5434,-101.5335 59.561,-105.1774 62.3792,-98.0373 62.3792,-98.0373\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-101.9074 65.8541,-108.7519 62.5434,-105.4035 62.7076,-108.8997 62.7076,-108.8997 62.7076,-108.8997 62.5434,-105.4035 59.561,-109.0474 62.3792,-101.9074 62.3792,-101.9074\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n", "<text text-anchor=\"start\" x=\"51.5\" y=\"-124.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\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=\"#000000\" cx=\"165\" cy=\"-108\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"165\" cy=\"-111.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"160.5\" y=\"-104.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n", "<text text-anchor=\"start\" x=\"160.5\" y=\"-108.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M73.5127,-85.338C91.6004,-89.8184 119.9794,-96.8481 140.3337,-101.89\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M73.5127,-89.2081C91.6004,-93.6885 119.9794,-100.7182 140.3337,-105.7601\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.1686,-103.5831 139.6165,-104.9575 143.7713,-102.7415 140.374,-101.8999 140.374,-101.8999 140.374,-101.8999 143.7713,-102.7415 141.1314,-98.8423 147.1686,-103.5831 147.1686,-103.5831\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.1686,-107.4531 139.6165,-108.8275 143.7713,-106.6115 140.374,-105.77 140.374,-105.77 140.374,-105.77 143.7713,-106.6115 141.1314,-102.7124 147.1686,-107.4531 147.1686,-107.4531\"/>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n", "<text text-anchor=\"start\" x=\"107\" y=\"-106.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" cx=\"165\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"165\" cy=\"-57.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n", "<text text-anchor=\"middle\" x=\"165\" y=\"-54.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M73.5753,-76.5941C79.4345,-75.1285 85.9976,-73.4903 92,-72 108.0742,-68.009 126.1473,-63.5524 140.2892,-60.0721\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M73.5753,-80.4642C79.4345,-78.9986 85.9976,-77.3604 92,-75.8701 108.0742,-71.879 126.1473,-67.4224 140.2892,-63.9421\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.2947,-58.3488 141.2498,-63.0798 143.896,-59.1849 140.4973,-60.0209 140.4973,-60.0209 140.4973,-60.0209 143.896,-59.1849 139.7449,-56.9621 147.2947,-58.3488 147.2947,-58.3488\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.2947,-62.2188 141.2498,-66.9498 143.896,-63.0549 140.4973,-63.891 140.4973,-63.891 140.4973,-63.891 143.896,-63.0549 139.7449,-60.8322 147.2947,-62.2188 147.2947,-62.2188\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-79.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" cx=\"274\" cy=\"-114\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"274\" cy=\"-116.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-110.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n", "<text text-anchor=\"middle\" x=\"274\" y=\"-113.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;3 -->\n", "<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n", "<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M182.9991,-108.9908C200.9861,-109.9809 228.7902,-111.5114 248.9323,-112.6201\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M182.9991,-112.6957C200.9861,-113.5208 228.7902,-114.7962 248.9323,-115.7202\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.9741,-113.0078 248.8115,-115.7682 252.4794,-112.8153 248.9847,-112.6229 248.9847,-112.6229 248.9847,-112.6229 252.4794,-112.8153 249.1579,-109.4777 255.9741,-113.0078 255.9741,-113.0078\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.9741,-116.0432 248.8371,-118.869 252.4778,-115.8828 248.9815,-115.7223 248.9815,-115.7223 248.9815,-115.7223 252.4778,-115.8828 249.1259,-112.5756 255.9741,-116.0432 255.9741,-116.0432\"/>\n",
"<text text-anchor=\"start\" x=\"214\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n", "<text text-anchor=\"start\" x=\"214\" y=\"-119.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</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=\"#000000\" cx=\"274\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"274\" cy=\"-57.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n", "<text text-anchor=\"middle\" x=\"274\" y=\"-54.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;5 -->\n", "<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n", "<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M183.4904,-54C201.3712,-54 228.6126,-54 248.5388,-54\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M183.4904,-57.8701C201.3712,-57.8701 228.6126,-57.8701 248.5388,-57.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.7827,-54 248.7828,-57.1501 252.2827,-54 248.7827,-54.0001 248.7827,-54.0001 248.7827,-54.0001 252.2827,-54 248.7827,-50.8501 255.7827,-54 255.7827,-54\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.7827,-57.8701 248.7828,-61.0202 252.2827,-57.8701 248.7827,-57.8702 248.7827,-57.8702 248.7827,-57.8702 252.2827,-57.8701 248.7827,-54.7202 255.7827,-57.8701 255.7827,-57.8701\"/>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"201\" y=\"-61.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;3 -->\n", "<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n", "<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M264.7674,-129.5414C262.1685,-139.9087 265.2461,-150 274,-150 280.7022,-150 284.077,-144.0847 284.1245,-136.6591\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M264.7674,-132.4115C262.1685,-142.7787 265.2461,-152.8701 274,-152.8701 280.7022,-152.8701 284.077,-146.9547 284.1245,-139.5291\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"283.2326,-129.5414 287.2286,-136.0955 283.6678,-133.0143 284.103,-136.4871 284.103,-136.4871 284.103,-136.4871 283.6678,-133.0143 280.9775,-136.8788 283.2326,-129.5414 283.2326,-129.5414\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"283.2326,-132.4115 287.2286,-138.9655 283.6678,-135.8843 284.103,-139.3572 284.103,-139.3572 284.103,-139.3572 283.6678,-135.8843 280.9775,-139.7489 283.2326,-132.4115 283.2326,-132.4115\"/>\n",
"<text text-anchor=\"start\" x=\"269.5\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n", "<text text-anchor=\"start\" x=\"269.5\" y=\"-156.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n", "<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"383\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"391.8701\" cy=\"-122.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"383\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n", "<text text-anchor=\"middle\" x=\"391.8701\" y=\"-119.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n", "<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M291.9991,-114.9908C309.9861,-115.9809 337.7902,-117.5114 357.9323,-118.6201\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M292.1589,-117.7944C312.1173,-118.8104 344.313,-120.4492 366.6998,-121.5888\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"364.9741,-119.0078 357.8115,-121.7682 361.4794,-118.8153 357.9847,-118.6229 357.9847,-118.6229 357.9847,-118.6229 361.4794,-118.8153 358.1579,-115.4777 364.9741,-119.0078 364.9741,-119.0078\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"373.884,-121.9545 366.7328,-124.7445 370.3885,-121.7765 366.893,-121.5985 366.893,-121.5985 366.893,-121.5985 370.3885,-121.7765 367.0532,-118.4526 373.884,-121.9545 373.884,-121.9545\"/>\n",
"<text text-anchor=\"start\" x=\"311.5\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"311.5\" y=\"-124.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 6 -->\n", "<!-- 6 -->\n",
"<g id=\"node9\" class=\"node\">\n", "<g id=\"node9\" class=\"node\">\n",
"<title>6</title>\n", "<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"383\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"391.8701\" cy=\"-26.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"middle\" x=\"383\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n", "<text text-anchor=\"start\" x=\"387.3701\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"<text text-anchor=\"start\" x=\"383.8701\" y=\"-15.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 5&#45;&gt;6 -->\n", "<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge10\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n", "<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M291.5127,-48.216C309.8157,-42.171 338.6565,-32.6456 359.0572,-25.9077\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M291.6463,-53.229C309.3792,-48.5653 337.1343,-41.2656 358.9445,-35.5295\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"365.8901,-23.651 360.2311,-28.8374 362.5667,-24.7487 359.2432,-25.8463 359.2432,-25.8463 359.2432,-25.8463 362.5667,-24.7487 358.2553,-22.8552 365.8901,-23.651 365.8901,-23.651\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"365.7966,-33.7274 359.828,-38.5544 362.4117,-34.6177 359.0268,-35.508 359.0268,-35.508 359.0268,-35.508 362.4117,-34.6177 358.2255,-32.4616 365.7966,-33.7274 365.7966,-33.7274\"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-45.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"310\" y=\"-51.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</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=\"#000000\" cx=\"492\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"518.6102\" cy=\"-122.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"middle\" x=\"492\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n", "<text text-anchor=\"start\" x=\"514.1102\" y=\"-126.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"<text text-anchor=\"start\" x=\"510.6102\" y=\"-111.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;7 -->\n", "<!-- 4&#45;&gt;7 -->\n",
"<g id=\"edge9\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n", "<title>4&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M401.4904,-120C419.3712,-120 446.6126,-120 466.5388,-120\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M410.0288,-122.8701C429.3822,-122.8701 460.4746,-122.8701 484.438,-122.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"473.7827,-120 466.7828,-123.1501 470.2827,-120 466.7827,-120.0001 466.7827,-120.0001 466.7827,-120.0001 470.2827,-120 466.7827,-116.8501 473.7827,-120 473.7827,-120\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"491.6252,-122.8701 484.6253,-126.0202 488.1252,-122.8701 484.6252,-122.8702 484.6252,-122.8702 484.6252,-122.8702 488.1252,-122.8701 484.6252,-119.7202 491.6252,-122.8701 491.6252,-122.8701\"/>\n",
"<text text-anchor=\"start\" x=\"419\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"436.7401\" y=\"-126.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 7&#45;&gt;7 -->\n", "<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge12\" class=\"edge\">\n", "<g id=\"edge12\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n", "<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M482.7674,-135.5414C480.1685,-145.9087 483.2461,-156 492,-156 498.7022,-156 502.077,-150.0847 502.1245,-142.6591\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M507.1668,-147.3317C506.077,-158.2753 509.8914,-167.7401 518.6102,-167.7401 525.2855,-167.7401 529.086,-162.192 530.0116,-154.6799\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.2326,-135.5414 505.2286,-142.0955 501.6678,-139.0143 502.103,-142.4871 502.103,-142.4871 502.103,-142.4871 501.6678,-139.0143 498.9775,-142.8788 501.2326,-135.5414 501.2326,-135.5414\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"530.0535,-147.3317 533.1635,-154.3496 530.0335,-150.8316 530.0135,-154.3316 530.0135,-154.3316 530.0135,-154.3316 530.0335,-150.8316 526.8636,-154.3136 530.0535,-147.3317 530.0535,-147.3317\"/>\n",
"<text text-anchor=\"start\" x=\"488.5\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n", "<text text-anchor=\"start\" x=\"515.1102\" y=\"-171.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"484\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;6 -->\n", "<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge11\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n", "<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M373.7674,-33.5414C371.1685,-43.9087 374.2461,-54 383,-54 389.7022,-54 393.077,-48.0847 393.1245,-40.6591\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M380.4267,-51.3317C379.3369,-62.2753 383.1513,-71.7401 391.8701,-71.7401 398.5454,-71.7401 402.3458,-66.192 403.2715,-58.6799\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"392.2326,-33.5414 396.2286,-40.0955 392.6678,-37.0143 393.103,-40.4871 393.103,-40.4871 393.103,-40.4871 392.6678,-37.0143 389.9775,-40.8788 392.2326,-33.5414 392.2326,-33.5414\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"403.3134,-51.3317 406.4234,-58.3496 403.2934,-54.8316 403.2734,-58.3316 403.2734,-58.3316 403.2734,-58.3316 403.2934,-54.8316 400.1235,-58.3136 403.3134,-51.3317 403.3134,-51.3317\"/>\n",
"<text text-anchor=\"start\" x=\"376.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n", "<text text-anchor=\"start\" x=\"385.3701\" y=\"-75.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
"<text text-anchor=\"start\" x=\"375\" 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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642c22d0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a00c1b40> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -658,153 +658,153 @@
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n", "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n", " -->\n",
"<!-- Pages: 1 -->\n", "<!-- Pages: 1 -->\n",
"<svg width=\"518pt\" height=\"230pt\"\n", "<svg width=\"553pt\" height=\"227pt\"\n",
" viewBox=\"0.00 0.00 518.00 230.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 553.48 226.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 226)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 222.7401)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-226 514,-226 514,4 -4,4\"/>\n", "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-222.7401 549.4802,-222.7401 549.4802,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n", "<text text-anchor=\"start\" x=\"251.7401\" y=\"-204.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"273.7401\" y=\"-204.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"272\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n", "<text text-anchor=\"start\" x=\"289.7401\" y=\"-204.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n", "<text text-anchor=\"start\" x=\"249.7401\" y=\"-190.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[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=\"#000000\" cx=\"56\" cy=\"-81\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-84.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-77.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n", "<text text-anchor=\"middle\" x=\"56\" y=\"-81.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-81C4.178,-81 17.9448,-81 30.9241,-81\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-84.8701C4.178,-84.8701 17.9448,-84.8701 30.9241,-84.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-81 30.9808,-84.1501 34.4807,-81 30.9807,-81.0001 30.9807,-81.0001 30.9807,-81.0001 34.4807,-81 30.9807,-77.8501 37.9807,-81 37.9807,-81\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-84.8701 30.9808,-88.0202 34.4807,-84.8701 30.9807,-84.8702 30.9807,-84.8702 30.9807,-84.8702 34.4807,-84.8701 30.9807,-81.7202 37.9807,-84.8701 37.9807,-84.8701\"/>\n",
"</g>\n", "</g>\n",
"<!-- 0&#45;&gt;0 -->\n", "<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n", "<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n", "<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-98.0373C48.3189,-107.8579 50.4453,-117 56,-117 60.166,-117 62.4036,-111.8576 62.7128,-105.1433\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-101.9074C48.3189,-111.728 50.4453,-120.8701 56,-120.8701 60.166,-120.8701 62.4036,-115.7276 62.7128,-109.0134\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-98.0373 65.8541,-104.8818 62.5434,-101.5335 62.7076,-105.0296 62.7076,-105.0296 62.7076,-105.0296 62.5434,-101.5335 59.561,-105.1774 62.3792,-98.0373 62.3792,-98.0373\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-101.9074 65.8541,-108.7519 62.5434,-105.4035 62.7076,-108.8997 62.7076,-108.8997 62.7076,-108.8997 62.5434,-105.4035 59.561,-109.0474 62.3792,-101.9074 62.3792,-101.9074\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n", "<text text-anchor=\"start\" x=\"51.5\" y=\"-124.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\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=\"#e31a1c\" stroke-width=\"2\" cx=\"165\" cy=\"-108\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"165\" cy=\"-111.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"160.5\" y=\"-104.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n", "<text text-anchor=\"start\" x=\"160.5\" y=\"-108.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M73.5127,-85.338C91.6004,-89.8184 119.9794,-96.8481 140.3337,-101.89\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M73.5127,-89.2081C91.6004,-93.6885 119.9794,-100.7182 140.3337,-105.7601\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.1686,-103.5831 139.6165,-104.9575 143.7713,-102.7415 140.374,-101.8999 140.374,-101.8999 140.374,-101.8999 143.7713,-102.7415 141.1314,-98.8423 147.1686,-103.5831 147.1686,-103.5831\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.1686,-107.4531 139.6165,-108.8275 143.7713,-106.6115 140.374,-105.77 140.374,-105.77 140.374,-105.77 143.7713,-106.6115 141.1314,-102.7124 147.1686,-107.4531 147.1686,-107.4531\"/>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n", "<text text-anchor=\"start\" x=\"107\" y=\"-106.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" cx=\"165\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"165\" cy=\"-57.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n", "<text text-anchor=\"middle\" x=\"165\" y=\"-54.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M73.5753,-76.5941C79.4345,-75.1285 85.9976,-73.4903 92,-72 108.0742,-68.009 126.1473,-63.5524 140.2892,-60.0721\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M73.5753,-80.4642C79.4345,-78.9986 85.9976,-77.3604 92,-75.8701 108.0742,-71.879 126.1473,-67.4224 140.2892,-63.9421\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.2947,-58.3488 141.2498,-63.0798 143.896,-59.1849 140.4973,-60.0209 140.4973,-60.0209 140.4973,-60.0209 143.896,-59.1849 139.7449,-56.9621 147.2947,-58.3488 147.2947,-58.3488\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"147.2947,-62.2188 141.2498,-66.9498 143.896,-63.0549 140.4973,-63.891 140.4973,-63.891 140.4973,-63.891 143.896,-63.0549 139.7449,-60.8322 147.2947,-62.2188 147.2947,-62.2188\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-79.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#e31a1c\" stroke-width=\"2\" cx=\"274\" cy=\"-114\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"274\" cy=\"-116.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-110.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n", "<text text-anchor=\"middle\" x=\"274\" y=\"-113.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;3 -->\n", "<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n", "<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M182.9991,-108.9908C200.9861,-109.9809 228.7902,-111.5114 248.9323,-112.6201\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M182.9991,-112.6957C200.9861,-113.5208 228.7902,-114.7962 248.9323,-115.7202\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.9741,-113.0078 248.8115,-115.7682 252.4794,-112.8153 248.9847,-112.6229 248.9847,-112.6229 248.9847,-112.6229 252.4794,-112.8153 249.1579,-109.4777 255.9741,-113.0078 255.9741,-113.0078\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.9741,-116.0432 248.8371,-118.869 252.4778,-115.8828 248.9815,-115.7223 248.9815,-115.7223 248.9815,-115.7223 252.4778,-115.8828 249.1259,-112.5756 255.9741,-116.0432 255.9741,-116.0432\"/>\n",
"<text text-anchor=\"start\" x=\"214\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n", "<text text-anchor=\"start\" x=\"214\" y=\"-119.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</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=\"#e31a1c\" stroke-width=\"2\" cx=\"274\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"274\" cy=\"-57.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"274\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n", "<text text-anchor=\"middle\" x=\"274\" y=\"-54.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;5 -->\n", "<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n", "<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M183.4904,-54C201.3712,-54 228.6126,-54 248.5388,-54\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M183.4904,-57.8701C201.3712,-57.8701 228.6126,-57.8701 248.5388,-57.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.7827,-54 248.7828,-57.1501 252.2827,-54 248.7827,-54.0001 248.7827,-54.0001 248.7827,-54.0001 252.2827,-54 248.7827,-50.8501 255.7827,-54 255.7827,-54\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.7827,-57.8701 248.7828,-61.0202 252.2827,-57.8701 248.7827,-57.8702 248.7827,-57.8702 248.7827,-57.8702 252.2827,-57.8701 248.7827,-54.7202 255.7827,-57.8701 255.7827,-57.8701\"/>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"201\" y=\"-61.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;3 -->\n", "<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n", "<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M264.7674,-129.5414C262.1685,-139.9087 265.2461,-150 274,-150 280.7022,-150 284.077,-144.0847 284.1245,-136.6591\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M264.7674,-132.4115C262.1685,-142.7787 265.2461,-152.8701 274,-152.8701 280.7022,-152.8701 284.077,-146.9547 284.1245,-139.5291\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"283.2326,-129.5414 287.2286,-136.0955 283.6678,-133.0143 284.103,-136.4871 284.103,-136.4871 284.103,-136.4871 283.6678,-133.0143 280.9775,-136.8788 283.2326,-129.5414 283.2326,-129.5414\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"283.2326,-132.4115 287.2286,-138.9655 283.6678,-135.8843 284.103,-139.3572 284.103,-139.3572 284.103,-139.3572 283.6678,-135.8843 280.9775,-139.7489 283.2326,-132.4115 283.2326,-132.4115\"/>\n",
"<text text-anchor=\"start\" x=\"269.5\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n", "<text text-anchor=\"start\" x=\"269.5\" y=\"-156.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n", "</g>\n",
"<!-- 4 -->\n", "<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n", "<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n", "<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"383\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"391.8701\" cy=\"-122.8701\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"383\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n", "<text text-anchor=\"middle\" x=\"391.8701\" y=\"-119.1701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
"</g>\n", "</g>\n",
"<!-- 3&#45;&gt;4 -->\n", "<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n", "<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n", "<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M291.9991,-114.9908C309.9861,-115.9809 337.7902,-117.5114 357.9323,-118.6201\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M292.1589,-117.7944C312.1173,-118.8104 344.313,-120.4492 366.6998,-121.5888\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"364.9741,-119.0078 357.8115,-121.7682 361.4794,-118.8153 357.9847,-118.6229 357.9847,-118.6229 357.9847,-118.6229 361.4794,-118.8153 358.1579,-115.4777 364.9741,-119.0078 364.9741,-119.0078\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"373.884,-121.9545 366.7328,-124.7445 370.3885,-121.7765 366.893,-121.5985 366.893,-121.5985 366.893,-121.5985 370.3885,-121.7765 367.0532,-118.4526 373.884,-121.9545 373.884,-121.9545\"/>\n",
"<text text-anchor=\"start\" x=\"311.5\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n", "<text text-anchor=\"start\" x=\"311.5\" y=\"-124.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"</g>\n", "</g>\n",
"<!-- 6 -->\n", "<!-- 6 -->\n",
"<g id=\"node9\" class=\"node\">\n", "<g id=\"node9\" class=\"node\">\n",
"<title>6</title>\n", "<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"383\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"391.8701\" cy=\"-26.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"middle\" x=\"383\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n", "<text text-anchor=\"start\" x=\"387.3701\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
"<text text-anchor=\"start\" x=\"383.8701\" y=\"-15.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 5&#45;&gt;6 -->\n", "<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge10\" class=\"edge\">\n", "<g id=\"edge10\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n", "<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M291.5127,-48.216C309.8157,-42.171 338.6565,-32.6456 359.0572,-25.9077\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M291.6463,-53.229C309.3792,-48.5653 337.1343,-41.2656 358.9445,-35.5295\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"365.8901,-23.651 360.2311,-28.8374 362.5667,-24.7487 359.2432,-25.8463 359.2432,-25.8463 359.2432,-25.8463 362.5667,-24.7487 358.2553,-22.8552 365.8901,-23.651 365.8901,-23.651\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"365.7966,-33.7274 359.828,-38.5544 362.4117,-34.6177 359.0268,-35.508 359.0268,-35.508 359.0268,-35.508 362.4117,-34.6177 358.2255,-32.4616 365.7966,-33.7274 365.7966,-33.7274\"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-45.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"310\" y=\"-51.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</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=\"#e31a1c\" stroke-width=\"2\" cx=\"492\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"518.6102\" cy=\"-122.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"middle\" x=\"492\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n", "<text text-anchor=\"start\" x=\"514.1102\" y=\"-126.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
"<text text-anchor=\"start\" x=\"510.6102\" y=\"-111.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 4&#45;&gt;7 -->\n", "<!-- 4&#45;&gt;7 -->\n",
"<g id=\"edge9\" class=\"edge\">\n", "<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n", "<title>4&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M401.4904,-120C419.3712,-120 446.6126,-120 466.5388,-120\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M410.0288,-122.8701C429.3822,-122.8701 460.4746,-122.8701 484.438,-122.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"473.7827,-120 466.7828,-123.1501 470.2827,-120 466.7827,-120.0001 466.7827,-120.0001 466.7827,-120.0001 470.2827,-120 466.7827,-116.8501 473.7827,-120 473.7827,-120\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"491.6252,-122.8701 484.6253,-126.0202 488.1252,-122.8701 484.6252,-122.8702 484.6252,-122.8702 484.6252,-122.8702 488.1252,-122.8701 484.6252,-119.7202 491.6252,-122.8701 491.6252,-122.8701\"/>\n",
"<text text-anchor=\"start\" x=\"419\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n", "<text text-anchor=\"start\" x=\"436.7401\" y=\"-126.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n", "</g>\n",
"<!-- 7&#45;&gt;7 -->\n", "<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge12\" class=\"edge\">\n", "<g id=\"edge12\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n", "<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M482.7674,-135.5414C480.1685,-145.9087 483.2461,-156 492,-156 498.7022,-156 502.077,-150.0847 502.1245,-142.6591\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M507.1668,-147.3317C506.077,-158.2753 509.8914,-167.7401 518.6102,-167.7401 525.2855,-167.7401 529.086,-162.192 530.0116,-154.6799\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.2326,-135.5414 505.2286,-142.0955 501.6678,-139.0143 502.103,-142.4871 502.103,-142.4871 502.103,-142.4871 501.6678,-139.0143 498.9775,-142.8788 501.2326,-135.5414 501.2326,-135.5414\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"530.0535,-147.3317 533.1635,-154.3496 530.0335,-150.8316 530.0135,-154.3316 530.0135,-154.3316 530.0135,-154.3316 530.0335,-150.8316 526.8636,-154.3136 530.0535,-147.3317 530.0535,-147.3317\"/>\n",
"<text text-anchor=\"start\" x=\"488.5\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n", "<text text-anchor=\"start\" x=\"515.1102\" y=\"-171.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"484\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 6&#45;&gt;6 -->\n", "<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge11\" class=\"edge\">\n", "<g id=\"edge11\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n", "<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M373.7674,-33.5414C371.1685,-43.9087 374.2461,-54 383,-54 389.7022,-54 393.077,-48.0847 393.1245,-40.6591\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M380.4267,-51.3317C379.3369,-62.2753 383.1513,-71.7401 391.8701,-71.7401 398.5454,-71.7401 402.3458,-66.192 403.2715,-58.6799\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"392.2326,-33.5414 396.2286,-40.0955 392.6678,-37.0143 393.103,-40.4871 393.103,-40.4871 393.103,-40.4871 392.6678,-37.0143 389.9775,-40.8788 392.2326,-33.5414 392.2326,-33.5414\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"403.3134,-51.3317 406.4234,-58.3496 403.2934,-54.8316 403.2734,-58.3316 403.2734,-58.3316 403.2734,-58.3316 403.2934,-54.8316 400.1235,-58.3136 403.3134,-51.3317 403.3134,-51.3317\"/>\n",
"<text text-anchor=\"start\" x=\"376.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n", "<text text-anchor=\"start\" x=\"385.3701\" y=\"-75.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
"<text text-anchor=\"start\" x=\"375\" 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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642c22d0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a00c1b40> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -963,7 +963,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642b4750> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a00c1630> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -978,16 +978,16 @@
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n", "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n", " -->\n",
"<!-- Title: FG(!a | X!a) Pages: 1 -->\n", "<!-- Title: FG(!a | X!a) Pages: 1 -->\n",
"<svg width=\"253pt\" height=\"177pt\"\n", "<svg width=\"283pt\" height=\"180pt\"\n",
" viewBox=\"0.00 0.00 253.00 177.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", " viewBox=\"0.00 0.00 283.48 179.87\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 173)\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 175.8701)\">\n",
"<title>FG(!a | X!a)</title>\n", "<title>FG(!a | X!a)</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-173 249,-173 249,4 -4,4\"/>\n", "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-175.8701 279.4802,-175.8701 279.4802,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"88.5\" y=\"-154.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">FG(!a | X!a)</text>\n", "<text text-anchor=\"start\" x=\"103.7401\" y=\"-157.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">FG(!a | X!a)</text>\n",
"<text text-anchor=\"start\" x=\"101.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n", "<text text-anchor=\"start\" x=\"116.7401\" y=\"-143.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", "<text text-anchor=\"start\" x=\"138.7401\" y=\"-143.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n", "<text text-anchor=\"start\" x=\"154.7401\" y=\"-143.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n", "<text text-anchor=\"start\" x=\"114.7401\" y=\"-129.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n", "<!-- I -->\n",
"<!-- 0 -->\n", "<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n", "<g id=\"node2\" class=\"node\">\n",
@ -1011,58 +1011,57 @@
"<!-- 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=\"#000000\" cx=\"139\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"147.8701\" cy=\"-62\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n", "<text text-anchor=\"start\" x=\"143.3701\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"139.8701\" y=\"-50.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"#000000\" d=\"M72.7963,-25.0828C85.0589,-30.2538 101.8459,-37.3326 115.4473,-43.0681\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M72.4245,-25.8663C84.6879,-31.7397 101.8177,-39.9438 116.6558,-47.0503\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.2287,-45.9278 114.5547,-46.1103 119.0037,-44.5678 115.7787,-43.2078 115.7787,-43.2078 115.7787,-43.2078 119.0037,-44.5678 117.0027,-40.3053 122.2287,-45.9278 122.2287,-45.9278\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"123.2864,-50.226 115.6125,-50.0432 120.1298,-48.7141 116.9731,-47.2023 116.9731,-47.2023 116.9731,-47.2023 120.1298,-48.7141 118.3338,-44.3613 123.2864,-50.226 123.2864,-50.226\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-40.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n", "<text text-anchor=\"start\" x=\"92\" y=\"-43.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" cx=\"227\" cy=\"-35\" rx=\"18\" ry=\"18\"/>\n", "<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"248.6102\" cy=\"-35\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"middle\" x=\"227\" y=\"-31.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n", "<text text-anchor=\"start\" x=\"244.1102\" y=\"-38.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"240.6102\" y=\"-23.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</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=\"#000000\" d=\"M73.6356,-14.3004C93.8872,-10.6235 128.0462,-6.1744 157,-11 173.0791,-13.6799 190.4153,-19.599 203.8126,-24.888\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M73.82,-14.5755C97.1498,-10.6332 139.2507,-5.3794 174.7401,-11 188.787,-13.2247 203.7979,-17.6899 216.5942,-22.1718\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.4319,-27.5759 202.761,-27.8608 207.1891,-26.2591 203.9462,-24.9422 203.9462,-24.9422 203.9462,-24.9422 207.1891,-26.2591 205.1314,-22.0237 210.4319,-27.5759 210.4319,-27.5759\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"223.4552,-24.6494 215.8014,-25.2346 220.1632,-23.4607 216.8713,-22.2719 216.8713,-22.2719 216.8713,-22.2719 220.1632,-23.4607 217.9412,-19.3091 223.4552,-24.6494 223.4552,-24.6494\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-14.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n", "<text text-anchor=\"start\" x=\"144.3701\" y=\"-14.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;1 -->\n", "<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n", "<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n", "<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M131.9688,-69.6641C130.4063,-79.625 132.75,-89 139,-89 143.6875,-89 146.1777,-83.7266 146.4707,-76.8876\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M138.5775,-87.37C137.9366,-97.9238 141.0341,-106.8701 147.8701,-106.8701 153.1038,-106.8701 156.1462,-101.6259 156.9972,-94.4312\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.0313,-69.6641 149.6006,-76.4598 146.2438,-73.1576 146.4564,-76.6511 146.4564,-76.6511 146.4564,-76.6511 146.2438,-73.1576 143.3122,-76.8425 146.0313,-69.6641 146.0313,-69.6641\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"157.1627,-87.37 160.1477,-94.4419 157.0806,-90.869 156.9986,-94.3681 156.9986,-94.3681 156.9986,-94.3681 157.0806,-90.869 153.8494,-94.2943 157.1627,-87.37 157.1627,-87.37\"/>\n",
"<text text-anchor=\"start\" x=\"133.5\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n", "<text text-anchor=\"start\" x=\"142.3701\" y=\"-110.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 1&#45;&gt;2 -->\n", "<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n", "<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n", "<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M154.7448,-61.7947C165.2012,-66.4602 179.1355,-70.4044 191,-66 197.9591,-63.4166 204.4745,-58.8182 209.9981,-53.9409\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M174.4887,-57.592C183.8103,-55.8292 194.3037,-53.596 203.7401,-51 207.9265,-49.8483 212.283,-48.4961 216.5636,-47.074\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"215.1708,-49.0349 212.2596,-56.1375 212.6314,-51.4434 210.0919,-53.852 210.0919,-53.852 210.0919,-53.852 212.6314,-51.4434 207.9242,-51.5664 215.1708,-49.0349 215.1708,-49.0349\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"223.1926,-44.8006 217.5931,-50.0511 219.8819,-45.936 216.5712,-47.0714 216.5712,-47.0714 216.5712,-47.0714 219.8819,-45.936 215.5493,-44.0918 223.1926,-44.8006 223.1926,-44.8006\"/>\n",
"<text text-anchor=\"start\" x=\"179.5\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n", "<text text-anchor=\"start\" x=\"194.7401\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n", "</g>\n",
"<!-- 2&#45;&gt;1 -->\n", "<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n", "<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n", "<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M209.3802,-31.2344C199.1736,-29.7292 186.1736,-28.9792 175,-32 169.8137,-33.4021 164.6075,-35.7575 159.8291,-38.3951\"/>\n", "<path fill=\"none\" stroke=\"#000000\" d=\"M222.0099,-29.873C212.5934,-29.0196 202.0351,-29.1789 192.7401,-32 186.4185,-33.9186 180.1758,-37.0557 174.4479,-40.5946\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"153.6205,-42.104 158.0145,-35.8099 156.6252,-40.3091 159.6299,-38.5141 159.6299,-38.5141 159.6299,-38.5141 156.6252,-40.3091 161.2454,-41.2184 153.6205,-42.104 153.6205,-42.104\"/>\n", "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"168.4553,-44.5538 172.5594,-38.0669 171.3755,-42.6245 174.2958,-40.6951 174.2958,-40.6951 174.2958,-40.6951 171.3755,-42.6245 176.0322,-43.3234 168.4553,-44.5538 168.4553,-44.5538\"/>\n",
"<text text-anchor=\"start\" x=\"177.5\" y=\"-50.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n", "<text text-anchor=\"start\" x=\"192.7401\" y=\"-35.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-35.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.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642d26c0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a0114060> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1279,7 +1278,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642d2720> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a00c1480> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1408,7 +1407,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1643175a0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a01140c0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1539,7 +1538,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642d2ea0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a00c1ae0> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -1799,7 +1798,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642e62a0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a005d870> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2113,7 +2112,7 @@
"</svg>\n" "</svg>\n"
], ],
"text/plain": [ "text/plain": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fc1642e62a0> >" "<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f31a005d870> >"
] ]
}, },
"metadata": {}, "metadata": {},
@ -2336,13 +2335,6 @@
"source": [ "source": [
"100*sum(sistates_size)/sum(aut_size)" "100*sum(sistates_size)/sum(aut_size)"
] ]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
} }
], ],
"metadata": { "metadata": {
@ -2361,7 +2353,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.5" "version": "3.6.5+"
} }
}, },
"nbformat": 4, "nbformat": 4,