simulation: fix merging transiant SCCs
This fixes #452, and also fix a bug related to transiant SCCs incorrectly merged in cosimulation: the source of the edges was updated without fixing the chaining of the edges. * spot/twaalgos/simulation.cc: Fix all the above. * tests/python/simstate.py: Add test case from issue #452. * tests/core/det.test, tests/core/ltlsynt.test, tests/core/satmin.test: Lower expected sizes. * tests/python/decompose.ipynb: Adjust for changed order.
This commit is contained in:
parent
cfa3417449
commit
fca6513604
6 changed files with 203 additions and 142 deletions
|
|
@ -550,16 +550,16 @@ namespace spot
|
|||
// All states in p.second have the same class, so just
|
||||
// pick the class of the first one first one.
|
||||
bdd src = previous_class_[p->second.front()];
|
||||
assert(gb->get_state(src.id()) == srcst);
|
||||
|
||||
// Get the signature to derive successors.
|
||||
bdd sig = compute_sig(p->second.front());
|
||||
assert(signatures.size() == srcst);
|
||||
signatures.push_back(sig);
|
||||
|
||||
if (Cosimulation)
|
||||
sig = bdd_compose(sig, bddfalse, bdd_var(bdd_initial));
|
||||
|
||||
assert(gb->get_state(src.id()) == srcst);
|
||||
assert(signatures.size() == srcst);
|
||||
signatures.push_back(bdd_exist(sig, all_proms_));
|
||||
|
||||
// Get all the variables in the signature.
|
||||
bdd sup_sig = bdd_support(sig);
|
||||
|
|
@ -656,6 +656,7 @@ namespace spot
|
|||
}
|
||||
}
|
||||
|
||||
bool need_another_pass = false;
|
||||
// Attempt to merge trivial SCCs
|
||||
if (!record_implications_ && res->num_states() > 1)
|
||||
{
|
||||
|
|
@ -664,7 +665,10 @@ namespace spot
|
|||
unsigned nstates = res->num_states();
|
||||
std::vector<unsigned> redirect(nstates);
|
||||
std::iota(redirect.begin(), redirect.end(), 0);
|
||||
for (unsigned s = 0; s < nstates; ++s)
|
||||
signatures[s] = bdd_exist(signatures[s], all_proms_);
|
||||
bool changed = false;
|
||||
bool unchanged = false;
|
||||
for (unsigned scc = 0; scc < nscc; ++scc)
|
||||
if (si.is_trivial(scc))
|
||||
{
|
||||
|
|
@ -676,8 +680,10 @@ namespace spot
|
|||
{
|
||||
changed = true;
|
||||
redirect[s] = i;
|
||||
break;
|
||||
goto if_changed;
|
||||
}
|
||||
unchanged = true;
|
||||
if_changed:;
|
||||
}
|
||||
if (changed)
|
||||
{
|
||||
|
|
@ -688,16 +694,28 @@ namespace spot
|
|||
for (auto& e: res->edges())
|
||||
e.dst = redirect[e.dst];
|
||||
res->set_init_state(redirect[res->get_init_state_number()]);
|
||||
}
|
||||
if (Cosimulation)
|
||||
// Fix chaining of edges with changed sources.
|
||||
res->merge_edges();
|
||||
if (unchanged)
|
||||
need_another_pass = true;
|
||||
}
|
||||
|
||||
// Remove unreachable states.
|
||||
// In the case of co-simulation, changing the sources
|
||||
// of edges, might have created dead states.
|
||||
//
|
||||
// If we recorded implications for the determinization
|
||||
// procedure, we should not remove unreachable states, as that
|
||||
// will invalidate the contents of the IMPLICATIONS vector.
|
||||
// It's OK not to purge the result, as the determinization
|
||||
// will only explore the reachable part anyway.
|
||||
if (!record_implications_)
|
||||
// procedure, we should not remove unreachable states, as
|
||||
// that will invalidate the contents of the IMPLICATIONS
|
||||
// vector. It's OK not to purge the result in that case,
|
||||
// as the determinization will only explore the reachable
|
||||
// part anyway.
|
||||
if (Cosimulation)
|
||||
res->purge_dead_states();
|
||||
else
|
||||
res->purge_unreachable_states();
|
||||
}
|
||||
|
||||
// Push the common incoming sets to the outgoing edges.
|
||||
// Doing so cancels the preprocessing we did in the other
|
||||
|
|
@ -751,7 +769,12 @@ namespace spot
|
|||
res->prop_universal(true);
|
||||
if (Sba)
|
||||
res->prop_state_acc(true);
|
||||
|
||||
if (!need_another_pass)
|
||||
return res;
|
||||
|
||||
direct_simulation<Cosimulation, Sba> sim(res);
|
||||
return sim.run();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2013-2020 Laboratoire de Recherche et Développement de
|
||||
# Copyright (C) 2013-2021 Laboratoire de Recherche et Développement de
|
||||
# l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
|
|
@ -42,7 +42,7 @@ cat >formulas <<'EOF'
|
|||
1,9,X(a R ((!b & F!c) M X!a))
|
||||
1,2,XG!a R Fb
|
||||
1,4,GFc | (a & Fb)
|
||||
1,6,X(a R (Fb R F!b))
|
||||
1,4,X(a R (Fb R F!b))
|
||||
1,1,G(Xa M Fa)
|
||||
1,3,X(Gb | GFa)
|
||||
1,9,X(Gc | XG((b & Ga) | (!b & F!a)))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2017, 2019, 2020 Laboratoire de Recherche et
|
||||
# Copyright (C) 2017, 2019-2021 Laboratoire de Recherche et
|
||||
# Développement de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
|
|
@ -376,6 +376,6 @@ diff out exp
|
|||
|
||||
f='Fp0 U XX((p0 & F!p1) | (!p0 & Gp1))'
|
||||
ltlsynt --verbose --algo=ps --outs=p1 --ins=p0 -f "$f" 2>err
|
||||
grep 'DPA has 14 states' err
|
||||
grep 'DPA has 13 states' err
|
||||
ltlsynt --verbose -x wdba-minimize=1 --algo=ps --outs=p1 --ins=p0 -f "$f" 2>err
|
||||
grep 'DPA has 12 states' err
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2013, 2017, 2018, 2019 Laboratoire de Recherche et Développement
|
||||
# de l'Epita (LRDE).
|
||||
# Copyright (C) 2013, 2017-2019, 2021 Laboratoire de Recherche et
|
||||
# Développement de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
#
|
||||
|
|
@ -1300,8 +1300,8 @@ cat >expected <<'EOF'
|
|||
"!((G(F(p0))) | ((p1) & (F(p2))))","15",5
|
||||
"!((G(F(p0))) | ((p1) & (F(p2))))","16",5
|
||||
"!((G(F(p0))) | ((p1) & (F(p2))))","17",5
|
||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","1",6
|
||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","2",6
|
||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","1",4
|
||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","2",4
|
||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","3",4
|
||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","4",4
|
||||
"X((p0) R ((F(p1)) R (F(!(p1)))))","6",4
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01ba3c0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b14b0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 2,
|
||||
|
|
@ -330,7 +330,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01ba2a0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b11b0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 3,
|
||||
|
|
@ -489,7 +489,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01ba1b0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1270> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 4,
|
||||
|
|
@ -587,7 +587,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01ba9c0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b18d0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 5,
|
||||
|
|
@ -669,7 +669,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6240> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1c00> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 6,
|
||||
|
|
@ -796,7 +796,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6120> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1f60> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -941,7 +941,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01bae40> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1d80> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1109,7 +1109,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01baea0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1f90> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1512,7 +1512,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6c60> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1ed0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
|
|
@ -1898,7 +1898,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6510> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1b70> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -2130,7 +2130,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01baea0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1f60> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -2340,7 +2340,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01bad80> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1ab0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -2728,7 +2728,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6570> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56404b1c90> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 10,
|
||||
|
|
@ -2889,7 +2889,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6e70> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640045330> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -3028,7 +3028,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa01baf00> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640d27930> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -3043,23 +3043,23 @@
|
|||
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
||||
" -->\n",
|
||||
"<!-- Title: strong Pages: 1 -->\n",
|
||||
"<svg width=\"554pt\" height=\"215pt\"\n",
|
||||
" viewBox=\"0.00 0.00 554.00 215.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 211)\">\n",
|
||||
"<svg width=\"570pt\" height=\"278pt\"\n",
|
||||
" viewBox=\"0.00 0.00 570.00 278.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 274)\">\n",
|
||||
"<title>strong</title>\n",
|
||||
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-211 550,-211 550,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"253\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\">strong</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"192.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"213.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"229.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"271.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"287.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"329.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"345.5\" y=\"-178.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"216\" y=\"-164.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min even 3]</text>\n",
|
||||
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-274 566,-274 566,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"261\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">strong</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"200.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"221.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"237.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"279.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"295.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"337.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"353.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"224\" y=\"-227.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min even 3]</text>\n",
|
||||
"<g id=\"clust1\" class=\"cluster\">\n",
|
||||
"<title>cluster_0</title>\n",
|
||||
"<polygon fill=\"none\" stroke=\"green\" points=\"178,-11 178,-149 538,-149 538,-11 178,-11\"/>\n",
|
||||
"<polygon fill=\"none\" stroke=\"green\" points=\"202,-23 202,-212 554,-212 554,-23 202,-23\"/>\n",
|
||||
"</g>\n",
|
||||
"<g id=\"clust2\" class=\"cluster\">\n",
|
||||
"<title>cluster_1</title>\n",
|
||||
|
|
@ -3078,109 +3078,102 @@
|
|||
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-34C2.79,-34 17.15,-34 30.63,-34\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-34 30.94,-37.15 34.44,-34 30.94,-34 30.94,-34 30.94,-34 34.44,-34 30.94,-30.85 37.94,-34 37.94,-34\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2 -->\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g id=\"node3\" class=\"node\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M234,-119C234,-119 222,-119 222,-119 216,-119 210,-113 210,-107 210,-107 210,-93 210,-93 210,-87 216,-81 222,-81 222,-81 234,-81 234,-81 240,-81 246,-87 246,-93 246,-93 246,-107 246,-107 246,-113 240,-119 234,-119\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"223.5\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"220\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g id=\"edge2\" class=\"edge\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M74.24,-40.69C104.73,-52.53 168.26,-77.2 203.01,-90.69\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"209.97,-93.39 202.31,-93.79 206.71,-92.12 203.45,-90.86 203.45,-90.86 203.45,-90.86 206.71,-92.12 204.59,-87.92 209.97,-93.39 209.97,-93.39\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"92\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">(b & !c) | (!a & !c)</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2 -->\n",
|
||||
"<g id=\"node4\" class=\"node\">\n",
|
||||
"<title>2</title>\n",
|
||||
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M210,-106C210,-106 198,-106 198,-106 192,-106 186,-100 186,-94 186,-94 186,-80 186,-80 186,-74 192,-68 198,-68 198,-68 210,-68 210,-68 216,-68 222,-74 222,-80 222,-80 222,-94 222,-94 222,-100 216,-106 210,-106\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"199.5\" y=\"-90.8\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"196\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M534,-94C534,-94 522,-94 522,-94 516,-94 510,-88 510,-82 510,-82 510,-68 510,-68 510,-62 516,-56 522,-56 522,-56 534,-56 534,-56 540,-56 546,-62 546,-68 546,-68 546,-82 546,-82 546,-88 540,-94 534,-94\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"523.5\" y=\"-78.8\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"520\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->2 -->\n",
|
||||
"<g id=\"edge2\" class=\"edge\">\n",
|
||||
"<title>0->2</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M74.03,-40.98C79.73,-43.27 86.12,-45.79 92,-48 121.85,-59.21 156.57,-71.25 179.12,-78.94\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"185.99,-81.28 178.35,-82 182.68,-80.15 179.37,-79.02 179.37,-79.02 179.37,-79.02 182.68,-80.15 180.38,-76.04 185.99,-81.28 185.99,-81.28\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"92\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g id=\"node4\" class=\"node\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M372,-57C372,-57 360,-57 360,-57 354,-57 348,-51 348,-45 348,-45 348,-31 348,-31 348,-25 354,-19 360,-19 360,-19 372,-19 372,-19 378,-19 384,-25 384,-31 384,-31 384,-45 384,-45 384,-51 378,-57 372,-57\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"361.5\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"358\" y=\"-26.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g id=\"edge3\" class=\"edge\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M74.44,-34.23C126.43,-34.9 280.44,-36.9 340.57,-37.68\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"347.75,-37.78 340.71,-40.83 344.25,-37.73 340.75,-37.68 340.75,-37.68 340.75,-37.68 344.25,-37.73 340.79,-34.54 347.75,-37.78 347.75,-37.78\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"174\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">a & b & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g id=\"edge4\" class=\"edge\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M74.35,-30.48C97.11,-26.06 138.34,-18.73 174,-16 200.59,-13.97 207.43,-13.78 234,-16 271.6,-19.14 314.65,-27.25 340.82,-32.7\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"347.74,-34.16 340.24,-35.79 344.32,-33.43 340.89,-32.71 340.89,-32.71 340.89,-32.71 344.32,-33.43 341.54,-29.63 347.74,-34.16 347.74,-34.16\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"184.5\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->2 -->\n",
|
||||
"<g id=\"edge9\" class=\"edge\">\n",
|
||||
"<title>2->2</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M189.44,-106.04C187.43,-115.53 192.28,-124 204,-124 212.61,-124 217.51,-119.43 218.71,-113.25\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"218.56,-106.04 221.85,-112.97 218.63,-109.54 218.7,-113.04 218.7,-113.04 218.7,-113.04 218.63,-109.54 215.55,-113.1 218.56,-106.04 218.56,-106.04\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"186.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->1 -->\n",
|
||||
"<g id=\"edge8\" class=\"edge\">\n",
|
||||
"<title>2->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M222,-77.51C230.76,-72.92 241.73,-67.64 252,-64 281.79,-53.44 317.54,-46.05 340.74,-41.92\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"347.81,-40.69 341.45,-44.99 344.36,-41.29 340.91,-41.89 340.91,-41.89 340.91,-41.89 344.36,-41.29 340.37,-38.79 347.81,-40.69 347.81,-40.69\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"264.5\" y=\"-67.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->2 -->\n",
|
||||
"<g id=\"edge6\" class=\"edge\">\n",
|
||||
"<title>1->2</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M349.92,-57.22C341.16,-66.83 329.25,-77.56 316,-83 287.99,-94.5 252.59,-93.39 229.39,-90.82\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"222.32,-89.95 229.65,-87.68 225.79,-90.38 229.26,-90.81 229.26,-90.81 229.26,-90.81 225.79,-90.38 228.88,-93.94 222.32,-89.95 222.32,-89.95\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"252\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b & !c</text>\n",
|
||||
"<title>0->2</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M74.03,-32.18C133.21,-26.42 334.85,-11.48 492,-56 495.82,-57.08 499.7,-58.64 503.4,-60.4\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"509.85,-63.73 502.18,-63.31 506.74,-62.12 503.63,-60.52 503.63,-60.52 503.63,-60.52 506.74,-62.12 505.08,-57.72 509.85,-63.73 509.85,-63.73\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"264\" y=\"-32.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g id=\"edge5\" class=\"edge\">\n",
|
||||
"<g id=\"edge4\" class=\"edge\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M351.44,-57.04C349.43,-66.53 354.28,-75 366,-75 374.61,-75 379.51,-70.43 380.71,-64.25\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"380.56,-57.04 383.85,-63.97 380.63,-60.54 380.7,-64.04 380.7,-64.04 380.7,-64.04 380.63,-60.54 377.55,-64.1 380.56,-57.04 380.56,-57.04\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"346.5\" y=\"-78.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !c</text>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M215.63,-119.04C213.91,-128.53 218.04,-137 228,-137 235.32,-137 239.48,-132.43 240.5,-126.25\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"240.37,-119.04 243.65,-125.98 240.44,-122.54 240.5,-126.04 240.5,-126.04 240.5,-126.04 240.44,-122.54 237.35,-126.09 240.37,-119.04 240.37,-119.04\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"208.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->2 -->\n",
|
||||
"<g id=\"edge5\" class=\"edge\">\n",
|
||||
"<title>1->2</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M246.05,-92.78C268.48,-83.72 309.36,-68.65 346,-63 401.79,-54.39 468.19,-63.72 502.99,-70.09\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"509.92,-71.4 502.46,-73.19 506.48,-70.75 503.04,-70.1 503.04,-70.1 503.04,-70.1 506.48,-70.75 503.63,-67 509.92,-71.4 509.92,-71.4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"346\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3 -->\n",
|
||||
"<g id=\"node5\" class=\"node\">\n",
|
||||
"<title>3</title>\n",
|
||||
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M518,-95C518,-95 506,-95 506,-95 500,-95 494,-89 494,-83 494,-83 494,-69 494,-69 494,-63 500,-57 506,-57 506,-57 518,-57 518,-57 524,-57 530,-63 530,-69 530,-69 530,-83 530,-83 530,-89 524,-95 518,-95\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"507.5\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"504\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||||
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M384,-171C384,-171 372,-171 372,-171 366,-171 360,-165 360,-159 360,-159 360,-145 360,-145 360,-139 366,-133 372,-133 372,-133 384,-133 384,-133 390,-133 396,-139 396,-145 396,-145 396,-159 396,-159 396,-165 390,-171 384,-171\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"373.5\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"370\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->3 -->\n",
|
||||
"<g id=\"edge7\" class=\"edge\">\n",
|
||||
"<g id=\"edge6\" class=\"edge\">\n",
|
||||
"<title>1->3</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M384.1,-34.19C406.31,-30.11 445.82,-25.84 476,-39 482.31,-41.75 488.02,-46.25 492.91,-51.18\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"497.88,-56.64 490.84,-53.59 495.52,-54.05 493.17,-51.46 493.17,-51.46 493.17,-51.46 495.52,-54.05 495.49,-49.34 497.88,-56.64 497.88,-56.64\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"416\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">a & b & !c</text>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M246.23,-102.96C266.32,-106.72 300.29,-114.08 328,-125 336.61,-128.4 345.6,-133 353.5,-137.45\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"359.84,-141.12 352.2,-140.34 356.81,-139.37 353.78,-137.62 353.78,-137.62 353.78,-137.62 356.81,-139.37 355.36,-134.89 359.84,-141.12 359.84,-141.12\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"266\" y=\"-128.8\" font-family=\"Lato\" font-size=\"14.00\">a & b & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->2 -->\n",
|
||||
"<g id=\"edge11\" class=\"edge\">\n",
|
||||
"<title>3->2</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M493.81,-82.65C451.94,-97.91 341.55,-132.54 252,-111 243.95,-109.06 235.73,-105.51 228.46,-101.71\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"222.08,-98.2 229.74,-98.82 225.15,-99.89 228.22,-101.58 228.22,-101.58 228.22,-101.58 225.15,-99.89 226.7,-104.34 222.08,-98.2 222.08,-98.2\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"334\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b & !c</text>\n",
|
||||
"<!-- 2->1 -->\n",
|
||||
"<g id=\"edge7\" class=\"edge\">\n",
|
||||
"<title>2->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M509.64,-76.46C459.07,-80.7 311.76,-93.06 253.31,-97.96\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"246.31,-98.55 253.02,-94.82 249.8,-98.26 253.29,-97.96 253.29,-97.96 253.29,-97.96 249.8,-98.26 253.55,-101.1 246.31,-98.55 246.31,-98.55\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"358.5\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->2 -->\n",
|
||||
"<g id=\"edge8\" class=\"edge\">\n",
|
||||
"<title>2->2</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M515.63,-94.04C513.91,-103.53 518.04,-112 528,-112 535.32,-112 539.48,-107.43 540.5,-101.25\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"540.37,-94.04 543.65,-100.98 540.44,-97.54 540.5,-101.04 540.5,-101.04 540.5,-101.04 540.44,-97.54 537.35,-101.09 540.37,-94.04 540.37,-94.04\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"510.5\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\">a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->1 -->\n",
|
||||
"<g id=\"edge10\" class=\"edge\">\n",
|
||||
"<g id=\"edge9\" class=\"edge\">\n",
|
||||
"<title>3->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M493.72,-72.48C474.6,-68.47 442.91,-61.49 416,-54 407.82,-51.72 398.96,-48.93 391.06,-46.32\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"384.12,-44 391.76,-43.24 387.44,-45.11 390.76,-46.22 390.76,-46.22 390.76,-46.22 387.44,-45.11 389.76,-49.21 384.12,-44 384.12,-44\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"426.5\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !c</text>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M359.82,-153.9C336.67,-155.67 294.82,-156 264,-140 256.98,-136.35 250.73,-130.66 245.53,-124.71\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"241.06,-119.21 247.92,-122.65 243.27,-121.92 245.48,-124.64 245.48,-124.64 245.48,-124.64 243.27,-121.92 243.04,-126.63 241.06,-119.21 241.06,-119.21\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"276.5\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->2 -->\n",
|
||||
"<g id=\"edge10\" class=\"edge\">\n",
|
||||
"<title>3->2</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M396.27,-146.71C419.15,-139.29 460.33,-124.48 492,-105 496.12,-102.46 500.25,-99.45 504.15,-96.33\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"509.68,-91.72 506.32,-98.63 506.99,-93.97 504.3,-96.21 504.3,-96.21 504.3,-96.21 506.99,-93.97 502.28,-93.79 509.68,-91.72 509.68,-91.72\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"428\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->3 -->\n",
|
||||
"<g id=\"edge12\" class=\"edge\">\n",
|
||||
"<g id=\"edge11\" class=\"edge\">\n",
|
||||
"<title>3->3</title>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M499.99,-95.04C498.33,-104.53 502.33,-113 512,-113 519.1,-113 523.14,-108.43 524.13,-102.25\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"524.01,-95.04 527.28,-101.98 524.07,-98.54 524.13,-102.04 524.13,-102.04 524.13,-102.04 524.07,-98.54 520.98,-102.09 524.01,-95.04 524.01,-95.04\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"482\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">a & b & !c</text>\n",
|
||||
"<path fill=\"none\" stroke=\"black\" d=\"M363.08,-171.04C361.01,-180.53 365.99,-189 378,-189 386.82,-189 391.85,-184.43 393.08,-178.25\"/>\n",
|
||||
"<polygon fill=\"black\" stroke=\"black\" points=\"392.92,-171.04 396.22,-177.97 393,-174.54 393.07,-178.04 393.07,-178.04 393.07,-178.04 393,-174.54 389.92,-178.1 392.92,-171.04 392.92,-171.04\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"348\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\">a & b & !c</text>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6a20> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56400456f0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -3533,7 +3526,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6120> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640045450> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 12,
|
||||
|
|
@ -3876,7 +3869,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c01b0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640045540> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -4053,7 +4046,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6f60> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640d3abd0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -4211,7 +4204,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa029e660> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640d3a8a0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -4560,7 +4553,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c0a80> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640d3ae10> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 14,
|
||||
|
|
@ -4683,7 +4676,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c0540> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640045930> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 15,
|
||||
|
|
@ -4781,7 +4774,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8090> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f56400452a0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -4857,7 +4850,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c0270> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640d3a930> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -4951,7 +4944,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8090> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640045090> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 18,
|
||||
|
|
@ -5101,7 +5094,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8a50> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640045b70> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 19,
|
||||
|
|
@ -5261,7 +5254,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00d0cc0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640052300> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -5363,7 +5356,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00b6780> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640d34a80> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -5498,7 +5491,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c0570> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640052360> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -5702,7 +5695,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c85d0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640045f00> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -5843,7 +5836,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8cf0> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640d34ae0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 21,
|
||||
|
|
@ -5946,7 +5939,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1aa00c8b10> >"
|
||||
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f5640045e40> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 22,
|
||||
|
|
@ -5957,6 +5950,13 @@
|
|||
"source": [
|
||||
"spot.decompose_scc(si, 'a2')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
|
|
|||
|
|
@ -649,3 +649,41 @@ State: 7
|
|||
[0&1] 5
|
||||
[1] 7
|
||||
--END--'''
|
||||
|
||||
|
||||
# issue #452
|
||||
aut = spot.automaton("""HOA: v1
|
||||
States: 9
|
||||
Start: 0
|
||||
AP: 4 "p0" "p1" "p2" "p3"
|
||||
Acceptance: 2 Fin(0)&Fin(1)
|
||||
Alias: @p 0&1&!2&3
|
||||
--BODY--
|
||||
State: 0
|
||||
[@p] 1 {0 1}
|
||||
State: 1
|
||||
[@p] 2 {0 1}
|
||||
State: 2
|
||||
[@p] 0 {0 1}
|
||||
[@p] 2
|
||||
[@p] 3 {0}
|
||||
[@p] 4 {1}
|
||||
State: 3
|
||||
[@p] 5 {0 1}
|
||||
[@p] 6 {0}
|
||||
State: 4
|
||||
[@p] 7 {0 1}
|
||||
[@p] 8 {1}
|
||||
State: 5
|
||||
[@p] 8 {0 1}
|
||||
State: 6
|
||||
[@p] 2 {0}
|
||||
[@p] 4 {0 1}
|
||||
State: 7
|
||||
[@p] 6 {0 1}
|
||||
State: 8
|
||||
[@p] 2 {1}
|
||||
[@p] 3 {0 1}
|
||||
--END--""")
|
||||
aut = spot.simulation(aut)
|
||||
assert aut.num_states() == 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue