simulation: do not depend on bdd numbers for ordering classes

Fixes #262 again.  Reported by Maximilien Colange.

* spot/twaalgos/simulation.cc: Use state numbers to order classes, not
their signatures.  The problem was that even if two simulation of the
same automaton assign the same signature, the BDD identifier used for
that signature might be different, and therefore the ordering obtained
by using BDDs as keys in a map can be different.  A side-effect of
this change is that the order of states in automata produced by
simulation-based reduction may change; many tests had to be updated.
* tests/core/ltl2tgba.test: Add a new test case based on Maximilien's
report.
* tests/core/complement.test, tests/core/det.test,
tests/core/parseaut.test, tests/core/prodor.test, tests/core/scc.test,
tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
tests/python/decompose.ipynb, tests/python/decompose_scc.py,
tests/python/highlighting.ipynb, tests/python/piperead.ipynb,
tests/python/sccinfo.py, tests/python/simstate.py,
tests/python/testingaut.ipynb, tests/python/word.ipynb: Update
test case for new order of states.
This commit is contained in:
Alexandre Duret-Lutz 2017-06-02 11:23:42 +02:00
parent 101c2533f1
commit 9ab4b840fd
17 changed files with 1464 additions and 1402 deletions

View file

@ -118,11 +118,11 @@ properties: trans-labels explicit-labels trans-acc complete
properties: deterministic stutter-invariant
--BODY--
State: 0
[0] 1 {1}
[!0] 0
State: 1
[0] 1 {1}
State: 1
[!0] 0 {0}
[0] 1 {1}
--END--
EOF
diff out expected

View file

@ -1,7 +1,7 @@
#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2013, 2014, 2015, 2016 Laboratoire de Recherche et
# Développement de l'Epita (LRDE).
# Copyright (C) 2013-2017 Laboratoire de Recherche et Développement de
# l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
#
@ -148,20 +148,20 @@ cat >expected-nd.hoa <<EOF
HOA: v1.1
name: "XGa R (!a & Fa)"
States: 2
Start: 1
Start: 0
AP: 1 "a"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc !complete
properties: !deterministic
spot.highlight.states: 1 1
spot.highlight.edges: 2 2 3 2
spot.highlight.states: 0 1
spot.highlight.edges: 1 2 2 2
--BODY--
State: 0 {0}
[0] 0
State: 1
State: 0
[!0] 0
[!0] 1
State: 1 {0}
[0] 1
--END--
EOF
diff expected-nd.hoa out-nd.hoa
@ -173,19 +173,19 @@ cat >expected-rand.hoa <<EOF
HOA: v1.1
name: "XGa R (!a & Fa)"
States: 2
Start: 0
Start: 1
AP: 1 "a"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc !complete
properties: !deterministic
spot.highlight.states: 0 1
spot.highlight.states: 1 1
--BODY--
State: 0
[!0] 0
State: 0 {0}
[0] 0
State: 1
[!0] 1
State: 1 {0}
[0] 1
[!0] 0
--END--
EOF
diff expected-rand.hoa rand.hoa
@ -197,20 +197,20 @@ cat >expected-rand2.hoa <<EOF
HOA: v1.1
name: "XGa R (!a & Fa)"
States: 2
Start: 0
Start: 1
AP: 1 "a"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc !complete
properties: !deterministic
spot.highlight.states: 0 5
spot.highlight.edges: 1 5 2 5
spot.highlight.states: 1 5
spot.highlight.edges: 2 5 3 5
--BODY--
State: 0
[!0] 0
State: 0 {0}
[0] 0
State: 1
[!0] 1
State: 1 {0}
[0] 1
[!0] 0
--END--
EOF
diff expected-rand2.hoa rand2.hoa

View file

@ -255,3 +255,11 @@ ltl2tgba --low --any 'Xp1 xor (Fp1 M (!p1 M (Fp0 W p1)))' \
ltl2tgba --low --any 'Xp1 xor (Fp1 M (!p1 M (Fp0 W p1)))' "$s" >res2
ltl2tgba --low --any 'Fp0 -> XXG(1 U Gp1)' "$s" >>res2
diff res1 res2
# Another case where different but isomorphic automata
# were output (issue #262 again).
f1='F(Gp0 <-> Gp1)'
f2='Gp1 | FGp0'
(ltl2tgba -xsimul=1 --low "$f1"; ltl2tgba -xsimul=1 --low "$f2") > res1
ltl2tgba -xsimul=1 --low "$f1" "$f2" > res2
diff res1 res2

View file

@ -1712,7 +1712,7 @@ cat >expected <<EOF
HOA: v1
name: "(c U d) & G(Fa & Fb)"
States: 3
Start: 1
Start: 0
AP: 4 "c" "d" "a" "b"
acc-name: generalized-Buchi 2
Acceptance: 2 Inf(0)&Inf(1)
@ -1720,39 +1720,39 @@ properties: implicit-labels trans-acc complete deterministic
properties: stutter-invariant
--BODY--
State: 0
2
0
1
1
2
0
1
1
2
0
1
1
2
0
0 {0}
0 {0}
0 {0}
0 {0}
0 {1}
0 {1}
0 {1}
0 {1}
0 {0 1}
0 {0 1}
0 {0 1}
0 {0 1}
1
1
State: 1
2
1
0
0
2
1
0
0
2
1
0
0
2
1
0
0
1 {0}
1 {0}
1 {0}
1 {0}
1 {1}
1 {1}
1 {1}
1 {1}
1 {0 1}
1 {0 1}
1 {0 1}
1 {0 1}
State: 2
2
2

View file

@ -1,6 +1,6 @@
#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2015 Laboratoire de Recherche et Développement
# Copyright (C) 2015, 2017 Laboratoire de Recherche et Développement
# de l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
@ -39,10 +39,10 @@ properties: trans-labels explicit-labels trans-acc complete
properties: stutter-invariant
--BODY--
State: 0
[0&1] 1 {1}
[!0&1] 1
[0] 0 {1}
[!0] 0
[0&1] 1 {1}
[!0&1] 1
State: 1
[0&1] 1 {0 1}
[!0&1] 1 {0}
@ -70,10 +70,10 @@ Acceptance: 2 Inf(0)&Inf(1)
properties: trans-labels explicit-labels trans-acc stutter-invariant
--BODY--
State: 0
[0&1] 1 {1}
[!0&1] 1
[0] 0 {1}
[!0] 0
[0&1] 1 {1}
[!0&1] 1
State: 1
[0&1] 1 {0 1}
[!0&1] 1 {0}

View file

@ -93,8 +93,8 @@ Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc
--BODY--
State: 0
[0&2] 1
[0] 0
[0&2] 1
State: 1 {0}
[2] 1
--END--

View file

@ -97,85 +97,85 @@
"<text text-anchor=\"start\" x=\"121.75\" y=\"-319.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#f17cb0\">\u2776</text>\n",
"<text text-anchor=\"start\" x=\"137.75\" y=\"-319.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-156\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-152.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-156C2.79388,-156 17.1543,-156 30.6317,-156\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-156 30.9419,-159.15 34.4419,-156 30.9419,-156 30.9419,-156 30.9419,-156 34.4419,-156 30.9418,-152.85 37.9419,-156 37.9419,-156\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.6208,-173.037C48.3189,-182.858 50.4453,-192 56,-192 60.166,-192 62.4036,-186.858 62.7128,-180.143\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.3792,-173.037 65.8541,-179.882 62.5434,-176.533 62.7076,-180.03 62.7076,-180.03 62.7076,-180.03 62.5434,-176.533 59.561,-180.177 62.3792,-173.037 62.3792,-173.037\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"169\" cy=\"-247\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"169\" y=\"-243.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<g id=\"node2\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-75\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-71.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M70.6108,-167.158C90.2734,-183.278 126.706,-213.147 149.007,-231.429\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"154.625,-236.035 147.214,-234.033 151.918,-233.816 149.211,-231.597 149.211,-231.597 149.211,-231.597 151.918,-233.816 151.208,-229.161 154.625,-236.035 154.625,-236.035\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-75C2.79388,-75 17.1543,-75 30.6317,-75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-75 30.9419,-78.1501 34.4419,-75 30.9419,-75.0001 30.9419,-75.0001 30.9419,-75.0001 34.4419,-75 30.9418,-71.8501 37.9419,-75 37.9419,-75\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.6208,-92.0373C48.3189,-101.858 50.4453,-111 56,-111 60.166,-111 62.4036,-105.858 62.7128,-99.1433\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.3792,-92.0373 65.8541,-98.8818 62.5434,-95.5335 62.7076,-99.0296 62.7076,-99.0296 62.7076,-99.0296 62.5434,-95.5335 59.561,-99.1774 62.3792,-92.0373 62.3792,-92.0373\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-114.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"169\" cy=\"-118\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"164.5\" y=\"-114.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.3784,-81.3448C92.4242,-88.7229 123.976,-100.946 145.359,-109.229\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"151.915,-111.769 144.25,-112.178 148.652,-110.505 145.388,-109.24 145.388,-109.24 145.388,-109.24 148.652,-110.505 146.526,-106.303 151.915,-111.769 151.915,-111.769\"/>\n",
"<text text-anchor=\"start\" x=\"99\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\"><title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"169\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"169\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.0489,-142.264C87.9125,-117.568 129.699,-65.6173 152.446,-37.3378\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"156.996,-31.6809 155.063,-39.1098 154.802,-34.4082 152.608,-37.1354 152.608,-37.1354 152.608,-37.1354 154.802,-34.4082 150.154,-35.1611 156.996,-31.6809 156.996,-31.6809\"/>\n",
"<text text-anchor=\"start\" x=\"99\" y=\"-114.8\" font-family=\"Lato\" font-size=\"14.00\">a | b</text>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.4341,-67.0744C91.6528,-57.2053 124.596,-40.2883 146.337,-29.1242\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"152.697,-25.8583 147.909,-31.8581 149.584,-27.4571 146.47,-29.056 146.47,-29.056 146.47,-29.056 149.584,-27.4571 145.031,-26.2538 152.697,-25.8583 152.697,-25.8583\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-59.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M159.425,-262.541C156.73,-272.909 159.922,-283 169,-283 175.95,-283 179.45,-277.085 179.499,-269.659\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"178.575,-262.541 182.6,-269.077 179.026,-266.012 179.477,-269.483 179.477,-269.483 179.477,-269.483 179.026,-266.012 176.353,-269.889 178.575,-262.541 178.575,-262.541\"/>\n",
"<text text-anchor=\"start\" x=\"148.5\" y=\"-300.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-286.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-286.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#f17cb0\">\u2776</text>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M166.467,-136.153C166.078,-145.539 166.922,-154 169,-154 170.526,-154 171.387,-149.437 171.582,-143.295\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.533,-136.153 174.731,-143.131 171.557,-139.653 171.581,-143.153 171.581,-143.153 171.581,-143.153 171.557,-139.653 168.431,-143.174 171.533,-136.153 171.533,-136.153\"/>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-172.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#f17cb0\">\u2776</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M166.467,-36.1527C166.078,-45.5391 166.922,-54 169,-54 170.526,-54 171.387,-49.437 171.582,-43.2953\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.533,-36.1527 174.731,-43.1307 171.557,-39.6526 171.581,-43.1525 171.581,-43.1525 171.581,-43.1525 171.557,-39.6526 168.431,-43.1743 171.533,-36.1527 171.533,-36.1527\"/>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#f17cb0\">\u2776</text>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M165.104,-135.577C162.424,-156.718 163.723,-184 169,-184 173.7,-184 175.244,-162.36 173.633,-142.691\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"172.896,-135.577 176.75,-142.215 173.257,-139.059 173.617,-142.54 173.617,-142.54 173.617,-142.54 173.257,-139.059 170.484,-142.864 172.896,-135.577 172.896,-135.577\"/>\n",
"<text text-anchor=\"start\" x=\"148.5\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\"><title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M165.104,-35.5771C162.424,-56.718 163.723,-84 169,-84 173.7,-84 175.244,-62.3596 173.633,-42.6907\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"172.896,-35.5771 176.75,-42.2155 173.257,-39.0585 173.617,-42.5399 173.617,-42.5399 173.617,-42.5399 173.257,-39.0585 170.484,-42.8644 172.896,-35.5771 172.896,-35.5771\"/>\n",
"<text text-anchor=\"start\" x=\"148.5\" y=\"-87.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M164.049,-135.467C158.901,-163.149 160.551,-202 169,-202 176.756,-202 178.783,-169.261 175.081,-142.477\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.951,-135.467 178.174,-141.877 174.508,-138.923 175.065,-142.378 175.065,-142.378 175.065,-142.378 174.508,-138.923 171.955,-142.879 173.951,-135.467 173.951,-135.467\"/>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-219.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#f17cb0\">\u2776</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\"><title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M164.049,-35.4671C158.901,-63.1487 160.551,-102 169,-102 176.756,-102 178.783,-69.2613 175.081,-42.4773\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173.951,-35.4671 178.174,-41.8767 174.508,-38.9225 175.065,-42.3779 175.065,-42.3779 175.065,-42.3779 174.508,-38.9225 171.955,-42.8792 173.951,-35.4671 173.951,-35.4671\"/>\n",
"<text text-anchor=\"start\" x=\"152\" y=\"-119.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#f17cb0\">\u2776</text>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M163.463,-135.36C155.342,-171.623 157.188,-230 169,-230 180.074,-230 182.389,-178.692 175.943,-142.399\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.537,-135.36 178.997,-141.607 175.223,-138.792 175.908,-142.224 175.908,-142.224 175.908,-142.224 175.223,-138.792 172.819,-142.841 174.537,-135.36 174.537,-135.36\"/>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-248.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-233.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\"><title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M163.463,-35.3599C155.342,-71.623 157.188,-130 169,-130 180.074,-130 182.389,-78.6921 175.943,-42.3988\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.537,-35.3599 178.997,-41.6073 175.223,-38.7921 175.908,-42.2243 175.908,-42.2243 175.908,-42.2243 175.223,-38.7921 172.819,-42.8414 174.537,-35.3599 174.537,-35.3599\"/>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-148.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-133.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M159.425,-33.5414C156.73,-43.9087 159.922,-54 169,-54 175.95,-54 179.45,-48.0847 179.499,-40.6591\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"178.575,-33.5414 182.6,-40.0771 179.026,-37.0123 179.477,-40.4831 179.477,-40.4831 179.477,-40.4831 179.026,-37.0123 176.353,-40.889 178.575,-33.5414 178.575,-33.5414\"/>\n",
"<text text-anchor=\"start\" x=\"148.5\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#f17cb0\">\u2776</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f79506d2900> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f6b2060be40> >"
]
}
],

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -20,7 +20,6 @@
import spot
aut = spot.translate('(Ga -> Gb) W c')
si = spot.scc_info(aut)
assert (spot.decompose_scc(si, 2).to_str('hoa', '1.1') == """HOA: v1.1
@ -50,7 +49,7 @@ except ValueError:
else:
raise AssertionError
assert (spot.decompose_acc_scc(aut, 1).to_str('hoa', '1.1') == """HOA: v1.1
assert (spot.decompose_acc_scc(aut, 0).to_str('hoa', '1.1') == """HOA: v1.1
States: 4
Start: 0
AP: 3 "b" "a" "c"
@ -61,17 +60,17 @@ properties: deterministic
--BODY--
State: 0
[!1&!2] 0
[1&!2] 1
[2] 2
State: 1
[2] 1
[1&!2] 2
State: 1 {0}
[t] 1
State: 2
[!1&!2] 0
[1&!2] 1
[!1&2] 2
[!1&2] 1
[1&!2] 2
[1&2] 3
State: 2 {0}
[t] 2
State: 3
[!1] 2
[!1] 1
[1] 3
--END--""")

View file

@ -254,7 +254,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c67b690> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b673b870> >"
]
}
],
@ -356,7 +356,7 @@
"</svg>\n"
],
"text": [
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7f304c60b2d0> >"
"<spot.twa; proxy of <Swig Object of type 'std::shared_ptr< spot::twa > *' at 0x7f98b66ad630> >"
]
}
],
@ -571,7 +571,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b150> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad300> >"
]
}
],
@ -750,7 +750,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b150> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad300> >"
]
}
],
@ -830,7 +830,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b870> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad7b0> >"
]
},
{
@ -876,7 +876,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b840> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad570> >"
]
}
],
@ -962,7 +962,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b8a0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad750> >"
]
}
],
@ -1087,7 +1087,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b8a0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad750> >"
]
},
{
@ -1144,7 +1144,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b870> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad7b0> >"
]
},
{
@ -1190,7 +1190,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b840> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad570> >"
]
}
],
@ -1397,7 +1397,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7f304c60b6f0> >"
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7f98b66ad510> >"
]
},
{
@ -1471,7 +1471,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b690> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66adb70> >"
]
},
{
@ -1555,7 +1555,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60b810> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66ad3c0> >"
]
}
],
@ -1701,7 +1701,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60bab0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66adcc0> >"
]
}
],
@ -1846,7 +1846,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60bab0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66adcc0> >"
]
}
],
@ -1989,7 +1989,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f304c60bab0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f98b66adcc0> >"
]
},
{
@ -2202,51 +2202,51 @@
"<polygon fill=\"none\" points=\"30,-44 30,-96 82,-96 82,-44 30,-44\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node2\"><title>1</title>\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node2\"><title>0</title>\n",
"<ellipse cx=\"56\" cy=\"-70\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-66.3\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56\" y=\"-66.3\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge1\"><title>I-&gt;1</title>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge1\"><title>I-&gt;0</title>\n",
"<path d=\"M1.15491,-70C2.79388,-70 17.1543,-70 30.6317,-70\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"37.9419,-70 30.9419,-73.1501 34.4419,-70 30.9419,-70.0001 30.9419,-70.0001 30.9419,-70.0001 34.4419,-70 30.9418,-66.8501 37.9419,-70 37.9419,-70\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node3\"><title>0</title>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node3\"><title>1</title>\n",
"<ellipse cx=\"165\" cy=\"-172\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"165\" y=\"-168.3\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"165\" y=\"-168.3\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge19\"><title>1-&gt;0</title>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge2\"><title>0-&gt;1</title>\n",
"<path d=\"M69.6945,-82.1013C88.6787,-100.198 124.54,-134.384 146.153,-154.987\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"151.322,-159.914 144.082,-157.365 148.789,-157.499 146.255,-155.084 146.255,-155.084 146.255,-155.084 148.789,-157.499 148.429,-152.804 151.322,-159.914 151.322,-159.914\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"107\" y=\"-140.8\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node7\"><title>2</title>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node7\"><title>3</title>\n",
"<ellipse cx=\"417\" cy=\"-34\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"417\" y=\"-30.3\">2</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"417\" y=\"-30.3\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge20\"><title>1-&gt;2</title>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge4\"><title>0-&gt;3</title>\n",
"<path d=\"M72.3408,-61.7789C88.538,-53.3659 115,-40.3728 139,-32 165.768,-22.6614 172.849,-20.3569 201,-17 270.302,-8.73591 352.668,-21.519 392.332,-29.0808\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"399.229,-30.4257 391.755,-32.1775 395.793,-29.7558 392.358,-29.0858 392.358,-29.0858 392.358,-29.0858 395.793,-29.7558 392.961,-25.994 399.229,-30.4257 399.229,-30.4257\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"211.5\" y=\"-20.8\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node8\"><title>3</title>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node8\"><title>2</title>\n",
"<ellipse cx=\"165\" cy=\"-70\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#5da5da\" stroke-width=\"2\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"165\" y=\"-66.3\">3</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"165\" y=\"-66.3\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge21\"><title>1-&gt;3</title>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge3\"><title>0-&gt;2</title>\n",
"<path d=\"M74.1914,-70C91.8968,-70 119.648,-70 139.616,-70\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"146.851,-70 139.851,-73.1501 143.351,-70 139.851,-70.0001 139.851,-70.0001 139.851,-70.0001 143.351,-70 139.851,-66.8501 146.851,-70 146.851,-70\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-73.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g class=\"edge\" id=\"edge2\"><title>0-&gt;0</title>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge5\"><title>1-&gt;1</title>\n",
"<path d=\"M155.767,-187.541C153.169,-197.909 156.246,-208 165,-208 171.702,-208 175.077,-202.085 175.124,-194.659\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"174.233,-187.541 178.229,-194.095 174.668,-191.014 175.103,-194.487 175.103,-194.487 175.103,-194.487 174.668,-191.014 171.977,-194.879 174.233,-187.541 174.233,-187.541\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"160.5\" y=\"-226.8\">1</text>\n",
@ -2263,7 +2263,7 @@
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"584\" y=\"-100.3\">6</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge3\"><title>4-&gt;6</title>\n",
"<g class=\"edge\" id=\"edge11\"><title>4-&gt;6</title>\n",
"<path d=\"M514.116,-90.6026C524.071,-90.1368 536.821,-90.1368 548,-92 552.14,-92.6901 556.447,-93.8097 560.566,-95.0946\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"567.258,-97.3664 559.617,-98.0987 563.943,-96.2412 560.629,-95.1159 560.629,-95.1159 560.629,-95.1159 563.943,-96.2412 561.642,-92.1331 567.258,-97.3664 567.258,-97.3664\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"534.5\" y=\"-95.8\">!c</text>\n",
@ -2274,69 +2274,69 @@
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"697\" y=\"-105.3\">7</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge4\"><title>4-&gt;7</title>\n",
"<g class=\"edge\" id=\"edge12\"><title>4-&gt;7</title>\n",
"<path d=\"M512.019,-83.315C525.609,-75.9906 546.433,-66.0696 566,-62 581.665,-58.7419 586.276,-59.0434 602,-62 629.66,-67.2007 636.12,-71.8443 661,-85 666.129,-87.7121 671.415,-91.0267 676.275,-94.3165\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"682.16,-98.4231 674.617,-97.0007 679.29,-96.4202 676.42,-94.4174 676.42,-94.4174 676.42,-94.4174 679.29,-96.4202 678.222,-91.8341 682.16,-98.4231 682.16,-98.4231\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"580.5\" y=\"-65.8\">c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge5\"><title>6-&gt;4</title>\n",
"<g class=\"edge\" id=\"edge16\"><title>6-&gt;4</title>\n",
"<path d=\"M565.841,-107.212C555.871,-108.533 543.121,-109.283 532,-107 527.58,-106.093 523.029,-104.603 518.732,-102.906\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"512.241,-100.123 519.916,-99.9868 515.458,-101.502 518.675,-102.882 518.675,-102.882 518.675,-102.882 515.458,-101.502 517.433,-105.777 512.241,-100.123 512.241,-100.123\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"533.5\" y=\"-127.8\">!b</text>\n",
"<text fill=\"#f17cb0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"532\" y=\"-112.8\">\u2776</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge6\"><title>6-&gt;6</title>\n",
"<g class=\"edge\" id=\"edge17\"><title>6-&gt;6</title>\n",
"<path d=\"M576.332,-120.29C574.483,-130.389 577.039,-140 584,-140 589.221,-140 591.964,-134.594 592.229,-127.63\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"591.668,-120.29 595.342,-127.03 591.935,-123.78 592.201,-127.27 592.201,-127.27 592.201,-127.27 591.935,-123.78 589.06,-127.51 591.668,-120.29 591.668,-120.29\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"565.5\" y=\"-143.8\">b &amp; !c</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge7\"><title>6-&gt;7</title>\n",
"<g class=\"edge\" id=\"edge18\"><title>6-&gt;7</title>\n",
"<path d=\"M600.694,-96.8164C606.614,-94.4708 613.493,-92.1695 620,-91 637.935,-87.7768 643.289,-86.7127 661,-91 665.73,-92.1449 670.537,-94.0459 675.012,-96.1937\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"681.283,-99.4577 673.62,-99.0202 678.178,-97.8418 675.074,-96.226 675.074,-96.226 675.074,-96.226 678.178,-97.8418 676.528,-93.4318 681.283,-99.4577 681.283,-99.4577\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"623.5\" y=\"-94.8\">b &amp; c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge8\"><title>7-&gt;4</title>\n",
"<g class=\"edge\" id=\"edge19\"><title>7-&gt;4</title>\n",
"<path d=\"M683.103,-120.93C660.18,-140.644 610.556,-176.651 566,-164 548.914,-159.149 544.858,-155.253 532,-143 523.072,-134.492 515.111,-123.354 509.045,-113.657\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"505.342,-107.536 511.661,-111.895 507.154,-110.531 508.966,-113.525 508.966,-113.525 508.966,-113.525 507.154,-110.531 506.27,-115.156 505.342,-107.536 505.342,-107.536\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"579.5\" y=\"-184.8\">b</text>\n",
"<text fill=\"#f17cb0\" font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"576\" y=\"-169.8\">\u2776</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge9\"><title>7-&gt;6</title>\n",
"<g class=\"edge\" id=\"edge20\"><title>7-&gt;6</title>\n",
"<path d=\"M678.791,-108.407C663.385,-107.856 640.18,-106.975 620,-106 616.535,-105.833 612.878,-105.641 609.286,-105.443\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"602.087,-105.037 609.253,-102.287 605.581,-105.234 609.076,-105.431 609.076,-105.431 609.076,-105.431 605.581,-105.234 608.898,-108.576 602.087,-105.037 602.087,-105.037\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"620\" y=\"-111.8\">!b &amp; !c</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge10\"><title>7-&gt;7</title>\n",
"<g class=\"edge\" id=\"edge21\"><title>7-&gt;7</title>\n",
"<path d=\"M687.425,-124.541C684.73,-134.909 687.922,-145 697,-145 703.95,-145 707.45,-139.085 707.499,-131.659\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"706.575,-124.541 710.6,-131.077 707.026,-128.012 707.477,-131.483 707.477,-131.483 707.477,-131.483 707.026,-128.012 704.353,-131.889 706.575,-124.541 706.575,-124.541\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"678.5\" y=\"-148.8\">!b &amp; c</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge11\"><title>2-&gt;4</title>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge10\"><title>3-&gt;4</title>\n",
"<path d=\"M432.606,-43.6256C440.786,-49.1295 451.099,-56.26 460,-63 465.452,-67.1281 471.223,-71.7844 476.473,-76.1383\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"481.925,-80.7047 474.536,-78.625 479.242,-78.4574 476.558,-76.21 476.558,-76.21 476.558,-76.21 479.242,-78.4574 478.581,-73.7951 481.925,-80.7047 481.925,-80.7047\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"453\" y=\"-66.8\">a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge14\"><title>3-&gt;4</title>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge8\"><title>2-&gt;4</title>\n",
"<path d=\"M172.788,-86.4554C178.475,-97.8739 187.8,-112.207 201,-119 292.409,-166.041 421.048,-122.799 472.473,-101.867\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"479.204,-99.0728 473.947,-104.666 475.972,-100.414 472.739,-101.756 472.739,-101.756 472.739,-101.756 475.972,-100.414 471.532,-98.8468 479.204,-99.0728 479.204,-99.0728\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"357\" y=\"-141.8\">a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge12\"><title>3-&gt;2</title>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge7\"><title>2-&gt;3</title>\n",
"<path d=\"M181.764,-62.7925C187.692,-60.3237 194.557,-57.7464 201,-56 268.503,-37.7027 351.689,-34.3871 391.933,-33.9368\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"398.934,-33.8831 391.959,-37.0868 395.435,-33.91 391.935,-33.9369 391.935,-33.9369 391.935,-33.9369 395.435,-33.91 391.91,-30.787 398.934,-33.8831 398.934,-33.8831\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-44.8\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge13\"><title>3-&gt;3</title>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge6\"><title>2-&gt;2</title>\n",
"<path d=\"M155.767,-85.5414C153.169,-95.9087 156.246,-106 165,-106 171.702,-106 175.077,-100.085 175.124,-92.6591\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"174.233,-85.5414 178.229,-92.0955 174.668,-89.0143 175.103,-92.4871 175.103,-92.4871 175.103,-92.4871 174.668,-89.0143 171.977,-92.8788 174.233,-85.5414 174.233,-85.5414\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"132\" y=\"-109.8\">!a &amp; b &amp; !c</text>\n",
@ -2346,26 +2346,26 @@
"<ellipse cx=\"301.5\" cy=\"-86\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"#5da5da\" stroke-width=\"2\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"301.5\" y=\"-82.3\">5</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge15\"><title>3-&gt;5</title>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge9\"><title>2-&gt;5</title>\n",
"<path d=\"M182.479,-65.4387C202.062,-60.7826 235.539,-55.2494 263,-63 269.128,-64.7296 275.242,-67.7722 280.702,-71.0891\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"286.771,-75.0467 279.187,-73.8619 283.839,-73.135 280.907,-71.2233 280.907,-71.2233 280.907,-71.2233 283.839,-73.135 282.628,-68.5846 286.771,-75.0467 286.771,-75.0467\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-66.8\">!a &amp; b &amp; c</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge18\"><title>5-&gt;4</title>\n",
"<g class=\"edge\" id=\"edge15\"><title>5-&gt;4</title>\n",
"<path d=\"M319.583,-86.5325C353.83,-87.5999 430.982,-90.0046 470.564,-91.2383\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"477.955,-91.4687 470.86,-94.399 474.457,-91.3596 470.959,-91.2506 470.959,-91.2506 470.959,-91.2506 474.457,-91.3596 471.057,-88.1021 477.955,-91.4687 477.955,-91.4687\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"413.5\" y=\"-94.8\">a</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge16\"><title>5-&gt;2</title>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge14\"><title>5-&gt;3</title>\n",
"<path d=\"M316.747,-76.3975C323.606,-72.0012 332.051,-66.912 340,-63 357.251,-54.5098 377.649,-46.8478 392.967,-41.5345\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"399.618,-39.264 394.011,-44.5067 396.306,-40.3948 392.994,-41.5256 392.994,-41.5256 392.994,-41.5256 396.306,-40.3948 391.976,-38.5445 399.618,-39.264 399.618,-39.264\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"340\" y=\"-66.8\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge17\"><title>5-&gt;3</title>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge13\"><title>5-&gt;2</title>\n",
"<path d=\"M283.156,-85.3654C263.232,-84.4607 229.605,-82.3956 201,-78 197.321,-77.4347 193.454,-76.6977 189.686,-75.9\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"182.64,-74.3203 190.16,-72.7781 186.055,-75.086 189.471,-75.8518 189.471,-75.8518 189.471,-75.8518 186.055,-75.086 188.781,-78.9255 182.64,-74.3203 182.64,-74.3203\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-103.8\">!a &amp; b</text>\n",

View file

@ -15,10 +15,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3+"
"version": "3.5.3"
},
"name": "",
"signature": "sha256:8de782e4035d4a93101b749825f0975f5f8cee034332d048014ba13dfa232983"
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
@ -111,7 +110,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fad7cc5f330> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2bb6866420> >"
]
},
{
@ -162,7 +161,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fad7cc5f4e0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2bb47205d0> >"
]
},
{
@ -208,7 +207,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fad7cc5f270> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2bb4720360> >"
]
},
{
@ -227,36 +226,36 @@
"<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-121 157,-121 157,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\"><title>1</title>\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;1</title>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-18C2.79388,-18 17.1543,-18 30.6317,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-18 30.9419,-21.1501 34.4419,-18 30.9419,-18.0001 30.9419,-18.0001 30.9419,-18.0001 34.4419,-18 30.9418,-14.8501 37.9419,-18 37.9419,-18\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\"><title>0</title>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"135\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"135\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"135\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;0</title>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.0888,-18C84.5562,-18 98.1196,-18 109.693,-18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"116.959,-18 109.959,-21.1501 113.459,-18 109.959,-18.0001 109.959,-18.0001 109.959,-18.0001 113.459,-18 109.959,-14.8501 116.959,-18 116.959,-18\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;0</title>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.584,-35.7817C131.004,-45.3149 132.143,-54 135,-54 137.098,-54 138.27,-49.3161 138.514,-43.0521\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"138.416,-35.7817 141.66,-42.7383 138.463,-39.2814 138.511,-42.7811 138.511,-42.7811 138.511,-42.7811 138.463,-39.2814 135.361,-42.8239 138.416,-35.7817 138.416,-35.7817\"/>\n",
"<text text-anchor=\"start\" x=\"130.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"127\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>0&#45;&gt;0</title>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.769,-35.249C126.057,-56.4346 127.801,-84 135,-84 141.412,-84 143.496,-62.1347 141.253,-42.3851\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.231,-35.249 144.342,-41.7316 140.727,-38.7137 141.223,-42.1783 141.223,-42.1783 141.223,-42.1783 140.727,-38.7137 138.105,-42.625 140.231,-35.249 140.231,-35.249\"/>\n",
"<text text-anchor=\"start\" x=\"128.5\" y=\"-87.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
@ -265,7 +264,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fad7cc5f330> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2bb47203f0> >"
]
}
],
@ -342,7 +341,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fad7cc5f4e0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2bb4720660> >"
]
}
],
@ -371,10 +370,11 @@
"evalue": "Command 'non-existing-command' returned non-zero exit status 127",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mCalledProcessError\u001b[0m Traceback (most recent call last)",
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mCalledProcessError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-4-765c7cc6937f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mspot\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mautomaton\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'non-existing-command|'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/home/adl/git/spot/python/spot.py\u001b[0m in \u001b[0;36mautomaton\u001b[0;34m(filename, **kwargs)\u001b[0m\n\u001b[1;32m 457\u001b[0m See `spot.automata` for a list of supported formats.\"\"\"\n\u001b[1;32m 458\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 459\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 460\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 461\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Failed to read automaton from {}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/adl/git/spot/python/spot.py\u001b[0m in \u001b[0;36mautomata\u001b[0;34m(timeout, ignore_abort, trust_hoa, debug, *sources)\u001b[0m\n\u001b[1;32m 442\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 443\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 444\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCalledProcessError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mret\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 445\u001b[0m \u001b[0;31m# deleting o explicitely now prevents Python 3.5 from\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 446\u001b[0m \u001b[0;31m# reporting the following error: \"<built-in function\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/adl/git/spot/python/spot/__init__.py\u001b[0m in \u001b[0;36mautomaton\u001b[0;34m(filename, **kwargs)\u001b[0m\n\u001b[1;32m 463\u001b[0m See `spot.automata` for a list of supported formats.\"\"\"\n\u001b[1;32m 464\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 465\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 466\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 467\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Failed to read automaton from {}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/adl/git/spot/python/spot/__init__.py\u001b[0m in \u001b[0;36mautomata\u001b[0;34m(timeout, ignore_abort, trust_hoa, no_sid, debug, *sources)\u001b[0m\n\u001b[1;32m 448\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 449\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 450\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCalledProcessError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mret\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 451\u001b[0m \u001b[0;31m# deleting o explicitely now prevents Python 3.5 from\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 452\u001b[0m \u001b[0;31m# reporting the following error: \"<built-in function\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mCalledProcessError\u001b[0m: Command 'non-existing-command' returned non-zero exit status 127"
]
}
@ -445,7 +445,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fad7cc5f780> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2bb4720570> >"
]
},
{
@ -453,9 +453,10 @@
"evalue": "Command 'ltl2tgba \"syntax U U error\"' returned non-zero exit status 2",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mCalledProcessError\u001b[0m Traceback (most recent call last)",
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mCalledProcessError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-5-1163f8abbaad>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mspot\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mautomata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"ltl2tgba 'a U b'|\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'ltl2tgba \"syntax U U error\"|'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mdisplay\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/adl/git/spot/python/spot.py\u001b[0m in \u001b[0;36mautomata\u001b[0;34m(timeout, ignore_abort, trust_hoa, debug, *sources)\u001b[0m\n\u001b[1;32m 442\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 443\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 444\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCalledProcessError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mret\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 445\u001b[0m \u001b[0;31m# deleting o explicitely now prevents Python 3.5 from\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 446\u001b[0m \u001b[0;31m# reporting the following error: \"<built-in function\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/adl/git/spot/python/spot/__init__.py\u001b[0m in \u001b[0;36mautomata\u001b[0;34m(timeout, ignore_abort, trust_hoa, no_sid, debug, *sources)\u001b[0m\n\u001b[1;32m 448\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mproc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 449\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 450\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCalledProcessError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mret\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 451\u001b[0m \u001b[0;31m# deleting o explicitely now prevents Python 3.5 from\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 452\u001b[0m \u001b[0;31m# reporting the following error: \"<built-in function\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mCalledProcessError\u001b[0m: Command 'ltl2tgba \"syntax U U error\"' returned non-zero exit status 2"
]
}
@ -483,25 +484,22 @@
"evalue": "Failed to read automaton from true|",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mStopIteration\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/home/adl/git/spot/python/spot/__init__.py\u001b[0m in \u001b[0;36mautomaton\u001b[0;34m(filename, **kwargs)\u001b[0m\n\u001b[1;32m 464\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 465\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 466\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mStopIteration\u001b[0m: ",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-6-f4e056a50029>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mspot\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mautomaton\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'true|'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/home/adl/git/spot/python/spot.py\u001b[0m in \u001b[0;36mautomaton\u001b[0;34m(filename, **kwargs)\u001b[0m\n\u001b[1;32m 459\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 461\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Failed to read automaton from {}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 462\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 463\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/adl/git/spot/python/spot/__init__.py\u001b[0m in \u001b[0;36mautomaton\u001b[0;34m(filename, **kwargs)\u001b[0m\n\u001b[1;32m 465\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mautomata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 466\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 467\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Failed to read automaton from {}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 468\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 469\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mRuntimeError\u001b[0m: Failed to read automaton from true|"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
}

View file

@ -70,10 +70,10 @@ while todo:
seen.add(s)
todo.add(s)
assert seen == {0, 1, 2, 3}
assert trans == [(1, 0), (1, 1), (1, 2), (1, 3),
(2, 1), (2, 2), (2, 3), (2, 4),
(0, 0), (3, 3), (4, 3), (4, 4)]
assert transi == [(1, 1, 3), (1, 2, 4), (2, 1, 6), (2, 2, 7),
(0, 0, 1), (3, 3, 10), (4, 4, 12)]
assert trans == [(0, 0), (0, 1), (0, 2), (0, 3),
(3, 0), (3, 1), (3, 3), (3, 4),
(1, 1), (2, 2), (4, 1), (4, 4)]
assert transi == [(0, 0, 1), (0, 3, 4), (3, 0, 7),
(3, 3, 9), (1, 1, 5), (2, 2, 6), (4, 4, 12)]
assert not spot.is_weak_automaton(a, si)

View file

@ -75,21 +75,21 @@ Acceptance: 4 Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))
properties: trans-labels explicit-labels trans-acc complete
properties: deterministic stutter-invariant
--BODY--
State: 0 "{₀[1]₀}"
[0&1] 1 {3}
[!0&1] 0
State: 0 "{₀[0]₀}"
[0&!1] 0 {1}
[!0&!1] 0
State: 1 "{₀[1]{₂[0]₂}₀}{₁[2]₁}"
[!0&1] 0
[0&1] 1 {3}
[!0&1] 2
State: 1 "{₀[0]{₂[2]₂}₀}{₁[1]₁}"
[0&!1] 0 {1}
[!0&!1] 0 {2}
State: 2 "{₀[1]₀}{₁[2]₁}"
[0&1] 1 {3}
[!0&1] 2
[0&1] 1 {3}
State: 2 "{₀[0]₀}{₁[1]₁}"
[0&!1] 0 {1}
[!0&!1] 0 {2}
[!0&1] 2
[0&1] 1 {3}
--END--"""
aut = spot.automaton("""
@ -166,4 +166,3 @@ State: 11 "{₀[1#1]{₁[0#0,0#1]{₂[1#0]₂}₁}₀}"
[0&1] 9 {1}
[!0&1] 1 {1}
--END--"""

View file

@ -1,7 +1,23 @@
{
"metadata": {
"name": "",
"signature": "sha256:1a85b698ebae51aaba0387d782d1cf5c6cdf54f69dd6b4b9c7189f8676eb4c88"
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.3"
},
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
@ -58,36 +74,36 @@
"<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-81 167,-81 167,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\"><title>1</title>\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;1</title>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-22C2.79388,-22 17.1543,-22 30.6317,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-22 30.9419,-25.1501 34.4419,-22 30.9419,-22.0001 30.9419,-22.0001 30.9419,-22.0001 34.4419,-22 30.9418,-18.8501 37.9419,-22 37.9419,-22\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.6208,-39.0373C48.3189,-48.8579 50.4453,-58 56,-58 60.166,-58 62.4036,-52.8576 62.7128,-46.1433\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.3792,-39.0373 65.8541,-45.8818 62.5434,-42.5335 62.7076,-46.0296 62.7076,-46.0296 62.7076,-46.0296 62.5434,-42.5335 59.561,-46.1774 62.3792,-39.0373 62.3792,-39.0373\"/>\n",
"<text text-anchor=\"start\" x=\"52.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\"><title>0</title>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"141\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"middle\" x=\"141\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>1&#45;&gt;0</title>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.1977,-22C85.0734,-22 99.3874,-22 111.887,-22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.997,-22 111.997,-25.1501 115.497,-22 111.997,-22.0001 111.997,-22.0001 111.997,-22.0001 115.497,-22 111.997,-18.8501 118.997,-22 118.997,-22\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;0</title>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M132.994,-42.5808C131.886,-52.8447 134.555,-62 141,-62 145.834,-62 148.544,-56.8502 149.129,-49.9451\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.006,-42.5808 152.273,-49.5273 149.065,-46.0803 149.123,-49.5798 149.123,-49.5798 149.123,-49.5798 149.065,-46.0803 145.973,-49.6324 149.006,-42.5808 149.006,-42.5808\"/>\n",
"<text text-anchor=\"start\" x=\"136.5\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
@ -96,7 +112,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f2e817bf6c0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f99b4744e40> >"
]
}
],
@ -125,240 +141,240 @@
"output_type": "pyout",
"prompt_number": 3,
"svg": [
"<svg height=\"295pt\" viewBox=\"0.00 0.00 734.00 295.42\" width=\"734pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(0.749788 0.749788) rotate(0) translate(4 390)\">\n",
"<svg height=\"265pt\" viewBox=\"0.00 0.00 734.00 264.84\" width=\"734pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(0.708119 0.708119) rotate(0) translate(4 370)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" points=\"-4,4 -4,-390 974.944,-390 974.944,4 -4,4\" stroke=\"none\"/>\n",
"<polygon fill=\"white\" points=\"-4,4 -4,-370 1032.55,-370 1032.55,4 -4,4\" stroke=\"none\"/>\n",
"<!-- 0 -->\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node2\"><title>1</title>\n",
"<ellipse cx=\"62.6978\" cy=\"-256\" fill=\"#ffffaa\" rx=\"24.8972\" ry=\"24.8972\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"62.6978\" y=\"-252.3\">init</text>\n",
"<ellipse cx=\"118\" cy=\"-250\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"118\" y=\"-246.3\">init</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge1\"><title>0-&gt;1</title>\n",
"<path d=\"M1.04399,-256C1.93865,-256 16.3331,-256 30.8732,-256\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"37.9642,-256 30.9643,-259.15 34.4642,-256 30.9642,-256 30.9642,-256 30.9642,-256 34.4642,-256 30.9642,-252.85 37.9642,-256 37.9642,-256\" stroke=\"black\"/>\n",
"<path d=\"M54.2216,-250C63.4559,-250 73.9612,-250 83.7008,-250\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"90.9659,-250 83.9659,-253.15 87.4659,-250 83.9659,-250 83.9659,-250 83.9659,-250 87.4659,-250 83.9658,-246.85 90.9659,-250 90.9659,-250\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node3\"><title>2</title>\n",
"<ellipse cx=\"482.365\" cy=\"-190\" fill=\"#ffffaa\" rx=\"37.4533\" ry=\"37.4533\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"482.365\" y=\"-193.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"482.365\" y=\"-178.8\">!a &amp; b</text>\n",
"<ellipse cx=\"539.969\" cy=\"-195\" fill=\"#ffffaa\" rx=\"37.4533\" ry=\"26.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"539.969\" y=\"-198.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"539.969\" y=\"-183.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge2\"><title>1-&gt;2</title>\n",
"<path d=\"M80.0021,-274.105C115.083,-310.768 201.199,-388.632 283.106,-368 356.606,-349.486 378.744,-332.757 424.06,-272 434.518,-257.978 432.39,-251.576 442.06,-237 445.119,-232.388 448.559,-227.709 452.097,-223.181\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"456.612,-217.543 454.696,-224.976 454.424,-220.275 452.237,-223.008 452.237,-223.008 452.237,-223.008 454.424,-220.275 449.778,-221.039 456.612,-217.543 456.612,-217.543\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"264.606\" y=\"-374.8\">!a &amp; b</text>\n",
"<path d=\"M134.194,-264.679C169.197,-296.674 258.802,-368.267 340.711,-348 412.401,-330.261 429.922,-312.696 481.664,-260 490.758,-250.738 491.221,-246.86 499.664,-237 503.862,-232.098 508.445,-226.994 512.951,-222.103\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"517.79,-216.899 515.33,-224.171 515.406,-219.462 513.023,-222.026 513.023,-222.026 513.023,-222.026 515.406,-219.462 510.716,-219.881 517.79,-216.899 517.79,-216.899\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"322.211\" y=\"-354.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node4\"><title>3</title>\n",
"<ellipse cx=\"192.751\" cy=\"-152\" fill=\"#ffffaa\" rx=\"35.2113\" ry=\"35.2113\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"192.751\" y=\"-155.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"192.751\" y=\"-140.8\">a &amp; b</text>\n",
"<ellipse cx=\"250.355\" cy=\"-154\" fill=\"#ffffaa\" rx=\"35.2113\" ry=\"26.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"250.355\" y=\"-157.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"250.355\" y=\"-142.8\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge3\"><title>1-&gt;3</title>\n",
"<path d=\"M82.3178,-240.878C102.354,-224.605 134.612,-198.406 158.925,-178.66\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"164.609,-174.044 161.161,-180.902 161.892,-176.25 159.175,-178.457 159.175,-178.457 159.175,-178.457 161.892,-176.25 157.189,-176.012 164.609,-174.044 164.609,-174.044\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.396\" y=\"-223.8\">a &amp; b</text>\n",
"<path d=\"M136.852,-236.853C157.767,-221.45 192.789,-195.658 218.211,-176.936\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"224.127,-172.579 220.359,-179.267 221.309,-174.655 218.491,-176.73 218.491,-176.73 218.491,-176.73 221.309,-174.655 216.623,-174.194 224.127,-172.579 224.127,-172.579\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"180\" y=\"-220.8\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node5\"><title>4</title>\n",
"<ellipse cx=\"338.583\" cy=\"-205\" fill=\"#ffffaa\" rx=\"37.4533\" ry=\"37.4533\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"338.583\" y=\"-208.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"338.583\" y=\"-193.8\">a &amp; !b</text>\n",
"<ellipse cx=\"396.187\" cy=\"-195\" fill=\"#ffffaa\" rx=\"37.4533\" ry=\"26.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"396.187\" y=\"-198.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"396.187\" y=\"-183.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge4\"><title>1-&gt;4</title>\n",
"<path d=\"M87.1814,-252.544C119.148,-247.749 178.107,-238.579 228.106,-229 250.158,-224.775 274.574,-219.483 294.742,-214.943\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"301.687,-213.372 295.555,-217.989 298.274,-214.145 294.86,-214.917 294.86,-214.917 294.86,-214.917 298.274,-214.145 294.165,-211.844 301.687,-213.372 301.687,-213.372\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"192.751\" y=\"-245.8\">a &amp; !b</text>\n",
"<path d=\"M144.886,-246.934C186.554,-241.693 270.897,-229.822 340.711,-212 345.355,-210.815 350.189,-209.47 354.975,-208.069\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"361.926,-205.988 356.124,-211.013 358.573,-206.992 355.22,-207.996 355.22,-207.996 355.22,-207.996 358.573,-206.992 354.317,-204.978 361.926,-205.988 361.926,-205.988\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"250.355\" y=\"-240.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g class=\"node\" id=\"node6\"><title>5</title>\n",
"<ellipse cx=\"628.025\" cy=\"-158\" fill=\"#ffffaa\" rx=\"35.2259\" ry=\"35.2259\" stroke=\"black\"/>\n",
"<ellipse cx=\"628.025\" cy=\"-158\" fill=\"none\" rx=\"39.2112\" ry=\"39.2112\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"628.025\" y=\"-161.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"628.025\" y=\"-146.8\">a &amp; b</text>\n",
"<ellipse cx=\"685.63\" cy=\"-147\" fill=\"#ffffaa\" rx=\"35.2259\" ry=\"26.7574\" stroke=\"black\"/>\n",
"<ellipse cx=\"685.63\" cy=\"-147\" fill=\"none\" rx=\"39.2112\" ry=\"30.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"685.63\" y=\"-150.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"685.63\" y=\"-135.8\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge5\"><title>2-&gt;5</title>\n",
"<path d=\"M519.246,-182.008C538.352,-177.752 562.03,-172.478 582.322,-167.958\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"589.345,-166.393 583.198,-170.99 585.929,-167.154 582.513,-167.915 582.513,-167.915 582.513,-167.915 585.929,-167.154 581.828,-164.84 589.345,-166.393 589.345,-166.393\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"555.67\" y=\"-180.8\">{a}</text>\n",
"<path d=\"M574.289,-183.867C594.558,-177.095 620.635,-168.382 642.349,-161.127\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"649.233,-158.827 643.592,-164.033 645.914,-159.936 642.594,-161.045 642.594,-161.045 642.594,-161.045 645.914,-159.936 641.596,-158.057 649.233,-158.827 649.233,-158.827\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"613.274\" y=\"-179.8\">{a}</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g class=\"node\" id=\"node7\"><title>6</title>\n",
"<ellipse cx=\"774.857\" cy=\"-158\" fill=\"#ffffaa\" rx=\"37.4556\" ry=\"37.4556\" stroke=\"black\"/>\n",
"<ellipse cx=\"774.857\" cy=\"-158\" fill=\"none\" rx=\"41.4533\" ry=\"41.4533\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"774.857\" y=\"-161.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"774.857\" y=\"-146.8\">!a &amp; b</text>\n",
"<ellipse cx=\"832.462\" cy=\"-148\" fill=\"#ffffaa\" rx=\"37.4556\" ry=\"26.7574\" stroke=\"black\"/>\n",
"<ellipse cx=\"832.462\" cy=\"-148\" fill=\"none\" rx=\"41.4533\" ry=\"30.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"832.462\" y=\"-151.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"832.462\" y=\"-136.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge6\"><title>2-&gt;6</title>\n",
"<path d=\"M514.661,-209.497C551.574,-229.937 614.593,-256.796 667.38,-239 694.942,-229.708 721.017,-210.125 740.465,-192.542\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"745.771,-187.646 742.763,-194.708 743.199,-190.02 740.627,-192.393 740.627,-192.393 740.627,-192.393 743.199,-190.02 738.49,-190.078 745.771,-187.646 745.771,-187.646\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"628.025\" y=\"-248.8\">{}</text>\n",
"<path d=\"M573.227,-207.569C610.507,-220.235 673.351,-235.819 724.985,-220 753.069,-211.396 780.422,-192.606 800.371,-176.378\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"805.796,-171.88 802.418,-178.773 803.102,-174.114 800.407,-176.348 800.407,-176.348 800.407,-176.348 803.102,-174.114 798.397,-173.923 805.796,-171.88 805.796,-171.88\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"685.63\" y=\"-230.8\">{}</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g class=\"node\" id=\"node8\"><title>7</title>\n",
"<ellipse cx=\"926.639\" cy=\"-61\" fill=\"#ffffaa\" rx=\"37.4556\" ry=\"37.4556\" stroke=\"black\"/>\n",
"<ellipse cx=\"926.639\" cy=\"-61\" fill=\"none\" rx=\"41.4533\" ry=\"41.4533\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"926.639\" y=\"-64.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"926.639\" y=\"-49.8\">a &amp; !b</text>\n",
"<ellipse cx=\"984.243\" cy=\"-61\" fill=\"#ffffaa\" rx=\"37.4556\" ry=\"26.7574\" stroke=\"black\"/>\n",
"<ellipse cx=\"984.243\" cy=\"-61\" fill=\"none\" rx=\"41.4533\" ry=\"30.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"984.243\" y=\"-64.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"984.243\" y=\"-49.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge7\"><title>2-&gt;7</title>\n",
"<path d=\"M510.516,-164.88C530.742,-147.339 559.75,-124.548 588.67,-110 683.063,-62.5163 809.91,-57.452 877.879,-58.7202\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"885.07,-58.8824 878.001,-61.8737 881.571,-58.8034 878.072,-58.7245 878.072,-58.7245 878.072,-58.7245 881.571,-58.8034 878.143,-55.5753 885.07,-58.8824 885.07,-58.8824\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"700.38\" y=\"-80.8\">{a, b}</text>\n",
"<path d=\"M561.908,-172.669C581.815,-152.7 613.507,-124.033 646.274,-107 740.039,-58.2596 867.402,-55.1871 935.553,-57.7503\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"942.762,-58.051 935.637,-60.9064 939.265,-57.9051 935.768,-57.7592 935.768,-57.7592 935.768,-57.7592 939.265,-57.9051 935.9,-54.6119 942.762,-58.051 942.762,-58.051\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"757.985\" y=\"-76.8\">{a, b}</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g class=\"node\" id=\"node9\"><title>8</title>\n",
"<ellipse cx=\"926.639\" cy=\"-289\" fill=\"#ffffaa\" rx=\"40.1285\" ry=\"40.1285\" stroke=\"black\"/>\n",
"<ellipse cx=\"926.639\" cy=\"-289\" fill=\"none\" rx=\"44.111\" ry=\"44.111\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"926.639\" y=\"-292.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"926.639\" y=\"-277.8\">!a &amp; !b</text>\n",
"<ellipse cx=\"984.243\" cy=\"-269\" fill=\"#ffffaa\" rx=\"40.1285\" ry=\"26.7574\" stroke=\"black\"/>\n",
"<ellipse cx=\"984.243\" cy=\"-269\" fill=\"none\" rx=\"44.111\" ry=\"30.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"984.243\" y=\"-272.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"984.243\" y=\"-257.8\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;8 -->\n",
"<g class=\"edge\" id=\"edge8\"><title>2-&gt;8</title>\n",
"<path d=\"M508.636,-216.791C518.105,-225.87 529.33,-235.58 540.67,-243 560.155,-255.749 566.391,-257.228 588.67,-264 693.763,-295.945 724.494,-290.456 834.334,-291 847.667,-291.066 851.002,-291.217 864.334,-291 867.837,-290.943 871.453,-290.867 875.095,-290.779\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"882.106,-290.595 875.191,-293.928 878.607,-290.687 875.108,-290.779 875.108,-290.779 875.108,-290.779 878.607,-290.687 875.026,-287.63 882.106,-290.595 882.106,-290.595\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"700.38\" y=\"-292.8\">{b}</text>\n",
"<path d=\"M566.189,-214.259C575.831,-220.927 587.181,-227.979 598.274,-233 618.41,-242.113 624.663,-241.37 646.274,-246 709.952,-259.643 726.118,-263.23 790.985,-269 835.685,-272.976 847.063,-270.556 891.938,-271 905.271,-271.132 908.607,-271.217 921.938,-271 925.442,-270.943 929.058,-270.867 932.699,-270.779\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"939.71,-270.595 932.795,-273.928 936.211,-270.687 932.713,-270.779 932.713,-270.779 932.713,-270.779 936.211,-270.687 932.63,-267.63 939.71,-270.595 939.71,-270.595\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"757.985\" y=\"-271.8\">{b}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge14\"><title>3-&gt;2</title>\n",
"<path d=\"M227.758,-145.527C264.685,-139.647 325.2,-133.376 376.06,-144 399.22,-148.838 423.521,-159.065 442.935,-168.65\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"449.323,-171.868 441.655,-171.532 446.198,-170.293 443.072,-168.719 443.072,-168.719 443.072,-168.719 446.198,-170.293 444.489,-165.906 449.323,-171.868 449.323,-171.868\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"338.583\" y=\"-147.8\">{a}</text>\n",
"<g class=\"edge\" id=\"edge10\"><title>3-&gt;2</title>\n",
"<path d=\"M284.427,-146.736C321.317,-139.886 382.531,-132.27 433.664,-144 458.854,-149.779 485.017,-162.411 504.962,-173.657\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"511.211,-177.249 503.572,-176.491 508.176,-175.504 505.142,-173.76 505.142,-173.76 505.142,-173.76 508.176,-175.504 506.712,-171.029 511.211,-177.249 511.211,-177.249\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"396.187\" y=\"-147.8\">{a}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge13\"><title>3-&gt;3</title>\n",
"<path d=\"M179.627,-185.086C179.558,-196.323 183.933,-205.355 192.751,-205.355 199.64,-205.355 203.817,-199.843 205.282,-192.073\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"205.875,-185.086 208.422,-192.327 205.579,-188.574 205.283,-192.061 205.283,-192.061 205.283,-192.061 205.579,-188.574 202.145,-191.795 205.875,-185.086 205.875,-185.086\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"192.751\" y=\"-209.155\">{}</text>\n",
"<g class=\"edge\" id=\"edge9\"><title>3-&gt;3</title>\n",
"<path d=\"M237.346,-179.37C236.448,-189.924 240.785,-198.87 250.355,-198.87 257.683,-198.87 261.942,-193.626 263.133,-186.431\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"263.365,-179.37 266.284,-186.47 263.25,-182.868 263.135,-186.366 263.135,-186.366 263.135,-186.366 263.25,-182.868 259.987,-186.263 263.365,-179.37 263.365,-179.37\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"250.355\" y=\"-202.67\">{}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge15\"><title>3-&gt;4</title>\n",
"<path d=\"M222.222,-171.683C229.739,-176.234 238.017,-180.702 246.106,-184 261.284,-190.188 278.659,-194.756 294.16,-198.021\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"301.135,-199.43 293.65,-201.131 297.705,-198.737 294.274,-198.044 294.274,-198.044 294.274,-198.044 297.705,-198.737 294.898,-194.956 301.135,-199.43 301.135,-199.43\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"264.606\" y=\"-199.8\">{b}</text>\n",
"<g class=\"edge\" id=\"edge11\"><title>3-&gt;4</title>\n",
"<path d=\"M277.29,-171.585C285.43,-176.344 294.662,-181.001 303.711,-184 318.716,-188.973 335.769,-191.746 351.052,-193.276\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"358.396,-193.931 351.144,-196.446 354.91,-193.62 351.424,-193.309 351.424,-193.309 351.424,-193.309 354.91,-193.62 351.704,-190.171 358.396,-193.931 358.396,-193.931\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"322.211\" y=\"-196.8\">{b}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge9\"><title>3-&gt;5</title>\n",
"<path d=\"M226.397,-140.622C232.858,-138.77 239.641,-137.1 246.106,-136 366.378,-115.533 510.752,-135.902 582.298,-148.943\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"589.408,-150.259 581.951,-152.082 585.966,-149.622 582.525,-148.985 582.525,-148.985 582.525,-148.985 585.966,-149.622 583.098,-145.887 589.408,-150.259 589.408,-150.259\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"409.06\" y=\"-133.8\">{}</text>\n",
"<g class=\"edge\" id=\"edge13\"><title>3-&gt;5</title>\n",
"<path d=\"M281.956,-141.797C288.997,-139.463 296.529,-137.335 303.711,-136 327.76,-131.531 334.264,-134.839 358.711,-134 400.02,-132.582 410.335,-131.667 451.664,-131 464.996,-130.785 468.341,-130.476 481.664,-131 535.973,-133.137 598.267,-138.48 639.36,-142.406\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"646.526,-143.096 639.256,-145.56 643.042,-142.761 639.559,-142.425 639.559,-142.425 639.559,-142.425 643.042,-142.761 639.861,-139.289 646.526,-143.096 646.526,-143.096\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"466.664\" y=\"-134.8\">{}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge10\"><title>3-&gt;6</title>\n",
"<path d=\"M224.377,-135.817C231.353,-132.741 238.851,-129.896 246.106,-128 427.419,-80.611 484.163,-70.6112 667.38,-110 689.822,-114.825 713.237,-124.768 732.376,-134.36\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"738.695,-137.592 731.028,-137.209 735.579,-135.998 732.463,-134.405 732.463,-134.405 732.463,-134.405 735.579,-135.998 733.897,-131.6 738.695,-137.592 738.695,-137.592\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"482.365\" y=\"-91.8\">{a}</text>\n",
"<g class=\"edge\" id=\"edge14\"><title>3-&gt;6</title>\n",
"<path d=\"M279.776,-138.836C287.362,-135.387 295.687,-132.119 303.711,-130 485.008,-82.1242 540.631,-72.7326 724.985,-107 747.556,-111.196 771.514,-119.996 790.976,-128.371\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"797.396,-131.188 789.72,-131.26 794.191,-129.782 790.986,-128.375 790.986,-128.375 790.986,-128.375 794.191,-129.782 792.252,-125.491 797.396,-131.188 797.396,-131.188\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"539.969\" y=\"-92.8\">{a}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge11\"><title>3-&gt;7</title>\n",
"<path d=\"M207.136,-119.392C227.894,-74.7296 272.369,-0 337.583,-0 337.583,-0 337.583,-0 775.857,-0 815.143,-0 856.228,-18.222 885.41,-34.7474\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"891.821,-38.4592 884.185,-37.6779 888.792,-36.7055 885.763,-34.9518 885.763,-34.9518 885.763,-34.9518 888.792,-36.7055 887.342,-32.2257 891.821,-38.4592 891.821,-38.4592\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"555.67\" y=\"-3.8\">{b}</text>\n",
"<g class=\"edge\" id=\"edge15\"><title>3-&gt;7</title>\n",
"<path d=\"M261.396,-128.224C280.358,-84.3838 325.861,-0 395.187,-0 395.187,-0 395.187,-0 833.462,-0 874.485,-0 917.471,-19.8698 946.816,-36.9288\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"952.866,-40.5182 945.238,-39.6552 949.856,-38.7322 946.846,-36.9462 946.846,-36.9462 946.846,-36.9462 949.856,-38.7322 948.453,-34.2371 952.866,-40.5182 952.866,-40.5182\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"613.274\" y=\"-3.8\">{b}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;8 -->\n",
"<g class=\"edge\" id=\"edge12\"><title>3-&gt;8</title>\n",
"<path d=\"M209.097,-183.411C215.207,-196.222 222.181,-211.233 228.106,-225 257.834,-294.071 262.386,-354 337.583,-354 337.583,-354 337.583,-354 775.857,-354 814.76,-354 854.998,-335.32 883.959,-317.988\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"889.963,-314.317 885.634,-320.656 886.977,-316.142 883.991,-317.968 883.991,-317.968 883.991,-317.968 886.977,-316.142 882.348,-315.281 889.963,-314.317 889.963,-314.317\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"555.67\" y=\"-357.8\">{a, b}</text>\n",
"<g class=\"edge\" id=\"edge16\"><title>3-&gt;8</title>\n",
"<path d=\"M264.11,-178.915C278.761,-207.451 301.126,-250.719 303.711,-254 337.135,-296.426 341.177,-334 395.187,-334 395.187,-334 395.187,-334 833.462,-334 874.746,-334 917.534,-312.962 946.753,-294.824\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"952.777,-291.006 948.551,-297.414 949.821,-292.88 946.864,-294.754 946.864,-294.754 946.864,-294.754 949.821,-292.88 945.178,-292.093 952.777,-291.006 952.777,-291.006\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"613.274\" y=\"-337.8\">{a, b}</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g class=\"node\" id=\"node10\"><title>9</title>\n",
"<ellipse cx=\"482.365\" cy=\"-286\" fill=\"#ffffaa\" rx=\"40.1111\" ry=\"40.1111\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"482.365\" y=\"-289.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"482.365\" y=\"-274.8\">!a &amp; !b</text>\n",
"<ellipse cx=\"539.969\" cy=\"-273\" fill=\"#ffffaa\" rx=\"40.1111\" ry=\"26.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"539.969\" y=\"-276.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"539.969\" y=\"-261.8\">!a &amp; !b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;9 -->\n",
"<g class=\"edge\" id=\"edge16\"><title>3-&gt;9</title>\n",
"<path d=\"M208.952,-183.615C226.27,-215.577 257.875,-263.141 301.106,-284 343.123,-304.273 397.325,-301.615 435.276,-295.857\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"442.641,-294.67 436.231,-298.894 439.186,-295.227 435.73,-295.784 435.73,-295.784 435.73,-295.784 439.186,-295.227 435.229,-292.674 442.641,-294.67 442.641,-294.67\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"338.583\" y=\"-302.8\">{a, b}</text>\n",
"<g class=\"edge\" id=\"edge12\"><title>3-&gt;9</title>\n",
"<path d=\"M266.4,-178.295C284.53,-205.019 317.728,-246.497 358.711,-264 401.529,-282.287 455.372,-282.377 493.015,-279.234\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"500.32,-278.566 493.635,-282.34 496.834,-278.885 493.349,-279.203 493.349,-279.203 493.349,-279.203 496.834,-278.885 493.062,-276.066 500.32,-278.566 500.32,-278.566\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"396.187\" y=\"-283.8\">{a, b}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge18\"><title>4-&gt;2</title>\n",
"<path d=\"M376.095,-201.137C394.949,-199.143 418.082,-196.695 437.857,-194.603\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"444.976,-193.85 438.346,-197.719 441.496,-194.218 438.015,-194.586 438.015,-194.586 438.015,-194.586 441.496,-194.218 437.684,-191.454 444.976,-193.85 444.976,-193.85\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"409.06\" y=\"-202.8\">{a, b}</text>\n",
"<path d=\"M433.7,-195C452.407,-195 475.328,-195 495.001,-195\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"502.088,-195 495.088,-198.15 498.588,-195 495.088,-195 495.088,-195 495.088,-195 498.588,-195 495.088,-191.85 502.088,-195 502.088,-195\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"466.664\" y=\"-198.8\">{a, b}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge17\"><title>4-&gt;3</title>\n",
"<path d=\"M309.772,-180.571C301.655,-174.596 292.444,-168.826 283.106,-165 268.272,-158.921 251.03,-155.624 235.672,-153.857\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"228.302,-153.107 235.585,-150.682 231.784,-153.461 235.266,-153.816 235.266,-153.816 235.266,-153.816 231.784,-153.461 234.947,-156.95 228.302,-153.107 228.302,-153.107\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"264.606\" y=\"-168.8\">{b}</text>\n",
"<path d=\"M367.838,-177.29C359.434,-172.587 349.956,-167.991 340.711,-165 325.63,-160.121 308.477,-157.381 293.258,-155.851\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"285.96,-155.193 293.215,-152.685 289.446,-155.508 292.932,-155.822 292.932,-155.822 292.932,-155.822 289.446,-155.508 292.649,-158.959 285.96,-155.193 285.96,-155.193\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"322.211\" y=\"-168.8\">{b}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge19\"><title>4-&gt;4</title>\n",
"<path d=\"M325.461,-240.213C325.596,-251.517 329.97,-260.477 338.583,-260.477 345.312,-260.477 349.454,-255.008 351.008,-247.226\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"351.705,-240.213 354.147,-247.49 351.359,-243.696 351.012,-247.179 351.012,-247.179 351.012,-247.179 351.359,-243.696 347.878,-246.867 351.705,-240.213 351.705,-240.213\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"338.583\" y=\"-264.277\">{}</text>\n",
"<path d=\"M383.178,-220.37C382.28,-230.924 386.617,-239.87 396.187,-239.87 403.515,-239.87 407.774,-234.626 408.965,-227.431\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"409.197,-220.37 412.116,-227.47 409.082,-223.868 408.967,-227.366 408.967,-227.366 408.967,-227.366 409.082,-223.868 405.819,-227.263 409.197,-220.37 409.197,-220.37\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"396.187\" y=\"-243.67\">{}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;9 -->\n",
"<g class=\"edge\" id=\"edge20\"><title>4-&gt;9</title>\n",
"<path d=\"M371.402,-223.178C391.924,-234.903 418.8,-250.257 440.845,-262.851\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"446.925,-266.325 439.285,-265.587 443.886,-264.589 440.847,-262.852 440.847,-262.852 440.847,-262.852 443.886,-264.589 442.41,-260.117 446.925,-266.325 446.925,-266.325\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"409.06\" y=\"-256.8\">{a}</text>\n",
"<path d=\"M426.565,-211.162C448.455,-223.204 478.5,-239.733 502.02,-252.673\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"508.158,-256.05 500.507,-255.435 505.092,-254.363 502.025,-252.675 502.025,-252.675 502.025,-252.675 505.092,-254.363 503.543,-249.916 508.158,-256.05 508.158,-256.05\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"466.664\" y=\"-244.8\">{a}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge21\"><title>5-&gt;5</title>\n",
"<path d=\"M614.546,-195.236C614.884,-206.528 619.377,-215.355 628.025,-215.355 634.782,-215.355 639.002,-209.968 640.686,-202.226\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"641.505,-195.236 643.819,-202.555 641.098,-198.712 640.691,-202.189 640.691,-202.189 640.691,-202.189 641.098,-198.712 637.562,-201.822 641.505,-195.236 641.505,-195.236\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"628.025\" y=\"-219.155\">{}</text>\n",
"<path d=\"M672.159,-176.099C671.718,-186.944 676.208,-195.87 685.63,-195.87 692.843,-195.87 697.166,-190.638 698.598,-183.318\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"699.1,-176.099 701.756,-183.301 698.857,-179.591 698.614,-183.082 698.614,-183.082 698.614,-183.082 698.857,-179.591 695.472,-182.864 699.1,-176.099 699.1,-176.099\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"685.63\" y=\"-199.67\">{}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge22\"><title>5-&gt;6</title>\n",
"<path d=\"M666.037,-146.689C672.431,-145.156 679.056,-143.827 685.38,-143 698.601,-141.271 702.152,-141.33 715.38,-143 719.444,-143.513 723.629,-144.219 727.805,-145.047\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"734.8,-146.543 727.296,-148.159 731.377,-145.811 727.955,-145.078 727.955,-145.078 727.955,-145.078 731.377,-145.811 728.613,-141.998 734.8,-146.543 734.8,-146.543\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"700.38\" y=\"-146.8\">{a}</text>\n",
"<path d=\"M723.792,-139.455C730.169,-138.433 736.749,-137.549 742.985,-137 756.267,-135.831 759.709,-135.762 772.985,-137 777.004,-137.375 781.159,-137.891 785.315,-138.498\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"792.284,-139.594 784.88,-141.618 788.827,-139.05 785.369,-138.506 785.369,-138.506 785.369,-138.506 788.827,-139.05 785.859,-135.395 792.284,-139.594 792.284,-139.594\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"757.985\" y=\"-140.8\">{a}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge23\"><title>5-&gt;7</title>\n",
"<path d=\"M659.754,-134.347C679.693,-120.18 706.822,-103.027 733.38,-93 780.616,-75.1666 838.104,-67.2507 877.845,-63.7498\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"885.052,-63.146 878.34,-66.8694 881.565,-63.4382 878.077,-63.7304 878.077,-63.7304 878.077,-63.7304 881.565,-63.4382 877.814,-60.5914 885.052,-63.146 885.052,-63.146\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"774.857\" y=\"-96.8\">{b}</text>\n",
"<path d=\"M717.018,-128.04C737.263,-116.236 764.855,-101.695 790.985,-93 838.741,-77.1092 895.906,-68.8814 935.425,-64.7764\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"942.593,-64.057 935.942,-67.8904 939.11,-64.4066 935.628,-64.7562 935.628,-64.7562 935.628,-64.7562 939.11,-64.4066 935.313,-61.6219 942.593,-64.057 942.593,-64.057\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"832.462\" y=\"-96.8\">{b}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;8 -->\n",
"<g class=\"edge\" id=\"edge24\"><title>5-&gt;8</title>\n",
"<path d=\"M656.84,-185.638C676.645,-203.852 704.731,-226.867 733.38,-241 778.691,-263.352 835.286,-275.855 875.308,-282.454\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"882.581,-283.618 875.171,-285.622 879.125,-283.065 875.669,-282.512 875.669,-282.512 875.669,-282.512 879.125,-283.065 876.167,-279.401 882.581,-283.618 882.581,-283.618\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"774.857\" y=\"-274.8\">{a, b}</text>\n",
"<path d=\"M712.809,-169.774C732.946,-186.203 762.126,-207.739 790.985,-221 836.894,-242.096 893.401,-254.784 933.238,-261.769\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"940.477,-263.007 933.046,-264.932 937.027,-262.417 933.577,-261.827 933.577,-261.827 933.577,-261.827 937.027,-262.417 934.108,-258.722 940.477,-263.007 940.477,-263.007\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"832.462\" y=\"-253.8\">{a, b}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge25\"><title>6-&gt;5</title>\n",
"<path d=\"M733.217,-158C715.031,-158 693.51,-158 674.762,-158\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"667.457,-158 674.457,-154.85 670.957,-158 674.457,-158 674.457,-158 674.457,-158 670.957,-158 674.457,-161.15 667.457,-158 667.457,-158\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"700.38\" y=\"-161.8\">{a}</text>\n",
"<path d=\"M790.94,-151.354C775.882,-152.2 758.653,-152.694 742.985,-152 739.397,-151.841 735.685,-151.626 731.956,-151.373\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"724.795,-150.846 732.007,-148.218 728.286,-151.103 731.776,-151.36 731.776,-151.36 731.776,-151.36 728.286,-151.103 731.545,-154.501 724.795,-150.846 724.795,-150.846\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"757.985\" y=\"-156.8\">{a}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge26\"><title>6-&gt;6</title>\n",
"<path d=\"M761.024,-197.182C761.502,-208.618 766.113,-217.477 774.857,-217.477 781.688,-217.477 785.997,-212.07 787.784,-204.251\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"788.691,-197.182 790.924,-204.526 788.245,-200.654 787.8,-204.125 787.8,-204.125 787.8,-204.125 788.245,-200.654 784.675,-203.724 788.691,-197.182 788.691,-197.182\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"774.857\" y=\"-221.277\">{}</text>\n",
"<path d=\"M818.6,-177.584C818.302,-188.208 822.922,-196.87 832.462,-196.87 839.765,-196.87 844.185,-191.793 845.722,-184.644\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"846.323,-177.584 848.868,-184.825 846.026,-181.071 845.729,-184.558 845.729,-184.558 845.729,-184.558 846.026,-181.071 842.591,-184.291 846.323,-177.584 846.323,-177.584\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"832.462\" y=\"-200.67\">{}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge27\"><title>6-&gt;7</title>\n",
"<path d=\"M810.22,-135.746C832.578,-121.267 861.832,-102.322 885.294,-87.1277\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"891.436,-83.1502 887.273,-89.5993 888.498,-85.0527 885.56,-86.9553 885.56,-86.9553 885.56,-86.9553 888.498,-85.0527 883.848,-84.3113 891.436,-83.1502 891.436,-83.1502\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"849.334\" y=\"-122.8\">{a, b}</text>\n",
"<path d=\"M866.363,-129.701C883.073,-120.333 903.657,-108.68 921.938,-98 929.486,-93.591 937.512,-88.8128 945.184,-84.2007\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"951.528,-80.3775 947.159,-86.6888 948.53,-82.1842 945.533,-83.9909 945.533,-83.9909 945.533,-83.9909 948.53,-82.1842 943.907,-81.293 951.528,-80.3775 951.528,-80.3775\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"906.938\" y=\"-118.8\">{a, b}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g class=\"edge\" id=\"edge28\"><title>6-&gt;8</title>\n",
"<path d=\"M806.529,-184.826C829.843,-205.216 862.064,-233.397 887.115,-255.307\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"892.669,-260.165 885.327,-257.927 890.035,-257.861 887.4,-255.556 887.4,-255.556 887.4,-255.556 890.035,-257.861 889.474,-253.185 892.669,-260.165 892.669,-260.165\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"849.334\" y=\"-239.8\">{b}</text>\n",
"<path d=\"M861.401,-170.328C878.835,-184.283 901.727,-202.649 921.938,-219 930.869,-226.225 940.508,-234.066 949.439,-241.35\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"954.896,-245.802 947.481,-243.818 952.184,-243.59 949.473,-241.377 949.473,-241.377 949.473,-241.377 952.184,-243.59 951.464,-238.936 954.896,-245.802 954.896,-245.802\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"906.938\" y=\"-222.8\">{b}</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text": [
"<IPython.core.display.SVG at 0x7f2e80d6fc50>"
"<IPython.core.display.SVG object>"
]
}
],
@ -386,124 +402,124 @@
"output_type": "pyout",
"prompt_number": 4,
"svg": [
"<svg height=\"161pt\" viewBox=\"0.00 0.00 715.35 161.00\" width=\"715pt\" 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",
"<svg height=\"138pt\" viewBox=\"0.00 0.00 734.00 137.69\" width=\"734pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(0.949605 0.949605) rotate(0) translate(4 141)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" points=\"-4,4 -4,-157 711.349,-157 711.349,4 -4,4\" stroke=\"none\"/>\n",
"<polygon fill=\"white\" points=\"-4,4 -4,-141 768.953,-141 768.953,4 -4,4\" stroke=\"none\"/>\n",
"<!-- 0 -->\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node2\"><title>1</title>\n",
"<ellipse cx=\"62.6978\" cy=\"-68\" fill=\"#ffffaa\" rx=\"24.8972\" ry=\"24.8972\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"62.6978\" y=\"-64.3\">init</text>\n",
"<ellipse cx=\"118\" cy=\"-60\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"118\" y=\"-56.3\">init</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge1\"><title>0-&gt;1</title>\n",
"<path d=\"M1.04399,-68C1.93865,-68 16.3331,-68 30.8732,-68\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"37.9642,-68 30.9643,-71.1501 34.4642,-68 30.9642,-68.0001 30.9642,-68.0001 30.9642,-68.0001 34.4642,-68 30.9642,-64.8501 37.9642,-68 37.9642,-68\" stroke=\"black\"/>\n",
"<path d=\"M54.2216,-60C63.4559,-60 73.9612,-60 83.7008,-60\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"90.9659,-60 83.9659,-63.1501 87.4659,-60 83.9659,-60.0001 83.9659,-60.0001 83.9659,-60.0001 87.4659,-60 83.9658,-56.8501 90.9659,-60 90.9659,-60\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node3\"><title>2</title>\n",
"<polygon fill=\"#ffffaa\" points=\"479.349,-148 425.349,-148 425.349,-110 479.349,-110 479.349,-148\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"452.349\" y=\"-132.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"452.349\" y=\"-117.8\">!a &amp; b</text>\n",
"<polygon fill=\"#ffffaa\" points=\"536.953,-131 482.953,-131 482.953,-93 536.953,-93 536.953,-131\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"509.953\" y=\"-115.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"509.953\" y=\"-100.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge2\"><title>1-&gt;2</title>\n",
"<path d=\"M85.1066,-78.4223C91.5527,-81.3783 98.6955,-84.476 105.396,-87 183.158,-116.294 202.189,-128.87 284.396,-141 317.351,-145.863 326.044,-141.694 359.349,-141 380.696,-140.555 386.184,-141.822 407.349,-139 410.85,-138.533 414.484,-137.92 418.093,-137.228\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"424.966,-135.815 418.744,-140.31 421.537,-136.52 418.109,-137.225 418.109,-137.225 418.109,-137.225 421.537,-136.52 417.475,-134.139 424.966,-135.815 424.966,-135.815\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"247.896\" y=\"-141.8\">!a &amp; b</text>\n",
"<path d=\"M140.661,-70.1783C147.693,-73.2591 155.593,-76.488 163,-79 240.685,-105.346 260.59,-113.924 342,-124 375.06,-128.092 383.648,-124.694 416.953,-124 438.301,-123.555 443.789,-124.822 464.953,-122 468.455,-121.533 472.088,-120.92 475.698,-120.228\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"482.57,-118.815 476.348,-123.31 479.142,-119.52 475.714,-120.225 475.714,-120.225 475.714,-120.225 479.142,-119.52 475.079,-117.139 482.57,-118.815 482.57,-118.815\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"305.5\" y=\"-125.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node4\"><title>3</title>\n",
"<polygon fill=\"#ffffaa\" points=\"211.396,-87 157.396,-87 157.396,-49 211.396,-49 211.396,-87\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"184.396\" y=\"-71.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"184.396\" y=\"-56.8\">a &amp; b</text>\n",
"<polygon fill=\"#ffffaa\" points=\"269,-79 215,-79 215,-41 269,-41 269,-79\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"242\" y=\"-63.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"242\" y=\"-48.8\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge3\"><title>1-&gt;3</title>\n",
"<path d=\"M87.6328,-68C105.497,-68 130.135,-68 149.947,-68\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"157.006,-68 150.006,-71.1501 153.506,-68 150.006,-68.0001 150.006,-68.0001 150.006,-68.0001 153.506,-68 150.006,-64.8501 157.006,-68 157.006,-68\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.396\" y=\"-71.8\">a &amp; b</text>\n",
"<path d=\"M145.172,-60C163.505,-60 188.15,-60 207.856,-60\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"214.871,-60 207.871,-63.1501 211.371,-60 207.871,-60.0001 207.871,-60.0001 207.871,-60.0001 211.371,-60 207.871,-56.8501 214.871,-60 214.871,-60\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"180\" y=\"-63.8\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node5\"><title>4</title>\n",
"<ellipse cx=\"321.872\" cy=\"-65\" fill=\"#ffffaa\" rx=\"37.4533\" ry=\"37.4533\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"321.872\" y=\"-68.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"321.872\" y=\"-53.8\">a &amp; !b</text>\n",
"<ellipse cx=\"379.477\" cy=\"-55\" fill=\"#ffffaa\" rx=\"37.4533\" ry=\"26.7407\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"379.477\" y=\"-58.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"379.477\" y=\"-43.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge4\"><title>1-&gt;4</title>\n",
"<path d=\"M84.3656,-55.3514C102.769,-44.8778 130.817,-30.8075 157.396,-25 199.902,-15.7122 248.27,-30.763 281.299,-44.9807\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"288.106,-47.9929 280.43,-48.041 284.905,-46.5767 281.705,-45.1604 281.705,-45.1604 281.705,-45.1604 284.905,-46.5767 282.979,-42.2798 288.106,-47.9929 288.106,-47.9929\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"184.396\" y=\"-28.8\">a &amp; !b</text>\n",
"<path d=\"M138.748,-48.1679C157.586,-37.6194 187.14,-22.9544 215,-17 258.628,-7.67553 308.546,-23.0974 341.624,-37.0003\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"348.418,-39.9345 340.743,-40.0511 345.205,-38.5469 341.992,-37.1593 341.992,-37.1593 341.992,-37.1593 345.205,-38.5469 343.241,-34.2674 348.418,-39.9345 348.418,-39.9345\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"242\" y=\"-20.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g class=\"node\" id=\"node6\"><title>5</title>\n",
"<polygon fill=\"#ffffaa\" points=\"589.349,-123 535.349,-123 535.349,-85 589.349,-85 589.349,-123\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"593.349,-127 531.349,-127 531.349,-81 593.349,-81 593.349,-127\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"562.349\" y=\"-107.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"562.349\" y=\"-92.8\">a &amp; b</text>\n",
"<polygon fill=\"#ffffaa\" points=\"646.953,-113 592.953,-113 592.953,-75 646.953,-75 646.953,-113\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"650.953,-117 588.953,-117 588.953,-71 650.953,-71 650.953,-117\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"619.953\" y=\"-97.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"619.953\" y=\"-82.8\">a &amp; b</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge5\"><title>2-&gt;5</title>\n",
"<path d=\"M479.493,-122.948C492.905,-119.844 509.474,-116.008 524.19,-112.602\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"531.242,-110.969 525.133,-115.617 527.833,-111.758 524.423,-112.548 524.423,-112.548 524.423,-112.548 527.833,-111.758 523.712,-109.479 531.242,-110.969 531.242,-110.969\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"505.349\" y=\"-121.8\">{a}</text>\n",
"<path d=\"M537.097,-107.643C550.509,-105.407 567.079,-102.646 581.794,-100.193\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"588.847,-99.0177 582.46,-103.276 585.394,-99.5932 581.942,-100.169 581.942,-100.169 581.942,-100.169 585.394,-99.5932 581.424,-97.0615 588.847,-99.0177 588.847,-99.0177\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"562.953\" y=\"-108.8\">{a}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge7\"><title>3-&gt;2</title>\n",
"<path d=\"M211.569,-81.698C231.123,-91.3492 258.782,-103.791 284.396,-111 324.55,-122.302 335.856,-119.702 377.349,-124 390.625,-125.375 405.282,-126.456 418.026,-127.256\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"425.283,-127.695 418.105,-130.417 421.789,-127.484 418.295,-127.273 418.295,-127.273 418.295,-127.273 421.789,-127.484 418.485,-124.128 425.283,-127.695 425.283,-127.695\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"321.872\" y=\"-125.8\">{a}</text>\n",
"<g class=\"edge\" id=\"edge6\"><title>3-&gt;2</title>\n",
"<path d=\"M269.277,-71.5305C275.054,-73.8451 281.184,-76.1356 287,-78 351.879,-98.7976 431.62,-107.045 475.691,-110.185\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"482.711,-110.663 475.513,-113.33 479.219,-110.425 475.728,-110.187 475.728,-110.187 475.728,-110.187 479.219,-110.425 475.942,-107.044 482.711,-110.663 482.711,-110.663\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"379.477\" y=\"-108.8\">{a}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge8\"><title>3-&gt;4</title>\n",
"<path d=\"M211.405,-55.4294C217.198,-53.1796 223.403,-51.1784 229.396,-50 245.554,-46.8226 263.411,-48.582 279.026,-51.8391\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"286.029,-53.4287 278.505,-54.951 282.616,-52.6539 279.203,-51.8791 279.203,-51.8791 279.203,-51.8791 282.616,-52.6539 279.9,-48.8073 286.029,-53.4287 286.029,-53.4287\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"247.896\" y=\"-53.8\">{b}</text>\n",
"<g class=\"edge\" id=\"edge7\"><title>3-&gt;4</title>\n",
"<path d=\"M269.009,-47.4294C274.803,-45.1796 281.007,-43.1784 287,-42 303.379,-38.7793 321.557,-40.3251 337.366,-43.2944\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"344.448,-44.7469 336.957,-46.4261 341.019,-44.0436 337.59,-43.3404 337.59,-43.3404 337.59,-43.3404 341.019,-44.0436 338.223,-40.2546 344.448,-44.7469 344.448,-44.7469\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"305.5\" y=\"-45.8\">{b}</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g class=\"node\" id=\"node7\"><title>6</title>\n",
"<polygon fill=\"#ffffaa\" points=\"703.349,-85 649.349,-85 649.349,-47 703.349,-47 703.349,-85\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"707.349,-89 645.349,-89 645.349,-43 707.349,-43 707.349,-89\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"676.349\" y=\"-69.8\">0</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"676.349\" y=\"-54.8\">!a &amp; b</text>\n",
"<polygon fill=\"#ffffaa\" points=\"760.953,-75 706.953,-75 706.953,-37 760.953,-37 760.953,-75\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"764.953,-79 702.953,-79 702.953,-33 764.953,-33 764.953,-79\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"733.953\" y=\"-59.8\">1</text>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"733.953\" y=\"-44.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge6\"><title>3-&gt;6</title>\n",
"<path d=\"M207.657,-48.6958C233.192,-28.592 277.186,-0 320.872,-0 320.872,-0 320.872,-0 563.349,-0 595.255,-0 626.076,-20.1262 647.282,-38.1505\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"652.73,-42.9164 645.387,-40.6786 650.096,-40.612 647.461,-38.3076 647.461,-38.3076 647.461,-38.3076 650.096,-40.612 649.535,-35.9367 652.73,-42.9164 652.73,-42.9164\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"452.349\" y=\"-3.8\">{a}</text>\n",
"<g class=\"edge\" id=\"edge8\"><title>3-&gt;6</title>\n",
"<path d=\"M268.995,-40.6854C295.22,-23.1454 337.576,-0 378.477,-0 378.477,-0 378.477,-0 620.953,-0 649.369,-0 677.966,-14.5993 699.151,-28.8894\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"704.923,-32.8993 697.377,-31.4926 702.049,-30.9025 699.174,-28.9056 699.174,-28.9056 699.174,-28.9056 702.049,-30.9025 700.971,-26.3186 704.923,-32.8993 704.923,-32.8993\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"509.953\" y=\"-3.8\">{a}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge10\"><title>4-&gt;2</title>\n",
"<path d=\"M355.625,-81.3155C374.995,-90.9647 399.44,-103.142 418.778,-112.775\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"425.126,-115.937 417.456,-115.635 421.993,-114.376 418.86,-112.816 418.86,-112.816 418.86,-112.816 421.993,-114.376 420.265,-109.996 425.126,-115.937 425.126,-115.937\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"392.349\" y=\"-109.8\">{a, b}</text>\n",
"<path d=\"M412.887,-67.1768C428.742,-73.3526 448.013,-81.1868 464.953,-89 468.664,-90.7114 472.509,-92.5777 476.312,-94.4828\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"482.64,-97.7051 474.973,-97.3358 479.521,-96.117 476.402,-94.5288 476.402,-94.5288 476.402,-94.5288 479.521,-96.117 477.831,-91.7217 482.64,-97.7051 482.64,-97.7051\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"449.953\" y=\"-92.8\">{a, b}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge9\"><title>4-&gt;3</title>\n",
"<path d=\"M284.333,-65.8091C263.851,-66.2627 238.5,-66.824 218.588,-67.265\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"211.517,-67.4216 218.445,-64.1173 215.016,-67.344 218.515,-67.2665 218.515,-67.2665 218.515,-67.2665 215.016,-67.344 218.585,-70.4157 211.517,-67.4216 211.517,-67.4216\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"247.896\" y=\"-70.8\">{b}</text>\n",
"<path d=\"M341.937,-56.3485C321.456,-57.1045 296.105,-58.0401 276.192,-58.775\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"269.121,-59.0359 276,-55.6298 272.619,-58.9068 276.117,-58.7777 276.117,-58.7777 276.117,-58.7777 272.619,-58.9068 276.233,-61.9255 269.121,-59.0359 269.121,-59.0359\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"305.5\" y=\"-62.8\">{b}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge11\"><title>5-&gt;6</title>\n",
"<path d=\"M587.188,-80.8632C594.396,-75.2601 602.707,-70.0196 611.349,-67 619.709,-64.0787 629.067,-62.8793 637.99,-62.6129\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"645.027,-62.5842 638.04,-65.7628 641.527,-62.5985 638.027,-62.6128 638.027,-62.6128 638.027,-62.6128 641.527,-62.5985 638.014,-59.4629 645.027,-62.5842 645.027,-62.5842\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"619.349\" y=\"-70.8\">{a}</text>\n",
"<path d=\"M644.792,-70.8632C652,-65.2601 660.312,-60.0196 668.953,-57 677.314,-54.0787 686.671,-52.8793 695.595,-52.6129\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"702.631,-52.5842 695.644,-55.7628 699.131,-52.5985 695.631,-52.6128 695.631,-52.6128 695.631,-52.6128 699.131,-52.5985 695.618,-49.4629 702.631,-52.5842 702.631,-52.5842\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"676.953\" y=\"-60.8\">{a}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge12\"><title>6-&gt;5</title>\n",
"<path d=\"M645.252,-76.2114C631.432,-80.9005 614.911,-86.5056 600.339,-91.4496\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"593.363,-93.8167 598.98,-88.5846 596.677,-92.6921 599.992,-91.5676 599.992,-91.5676 599.992,-91.5676 596.677,-92.6921 601.004,-94.5505 593.363,-93.8167 593.363,-93.8167\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"619.349\" y=\"-90.8\">{a}</text>\n",
"<path d=\"M702.857,-66.2114C689.036,-70.9005 672.516,-76.5056 657.944,-81.4496\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"650.967,-83.8167 656.584,-78.5846 654.282,-82.6921 657.596,-81.5676 657.596,-81.5676 657.596,-81.5676 654.282,-82.6921 658.608,-84.5505 650.967,-83.8167 650.967,-83.8167\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"676.953\" y=\"-81.8\">{a}</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text": [
"<IPython.core.display.SVG at 0x7f2e89e119b0>"
"<IPython.core.display.SVG object>"
]
}
],
@ -530,122 +546,114 @@
"output_type": "pyout",
"prompt_number": 5,
"svg": [
"<svg height=\"178pt\" viewBox=\"0.00 0.00 562.40 178.00\" width=\"562pt\" 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 174)\">\n",
"<svg height=\"175pt\" viewBox=\"0.00 0.00 638.00 175.00\" width=\"638pt\" 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 171)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" points=\"-4,4 -4,-174 558.396,-174 558.396,4 -4,4\" stroke=\"none\"/>\n",
"<polygon fill=\"white\" points=\"-4,4 -4,-171 634,-171 634,4 -4,4\" stroke=\"none\"/>\n",
"<!-- 0 -->\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node2\"><title>1</title>\n",
"<ellipse cx=\"62.6978\" cy=\"-144\" fill=\"#ffffaa\" rx=\"24.8972\" ry=\"24.8972\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"62.6978\" y=\"-140.3\">init</text>\n",
"<ellipse cx=\"118\" cy=\"-144\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"118\" y=\"-140.3\">init</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge1\"><title>0-&gt;1</title>\n",
"<path d=\"M1.04399,-144C1.93865,-144 16.3331,-144 30.8732,-144\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"37.9642,-144 30.9643,-147.15 34.4642,-144 30.9642,-144 30.9642,-144 30.9642,-144 34.4642,-144 30.9642,-140.85 37.9642,-144 37.9642,-144\" stroke=\"black\"/>\n",
"<path d=\"M54.2216,-144C63.4559,-144 73.9612,-144 83.7008,-144\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"90.9659,-144 83.9659,-147.15 87.4659,-144 83.9659,-144 83.9659,-144 83.9659,-144 87.4659,-144 83.9658,-140.85 90.9659,-144 90.9659,-144\" stroke=\"black\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node3\"><title>2</title>\n",
"<polygon fill=\"#ffffaa\" points=\"440.396,-84 386.396,-84 386.396,-48 440.396,-48 440.396,-84\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"413.396\" y=\"-62.3\">2</text>\n",
"<polygon fill=\"#ffffaa\" points=\"516,-84 462,-84 462,-48 516,-48 516,-84\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"489\" y=\"-62.3\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge2\"><title>1-&gt;2</title>\n",
"<path d=\"M86.9099,-150.505C92.8863,-151.92 99.3405,-153.225 105.396,-154 200.719,-166.201 229.01,-160.734 320.396,-131 342.539,-123.795 349.163,-123.127 368.396,-110 376.786,-104.273 384.949,-96.8174 391.919,-89.675\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"397.001,-84.3081 394.476,-91.5568 394.595,-86.8495 392.188,-89.3909 392.188,-89.3909 392.188,-89.3909 394.595,-86.8495 389.901,-87.225 397.001,-84.3081 397.001,-84.3081\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"247.896\" y=\"-158.8\">!a &amp; b</text>\n",
"<path d=\"M144.031,-149.269C150.205,-150.37 156.819,-151.383 163,-152 186.001,-154.297 191.886,-152.778 215,-153 296.033,-153.779 318.806,-155.658 396,-131 418.534,-123.802 424.536,-121.445 444,-108 451.893,-102.548 459.725,-95.6761 466.546,-89.0791\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"471.548,-84.116 468.797,-91.2823 469.063,-86.5811 466.579,-89.0462 466.579,-89.0462 466.579,-89.0462 469.063,-86.5811 464.36,-86.81 471.548,-84.116 471.548,-84.116\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"305.5\" y=\"-155.8\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node4\"><title>3</title>\n",
"<polygon fill=\"#ffffaa\" points=\"211.396,-94 157.396,-94 157.396,-58 211.396,-58 211.396,-94\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"184.396\" y=\"-72.3\">3</text>\n",
"<polygon fill=\"#ffffaa\" points=\"269,-94 215,-94 215,-58 269,-58 269,-94\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"242\" y=\"-72.3\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge3\"><title>1-&gt;3</title>\n",
"<path d=\"M83.2503,-129.536C90.1123,-124.694 97.9646,-119.411 105.396,-115 119.96,-106.355 136.69,-97.8185 150.912,-90.9462\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"157.253,-87.9113 152.299,-93.7747 154.096,-89.4223 150.939,-90.9333 150.939,-90.9333 150.939,-90.9333 154.096,-89.4223 149.579,-88.092 157.253,-87.9113 157.253,-87.9113\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.396\" y=\"-118.8\">a &amp; b</text>\n",
"<path d=\"M137.532,-131.079C145.273,-125.87 154.441,-119.937 163,-115 177.671,-106.538 194.414,-98.0238 208.618,-91.1196\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"214.948,-88.0665 210.011,-93.9447 211.796,-89.587 208.643,-91.1074 208.643,-91.1074 208.643,-91.1074 211.796,-89.587 207.275,-88.2701 214.948,-88.0665 214.948,-88.0665\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"180\" y=\"-118.8\">a &amp; b</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node5\"><title>4</title>\n",
"<ellipse cx=\"302.396\" cy=\"-104\" fill=\"#ffffaa\" rx=\"18\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"302.396\" y=\"-100.3\">1</text>\n",
"<ellipse cx=\"369\" cy=\"-104\" fill=\"#ffffaa\" rx=\"27\" ry=\"18\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"369\" y=\"-100.3\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge4\"><title>1-&gt;4</title>\n",
"<path d=\"M87.4738,-142.898C125.721,-140.694 203.038,-134.451 266.396,-118 270.535,-116.925 274.841,-115.487 278.96,-113.941\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"285.651,-111.282 280.309,-116.794 282.399,-112.575 279.146,-113.867 279.146,-113.867 279.146,-113.867 282.399,-112.575 277.983,-110.94 285.651,-111.282 285.651,-111.282\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"184.396\" y=\"-139.8\">a &amp; !b</text>\n",
"<path d=\"M145.11,-141.879C184.28,-138.401 260.441,-130.489 324,-117 328.397,-116.067 332.995,-114.913 337.489,-113.682\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"344.425,-111.703 338.558,-116.653 341.06,-112.663 337.694,-113.623 337.694,-113.623 337.694,-113.623 341.06,-112.663 336.83,-110.594 344.425,-111.703 344.425,-111.703\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"242\" y=\"-137.8\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g class=\"node\" id=\"node6\"><title>5</title>\n",
"<polygon fill=\"#ffffaa\" points=\"550.396,-40 496.396,-40 496.396,-4 550.396,-4 550.396,-40\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"554.396,-44 492.396,-44 492.396,-3.55271e-15 554.396,-3.55271e-15 554.396,-44\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"523.396\" y=\"-18.3\">4</text>\n",
"<polygon fill=\"#ffffaa\" points=\"626,-40 572,-40 572,-4 626,-4 626,-40\" stroke=\"black\"/>\n",
"<polygon fill=\"none\" points=\"630,-44 568,-44 568,-3.55271e-15 630,-3.55271e-15 630,-44\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"599\" y=\"-18.3\">4</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge5\"><title>2-&gt;5</title>\n",
"<path d=\"M440.539,-55.3488C454.074,-49.8349 470.822,-43.0113 485.637,-36.9757\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"492.289,-34.2656 486.995,-39.8239 489.048,-35.5862 485.807,-36.9067 485.807,-36.9067 485.807,-36.9067 489.048,-35.5862 484.618,-33.9895 492.289,-34.2656 492.289,-34.2656\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"466.396\" y=\"-51.8\">{a}</text>\n",
"<path d=\"M516.144,-55.3488C529.678,-49.8349 546.427,-43.0113 561.241,-36.9757\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"567.894,-34.2656 562.599,-39.8239 564.652,-35.5862 561.411,-36.9067 561.411,-36.9067 561.411,-36.9067 564.652,-35.5862 560.222,-33.9895 567.894,-34.2656 567.894,-34.2656\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"542\" y=\"-51.8\">{a}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge7\"><title>3-&gt;2</title>\n",
"<path d=\"M211.404,-70.9547C217.306,-69.898 223.556,-68.8483 229.396,-68 269.507,-62.1732 279.873,-61.1195 320.396,-62 339.836,-62.4224 361.57,-63.3463 379.03,-64.1999\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"386.233,-64.5597 379.084,-67.3564 382.737,-64.385 379.241,-64.2103 379.241,-64.2103 379.241,-64.2103 382.737,-64.385 379.399,-61.0642 386.233,-64.5597 386.233,-64.5597\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"302.396\" y=\"-65.8\">{a}</text>\n",
"<g class=\"edge\" id=\"edge6\"><title>3-&gt;2</title>\n",
"<path d=\"M269.038,-71.72C274.939,-70.7884 281.181,-69.833 287,-69 311.393,-65.5082 317.408,-63.5587 342,-62 365.952,-60.4819 372.006,-61.4786 396,-62 415.44,-62.4224 437.174,-63.3463 454.635,-64.1999\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"461.837,-64.5597 454.689,-67.3564 458.341,-64.385 454.846,-64.2103 454.846,-64.2103 454.846,-64.2103 458.341,-64.385 455.003,-61.0642 461.837,-64.5597 461.837,-64.5597\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"369\" y=\"-65.8\">{a}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge8\"><title>3-&gt;4</title>\n",
"<path d=\"M211.657,-72.1843C227.874,-70.8265 248.862,-70.9018 266.396,-77 272.543,-79.1381 278.459,-82.823 283.622,-86.7951\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"289.305,-91.5145 281.908,-89.4661 286.613,-89.2786 283.92,-87.0426 283.92,-87.0426 283.92,-87.0426 286.613,-89.2786 285.932,-84.6192 289.305,-91.5145 289.305,-91.5145\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"247.896\" y=\"-80.8\">{b}</text>\n",
"<g class=\"edge\" id=\"edge7\"><title>3-&gt;4</title>\n",
"<path d=\"M269.05,-72.8485C285.188,-71.7406 306.166,-71.8454 324,-77 331.103,-79.0531 338.198,-82.587 344.552,-86.434\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"350.631,-90.3422 343.04,-89.2068 347.687,-88.4496 344.743,-86.557 344.743,-86.557 344.743,-86.557 347.687,-88.4496 346.446,-83.9073 350.631,-90.3422 350.631,-90.3422\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"305.5\" y=\"-80.8\">{b}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge6\"><title>3-&gt;5</title>\n",
"<path d=\"M211.649,-65.47C217.427,-63.4301 223.564,-61.4721 229.396,-60 319.354,-37.2923 428.464,-27.7027 484.752,-24.03\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"492.008,-23.5705 485.221,-27.1567 488.515,-23.7917 485.022,-24.013 485.022,-24.013 485.022,-24.013 488.515,-23.7917 484.823,-20.8693 492.008,-23.5705 492.008,-23.5705\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"353.396\" y=\"-42.8\">{a}</text>\n",
"<g class=\"edge\" id=\"edge8\"><title>3-&gt;5</title>\n",
"<path d=\"M269.231,-65.3796C275.01,-63.3453 281.153,-61.4125 287,-60 383.846,-36.6029 501.317,-27.2334 560.32,-23.7959\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"567.564,-23.3867 560.753,-26.9265 564.07,-23.5841 560.575,-23.7816 560.575,-23.7816 560.575,-23.7816 564.07,-23.5841 560.398,-20.6366 567.564,-23.3867 567.564,-23.3867\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"429\" y=\"-40.8\">{a}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge10\"><title>4-&gt;2</title>\n",
"<path d=\"M319.95,-98.2286C335.72,-92.7311 359.903,-84.3003 379.58,-77.4404\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"386.331,-75.0869 380.758,-80.3657 383.026,-76.2391 379.721,-77.3913 379.721,-77.3913 379.721,-77.3913 383.026,-76.2391 378.684,-74.4168 386.331,-75.0869 386.331,-75.0869\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"353.396\" y=\"-94.8\">{a, b}</text>\n",
"<path d=\"M393.595,-96.4015C411.283,-90.7053 435.708,-82.8397 455.282,-76.5362\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"461.985,-74.3778 456.287,-79.522 458.653,-75.4507 455.322,-76.5236 455.322,-76.5236 455.322,-76.5236 458.653,-75.4507 454.356,-73.5253 461.985,-74.3778 461.985,-74.3778\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"429\" y=\"-92.8\">{a, b}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge9\"><title>4-&gt;3</title>\n",
"<path d=\"M284.335,-102.054C269.627,-100.164 247.903,-96.8631 229.396,-92 225.851,-91.0685 222.189,-89.9687 218.563,-88.7888\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"211.671,-86.4443 219.312,-85.7166 214.984,-87.5715 218.298,-88.6988 218.298,-88.6988 218.298,-88.6988 214.984,-87.5715 217.283,-91.6809 211.671,-86.4443 211.671,-86.4443\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"247.896\" y=\"-102.8\">{b}</text>\n",
"<path d=\"M342.202,-101.522C326.158,-99.6513 305.191,-96.6048 287,-92 283.447,-91.1006 279.78,-90.0215 276.15,-88.8541\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"269.254,-86.5241 276.894,-85.7807 272.57,-87.6445 275.886,-88.7649 275.886,-88.7649 275.886,-88.7649 272.57,-87.6445 274.878,-91.7492 269.254,-86.5241 269.254,-86.5241\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"305.5\" y=\"-101.8\">{b}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge11\"><title>5-&gt;5</title>\n",
"<path d=\"M513.021,-44.2124C512.172,-53.7952 515.63,-62 523.396,-62 529.098,-62 532.478,-57.5751 533.535,-51.4291\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"533.77,-44.2124 536.69,-51.3112 533.656,-47.7105 533.542,-51.2086 533.542,-51.2086 533.542,-51.2086 533.656,-47.7105 530.394,-51.1061 533.77,-44.2124 533.77,-44.2124\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"523.396\" y=\"-65.8\">{a}</text>\n",
"<path d=\"M588.626,-44.2124C587.776,-53.7952 591.234,-62 599,-62 604.703,-62 608.083,-57.5751 609.139,-51.4291\" fill=\"none\" stroke=\"black\"/>\n",
"<polygon fill=\"black\" points=\"609.374,-44.2124 612.295,-51.3112 609.26,-47.7105 609.147,-51.2086 609.147,-51.2086 609.147,-51.2086 609.26,-47.7105 605.998,-51.1061 609.374,-44.2124 609.374,-44.2124\" stroke=\"black\"/>\n",
"<text font-family=\"Lato\" font-size=\"14.00\" text-anchor=\"middle\" x=\"599\" y=\"-65.8\">{a}</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text": [
"<IPython.core.display.SVG at 0x7f2e884949e8>"
"<IPython.core.display.SVG object>"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
}

View file

@ -1,7 +1,23 @@
{
"metadata": {
"name": "",
"signature": "sha256:4fc3934cf5fa0e612923dc4253b5e40115b103a93f588595a6706ec77e7994a9"
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.3"
},
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
@ -31,7 +47,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"aut = spot.translate('G(Fa <-> Xb)'); aut"
"aut = spot.translate('G(Fa <-> XXb)'); aut"
],
"language": "python",
"metadata": {},
@ -47,99 +63,150 @@
"<!-- Generated by graphviz version 2.38.0 (20140413.2041)\n",
" -->\n",
"<!-- Title: G Pages: 1 -->\n",
"<svg width=\"386pt\" height=\"155pt\"\n",
" viewBox=\"0.00 0.00 385.50 155.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 151)\">\n",
"<svg width=\"465pt\" height=\"215pt\"\n",
" viewBox=\"0.00 0.00 464.50 215.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 211)\">\n",
"<title>G</title>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-151 381.5,-151 381.5,4 -4,4\"/>\n",
"<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-211 460.5,-211 460.5,4 -4,4\"/>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\"><title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-45\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-41.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-55\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-51.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\"><title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-45C2.79388,-45 17.1543,-45 30.6317,-45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-45 30.9419,-48.1501 34.4419,-45 30.9419,-45.0001 30.9419,-45.0001 30.9419,-45.0001 34.4419,-45 30.9418,-41.8501 37.9419,-45 37.9419,-45\"/>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15491,-55C2.79388,-55 17.1543,-55 30.6317,-55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.9419,-55 30.9419,-58.1501 34.4419,-55 30.9419,-55.0001 30.9419,-55.0001 30.9419,-55.0001 34.4419,-55 30.9418,-51.8501 37.9419,-55 37.9419,-55\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\"><title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"139\" cy=\"-96\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"139\" y=\"-92.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"139\" cy=\"-86\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"139\" y=\"-82.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\"><title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.8566,-54.3542C84.5306,-62.3341 102.896,-73.8976 117.061,-82.816\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.238,-86.7051 115.636,-85.641 120.276,-84.8402 117.314,-82.9754 117.314,-82.9754 117.314,-82.9754 120.276,-84.8402 118.992,-80.3097 123.238,-86.7051 123.238,-86.7051\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.003,-61.1246C85.0955,-65.7526 101.855,-72.1668 115.327,-77.3227\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"122.03,-79.8881 114.367,-80.3279 118.761,-78.6371 115.493,-77.386 115.493,-77.386 115.493,-77.386 118.761,-78.6371 116.619,-74.4441 122.03,-79.8881 122.03,-79.8881\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\"><title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"248\" cy=\"-61\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"248\" y=\"-57.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"139\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"139\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\"><title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.1963,-46.4481C108.109,-49.3039 183.696,-55.6692 222.691,-58.953\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"229.979,-59.5667 222.74,-62.1181 226.492,-59.2729 223.004,-58.9792 223.004,-58.9792 223.004,-58.9792 226.492,-59.2729 223.268,-55.8403 229.979,-59.5667 229.979,-59.5667\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.6176,-47.866C84.9439,-42.2355 102.291,-34.3117 116.019,-28.0406\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"122.43,-25.1121 117.372,-30.8858 119.247,-26.5663 116.063,-28.0206 116.063,-28.0206 116.063,-28.0206 119.247,-26.5663 114.754,-25.1554 122.43,-25.1121 122.43,-25.1121\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-41.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\"><title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"357\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"357\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"218\" cy=\"-107\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"218\" y=\"-103.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.3679,-43.4317C125.166,-38.8446 273.551,-25.4452 331.97,-20.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"338.957,-19.539 332.268,-23.3059 335.471,-19.8538 331.985,-20.1687 331.985,-20.1687 331.985,-20.1687 335.471,-19.8538 331.702,-17.0314 338.957,-19.539 338.957,-19.539\"/>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\"><title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M156.708,-90.5567C167.403,-93.4737 181.445,-97.3031 193.286,-100.533\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.325,-102.452 192.743,-103.649 196.948,-101.531 193.571,-100.61 193.571,-100.61 193.571,-100.61 196.948,-101.531 194.4,-97.5713 200.325,-102.452 200.325,-102.452\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.969,-112.664C130.406,-122.625 132.75,-132 139,-132 143.688,-132 146.178,-126.727 146.471,-119.888\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.031,-112.664 149.601,-119.46 146.244,-116.158 146.456,-119.651 146.456,-119.651 146.456,-119.651 146.244,-116.158 143.312,-119.842 146.031,-112.664 146.031,-112.664\"/>\n",
"<text text-anchor=\"start\" x=\"120.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\"><title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"327\" cy=\"-71\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"327\" y=\"-67.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M157,-98.8379C172.054,-100.594 194.318,-101.307 212,-94 219.178,-91.0336 225.76,-85.8674 231.231,-80.4911\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.314,-75.1185 233.791,-82.3685 233.908,-77.6611 231.503,-80.2038 231.503,-80.2038 231.503,-80.2038 233.908,-77.6611 229.215,-78.039 236.314,-75.1185 236.314,-75.1185\"/>\n",
"<text text-anchor=\"start\" x=\"176.5\" y=\"-118.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\"><title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M155.656,-78.8828C167.543,-73.8869 184.441,-67.6441 200,-65 235.174,-59.0223 276.609,-63.083 302.091,-66.8263\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"309.149,-67.9155 301.75,-69.9609 305.69,-67.3817 302.231,-66.8478 302.231,-66.8478 302.231,-66.8478 305.69,-67.3817 302.711,-63.7347 309.149,-67.9155 309.149,-67.9155\"/>\n",
"<text text-anchor=\"start\" x=\"212.5\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\"><title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M229.954,-62.6225C215.066,-64.4327 193.072,-68.0686 175,-75 169.996,-76.9191 164.895,-79.5369 160.19,-82.2732\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"154.066,-86.0235 158.39,-79.6814 157.05,-84.1956 160.035,-82.3677 160.035,-82.3677 160.035,-82.3677 157.05,-84.1956 161.68,-85.054 154.066,-86.0235 154.066,-86.0235\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-78.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\"><title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"327\" cy=\"-179\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"327\" y=\"-175.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\"><title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.767,-76.5414C236.169,-86.9087 239.246,-97 248,-97 254.702,-97 258.077,-91.0847 258.124,-83.6591\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"257.233,-76.5414 261.229,-83.0955 257.668,-80.0143 258.103,-83.4871 258.103,-83.4871 258.103,-83.4871 257.668,-80.0143 254.977,-83.8788 257.233,-76.5414 257.233,-76.5414\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"240\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\"><title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M145.052,-103.353C152.731,-126.145 169.745,-165.231 200,-182 232.013,-199.743 275.986,-193.018 302.622,-186.225\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"309.65,-184.328 303.713,-189.194 306.271,-185.24 302.892,-186.153 302.892,-186.153 302.892,-186.153 306.271,-185.24 302.071,-183.111 309.65,-184.328 309.65,-184.328\"/>\n",
"<text text-anchor=\"start\" x=\"212.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\"><title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M265.251,-54.4692C283.425,-47.1658 312.983,-35.2873 333.402,-27.0815\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"339.947,-24.4513 334.626,-29.9844 336.699,-25.7565 333.452,-27.0616 333.452,-27.0616 333.452,-27.0616 336.699,-25.7565 332.277,-24.1388 339.947,-24.4513 339.947,-24.4513\"/>\n",
"<text text-anchor=\"start\" x=\"284\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<g id=\"edge7\" class=\"edge\"><title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M151.362,-31.1323C164.441,-46.2502 186.023,-71.1956 200.846,-88.3285\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"205.592,-93.8139 198.63,-90.5811 203.302,-91.167 201.012,-88.5201 201.012,-88.5201 201.012,-88.5201 203.302,-91.167 203.394,-86.4591 205.592,-93.8139 205.592,-93.8139\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-68.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\"><title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M156.924,-21.8749C185.025,-28.4443 242.977,-42.5668 291,-58 295.032,-59.2959 299.287,-60.7772 303.387,-62.2649\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"310.075,-64.7429 302.417,-65.2646 306.793,-63.5269 303.511,-62.3108 303.511,-62.3108 303.511,-62.3108 306.793,-63.5269 304.605,-59.3571 310.075,-64.7429 310.075,-64.7429\"/>\n",
"<text text-anchor=\"start\" x=\"212.5\" y=\"-44.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\"><title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"436\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"436\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge9\" class=\"edge\"><title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M157.136,-18.2323C207.034,-18.9089 352.372,-20.8796 410.528,-21.6682\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"417.817,-21.767 410.775,-24.8217 414.317,-21.7195 410.818,-21.672 410.818,-21.672 410.818,-21.672 414.317,-21.7195 410.861,-18.5223 417.817,-21.767 417.817,-21.767\"/>\n",
"<text text-anchor=\"start\" x=\"267\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\"><title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M347.767,-33.5414C345.169,-43.9087 348.246,-54 357,-54 363.702,-54 367.077,-48.0847 367.124,-40.6591\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"366.233,-33.5414 370.229,-40.0955 366.668,-37.0143 367.103,-40.4871 367.103,-40.4871 367.103,-40.4871 366.668,-37.0143 363.977,-40.8788 366.233,-33.5414 366.233,-33.5414\"/>\n",
"<text text-anchor=\"start\" x=\"336.5\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"349\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M211.266,-124.037C209.892,-133.858 212.137,-143 218,-143 222.397,-143 224.759,-137.858 225.086,-131.143\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"224.734,-124.037 228.226,-130.873 224.907,-127.533 225.08,-131.029 225.08,-131.029 225.08,-131.029 224.907,-127.533 221.934,-131.185 224.734,-124.037 224.734,-124.037\"/>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"210\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge11\" class=\"edge\"><title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M234.442,-114.796C249.614,-121.291 273.039,-128.132 291,-119 301.558,-113.632 309.687,-103.42 315.441,-93.7909\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"318.882,-87.604 318.233,-95.2526 317.181,-90.6629 315.48,-93.7218 315.48,-93.7218 315.48,-93.7218 317.181,-90.6629 312.727,-92.1909 318.882,-87.604 318.882,-87.604\"/>\n",
"<text text-anchor=\"start\" x=\"254\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge12\" class=\"edge\"><title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M230.453,-120.313C236.909,-127.314 245.39,-135.722 254,-142 269.46,-153.274 288.841,-163.021 303.599,-169.677\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"310.024,-172.512 302.348,-172.568 306.822,-171.099 303.62,-169.686 303.62,-169.686 303.62,-169.686 306.822,-171.099 304.891,-166.804 310.024,-172.512 310.024,-172.512\"/>\n",
"<text text-anchor=\"start\" x=\"254\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\"><title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M308.918,-72.5299C294.007,-74.2807 271.999,-77.8816 254,-85 248.953,-86.9961 243.833,-89.7328 239.124,-92.5982\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"233.003,-96.5281 237.192,-90.0954 235.949,-94.6371 238.894,-92.7462 238.894,-92.7462 238.894,-92.7462 235.949,-94.6371 240.596,-95.3969 233.003,-96.5281 233.003,-96.5281\"/>\n",
"<text text-anchor=\"start\" x=\"255.5\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"264.5\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge14\" class=\"edge\"><title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M317.767,-86.5414C315.169,-96.9087 318.246,-107 327,-107 333.702,-107 337.077,-101.085 337.124,-93.6591\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"336.233,-86.5414 340.229,-93.0955 336.668,-90.0143 337.103,-93.4871 337.103,-93.4871 337.103,-93.4871 336.668,-90.0143 333.977,-93.8788 336.233,-86.5414 336.233,-86.5414\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge15\" class=\"edge\"><title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M337.875,-164.511C356.984,-136.471 399.072,-74.7167 421.037,-42.4872\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"425.149,-36.4538 423.81,-44.0122 423.178,-39.3459 421.207,-42.2381 421.207,-42.2381 421.207,-42.2381 423.178,-39.3459 418.604,-40.4641 425.149,-36.4538 425.149,-36.4538\"/>\n",
"<text text-anchor=\"start\" x=\"363\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge16\" class=\"edge\"><title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M426.767,-37.5414C424.169,-47.9087 427.246,-58 436,-58 442.702,-58 446.077,-52.0847 446.124,-44.6591\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"445.233,-37.5414 449.229,-44.0955 445.668,-41.0143 446.103,-44.4871 446.103,-44.4871 446.103,-44.4871 445.668,-41.0143 442.977,-44.8788 445.233,-37.5414 445.233,-37.5414\"/>\n",
"<text text-anchor=\"start\" x=\"415.5\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"428\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#5da5da\">\u24ff</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb71c0e18a0> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fdf783f0510> >"
]
}
],
@ -168,12 +235,12 @@
"text": [
"Prefix:\n",
" 0\n",
" | !a\n",
"Cycle:\n",
" | a\n",
" 1\n",
" | a & b\t{0}\n",
" 2\n",
" | !a & b"
" | a\n",
"Cycle:\n",
" 3\n",
" | a & b\t{0}"
]
}
],
@ -200,7 +267,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"!a\n",
"a\n",
"{0}\n"
]
}
@ -228,7 +295,7 @@
"output_type": "pyout",
"prompt_number": 5,
"text": [
"!a; cycle{a & b; !a & b}"
"a; a; cycle{a & b}"
]
}
],
@ -246,8 +313,8 @@
"collapsed": false,
"input": [
"print(spot.bdd_format_formula(aut.get_dict(), word.prefix[0]))\n",
"print(spot.bdd_format_formula(aut.get_dict(), word.cycle[0]))\n",
"print(spot.bdd_format_formula(aut.get_dict(), word.cycle[1]))"
"print(spot.bdd_format_formula(aut.get_dict(), word.prefix[1]))\n",
"print(spot.bdd_format_formula(aut.get_dict(), word.cycle[0]))"
],
"language": "python",
"metadata": {},
@ -256,9 +323,9 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"!a\n",
"a & b\n",
"!a & b\n"
"a\n",
"a\n",
"a & b\n"
]
}
],
@ -268,7 +335,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Calling `simplifify()` will produce a shorter word that is compatible with the original word. For instance in the above word, the initial `!a` is compatible with both `a & b` and `!a & b`. The word obtained by restricting `!a` to `!a & b` is therefore still accepted, but it allows removing the prefix by rotating the cycle:"
"Calling `simplifify()` will produce a shorter word that is compatible with the original word. For instance in the above word, the initial `a` is compatible with both `a & b` and `a & !b`. The word obtained by restricting `a` to `a & b` is therefore still accepted, allowing us to remove the prefix."
]
},
{
@ -286,7 +353,7 @@
"output_type": "pyout",
"prompt_number": 7,
"text": [
"cycle{!a & b; a & b}"
"cycle{a & b}"
]
}
],
@ -313,7 +380,7 @@
"output_type": "pyout",
"prompt_number": 8,
"text": [
"cycle{!a & b; a & b}"
"cycle{a & b}"
]
}
],
@ -478,7 +545,7 @@
"</svg>\n"
],
"text": [
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb71c0e1a20> >"
"<spot.impl.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fdf783f0e40> >"
]
}
],
@ -598,9 +665,10 @@
"evalue": "a twa_word may not have an empty cycle",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-18-971829bb8f5f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# ... as long as this word is not printed.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/home/adl/git/spot/python/spot/impl.py\u001b[0m in \u001b[0;36m__str__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 3599\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3600\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__str__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;34m\"std::string\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3601\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_impl\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtwa_word___str__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3602\u001b[0m \u001b[0mtwa_word_swigregister\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_impl\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtwa_word_swigregister\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3603\u001b[0m \u001b[0mtwa_word_swigregister\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtwa_word\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/home/adl/git/spot/python/spot/impl.py\u001b[0m in \u001b[0;36m__str__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 4160\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4161\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__str__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;34m\"std::string\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4162\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_impl\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtwa_word___str__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4163\u001b[0m \u001b[0mtwa_word_swigregister\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_impl\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtwa_word_swigregister\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4164\u001b[0m \u001b[0mtwa_word_swigregister\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtwa_word\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mRuntimeError\u001b[0m: a twa_word may not have an empty cycle"
]
}
@ -611,4 +679,4 @@
"metadata": {}
}
]
}
}