product: optimize product with weak automata
Fixes #350. * spot/twaalgos/product.cc: Implement this change. * NEWS, spot/twaalgos/product.hh: Mention it. * spot/twa/acc.cc, spot/twa/acc.hh (acc_cond::sat_mark): New method. * tests/python/_product_weak.ipynb: New file. * tests/Makefile.am: Add it. * tests/python/automata.ipynb, tests/python/highlighting.ipynb, tests/python/product.ipynb, tests/core/prodor.test: Adjust test cases.
This commit is contained in:
parent
b655038803
commit
a738801edf
11 changed files with 15348 additions and 1605 deletions
5
NEWS
5
NEWS
|
|
@ -89,6 +89,11 @@ New in spot 2.5.3.dev (not yet released)
|
|||
They are most welcome in Python, since we used to redefine
|
||||
them every now and them.
|
||||
|
||||
- spot::product() and spot::product_or() learned so produce an
|
||||
automaton with a simpler acceptance condition if one of the
|
||||
argument is a weak automaton. In this case the resulting
|
||||
acceptance condition is (usually) that of the other argument.
|
||||
|
||||
- spot::parity_product() and spot::parity_product_or() were dropped.
|
||||
The code was buggy, hard to maintain, and these functions do not
|
||||
seem to be used.
|
||||
|
|
|
|||
|
|
@ -1153,12 +1153,22 @@ namespace spot
|
|||
}
|
||||
|
||||
std::pair<bool, acc_cond::mark_t>
|
||||
acc_cond::unsat_mark() const
|
||||
acc_cond::sat_unsat_mark(bool sat) const
|
||||
{
|
||||
if (is_t())
|
||||
return {false, mark_t({})};
|
||||
if (!uses_fin_acceptance())
|
||||
return {true, mark_t({})};
|
||||
if (sat)
|
||||
{
|
||||
if (is_f())
|
||||
return {false, mark_t({})};
|
||||
if (!uses_fin_acceptance())
|
||||
return {true, all_sets()};
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_t())
|
||||
return {false, mark_t({})};
|
||||
if (!uses_fin_acceptance())
|
||||
return {true, mark_t({})};
|
||||
}
|
||||
|
||||
auto used = code_.used_sets();
|
||||
unsigned c = used.count();
|
||||
|
|
@ -1185,11 +1195,11 @@ namespace spot
|
|||
bdd res = to_bdd_rec(&code_.back(), &r[0]);
|
||||
|
||||
if (res == bddtrue)
|
||||
return {false, mark_t({})};
|
||||
return {sat, mark_t({})};
|
||||
if (res == bddfalse)
|
||||
return {true, mark_t({})};
|
||||
return {!sat, mark_t({})};
|
||||
|
||||
bdd cube = bdd_satone(!res);
|
||||
bdd cube = bdd_satone(sat ? res : !res);
|
||||
mark_t i = {};
|
||||
while (cube != bddtrue)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1165,10 +1165,21 @@ namespace spot
|
|||
// Return (true, m) if there exist some acceptance mark m that
|
||||
// does not satisfy the acceptance condition. Return (false, 0U)
|
||||
// otherwise.
|
||||
std::pair<bool, acc_cond::mark_t> unsat_mark() const;
|
||||
std::pair<bool, acc_cond::mark_t> unsat_mark() const
|
||||
{
|
||||
return sat_unsat_mark(false);
|
||||
}
|
||||
// Return (true, m) if there exist some acceptance mark m that
|
||||
// does satisfy the acceptance condition. Return (false, 0U)
|
||||
// otherwise.
|
||||
std::pair<bool, acc_cond::mark_t> sat_mark() const
|
||||
{
|
||||
return sat_unsat_mark(true);
|
||||
}
|
||||
|
||||
protected:
|
||||
bool check_fin_acceptance() const;
|
||||
std::pair<bool, acc_cond::mark_t> sat_unsat_mark(bool) const;
|
||||
|
||||
public:
|
||||
static acc_code inf(mark_t mark)
|
||||
|
|
|
|||
|
|
@ -40,33 +40,18 @@ namespace spot
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
template<typename T>
|
||||
static
|
||||
twa_graph_ptr product_aux(const const_twa_graph_ptr& left,
|
||||
const const_twa_graph_ptr& right,
|
||||
unsigned left_state,
|
||||
unsigned right_state,
|
||||
bool and_acc)
|
||||
void product_main(const const_twa_graph_ptr& left,
|
||||
const const_twa_graph_ptr& right,
|
||||
unsigned left_state,
|
||||
unsigned right_state,
|
||||
twa_graph_ptr res, T merge_acc)
|
||||
{
|
||||
if (!(left->is_existential() && right->is_existential()))
|
||||
throw std::runtime_error
|
||||
("product() does not support alternating automata");
|
||||
std::unordered_map<product_state, unsigned, product_state_hash> s2n;
|
||||
std::deque<std::pair<product_state, unsigned>> todo;
|
||||
|
||||
if (left->get_dict() != right->get_dict())
|
||||
throw std::runtime_error("product: left and right automata should "
|
||||
"share their bdd_dict");
|
||||
auto res = make_twa_graph(left->get_dict());
|
||||
res->copy_ap_of(left);
|
||||
res->copy_ap_of(right);
|
||||
auto left_num = left->num_sets();
|
||||
auto right_acc = right->get_acceptance() << left_num;
|
||||
if (and_acc)
|
||||
right_acc &= left->get_acceptance();
|
||||
else
|
||||
right_acc |= left->get_acceptance();
|
||||
res->set_acceptance(left_num + right->num_sets(), right_acc);
|
||||
|
||||
auto v = new product_states;
|
||||
res->set_named_prop("product-states", v);
|
||||
|
||||
|
|
@ -86,10 +71,10 @@ namespace spot
|
|||
};
|
||||
|
||||
res->set_init_state(new_state(left_state, right_state));
|
||||
if (right_acc.is_f())
|
||||
if (res->acc().is_f())
|
||||
// Do not bother doing any work if the resulting acceptance is
|
||||
// false.
|
||||
return res;
|
||||
return;
|
||||
while (!todo.empty())
|
||||
{
|
||||
auto top = todo.front();
|
||||
|
|
@ -102,10 +87,192 @@ namespace spot
|
|||
continue;
|
||||
auto dst = new_state(l.dst, r.dst);
|
||||
res->new_edge(top.second, dst, cond,
|
||||
l.acc | (r.acc << left_num));
|
||||
merge_acc(l.acc, r.acc));
|
||||
// If right is deterministic, we can abort immediately!
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
twa_graph_ptr product_aux(const const_twa_graph_ptr& left,
|
||||
const const_twa_graph_ptr& right,
|
||||
unsigned left_state,
|
||||
unsigned right_state,
|
||||
bool and_acc)
|
||||
{
|
||||
if (SPOT_UNLIKELY(!(left->is_existential() && right->is_existential())))
|
||||
throw std::runtime_error
|
||||
("product() does not support alternating automata");
|
||||
if (SPOT_UNLIKELY(left->get_dict() != right->get_dict()))
|
||||
throw std::runtime_error("product: left and right automata should "
|
||||
"share their bdd_dict");
|
||||
|
||||
auto res = make_twa_graph(left->get_dict());
|
||||
res->copy_ap_of(left);
|
||||
res->copy_ap_of(right);
|
||||
|
||||
bool leftweak = left->prop_weak().is_true();
|
||||
bool rightweak = right->prop_weak().is_true();
|
||||
// We have optimization to the standard product in case one
|
||||
// of the arguments is weak. However these optimizations
|
||||
// are pointless if the said arguments are "t" or "f".
|
||||
if ((leftweak || rightweak)
|
||||
&& (left->num_sets() > 0) && (right->num_sets() > 0))
|
||||
{
|
||||
// If both automata are weak, we can restrict the result to
|
||||
// Büchi or co-Büchi. We will favor Büchi unless the two
|
||||
// operands are co-Büchi.
|
||||
if (leftweak && rightweak)
|
||||
{
|
||||
weak_weak:
|
||||
acc_cond::mark_t accmark = {0};
|
||||
acc_cond::mark_t rejmark = {};
|
||||
if (left->acc().is_co_buchi() && right->acc().is_co_buchi())
|
||||
{
|
||||
res->set_co_buchi();
|
||||
std::swap(accmark, rejmark);
|
||||
}
|
||||
else
|
||||
{
|
||||
res->set_buchi();
|
||||
}
|
||||
res->prop_weak(true);
|
||||
auto& lacc = left->acc();
|
||||
auto& racc = right->acc();
|
||||
if (and_acc)
|
||||
product_main(left, right, left_state, right_state, res,
|
||||
[&] (acc_cond::mark_t ml, acc_cond::mark_t mr)
|
||||
{
|
||||
if (lacc.accepting(ml) && racc.accepting(mr))
|
||||
return accmark;
|
||||
else
|
||||
return rejmark;
|
||||
});
|
||||
else
|
||||
product_main(left, right, left_state, right_state, res,
|
||||
[&] (acc_cond::mark_t ml, acc_cond::mark_t mr)
|
||||
{
|
||||
if (lacc.accepting(ml) || racc.accepting(mr))
|
||||
return accmark;
|
||||
else
|
||||
return rejmark;
|
||||
});
|
||||
}
|
||||
else if (!rightweak)
|
||||
{
|
||||
if (and_acc)
|
||||
{
|
||||
auto rightunsatmark = right->acc().unsat_mark();
|
||||
if (!rightunsatmark.first)
|
||||
{
|
||||
// Left is weak. Right was not weak, but it is
|
||||
// always accepting. We can therefore pretend
|
||||
// that right is weak.
|
||||
goto weak_weak;
|
||||
}
|
||||
res->copy_acceptance_of(right);
|
||||
acc_cond::mark_t rejmark = rightunsatmark.second;
|
||||
auto& lacc = left->acc();
|
||||
product_main(left, right, left_state, right_state, res,
|
||||
[&] (acc_cond::mark_t ml, acc_cond::mark_t mr)
|
||||
{
|
||||
if (lacc.accepting(ml))
|
||||
return mr;
|
||||
else
|
||||
return rejmark;
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
auto rightsatmark = right->acc().sat_mark();
|
||||
if (!rightsatmark.first)
|
||||
{
|
||||
// Left is weak. Right was not weak, but it is
|
||||
// always rejecting. We can therefore pretend
|
||||
// that right is weak.
|
||||
goto weak_weak;
|
||||
}
|
||||
res->copy_acceptance_of(right);
|
||||
acc_cond::mark_t accmark = rightsatmark.second;
|
||||
auto& lacc = left->acc();
|
||||
product_main(left, right, left_state, right_state, res,
|
||||
[&] (acc_cond::mark_t ml, acc_cond::mark_t mr)
|
||||
{
|
||||
if (!lacc.accepting(ml))
|
||||
return mr;
|
||||
else
|
||||
return accmark;
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(!leftweak);
|
||||
if (and_acc)
|
||||
{
|
||||
auto leftunsatmark = left->acc().unsat_mark();
|
||||
if (!leftunsatmark.first)
|
||||
{
|
||||
// Right is weak. Left was not weak, but it is
|
||||
// always accepting. We can therefore pretend
|
||||
// that left is weak.
|
||||
goto weak_weak;
|
||||
}
|
||||
res->copy_acceptance_of(left);
|
||||
acc_cond::mark_t rejmark = leftunsatmark.second;
|
||||
auto& racc = right->acc();
|
||||
product_main(left, right, left_state, right_state, res,
|
||||
[&] (acc_cond::mark_t ml, acc_cond::mark_t mr)
|
||||
{
|
||||
if (racc.accepting(mr))
|
||||
return ml;
|
||||
else
|
||||
return rejmark;
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
auto leftsatmark = left->acc().sat_mark();
|
||||
if (!leftsatmark.first)
|
||||
{
|
||||
// Right is weak. Left was not weak, but it is
|
||||
// always rejecting. We can therefore pretend
|
||||
// that left is weak.
|
||||
goto weak_weak;
|
||||
}
|
||||
res->copy_acceptance_of(left);
|
||||
acc_cond::mark_t accmark = leftsatmark.second;
|
||||
auto& racc = right->acc();
|
||||
product_main(left, right, left_state, right_state, res,
|
||||
[&] (acc_cond::mark_t ml, acc_cond::mark_t mr)
|
||||
{
|
||||
if (!racc.accepting(mr))
|
||||
return ml;
|
||||
else
|
||||
return accmark;
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else // general case
|
||||
{
|
||||
auto left_num = left->num_sets();
|
||||
auto right_acc = right->get_acceptance() << left_num;
|
||||
if (and_acc)
|
||||
right_acc &= left->get_acceptance();
|
||||
else
|
||||
right_acc |= left->get_acceptance();
|
||||
res->set_acceptance(left_num + right->num_sets(), right_acc);
|
||||
|
||||
product_main(left, right, left_state, right_state, res,
|
||||
[&] (acc_cond::mark_t ml, acc_cond::mark_t mr)
|
||||
{
|
||||
return ml | (mr << left_num);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// The product of two non-deterministic automata could be
|
||||
// deterministic. Likewise for non-complete automata.
|
||||
|
|
@ -147,8 +314,7 @@ namespace spot
|
|||
unsigned left_state,
|
||||
unsigned right_state)
|
||||
{
|
||||
return product_aux(complete(left),
|
||||
complete(right),
|
||||
return product_aux(complete(left), complete(right),
|
||||
left_state, right_state, false);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2014, 2015 Laboratoire de Recherche et
|
||||
// Copyright (C) 2014, 2015, 2018 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -36,7 +36,10 @@ namespace spot
|
|||
/// The resulting automaton will accept the intersection of both
|
||||
/// languages and have an acceptance condition that is the
|
||||
/// conjunction of the acceptance conditions of the two input
|
||||
/// automata.
|
||||
/// automata. In case one of the left or right automaton is weak,
|
||||
/// the acceptance condition of the result is made simpler: it
|
||||
/// usually is the acceptance condition of the other argument,
|
||||
/// therefore avoiding the need to introduce new accepting sets.
|
||||
///
|
||||
/// The algorithm also defines a named property called
|
||||
/// "product-states" with type spot::product_states. This stores
|
||||
|
|
@ -56,7 +59,10 @@ namespace spot
|
|||
/// languages recognized by each input automaton (with its initial
|
||||
/// state changed) and have an acceptance condition that is the
|
||||
/// conjunction of the acceptance conditions of the two input
|
||||
/// automata.
|
||||
/// automata. In case one of the left or right automaton is weak,
|
||||
/// the acceptance condition of the result is made simpler: it
|
||||
/// usually is the acceptance condition of the other argument,
|
||||
/// therefore avoiding the need to introduce new accepting sets.
|
||||
///
|
||||
/// The algorithm also defines a named property called
|
||||
/// "product-states" with type spot::product_states. This stores
|
||||
|
|
@ -74,7 +80,10 @@ namespace spot
|
|||
/// The resulting automaton will accept the union of both
|
||||
/// languages and have an acceptance condition that is the
|
||||
/// disjunction of the acceptance conditions of the two input
|
||||
/// automata.
|
||||
/// automata. In case one of the left or right automaton is weak,
|
||||
/// the acceptance condition of the result is made simpler: it
|
||||
/// usually is the acceptance condition of the other argument,
|
||||
/// therefore avoiding the need to introduce new accepting sets.
|
||||
///
|
||||
/// The algorithm also defines a named property called
|
||||
/// "product-states" with type spot::product_states. This stores
|
||||
|
|
@ -94,7 +103,10 @@ namespace spot
|
|||
/// recognized by each input automaton (with its initial state
|
||||
/// changed) and have an acceptance condition that is the
|
||||
/// disjunction of the acceptance conditions of the two input
|
||||
/// automata.
|
||||
/// automata. In case one of the left or right automaton is weak,
|
||||
/// the acceptance condition of the result is made simpler: it
|
||||
/// usually is the acceptance condition of the other argument,
|
||||
/// therefore avoiding the need to introduce new accepting sets.
|
||||
///
|
||||
/// The algorithm also defines a named property called
|
||||
/// "product-states" with type spot::product_states. This stores
|
||||
|
|
|
|||
|
|
@ -383,6 +383,7 @@ TESTS_python = \
|
|||
python/parsetgba.py \
|
||||
python/parity.py \
|
||||
python/prodexpt.py \
|
||||
python/_product_weak.ipynb \
|
||||
python/randgen.py \
|
||||
python/relabel.py \
|
||||
python/remfin.py \
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2015, 2017 Laboratoire de Recherche et Développement
|
||||
# Copyright (C) 2015, 2017, 2018 Laboratoire de Recherche et Développement
|
||||
# de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
|
|
@ -106,6 +106,7 @@ diff pand.hoa exp
|
|||
|
||||
test 2 = `autfilt -c --intersect pand.hoa gfa.hoa fgb.hoa`
|
||||
|
||||
# Xb is weak, so the product will still be Büchi
|
||||
ltl2tgba -BDH 'GFa' > gfa.hoa
|
||||
ltl2tgba -BDH 'Xb' > xb.hoa
|
||||
autfilt --product-or gfa.hoa xb.hoa -H > por.hoa
|
||||
|
|
@ -116,14 +117,15 @@ HOA: v1
|
|||
States: 7
|
||||
Start: 0
|
||||
AP: 2 "a" "b"
|
||||
Acceptance: 2 Inf(0) | Inf(1)
|
||||
acc-name: Buchi
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels state-acc complete
|
||||
properties: deterministic
|
||||
--BODY--
|
||||
State: 0 {1}
|
||||
State: 0 {0}
|
||||
[0] 1
|
||||
[!0] 2
|
||||
State: 1 {1}
|
||||
State: 1 {0}
|
||||
[0&1] 3
|
||||
[!0&1] 4
|
||||
[0&!1] 5
|
||||
|
|
@ -133,13 +135,13 @@ State: 2
|
|||
[!0&1] 4
|
||||
[0&!1] 5
|
||||
[!0&!1] 6
|
||||
State: 3 {0 1}
|
||||
State: 3 {0}
|
||||
[0] 3
|
||||
[!0] 4
|
||||
State: 4 {0}
|
||||
[0] 3
|
||||
[!0] 4
|
||||
State: 5 {1}
|
||||
State: 5 {0}
|
||||
[0] 5
|
||||
[!0] 6
|
||||
State: 6
|
||||
|
|
@ -159,14 +161,15 @@ HOA: v1
|
|||
States: 7
|
||||
Start: 0
|
||||
AP: 2 "a" "b"
|
||||
Acceptance: 2 Inf(0) | Inf(1)
|
||||
acc-name: Buchi
|
||||
Acceptance: 1 Inf(0)
|
||||
properties: trans-labels explicit-labels state-acc complete
|
||||
properties: deterministic
|
||||
--BODY--
|
||||
State: 0 {0 1}
|
||||
State: 0 {0}
|
||||
[0] 1
|
||||
[!0] 2
|
||||
State: 1 {0 1}
|
||||
State: 1 {0}
|
||||
[0&1] 3
|
||||
[!0&1] 4
|
||||
[0&!1] 5
|
||||
|
|
@ -176,13 +179,13 @@ State: 2 {0}
|
|||
[!0&1] 4
|
||||
[0&!1] 5
|
||||
[!0&!1] 6
|
||||
State: 3 {0 1}
|
||||
State: 3 {0}
|
||||
[0] 3
|
||||
[!0] 4
|
||||
State: 4 {0}
|
||||
[0] 3
|
||||
[!0] 4
|
||||
State: 5 {1}
|
||||
State: 5 {0}
|
||||
[0] 5
|
||||
[!0] 6
|
||||
State: 6
|
||||
|
|
|
|||
13400
tests/python/_product_weak.ipynb
Normal file
13400
tests/python/_product_weak.ipynb
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -8,6 +8,7 @@
|
|||
"source": [
|
||||
"from IPython.display import display\n",
|
||||
"import spot\n",
|
||||
"from spot.jupyter import display_inline\n",
|
||||
"spot.setup()"
|
||||
]
|
||||
},
|
||||
|
|
@ -163,7 +164,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe2c0c80f0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec60d690> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 2,
|
||||
|
|
@ -600,7 +601,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efccd80> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec57bc90> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 6,
|
||||
|
|
@ -676,7 +677,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efdc180> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec58a9f0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 7,
|
||||
|
|
@ -759,7 +760,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efdc150> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec58ab10> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
|
|
@ -1278,7 +1279,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efee7e0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59c840> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 12,
|
||||
|
|
@ -1392,7 +1393,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efee900> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59ca20> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 13,
|
||||
|
|
@ -1523,7 +1524,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efee7b0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cab0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 14,
|
||||
|
|
@ -1635,7 +1636,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efee810> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cb10> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 15,
|
||||
|
|
@ -2180,7 +2181,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efcc9c0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59c210> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 16,
|
||||
|
|
@ -2391,7 +2392,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efee2a0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cbd0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -2541,7 +2542,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efcce40> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec57b9c0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -2713,7 +2714,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efeec90> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59ce40> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -2888,7 +2889,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efeeba0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cc90> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -3074,7 +3075,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efeee40> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59cf00> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 21,
|
||||
|
|
@ -3150,7 +3151,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efeef30> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec59c8d0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 22,
|
||||
|
|
@ -3169,123 +3170,151 @@
|
|||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/svg+xml": [
|
||||
"<svg height=\"128pt\" viewBox=\"0.00 0.00 170.00 128.00\" width=\"170pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 124)\">\n",
|
||||
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-124 166,-124 166,4 -4,4\" stroke=\"transparent\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"60\" y=\"-105.8\">Inf(</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"82\" y=\"-105.8\">⓿</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"98\" y=\"-105.8\">)</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"58\" y=\"-91.8\">[Büchi]</text>\n",
|
||||
"text/plain": [
|
||||
"True"
|
||||
]
|
||||
},
|
||||
"execution_count": 23,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"spot.formula('(a W c) & FGa').is_syntactic_persistence()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"no\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<div style='vertical-align:text-top;display:inline-block;'><svg height=\"130pt\" viewBox=\"0.00 0.00 165.00 130.40\" width=\"165pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 126.3966)\">\n",
|
||||
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-126.3966 161,-126.3966 161,4 -4,4\" stroke=\"transparent\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"57.5\" y=\"-108.1966\">Inf(</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"79.5\" y=\"-108.1966\">⓿</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"95.5\" y=\"-108.1966\">)</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"55.5\" y=\"-94.1966\">[Büchi]</text>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g class=\"node\" id=\"node2\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<ellipse cx=\"56\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-14.3\">1</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- I->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge1\">\n",
|
||||
"<title>I->1</title>\n",
|
||||
"<path d=\"M1.1233,-18C4.178,-18 17.9448,-18 30.9241,-18\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"37.9807,-18 30.9808,-21.1501 34.4807,-18 30.9807,-18.0001 30.9807,-18.0001 30.9807,-18.0001 34.4807,-18 30.9807,-14.8501 37.9807,-18 37.9807,-18\" stroke=\"#000000\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge4\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path d=\"M49.6208,-35.0373C48.3189,-44.8579 50.4453,-54 56,-54 60.166,-54 62.4036,-48.8576 62.7128,-42.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"62.3792,-35.0373 65.8541,-41.8818 62.5434,-38.5335 62.7076,-42.0296 62.7076,-42.0296 62.7076,-42.0296 62.5434,-38.5335 59.561,-42.1774 62.3792,-35.0373 62.3792,-35.0373\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"38\" y=\"-72.8\">a & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"48\" y=\"-57.8\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<g class=\"node\" id=\"node3\">\n",
|
||||
"<g class=\"node\" id=\"node2\">\n",
|
||||
"<title>0</title>\n",
|
||||
"<ellipse cx=\"144\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"144\" y=\"-14.3\">0</text>\n",
|
||||
"<ellipse cx=\"56\" cy=\"-20.3966\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-16.6966\">0</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge3\">\n",
|
||||
"<title>1->0</title>\n",
|
||||
"<path d=\"M74.2337,-18C87.0948,-18 104.4907,-18 118.6942,-18\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"125.7897,-18 118.7897,-21.1501 122.2897,-18 118.7897,-18.0001 118.7897,-18.0001 118.7897,-18.0001 122.2897,-18 118.7897,-14.8501 125.7897,-18 125.7897,-18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"96.5\" y=\"-36.8\">c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-21.8\">⓿</text>\n",
|
||||
"<!-- I->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge1\">\n",
|
||||
"<title>I->0</title>\n",
|
||||
"<path d=\"M1.1233,-20.3966C4.178,-20.3966 17.9448,-20.3966 30.9241,-20.3966\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"37.9807,-20.3966 30.9808,-23.5467 34.4807,-20.3967 30.9807,-20.3967 30.9807,-20.3967 30.9807,-20.3967 34.4807,-20.3967 30.9807,-17.2467 37.9807,-20.3966 37.9807,-20.3966\" stroke=\"#000000\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge2\">\n",
|
||||
"<title>0->0</title>\n",
|
||||
"<path d=\"M136.3321,-34.2903C134.4831,-44.3892 137.0391,-54 144,-54 149.2207,-54 151.9636,-48.5939 152.2287,-41.6304\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"151.6679,-34.2903 155.3421,-41.0299 151.9346,-37.7801 152.2013,-41.2699 152.2013,-41.2699 152.2013,-41.2699 151.9346,-37.7801 149.0604,-41.5099 151.6679,-34.2903 151.6679,-34.2903\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"139.5\" y=\"-72.8\">1</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"136\" y=\"-57.8\">⓿</text>\n",
|
||||
"<path d=\"M49.6208,-37.4339C48.3189,-47.2545 50.4453,-56.3966 56,-56.3966 60.166,-56.3966 62.4036,-51.2542 62.7128,-44.5399\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"62.3792,-37.4339 65.8541,-44.2785 62.5434,-40.9301 62.7076,-44.4262 62.7076,-44.4262 62.7076,-44.4262 62.5434,-40.9301 59.561,-44.574 62.3792,-37.4339 62.3792,-37.4339\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"50.5\" y=\"-75.1966\">!a</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"48\" y=\"-60.1966\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"</svg>"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.SVG object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/svg+xml": [
|
||||
"<svg height=\"128pt\" viewBox=\"0.00 0.00 163.00 128.00\" width=\"163pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 124)\">\n",
|
||||
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-124 159,-124 159,4 -4,4\" stroke=\"transparent\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"56.5\" y=\"-105.8\">Inf(</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-105.8\">❶</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"94.5\" y=\"-105.8\">)</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"54.5\" y=\"-91.8\">[Büchi]</text>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g class=\"node\" id=\"node2\">\n",
|
||||
"<g class=\"node\" id=\"node3\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<ellipse cx=\"56\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-14.3\">1</text>\n",
|
||||
"<ellipse cx=\"139\" cy=\"-20.3966\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"139\" y=\"-16.6966\">1</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- I->1 -->\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge3\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path d=\"M74.0098,-20.3966C85.5679,-20.3966 100.7507,-20.3966 113.5345,-20.3966\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"120.7388,-20.3966 113.7388,-23.5467 117.2388,-20.3967 113.7388,-20.3967 113.7388,-20.3967 113.7388,-20.3967 117.2388,-20.3967 113.7387,-17.2467 120.7388,-20.3966 120.7388,-20.3966\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"94\" y=\"-24.1966\">a</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge4\">\n",
|
||||
"<title>1->0</title>\n",
|
||||
"<path d=\"M124.5385,-9.3757C115.4203,-3.7422 103.2768,1.3966 92,-1.3966 87.1146,-2.6067 82.1612,-4.614 77.5558,-6.8813\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"71.1057,-10.3266 75.7959,-4.25 74.1929,-8.6776 77.2801,-7.0285 77.2801,-7.0285 77.2801,-7.0285 74.1929,-8.6776 78.7642,-9.807 71.1057,-10.3266 71.1057,-10.3266\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-5.1966\">!a</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge5\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path d=\"M131.9688,-37.0607C130.4063,-47.0216 132.75,-56.3966 139,-56.3966 143.6875,-56.3966 146.1777,-51.1232 146.4707,-44.2842\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"146.0313,-37.0607 149.6006,-43.8564 146.2438,-40.5542 146.4564,-44.0478 146.4564,-44.0478 146.4564,-44.0478 146.2438,-40.5542 143.3122,-44.2391 146.0313,-37.0607 146.0313,-37.0607\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"135.5\" y=\"-75.1966\">a</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"131\" y=\"-60.1966\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"</svg></div><div style='vertical-align:text-top;display:inline-block;'><svg height=\"161pt\" viewBox=\"0.00 0.00 163.00 161.00\" width=\"163pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 157)\">\n",
|
||||
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-157 159,-157 159,4 -4,4\" stroke=\"transparent\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"56.5\" y=\"-138.8\">Inf(</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-138.8\">❶</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"94.5\" y=\"-138.8\">)</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"54.5\" y=\"-124.8\">[Büchi]</text>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<g class=\"node\" id=\"node2\">\n",
|
||||
"<title>0</title>\n",
|
||||
"<ellipse cx=\"56\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-14.3\">0</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- I->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge1\">\n",
|
||||
"<title>I->1</title>\n",
|
||||
"<title>I->0</title>\n",
|
||||
"<path d=\"M1.1233,-18C4.178,-18 17.9448,-18 30.9241,-18\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"37.9807,-18 30.9808,-21.1501 34.4807,-18 30.9807,-18.0001 30.9807,-18.0001 30.9807,-18.0001 34.4807,-18 30.9807,-14.8501 37.9807,-18 37.9807,-18\" stroke=\"#000000\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge4\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<!-- 0->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge2\">\n",
|
||||
"<title>0->0</title>\n",
|
||||
"<path d=\"M49.6208,-35.0373C48.3189,-44.8579 50.4453,-54 56,-54 60.166,-54 62.4036,-48.8576 62.7128,-42.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"62.3792,-35.0373 65.8541,-41.8818 62.5434,-38.5335 62.7076,-42.0296 62.7076,-42.0296 62.7076,-42.0296 62.5434,-38.5335 59.561,-42.1774 62.3792,-35.0373 62.3792,-35.0373\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"37.5\" y=\"-57.8\">a & !b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g class=\"node\" id=\"node3\">\n",
|
||||
"<title>0</title>\n",
|
||||
"<title>1</title>\n",
|
||||
"<ellipse cx=\"137\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"137\" y=\"-14.3\">0</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"137\" y=\"-14.3\">1</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->0 -->\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge3\">\n",
|
||||
"<title>1->0</title>\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path d=\"M74.3802,-18C85.4352,-18 99.6622,-18 111.7609,-18\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"118.9716,-18 111.9716,-21.1501 115.4716,-18 111.9716,-18.0001 111.9716,-18.0001 111.9716,-18.0001 115.4716,-18 111.9716,-14.8501 118.9716,-18 118.9716,-18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-21.8\">b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge2\">\n",
|
||||
"<title>0->0</title>\n",
|
||||
"<path d=\"M129.9688,-34.6641C128.4063,-44.625 130.75,-54 137,-54 141.6875,-54 144.1777,-48.7266 144.4707,-41.8876\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"144.0313,-34.6641 147.6006,-41.4598 144.2438,-38.1576 144.4564,-41.6511 144.4564,-41.6511 144.4564,-41.6511 144.2438,-38.1576 141.3122,-41.8425 144.0313,-34.6641 144.0313,-34.6641\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"132.5\" y=\"-72.8\">1</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"129\" y=\"-57.8\">❶</text>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge4\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path d=\"M133.4047,-35.7817C132.7938,-45.3149 133.9922,-54 137,-54 139.2089,-54 140.4419,-49.3161 140.6991,-43.0521\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"140.5953,-35.7817 143.845,-42.736 140.6453,-39.2814 140.6954,-42.781 140.6954,-42.781 140.6954,-42.781 140.6453,-39.2814 137.5457,-42.8261 140.5953,-35.7817 140.5953,-35.7817\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"131.5\" y=\"-57.8\">!c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge5\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path d=\"M131.1479,-35.1418C127.7056,-52.585 129.6563,-72 137,-72 143.3684,-72 145.6812,-57.3996 143.9382,-42.146\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"142.8521,-35.1418 147.0376,-41.5763 143.3884,-38.6004 143.9248,-42.0591 143.9248,-42.0591 143.9248,-42.0591 143.3884,-38.6004 140.812,-42.5418 142.8521,-35.1418 142.8521,-35.1418\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"133.5\" y=\"-90.8\">c</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"129\" y=\"-75.8\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"</svg>"
|
||||
"</svg></div>"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.SVG object>"
|
||||
"<IPython.core.display.HTML object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -3293,267 +3322,323 @@
|
|||
},
|
||||
{
|
||||
"data": {
|
||||
"image/svg+xml": [
|
||||
"<svg height=\"271pt\" viewBox=\"0.00 0.00 374.00 271.00\" width=\"374pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 267)\">\n",
|
||||
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-267 370,-267 370,4 -4,4\" stroke=\"transparent\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"136\" y=\"-248.8\">Inf(</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"158\" y=\"-248.8\">⓿</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"174\" y=\"-248.8\">)&Inf(</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"210\" y=\"-248.8\">❶</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"226\" y=\"-248.8\">)</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"139\" y=\"-234.8\">[gen. Büchi 2]</text>\n",
|
||||
"text/html": [
|
||||
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><svg height=\"279pt\" viewBox=\"0.00 0.00 484.00 279.06\" width=\"484pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 275.0638)\">\n",
|
||||
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-275.0638 480,-275.0638 480,4 -4,4\" stroke=\"transparent\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"191\" y=\"-256.8638\">Inf(</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"213\" y=\"-256.8638\">⓿</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"229\" y=\"-256.8638\">)&Inf(</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"265\" y=\"-256.8638\">❶</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-256.8638\">)</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"194\" y=\"-242.8638\">[gen. Büchi 2]</text>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<g class=\"node\" id=\"node2\">\n",
|
||||
"<title>0</title>\n",
|
||||
"<ellipse cx=\"65\" cy=\"-118\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"55\" y=\"-114.3\">1,1</text>\n",
|
||||
"<ellipse cx=\"65\" cy=\"-29.0638\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"55\" y=\"-25.3638\">0,0</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- I->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge1\">\n",
|
||||
"<title>I->0</title>\n",
|
||||
"<path d=\"M1.2244,-118C4.383,-118 17.3969,-118 30.8528,-118\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"37.8798,-118 30.8799,-121.1501 34.3798,-118 30.8798,-118.0001 30.8798,-118.0001 30.8798,-118.0001 34.3798,-118 30.8798,-114.8501 37.8798,-118 37.8798,-118\" stroke=\"#000000\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge5\">\n",
|
||||
"<title>0->0</title>\n",
|
||||
"<path d=\"M57.1448,-135.4099C55.6785,-145.0879 58.2969,-154 65,-154 69.9226,-154 72.6423,-149.1936 73.1591,-142.8073\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"72.8552,-135.4099 76.2899,-142.2747 72.9989,-138.9069 73.1426,-142.404 73.1426,-142.404 73.1426,-142.404 72.9989,-138.9069 69.9953,-142.5333 72.8552,-135.4099 72.8552,-135.4099\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"32\" y=\"-172.8\">a & !b & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"57\" y=\"-157.8\">⓿</text>\n",
|
||||
"<path d=\"M1.2244,-29.0638C4.383,-29.0638 17.3969,-29.0638 30.8528,-29.0638\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"37.8798,-29.0638 30.8799,-32.2139 34.3798,-29.0638 30.8798,-29.0639 30.8798,-29.0639 30.8798,-29.0639 34.3798,-29.0638 30.8798,-25.9139 37.8798,-29.0638 37.8798,-29.0638\" stroke=\"#000000\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g class=\"node\" id=\"node3\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<ellipse cx=\"339\" cy=\"-118\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"329\" y=\"-114.3\">0,0</text>\n",
|
||||
"<ellipse cx=\"319\" cy=\"-123.0638\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"309\" y=\"-119.3638\">0,1</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge2\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path d=\"M80.5461,-132.8388C111.2933,-160.3129 182.249,-214.4376 244,-193 274.5832,-182.3827 302.7623,-157.3816 320.3546,-139.1546\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"325.4653,-133.7389 322.952,-140.9919 323.0632,-136.2844 320.661,-138.8299 320.661,-138.8299 320.661,-138.8299 323.0632,-136.2844 318.37,-136.668 325.4653,-133.7389 325.4653,-133.7389\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"200\" y=\"-215.8\">b & c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"209\" y=\"-200.8\">⓿</text>\n",
|
||||
"<path d=\"M80.0121,-44.4121C98.2989,-62.0597 130.9836,-90.3536 165,-104.0638 203.8607,-119.7263 252.3451,-123.3706 284.4157,-123.8186\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"291.799,-123.8693 284.7775,-126.9711 288.2991,-123.8452 284.7992,-123.8212 284.7992,-123.8212 284.7992,-123.8212 288.2991,-123.8452 284.8208,-120.6712 291.799,-123.8693 291.799,-123.8693\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"173.5\" y=\"-136.8638\">!a & b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"184\" y=\"-121.8638\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2 -->\n",
|
||||
"<g class=\"node\" id=\"node4\">\n",
|
||||
"<title>2</title>\n",
|
||||
"<ellipse cx=\"217\" cy=\"-118\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"207\" y=\"-114.3\">0,1</text>\n",
|
||||
"<ellipse cx=\"192\" cy=\"-29.0638\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"182\" y=\"-25.3638\">1,0</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->2 -->\n",
|
||||
"<g class=\"edge\" id=\"edge3\">\n",
|
||||
"<title>0->2</title>\n",
|
||||
"<path d=\"M92.1746,-118C117.4935,-118 155.35,-118 182.7316,-118\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"189.8049,-118 182.8049,-121.1501 186.3049,-118 182.8049,-118.0001 182.8049,-118.0001 182.8049,-118.0001 186.3049,-118 182.8049,-114.8501 189.8049,-118 189.8049,-118\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"110\" y=\"-136.8\">a & !b & c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"133\" y=\"-121.8\">⓿</text>\n",
|
||||
"<path d=\"M92.2447,-29.0638C111.4127,-29.0638 137.2089,-29.0638 157.7667,-29.0638\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"164.8004,-29.0638 157.8004,-32.2139 161.3004,-29.0638 157.8004,-29.0639 157.8004,-29.0639 157.8004,-29.0639 161.3004,-29.0638 157.8003,-25.9139 164.8004,-29.0638 164.8004,-29.0638\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"110\" y=\"-32.8638\">a & !b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3 -->\n",
|
||||
"<g class=\"node\" id=\"node5\">\n",
|
||||
"<title>3</title>\n",
|
||||
"<ellipse cx=\"217\" cy=\"-18\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"207\" y=\"-14.3\">1,0</text>\n",
|
||||
"<ellipse cx=\"449\" cy=\"-88.0638\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"439\" y=\"-84.3638\">1,1</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge4\">\n",
|
||||
"<title>0->3</title>\n",
|
||||
"<path d=\"M82.6721,-104.0387C90.8549,-97.7332 100.7863,-90.3017 110,-84 136.7268,-65.7202 168.411,-46.462 190.3309,-33.4984\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"196.5227,-29.8504 192.0906,-36.1178 193.5071,-31.6271 190.4916,-33.4038 190.4916,-33.4038 190.4916,-33.4038 193.5071,-31.6271 188.8926,-30.6898 196.5227,-29.8504 196.5227,-29.8504\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"110\" y=\"-102.8\">a & b & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"133\" y=\"-87.8\">⓿</text>\n",
|
||||
"<path d=\"M89.2895,-20.5704C109.3161,-14.0403 138.6165,-5.5629 165,-2.0638 188.7917,1.0916 195.0789,-.1195 219,-2.0638 302.9404,-8.8862 330.6391,-1.7029 404,-43.0638 414.322,-48.8833 423.8935,-57.7249 431.5317,-66.035\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"436.4962,-71.6595 429.5023,-68.4959 434.1801,-69.0355 431.8639,-66.4114 431.8639,-66.4114 431.8639,-66.4114 434.1801,-69.0355 434.2256,-64.3269 436.4962,-71.6595 436.4962,-71.6595\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-9.8638\">a & b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge5\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path d=\"M313.4273,-140.8455C312.4803,-150.3787 314.3379,-159.0638 319,-159.0638 322.4237,-159.0638 324.335,-154.3798 324.7337,-148.1159\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"324.5727,-140.8455 327.877,-147.774 324.6502,-144.3446 324.7277,-147.8438 324.7277,-147.8438 324.7277,-147.8438 324.6502,-144.3446 321.5785,-147.9135 324.5727,-140.8455 324.5727,-140.8455\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-177.8638\">!a & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"311\" y=\"-162.8638\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge6\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path d=\"M328.4531,-134.6641C326.1094,-144.625 329.625,-154 339,-154 346.0313,-154 349.7666,-148.7266 350.2061,-141.8876\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"349.5469,-134.6641 353.3201,-141.3488 349.865,-138.1496 350.1831,-141.6351 350.1831,-141.6351 350.1831,-141.6351 349.865,-138.1496 347.0461,-141.9214 349.5469,-134.6641 349.5469,-134.6641\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"334.5\" y=\"-171.8\">1</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"323\" y=\"-157.8\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"339\" y=\"-157.8\">❶</text>\n",
|
||||
"<path d=\"M310.4657,-140.3128C304.4091,-161.4983 307.2539,-189.0638 319,-189.0638 329.5072,-189.0638 332.8918,-167.0063 329.1536,-147.1891\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"327.5343,-140.3128 332.205,-146.4043 328.3366,-143.7196 329.1389,-147.1264 329.1389,-147.1264 329.1389,-147.1264 328.3366,-143.7196 326.0727,-147.8485 327.5343,-140.3128 327.5343,-140.3128\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"301\" y=\"-206.8638\">!a & c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"303\" y=\"-192.8638\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"319\" y=\"-192.8638\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge7\">\n",
|
||||
"<title>1->3</title>\n",
|
||||
"<path d=\"M326.4052,-140.6219C333.6277,-155.2329 346.144,-175.0472 364,-184.0638 379.8693,-192.0771 388.9968,-193.6007 404,-184.0638 428.3898,-168.5601 439.7893,-135.9631 444.9584,-113.0715\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"446.4264,-106.0142 448.0848,-113.509 445.7136,-109.4409 445.0008,-112.8675 445.0008,-112.8675 445.0008,-112.8675 445.7136,-109.4409 441.9168,-112.226 446.4264,-106.0142 446.4264,-106.0142\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"366\" y=\"-193.8638\">a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge8\">\n",
|
||||
"<title>1->3</title>\n",
|
||||
"<path d=\"M343.3042,-131.1652C360.7865,-135.6248 384.602,-138.8417 404,-131.0638 414.9197,-126.6853 424.6906,-118.2535 432.3148,-110.0081\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"437.2378,-104.3815 434.999,-111.724 434.9331,-107.0156 432.6283,-109.6497 432.6283,-109.6497 432.6283,-109.6497 434.9331,-107.0156 430.2577,-107.5754 437.2378,-104.3815 437.2378,-104.3815\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"368\" y=\"-153.8638\">a & c</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"376\" y=\"-138.8638\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge7\">\n",
|
||||
"<g class=\"edge\" id=\"edge9\">\n",
|
||||
"<title>2->1</title>\n",
|
||||
"<path d=\"M244.0758,-118C262.003,-118 285.6621,-118 304.8752,-118\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"311.9999,-118 305,-121.1501 308.4999,-118 304.9999,-118.0001 304.9999,-118.0001 304.9999,-118.0001 308.4999,-118 304.9999,-114.8501 311.9999,-118 311.9999,-118\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"273.5\" y=\"-136.8\">b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"270\" y=\"-121.8\">⓿</text>\n",
|
||||
"<path d=\"M210.196,-42.5317C232.5468,-59.0748 270.5227,-87.1829 295.1794,-105.4327\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"300.8378,-109.6208 293.3372,-107.9882 298.0245,-107.5386 295.2113,-105.4563 295.2113,-105.4563 295.2113,-105.4563 298.0245,-107.5386 297.0853,-102.9244 300.8378,-109.6208 300.8378,-109.6208\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"237\" y=\"-90.8638\">!a & b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->2 -->\n",
|
||||
"<g class=\"edge\" id=\"edge8\">\n",
|
||||
"<g class=\"edge\" id=\"edge10\">\n",
|
||||
"<title>2->2</title>\n",
|
||||
"<path d=\"M206.4531,-134.6641C204.1094,-144.625 207.625,-154 217,-154 224.0313,-154 227.7666,-148.7266 228.2061,-141.8876\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"227.5469,-134.6641 231.3201,-141.3488 227.865,-138.1496 228.1831,-141.6351 228.1831,-141.6351 228.1831,-141.6351 227.865,-138.1496 225.0461,-141.9214 227.5469,-134.6641 227.5469,-134.6641\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"198.5\" y=\"-172.8\">a & !b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"209\" y=\"-157.8\">⓿</text>\n",
|
||||
"<path d=\"M181.1016,-45.7278C178.6797,-55.6888 182.3125,-65.0638 192,-65.0638 199.2656,-65.0638 203.1255,-59.7903 203.5796,-52.9513\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"202.8984,-45.7278 206.6918,-52.4011 203.2271,-49.2124 203.5557,-52.6969 203.5557,-52.6969 203.5557,-52.6969 203.2271,-49.2124 200.4196,-52.9927 202.8984,-45.7278 202.8984,-45.7278\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"173.5\" y=\"-83.8638\">a & !b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"184\" y=\"-68.8638\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge11\">\n",
|
||||
"<title>2->3</title>\n",
|
||||
"<path d=\"M219.0517,-28.9307C260.2943,-29.5646 340.7713,-34.1216 404,-58.0638 411.5297,-60.915 419.0641,-65.222 425.7551,-69.6898\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"431.6385,-73.8008 424.0963,-72.3735 428.7695,-71.7961 425.9005,-69.7914 425.9005,-69.7914 425.9005,-69.7914 428.7695,-71.7961 427.7048,-67.2093 431.6385,-73.8008 431.6385,-73.8008\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"302\" y=\"-60.8638\">a & b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"311\" y=\"-45.8638\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge9\">\n",
|
||||
"<g class=\"edge\" id=\"edge12\">\n",
|
||||
"<title>3->1</title>\n",
|
||||
"<path d=\"M234.2209,-32.1155C255.7467,-49.7596 292.6453,-80.0043 316.4172,-99.4895\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"321.8667,-103.9563 314.4561,-101.955 319.1599,-101.7376 316.453,-99.5188 316.453,-99.5188 316.453,-99.5188 319.1599,-101.7376 318.4499,-97.0826 321.8667,-103.9563 321.8667,-103.9563\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"274.5\" y=\"-96.8\">c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-82.8\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"278\" y=\"-82.8\">❶</text>\n",
|
||||
"<path d=\"M423.5681,-94.9108C402.8262,-100.4952 373.4072,-108.4157 351.0544,-114.4337\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"344.0653,-116.3154 350.0057,-111.4538 347.445,-115.4055 350.8246,-114.4955 350.8246,-114.4955 350.8246,-114.4955 347.445,-115.4055 351.6436,-117.5372 344.0653,-116.3154 344.0653,-116.3154\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"364\" y=\"-113.8638\">!a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge13\">\n",
|
||||
"<title>3->1</title>\n",
|
||||
"<path d=\"M429.332,-75.4937C411.5934,-65.8674 385.1248,-55.8266 364,-66.0638 349.6039,-73.0401 338.4238,-87.1034 330.8082,-99.5147\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"327.1525,-105.8081 327.9447,-98.173 328.9105,-102.7816 330.6685,-99.7552 330.6685,-99.7552 330.6685,-99.7552 328.9105,-102.7816 333.3923,-101.3374 327.1525,-105.8081 327.1525,-105.8081\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"366\" y=\"-84.8638\">!a & c</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"376\" y=\"-69.8638\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge10\">\n",
|
||||
"<g class=\"edge\" id=\"edge14\">\n",
|
||||
"<title>3->3</title>\n",
|
||||
"<path d=\"M206.4531,-34.6641C204.1094,-44.625 207.625,-54 217,-54 224.0313,-54 227.7666,-48.7266 228.2061,-41.8876\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"227.5469,-34.6641 231.3201,-41.3488 227.865,-38.1496 228.1831,-41.6351 228.1831,-41.6351 228.1831,-41.6351 227.865,-38.1496 225.0461,-41.9214 227.5469,-34.6641 227.5469,-34.6641\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"199\" y=\"-71.8\">a & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-57.8\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-57.8\">❶</text>\n",
|
||||
"<path d=\"M443.2476,-105.8455C442.27,-115.3787 444.1875,-124.0638 449,-124.0638 452.5342,-124.0638 454.5071,-119.3798 454.9186,-113.1159\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"454.7524,-105.8455 458.0617,-112.7716 454.8325,-109.3446 454.9125,-112.8437 454.9125,-112.8437 454.9125,-112.8437 454.8325,-109.3446 451.7633,-112.9157 454.7524,-105.8455 454.7524,-105.8455\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-142.8638\">a & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"441\" y=\"-127.8638\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge15\">\n",
|
||||
"<title>3->3</title>\n",
|
||||
"<path d=\"M440.1904,-105.3128C433.9385,-126.4983 436.875,-154.0638 449,-154.0638 459.8462,-154.0638 463.3399,-132.0063 459.4811,-112.1891\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"457.8096,-105.3128 462.524,-111.3706 458.6363,-108.7137 459.4631,-112.1147 459.4631,-112.1147 459.4631,-112.1147 458.6363,-108.7137 456.4022,-112.8588 457.8096,-105.3128 457.8096,-105.3128\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"433\" y=\"-171.8638\">a & c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"433\" y=\"-157.8638\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"449\" y=\"-157.8638\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"</svg>"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.SVG object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/svg+xml": [
|
||||
"<svg height=\"271pt\" viewBox=\"0.00 0.00 320.00 271.00\" width=\"320pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 267)\">\n",
|
||||
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-267 316,-267 316,4 -4,4\" stroke=\"transparent\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"109\" y=\"-248.8\">Inf(</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"131\" y=\"-248.8\">⓿</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"147\" y=\"-248.8\">)&Inf(</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"183\" y=\"-248.8\">❶</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"199\" y=\"-248.8\">)</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"112\" y=\"-234.8\">[gen. Büchi 2]</text>\n",
|
||||
"</svg></div><div style='vertical-align:text-top;display:inline-block;width:50%;'><svg height=\"278pt\" viewBox=\"0.00 0.00 413.00 278.48\" width=\"413pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
||||
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 274.4783)\">\n",
|
||||
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-274.4783 409,-274.4783 409,4 -4,4\" stroke=\"transparent\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"155.5\" y=\"-256.2783\">Inf(</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"177.5\" y=\"-256.2783\">⓿</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"193.5\" y=\"-256.2783\">)&Inf(</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"229.5\" y=\"-256.2783\">❶</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"245.5\" y=\"-256.2783\">)</text>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"158.5\" y=\"-242.2783\">[gen. Büchi 2]</text>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<g class=\"node\" id=\"node2\">\n",
|
||||
"<title>0</title>\n",
|
||||
"<g id=\"a_node2\"><a xlink:title=\"1,1\">\n",
|
||||
"<ellipse cx=\"56\" cy=\"-118\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-114.3\">0</text>\n",
|
||||
"<g id=\"a_node2\"><a xlink:title=\"0,0\">\n",
|
||||
"<ellipse cx=\"56\" cy=\"-28.4783\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-24.7783\">0</text>\n",
|
||||
"</a>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"<!-- I->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge1\">\n",
|
||||
"<title>I->0</title>\n",
|
||||
"<path d=\"M1.1233,-118C4.178,-118 17.9448,-118 30.9241,-118\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"37.9807,-118 30.9808,-121.1501 34.4807,-118 30.9807,-118.0001 30.9807,-118.0001 30.9807,-118.0001 34.4807,-118 30.9807,-114.8501 37.9807,-118 37.9807,-118\" stroke=\"#000000\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->0 -->\n",
|
||||
"<g class=\"edge\" id=\"edge5\">\n",
|
||||
"<title>0->0</title>\n",
|
||||
"<path d=\"M49.6208,-135.0373C48.3189,-144.8579 50.4453,-154 56,-154 60.166,-154 62.4036,-148.8576 62.7128,-142.1433\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"62.3792,-135.0373 65.8541,-141.8818 62.5434,-138.5335 62.7076,-142.0296 62.7076,-142.0296 62.7076,-142.0296 62.5434,-138.5335 59.561,-142.1774 62.3792,-135.0373 62.3792,-135.0373\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-172.8\">a & !b & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"48\" y=\"-157.8\">⓿</text>\n",
|
||||
"<path d=\"M1.1233,-28.4783C4.178,-28.4783 17.9448,-28.4783 30.9241,-28.4783\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"37.9807,-28.4783 30.9808,-31.6284 34.4807,-28.4784 30.9807,-28.4784 30.9807,-28.4784 30.9807,-28.4784 34.4807,-28.4784 30.9807,-25.3284 37.9807,-28.4783 37.9807,-28.4783\" stroke=\"#000000\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g class=\"node\" id=\"node3\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<g id=\"a_node3\"><a xlink:title=\"0,0\">\n",
|
||||
"<ellipse cx=\"294\" cy=\"-118\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"294\" y=\"-114.3\">1</text>\n",
|
||||
"<g id=\"a_node3\"><a xlink:title=\"0,1\">\n",
|
||||
"<ellipse cx=\"275\" cy=\"-122.4783\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"275\" y=\"-118.7783\">1</text>\n",
|
||||
"</a>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge2\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path d=\"M68.1852,-131.6286C93.4434,-158.1392 153.6917,-212.4194 208,-193 237.415,-182.4819 263.2224,-156.4652 278.706,-138.034\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"283.1724,-132.583 281.1724,-139.994 280.9541,-135.2903 278.7358,-137.9976 278.7358,-137.9976 278.7358,-137.9976 280.9541,-135.2903 276.2992,-136.0011 283.1724,-132.583 283.1724,-132.583\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"173\" y=\"-215.8\">b & c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"182\" y=\"-200.8\">⓿</text>\n",
|
||||
"<path d=\"M68.0094,-42.1794C84.1073,-59.5594 114.4491,-89.0069 147,-103.4783 180.4004,-118.3274 223.0486,-121.9763 249.6981,-122.6637\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"256.7693,-122.7859 249.7159,-125.8144 253.2698,-122.7254 249.7704,-122.6649 249.7704,-122.6649 249.7704,-122.6649 253.2698,-122.7254 249.8248,-119.5153 256.7693,-122.7859 256.7693,-122.7859\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"147\" y=\"-133.2783\">!a & b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"157.5\" y=\"-118.2783\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2 -->\n",
|
||||
"<g class=\"node\" id=\"node4\">\n",
|
||||
"<title>2</title>\n",
|
||||
"<g id=\"a_node4\"><a xlink:title=\"0,1\">\n",
|
||||
"<ellipse cx=\"190\" cy=\"-118\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"190\" y=\"-114.3\">2</text>\n",
|
||||
"<g id=\"a_node4\"><a xlink:title=\"1,0\">\n",
|
||||
"<ellipse cx=\"165.5\" cy=\"-28.4783\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"165.5\" y=\"-24.7783\">2</text>\n",
|
||||
"</a>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->2 -->\n",
|
||||
"<g class=\"edge\" id=\"edge3\">\n",
|
||||
"<title>0->2</title>\n",
|
||||
"<path d=\"M74.0718,-118C97.4488,-118 138.2991,-118 164.738,-118\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"171.7865,-118 164.7866,-121.1501 168.2865,-118 164.7865,-118.0001 164.7865,-118.0001 164.7865,-118.0001 168.2865,-118 164.7865,-114.8501 171.7865,-118 171.7865,-118\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-136.8\">a & !b & c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"115\" y=\"-121.8\">⓿</text>\n",
|
||||
"<path d=\"M74.0817,-28.4783C92.1512,-28.4783 120.0828,-28.4783 140.3174,-28.4783\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"147.3914,-28.4783 140.3915,-31.6284 143.8914,-28.4784 140.3914,-28.4784 140.3914,-28.4784 140.3914,-28.4784 143.8914,-28.4784 140.3914,-25.3284 147.3914,-28.4783 147.3914,-28.4783\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-32.2783\">a & !b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3 -->\n",
|
||||
"<g class=\"node\" id=\"node5\">\n",
|
||||
"<title>3</title>\n",
|
||||
"<g id=\"a_node5\"><a xlink:title=\"1,0\">\n",
|
||||
"<ellipse cx=\"190\" cy=\"-18\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"190\" y=\"-14.3\">3</text>\n",
|
||||
"<g id=\"a_node5\"><a xlink:title=\"1,1\">\n",
|
||||
"<ellipse cx=\"387\" cy=\"-87.4783\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"387\" y=\"-83.7783\">3</text>\n",
|
||||
"</a>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge4\">\n",
|
||||
"<title>0->3</title>\n",
|
||||
"<path d=\"M68.8649,-104.8649C75.531,-98.3182 83.9446,-90.4447 92,-84 117.0039,-63.9959 147.954,-43.8468 168.3011,-31.1679\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"174.5137,-27.3235 170.2187,-33.6856 171.5374,-29.1652 168.5612,-31.007 168.5612,-31.007 168.5612,-31.007 171.5374,-29.1652 166.9036,-28.3283 174.5137,-27.3235 174.5137,-27.3235\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-102.8\">a & b & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"115\" y=\"-87.8\">⓿</text>\n",
|
||||
"<path d=\"M72.7785,-21.9058C90.7938,-15.2292 120.4175,-5.3387 147,-1.4783 163.2737,.885 167.5984,-.2917 184,-1.4783 259.7293,-6.9571 288.1583,5.1346 351,-37.4783 361.1671,-44.3726 369.4571,-55.1437 375.508,-64.9258\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"379.1583,-71.1605 372.9031,-66.7112 377.3899,-68.1401 375.6215,-65.1197 375.6215,-65.1197 375.6215,-65.1197 377.3899,-68.1401 378.3399,-63.5281 379.1583,-71.1605 379.1583,-71.1605\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"203.5\" y=\"-8.2783\">a & b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge5\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path d=\"M270.1797,-139.8882C269.28,-149.5662 270.8867,-158.4783 275,-158.4783 278.0207,-158.4783 279.6896,-153.6719 280.0067,-147.2856\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"279.8203,-139.8882 283.1457,-146.8066 279.9085,-143.3871 279.9967,-146.886 279.9967,-146.886 279.9967,-146.886 279.9085,-143.3871 276.8477,-146.9654 279.8203,-139.8882 279.8203,-139.8882\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-177.2783\">!a & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"267\" y=\"-162.2783\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge6\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path d=\"M285.0212,-133.916C282.679,-144.1504 285.6719,-154 294,-154 300.3762,-154 303.625,-148.2263 303.7465,-140.9268\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"302.9788,-133.916 306.8721,-140.5315 303.3598,-137.3952 303.7408,-140.8744 303.7408,-140.8744 303.7408,-140.8744 303.3598,-137.3952 300.6095,-141.2174 302.9788,-133.916 302.9788,-133.916\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"289.5\" y=\"-171.8\">1</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"278\" y=\"-157.8\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"294\" y=\"-157.8\">❶</text>\n",
|
||||
"<path d=\"M267.7325,-139.0742C262.2416,-160.3416 264.6641,-188.4783 275,-188.4783 284.2458,-188.4783 287.1594,-165.9637 283.7408,-145.9915\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"282.2675,-139.0742 286.8066,-145.2644 282.9966,-142.4974 283.7257,-145.9206 283.7257,-145.9206 283.7257,-145.9206 282.9966,-142.4974 280.6448,-146.5768 282.2675,-139.0742 282.2675,-139.0742\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"257\" y=\"-206.2783\">!a & c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"259\" y=\"-192.2783\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"275\" y=\"-192.2783\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge7\">\n",
|
||||
"<title>1->3</title>\n",
|
||||
"<path d=\"M279.9602,-139.9118C285.1203,-154.443 294.7683,-174.21 311,-183.4783 326.4383,-192.2935 336.388,-193.6044 351,-183.4783 363.0357,-175.1376 374.471,-137.8639 381.1061,-112.293\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"382.8468,-105.4248 384.1805,-112.9841 381.9869,-108.8175 381.127,-112.2102 381.127,-112.2102 381.127,-112.2102 381.9869,-108.8175 378.0736,-111.4363 382.8468,-105.4248 382.8468,-105.4248\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"313\" y=\"-194.2783\">a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge8\">\n",
|
||||
"<title>1->3</title>\n",
|
||||
"<path d=\"M291.8393,-129.0964C307.8181,-134.2861 332.1267,-139.2918 351,-130.4783 360.4199,-126.0794 368.2449,-117.8688 374.1666,-109.7918\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"378.3188,-103.7066 376.9753,-111.2642 376.346,-106.5977 374.3733,-109.4887 374.3733,-109.4887 374.3733,-109.4887 376.346,-106.5977 371.7713,-107.7133 378.3188,-103.7066 378.3188,-103.7066\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"315\" y=\"-153.2783\">a & c</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"323\" y=\"-138.2783\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge7\">\n",
|
||||
"<g class=\"edge\" id=\"edge9\">\n",
|
||||
"<title>2->1</title>\n",
|
||||
"<path d=\"M208.1154,-118C224.8642,-118 249.92,-118 268.6521,-118\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"275.7432,-118 268.7433,-121.1501 272.2432,-118 268.7432,-118.0001 268.7432,-118.0001 268.7432,-118.0001 272.2432,-118 268.7432,-114.8501 275.7432,-118 275.7432,-118\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"237.5\" y=\"-136.8\">b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"234\" y=\"-121.8\">⓿</text>\n",
|
||||
"<path d=\"M179.3683,-40.3835C198.7033,-56.9816 233.8422,-87.1465 255.7182,-105.9259\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"261.2444,-110.6698 253.8812,-108.5004 258.5887,-108.39 255.933,-106.1102 255.933,-106.1102 255.933,-106.1102 258.5887,-108.39 257.9848,-103.7201 261.2444,-110.6698 261.2444,-110.6698\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"202\" y=\"-92.2783\">!a & b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->2 -->\n",
|
||||
"<g class=\"edge\" id=\"edge8\">\n",
|
||||
"<g class=\"edge\" id=\"edge10\">\n",
|
||||
"<title>2->2</title>\n",
|
||||
"<path d=\"M181.0212,-133.916C178.679,-144.1504 181.6719,-154 190,-154 196.3762,-154 199.625,-148.2263 199.7465,-140.9268\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"198.9788,-133.916 202.8721,-140.5315 199.3598,-137.3952 199.7408,-140.8744 199.7408,-140.8744 199.7408,-140.8744 199.3598,-137.3952 196.6095,-141.2174 198.9788,-133.916 198.9788,-133.916\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"171.5\" y=\"-172.8\">a & !b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"182\" y=\"-157.8\">⓿</text>\n",
|
||||
"<path d=\"M156.2674,-44.0198C153.6685,-54.387 156.7461,-64.4783 165.5,-64.4783 172.2022,-64.4783 175.577,-58.563 175.6245,-51.1374\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"174.7326,-44.0198 178.7286,-50.5738 175.1678,-47.4926 175.603,-50.9654 175.603,-50.9654 175.603,-50.9654 175.1678,-47.4926 172.4775,-51.3571 174.7326,-44.0198 174.7326,-44.0198\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"147\" y=\"-83.2783\">a & !b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"157.5\" y=\"-68.2783\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 2->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge11\">\n",
|
||||
"<title>2->3</title>\n",
|
||||
"<path d=\"M183.594,-27.7587C217.9351,-27.0979 294.2023,-29.0444 351,-55.4783 357.8232,-58.6539 364.2983,-63.5517 369.8268,-68.5683\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"375.0175,-73.5652 367.7898,-70.9798 372.496,-71.1378 369.9744,-68.7105 369.9744,-68.7105 369.9744,-68.7105 372.496,-71.1378 372.1591,-66.4411 375.0175,-73.5652 375.0175,-73.5652\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"258\" y=\"-56.2783\">a & b</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"267\" y=\"-41.2783\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge9\">\n",
|
||||
"<g class=\"edge\" id=\"edge12\">\n",
|
||||
"<title>3->1</title>\n",
|
||||
"<path d=\"M203.1717,-30.6651C221.5355,-48.3226 254.9095,-80.413 275.6867,-100.3911\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"280.9353,-105.4378 273.7061,-102.8566 278.4123,-103.0119 275.8894,-100.586 275.8894,-100.586 275.8894,-100.586 278.4123,-103.0119 278.0727,-98.3153 280.9353,-105.4378 280.9353,-105.4378\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-99.8\">c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"226\" y=\"-85.8\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"242\" y=\"-85.8\">❶</text>\n",
|
||||
"<path d=\"M369.6229,-92.9087C350.7682,-98.8008 320.5243,-108.252 299.3164,-114.8795\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"292.5,-117.0096 298.2418,-111.915 295.8407,-115.9656 299.1814,-114.9216 299.1814,-114.9216 299.1814,-114.9216 295.8407,-115.9656 300.121,-117.9282 292.5,-117.0096 292.5,-117.0096\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"311\" y=\"-114.2783\">!a & !c</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->1 -->\n",
|
||||
"<g class=\"edge\" id=\"edge13\">\n",
|
||||
"<title>3->1</title>\n",
|
||||
"<path d=\"M372.8693,-75.8011C366.5789,-71.3346 358.8309,-66.7663 351,-64.4783 333.9357,-59.4925 326.5358,-55.8361 311,-64.4783 297.9795,-71.7213 289.0654,-85.8382 283.3646,-98.3307\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"280.5224,-105.05 280.3484,-97.3758 281.886,-101.8265 283.2495,-98.603 283.2495,-98.603 283.2495,-98.603 281.886,-101.8265 286.1506,-99.8302 280.5224,-105.05 280.5224,-105.05\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"313\" y=\"-83.2783\">!a & c</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"323\" y=\"-68.2783\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge10\">\n",
|
||||
"<g class=\"edge\" id=\"edge14\">\n",
|
||||
"<title>3->3</title>\n",
|
||||
"<path d=\"M181.0212,-33.916C178.679,-44.1504 181.6719,-54 190,-54 196.3762,-54 199.625,-48.2263 199.7465,-40.9268\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"198.9788,-33.916 202.8721,-40.5315 199.3598,-37.3952 199.7408,-40.8744 199.7408,-40.8744 199.7408,-40.8744 199.3598,-37.3952 196.6095,-41.2174 198.9788,-33.916 198.9788,-33.916\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"172\" y=\"-71.8\">a & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"174\" y=\"-57.8\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"190\" y=\"-57.8\">❶</text>\n",
|
||||
"<path d=\"M382.0012,-104.8882C381.0681,-114.5662 382.7344,-123.4783 387,-123.4783 390.1326,-123.4783 391.8633,-118.6719 392.1921,-112.2856\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"391.9988,-104.8882 395.3307,-111.8035 392.0903,-108.387 392.1818,-111.8858 392.1818,-111.8858 392.1818,-111.8858 392.0903,-108.387 389.0329,-111.9682 391.9988,-104.8882 391.9988,-104.8882\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"369\" y=\"-142.2783\">a & !c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"379\" y=\"-127.2783\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 3->3 -->\n",
|
||||
"<g class=\"edge\" id=\"edge15\">\n",
|
||||
"<title>3->3</title>\n",
|
||||
"<path d=\"M379.4634,-104.0742C373.769,-125.3416 376.2813,-153.4783 387,-153.4783 396.5883,-153.4783 399.6098,-130.9637 396.0645,-110.9915\" fill=\"none\" stroke=\"#000000\"/>\n",
|
||||
"<polygon fill=\"#000000\" points=\"394.5366,-104.0742 399.1223,-110.23 395.2915,-107.4918 396.0464,-110.9094 396.0464,-110.9094 396.0464,-110.9094 395.2915,-107.4918 392.9706,-111.5889 394.5366,-104.0742 394.5366,-104.0742\" stroke=\"#000000\"/>\n",
|
||||
"<text fill=\"#000000\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-171.2783\">a & c</text>\n",
|
||||
"<text fill=\"#1f78b4\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-157.2783\">⓿</text>\n",
|
||||
"<text fill=\"#ff4da0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-157.2783\">❶</text>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"</svg>"
|
||||
"</svg></div>"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.SVG object>"
|
||||
"<IPython.core.display.HTML object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -3563,10 +3648,13 @@
|
|||
"source": [
|
||||
"# Using +1 in the display options is a convient way to shift the \n",
|
||||
"# set numbers in the output, as an aid in reading the product.\n",
|
||||
"a1 = spot.translate('a W c'); display(a1.show('.t'))\n",
|
||||
"a2 = spot.translate('a U b'); display(a2.show('.t+1'))\n",
|
||||
"# the product should display pairs of states, unless asked not to (using 1).\n",
|
||||
"p = spot.product(a1, a2); display(p.show('.t')); display(p.show('.t1'))"
|
||||
"a1 = spot.translate('GF(a <-> Xa)')\n",
|
||||
"print(a1.prop_weak())\n",
|
||||
"a2 = spot.translate('a U b & GFc')\n",
|
||||
"display_inline(a1.show('.t'), a2.show('.t+1'))\n",
|
||||
"# the product should display pairs of states, unless asked not to (using '1').\n",
|
||||
"p = spot.product(a1, a2)\n",
|
||||
"display_inline(p.show('.t'), p.show('.t1'), per_row=2)"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -3578,7 +3666,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 24,
|
||||
"execution_count": 25,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -3643,7 +3731,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1effb4b0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52abd0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -3667,7 +3755,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 25,
|
||||
"execution_count": 26,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -3743,10 +3831,10 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efeec90> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52ae40> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 25,
|
||||
"execution_count": 26,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
|
|
@ -3764,7 +3852,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 26,
|
||||
"execution_count": 27,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -3816,10 +3904,10 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1efee030> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52ab10> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 26,
|
||||
"execution_count": 27,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
|
|
@ -3837,7 +3925,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"execution_count": 28,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -3905,7 +3993,7 @@
|
|||
"<IPython.core.display.SVG object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 27,
|
||||
"execution_count": 28,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
|
|
@ -3923,7 +4011,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 28,
|
||||
"execution_count": 29,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -3980,10 +4068,10 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1effbe10> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec53da50> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 28,
|
||||
"execution_count": 29,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
|
|
@ -4001,7 +4089,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 29,
|
||||
"execution_count": 30,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -4066,7 +4154,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1effb4b0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52abd0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -4134,7 +4222,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1effb4b0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52abd0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -4159,7 +4247,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 30,
|
||||
"execution_count": 31,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -4224,10 +4312,10 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbe1effb4b0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f16ec52abd0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 30,
|
||||
"execution_count": 31,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -240,7 +240,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4c3f0c0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128edca50> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 4,
|
||||
|
|
@ -352,7 +352,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7f65e4c3f0f0> >"
|
||||
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7f0128e4cd50> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 5,
|
||||
|
|
@ -462,7 +462,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4c3f0c0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128edca50> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 6,
|
||||
|
|
@ -695,7 +695,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b5acc0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e4cab0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
|
|
@ -892,7 +892,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b5acc0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e4cab0> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 11,
|
||||
|
|
@ -977,7 +977,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7c6f0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d8a0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1032,7 +1032,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7c2a0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d780> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1059,80 +1059,74 @@
|
|||
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
||||
" -->\n",
|
||||
"<!-- Pages: 1 -->\n",
|
||||
"<svg width=\"227pt\" height=\"188pt\"\n",
|
||||
" viewBox=\"0.00 0.00 227.00 188.48\" 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 184.4822)\">\n",
|
||||
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184.4822 223,-184.4822 223,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"62.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"84.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"100.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)&Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"136.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"152.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"65.5\" y=\"-152.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[gen. Büchi 2]</text>\n",
|
||||
"<svg width=\"227pt\" height=\"164pt\"\n",
|
||||
" viewBox=\"0.00 0.00 227.00 164.45\" 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 160.4473)\">\n",
|
||||
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-160.4473 223,-160.4473 223,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"88.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"110.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"126.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"86.5\" y=\"-128.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<g id=\"node2\" class=\"node\">\n",
|
||||
"<title>0</title>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"65\" cy=\"-32.4822\" rx=\"27\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"55\" y=\"-28.7822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1,0</text>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"65\" cy=\"-21.4473\" rx=\"27\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"55\" y=\"-17.7473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1,0</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- I->0 -->\n",
|
||||
"<g id=\"edge1\" class=\"edge\">\n",
|
||||
"<title>I->0</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2244,-32.4822C4.383,-32.4822 17.3969,-32.4822 30.8528,-32.4822\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8798,-32.4822 30.8799,-35.6323 34.3798,-32.4822 30.8798,-32.4823 30.8798,-32.4823 30.8798,-32.4823 34.3798,-32.4822 30.8798,-29.3323 37.8798,-32.4822 37.8798,-32.4822\"/>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2244,-21.4473C4.383,-21.4473 17.3969,-21.4473 30.8528,-21.4473\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8798,-21.4473 30.8799,-24.5974 34.3798,-21.4474 30.8798,-21.4474 30.8798,-21.4474 30.8798,-21.4474 34.3798,-21.4474 30.8798,-18.2974 37.8798,-21.4473 37.8798,-21.4473\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->0 -->\n",
|
||||
"<g id=\"edge4\" class=\"edge\">\n",
|
||||
"<title>0->0</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M57.1448,-49.8921C55.6785,-59.5701 58.2969,-68.4822 65,-68.4822 69.9226,-68.4822 72.6423,-63.6758 73.1591,-57.2894\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.8552,-49.8921 76.2899,-56.7568 72.9989,-53.3891 73.1426,-56.8862 73.1426,-56.8862 73.1426,-56.8862 72.9989,-53.3891 69.9953,-57.0155 72.8552,-49.8921 72.8552,-49.8921\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"46.5\" y=\"-87.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"57\" y=\"-72.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M57.1448,-38.8572C55.6785,-48.5352 58.2969,-57.4473 65,-57.4473 69.9226,-57.4473 72.6423,-52.641 73.1591,-46.2546\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.8552,-38.8572 76.2899,-45.722 72.9989,-42.3543 73.1426,-45.8513 73.1426,-45.8513 73.1426,-45.8513 72.9989,-42.3543 69.9953,-45.9806 72.8552,-38.8572 72.8552,-38.8572\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"46.5\" y=\"-61.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g id=\"node3\" class=\"node\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-32.4822\" rx=\"27\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"182\" y=\"-28.7822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0,0</text>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-21.4473\" rx=\"27\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"182\" y=\"-17.7473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0,0</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g id=\"edge2\" class=\"edge\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M91.6098,-35.9318C97.6458,-36.5769 104.0351,-37.1518 110,-37.4822 126.4193,-38.3915 130.5807,-38.3915 147,-37.4822 150.6349,-37.2808 154.4273,-36.9887 158.2014,-36.6453\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"165.3902,-35.9318 158.7356,-39.7578 161.9073,-36.2775 158.4244,-36.6232 158.4244,-36.6232 158.4244,-36.6232 161.9073,-36.2775 158.1133,-33.4886 165.3902,-35.9318 165.3902,-35.9318\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"110\" y=\"-41.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M92.2447,-21.4473C111.4127,-21.4473 137.2089,-21.4473 157.7667,-21.4473\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"164.8004,-21.4473 157.8004,-24.5974 161.3004,-21.4474 157.8004,-21.4474 157.8004,-21.4474 157.8004,-21.4474 161.3004,-21.4474 157.8003,-18.2974 164.8004,-21.4473 164.8004,-21.4473\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"110\" y=\"-25.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g id=\"edge3\" class=\"edge\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M81.7946,-18.374C89.8002,-12.5517 99.8356,-6.4737 110,-3.4822 125.7754,1.1607 131.2246,1.1607 147,-3.4822 154.7821,-5.7725 162.4886,-9.8721 169.2664,-14.2811\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.2054,-18.374 167.6541,-16.9955 172.3235,-16.3879 169.4416,-14.4017 169.4416,-14.4017 169.4416,-14.4017 172.3235,-16.3879 171.2291,-11.808 175.2054,-18.374 175.2054,-18.374\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"111.5\" y=\"-22.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"120.5\" y=\"-7.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M86.4111,-10.3522C93.6978,-7.1385 102.0208,-4.0628 110,-2.4473 126.1174,.8158 130.8826,.8158 147,-2.4473 152.6104,-3.5832 158.3907,-5.441 163.8613,-7.5611\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"170.5889,-10.3522 162.9162,-10.5793 167.3561,-9.0109 164.1233,-7.6697 164.1233,-7.6697 164.1233,-7.6697 167.3561,-9.0109 165.3304,-4.7602 170.5889,-10.3522 170.5889,-10.3522\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"111.5\" y=\"-6.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g id=\"edge5\" class=\"edge\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.4273,-50.2639C185.4803,-59.7971 187.3379,-68.4822 192,-68.4822 195.4237,-68.4822 197.335,-63.7983 197.7337,-57.5343\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"197.5727,-50.2639 200.877,-57.1924 197.6502,-53.763 197.7277,-57.2622 197.7277,-57.2622 197.7277,-57.2622 197.6502,-53.763 194.5785,-57.332 197.5727,-50.2639 197.5727,-50.2639\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"186.5\" y=\"-87.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"184\" y=\"-72.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.4273,-39.2291C185.4803,-48.7623 187.3379,-57.4473 192,-57.4473 195.4237,-57.4473 197.335,-52.7634 197.7337,-46.4994\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"197.5727,-39.2291 200.877,-46.1576 197.6502,-42.7282 197.7277,-46.2273 197.7277,-46.2273 197.7277,-46.2273 197.6502,-42.7282 194.5785,-46.2971 197.5727,-39.2291 197.5727,-39.2291\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"186.5\" y=\"-61.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g id=\"edge6\" class=\"edge\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M183.4657,-49.7312C177.4091,-70.9167 180.2539,-98.4822 192,-98.4822 202.5072,-98.4822 205.8918,-76.4247 202.1536,-56.6075\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"200.5343,-49.7312 205.205,-55.8227 201.3366,-53.138 202.1389,-56.5448 202.1389,-56.5448 202.1389,-56.5448 201.3366,-53.138 199.0727,-57.2669 200.5343,-49.7312 200.5343,-49.7312\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"188.5\" y=\"-116.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"176\" y=\"-102.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"192\" y=\"-102.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M182.9293,-38.5891C177.5936,-56.0323 180.6172,-75.4473 192,-75.4473 201.871,-75.4473 205.4558,-60.8469 202.7543,-45.5934\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"201.0707,-38.5891 205.7695,-44.659 201.8887,-41.9922 202.7067,-45.3952 202.7067,-45.3952 202.7067,-45.3952 201.8887,-41.9922 199.644,-46.1315 201.0707,-38.5891 201.0707,-38.5891\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"188.5\" y=\"-94.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"184\" y=\"-79.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7c0f0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d090> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 13,
|
||||
|
|
@ -1157,9 +1151,7 @@
|
|||
" | !a & b\n",
|
||||
"Cycle:\n",
|
||||
" 0,0\n",
|
||||
" | !a\t{0}\n",
|
||||
" 0,0\n",
|
||||
" | a\t{0,1}"
|
||||
" | a\t{0}"
|
||||
]
|
||||
},
|
||||
"execution_count": 14,
|
||||
|
|
@ -1198,80 +1190,74 @@
|
|||
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
||||
" -->\n",
|
||||
"<!-- Pages: 1 -->\n",
|
||||
"<svg width=\"227pt\" height=\"188pt\"\n",
|
||||
" viewBox=\"0.00 0.00 227.00 188.48\" 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 184.4822)\">\n",
|
||||
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184.4822 223,-184.4822 223,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"62.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"84.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"100.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)&Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"136.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"152.5\" y=\"-166.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"65.5\" y=\"-152.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[gen. Büchi 2]</text>\n",
|
||||
"<svg width=\"227pt\" height=\"164pt\"\n",
|
||||
" viewBox=\"0.00 0.00 227.00 164.45\" 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 160.4473)\">\n",
|
||||
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-160.4473 223,-160.4473 223,4 -4,4\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"88.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"110.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"126.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"86.5\" y=\"-128.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
|
||||
"<!-- I -->\n",
|
||||
"<!-- 0 -->\n",
|
||||
"<g id=\"node2\" class=\"node\">\n",
|
||||
"<title>0</title>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"65\" cy=\"-32.4822\" rx=\"27\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"55\" y=\"-28.7822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1,0</text>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"65\" cy=\"-21.4473\" rx=\"27\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"55\" y=\"-17.7473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1,0</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- I->0 -->\n",
|
||||
"<g id=\"edge1\" class=\"edge\">\n",
|
||||
"<title>I->0</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2244,-32.4822C4.383,-32.4822 17.3969,-32.4822 30.8528,-32.4822\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8798,-32.4822 30.8799,-35.6323 34.3798,-32.4822 30.8798,-32.4823 30.8798,-32.4823 30.8798,-32.4823 34.3798,-32.4822 30.8798,-29.3323 37.8798,-32.4822 37.8798,-32.4822\"/>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2244,-21.4473C4.383,-21.4473 17.3969,-21.4473 30.8528,-21.4473\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8798,-21.4473 30.8799,-24.5974 34.3798,-21.4474 30.8798,-21.4474 30.8798,-21.4474 30.8798,-21.4474 34.3798,-21.4474 30.8798,-18.2974 37.8798,-21.4473 37.8798,-21.4473\"/>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->0 -->\n",
|
||||
"<g id=\"edge4\" class=\"edge\">\n",
|
||||
"<title>0->0</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M57.1448,-49.8921C55.6785,-59.5701 58.2969,-68.4822 65,-68.4822 69.9226,-68.4822 72.6423,-63.6758 73.1591,-57.2894\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.8552,-49.8921 76.2899,-56.7568 72.9989,-53.3891 73.1426,-56.8862 73.1426,-56.8862 73.1426,-56.8862 72.9989,-53.3891 69.9953,-57.0155 72.8552,-49.8921 72.8552,-49.8921\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"46.5\" y=\"-87.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"57\" y=\"-72.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M57.1448,-38.8572C55.6785,-48.5352 58.2969,-57.4473 65,-57.4473 69.9226,-57.4473 72.6423,-52.641 73.1591,-46.2546\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.8552,-38.8572 76.2899,-45.722 72.9989,-42.3543 73.1426,-45.8513 73.1426,-45.8513 73.1426,-45.8513 72.9989,-42.3543 69.9953,-45.9806 72.8552,-38.8572 72.8552,-38.8572\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"46.5\" y=\"-61.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1 -->\n",
|
||||
"<g id=\"node3\" class=\"node\">\n",
|
||||
"<title>1</title>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-32.4822\" rx=\"27\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"182\" y=\"-28.7822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0,0</text>\n",
|
||||
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-21.4473\" rx=\"27\" ry=\"18\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"182\" y=\"-17.7473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0,0</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g id=\"edge2\" class=\"edge\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M91.6098,-35.9318C97.6458,-36.5769 104.0351,-37.1518 110,-37.4822 126.4193,-38.3915 130.5807,-38.3915 147,-37.4822 150.6349,-37.2808 154.4273,-36.9887 158.2014,-36.6453\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"165.3902,-35.9318 158.7356,-39.7578 161.9567,-36.7751 158.4738,-37.1208 158.4244,-36.6232 158.375,-36.1257 161.8579,-35.78 158.1133,-33.4886 165.3902,-35.9318 165.3902,-35.9318\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"110\" y=\"-41.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M92.2447,-21.4473C111.4127,-21.4473 137.2089,-21.4473 157.7667,-21.4473\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"164.8004,-21.4473 157.8004,-24.5974 161.3004,-21.9474 157.8004,-21.9474 157.8004,-21.4474 157.8004,-20.9474 161.3004,-20.9474 157.8003,-18.2974 164.8004,-21.4473 164.8004,-21.4473\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"110\" y=\"-25.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 0->1 -->\n",
|
||||
"<g id=\"edge3\" class=\"edge\">\n",
|
||||
"<title>0->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M81.7946,-18.374C89.8002,-12.5517 99.8356,-6.4737 110,-3.4822 125.7754,1.1607 131.2246,1.1607 147,-3.4822 154.7821,-5.7725 162.4886,-9.8721 169.2664,-14.2811\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.2054,-18.374 167.6541,-16.9955 172.3235,-16.3879 169.4416,-14.4017 169.4416,-14.4017 169.4416,-14.4017 172.3235,-16.3879 171.2291,-11.808 175.2054,-18.374 175.2054,-18.374\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"111.5\" y=\"-22.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"120.5\" y=\"-7.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M86.4111,-10.3522C93.6978,-7.1385 102.0208,-4.0628 110,-2.4473 126.1174,.8158 130.8826,.8158 147,-2.4473 152.6104,-3.5832 158.3907,-5.441 163.8613,-7.5611\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"170.5889,-10.3522 162.9162,-10.5793 167.3561,-9.0109 164.1233,-7.6697 164.1233,-7.6697 164.1233,-7.6697 167.3561,-9.0109 165.3304,-4.7602 170.5889,-10.3522 170.5889,-10.3522\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"111.5\" y=\"-6.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g id=\"edge5\" class=\"edge\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M186.4273,-50.2639C185.4803,-59.7971 187.3379,-68.4822 192,-68.4822 195.4237,-68.4822 197.335,-63.7983 197.7337,-57.5343\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"197.5727,-50.2639 200.877,-57.1924 198.1501,-53.752 198.2276,-57.2511 197.7277,-57.2622 197.2279,-57.2733 197.1503,-53.7741 194.5785,-57.332 197.5727,-50.2639 197.5727,-50.2639\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"186.5\" y=\"-87.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"184\" y=\"-72.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.4273,-39.2291C185.4803,-48.7623 187.3379,-57.4473 192,-57.4473 195.4237,-57.4473 197.335,-52.7634 197.7337,-46.4994\"/>\n",
|
||||
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"197.5727,-39.2291 200.877,-46.1576 197.6502,-42.7282 197.7277,-46.2273 197.7277,-46.2273 197.7277,-46.2273 197.6502,-42.7282 194.5785,-46.2971 197.5727,-39.2291 197.5727,-39.2291\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"186.5\" y=\"-61.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
||||
"</g>\n",
|
||||
"<!-- 1->1 -->\n",
|
||||
"<g id=\"edge6\" class=\"edge\">\n",
|
||||
"<title>1->1</title>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M183.4657,-49.7312C177.4091,-70.9167 180.2539,-98.4822 192,-98.4822 202.5072,-98.4822 205.8918,-76.4247 202.1536,-56.6075\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"200.5343,-49.7312 205.205,-55.8227 201.8233,-53.0234 202.6256,-56.4302 202.1389,-56.5448 201.6522,-56.6594 200.8499,-53.2526 199.0727,-57.2669 200.5343,-49.7312 200.5343,-49.7312\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"188.5\" y=\"-116.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"176\" y=\"-102.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"192\" y=\"-102.2822\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
||||
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M182.9293,-38.5891C177.5936,-56.0323 180.6172,-75.4473 192,-75.4473 201.871,-75.4473 205.4558,-60.8469 202.7543,-45.5934\"/>\n",
|
||||
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"201.0707,-38.5891 205.7695,-44.659 202.3749,-41.8753 203.1929,-45.2784 202.7067,-45.3952 202.2206,-45.5121 201.4025,-42.109 199.644,-46.1315 201.0707,-38.5891 201.0707,-38.5891\"/>\n",
|
||||
"<text text-anchor=\"start\" x=\"188.5\" y=\"-94.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
||||
"<text text-anchor=\"start\" x=\"184\" y=\"-79.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
||||
"</g>\n",
|
||||
"</g>\n",
|
||||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7c0f0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d090> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1336,7 +1322,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7c6f0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d8a0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1391,7 +1377,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7c2a0> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d780> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1623,7 +1609,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7f65e4b7c9f0> >"
|
||||
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7f0128e6db40> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1711,7 +1697,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7ca50> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dba0> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1808,7 +1794,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7c510> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6d180> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -1976,7 +1962,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7cb70> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 18,
|
||||
|
|
@ -2144,7 +2130,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7cb70> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >"
|
||||
]
|
||||
},
|
||||
"execution_count": 19,
|
||||
|
|
@ -2307,7 +2293,7 @@
|
|||
"</svg>\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f65e4b7cb70> >"
|
||||
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0128e6dc30> >"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
|
|
@ -2771,6 +2757,13 @@
|
|||
"spot.highlight_languages(aut)\n",
|
||||
"aut.show('.bas')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue