Commit c005041e authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

improve fuse_marks_here by detecting more patterns

This remove some restrictions that prevented fuse_marks_here from
simplifying certain patterns, as noted in the first comment of
issue #405.

* spot/twaalgos/cleanacc.cc (find_interm_rec, find_fusable): Remove
some unnecessary restrictions to singleton marks, and replace the hack
put one non-singleton mark at the beginning of the singleton list by a
sort.
* tests/python/simplacc.py: Add two test cases.
* tests/python/automata.ipynb, tests/core/remfin.test: Improve
expected results.
* NEWS: Mention the bug.
parent ce695e67
......@@ -42,6 +42,12 @@ New in spot 2.9.0.dev (not yet released)
bits. This affects the output of "ltlcross --csv" and
"--stats=%t" for many tools.
- simplify_acceptance() missed some patterns it should have been
able to simplify. For instance Fin(0)&(Fin(1)|Fin(2)|Fin(4))
should simplify to Fin(1)|Fin(2)|Fin(4) adter adding {1,2,4} to
every place where 0 occur, and then the acceptance would be
renumbered to Fin(0)|Fin(1)|Fin(2). This is now fixed.
New in spot 2.9 (2020-04-30)
Command-line tools:
......
......@@ -390,7 +390,7 @@ namespace spot
case acc_cond::acc_op::FinNeg:
{
auto m = pos[-1].mark;
if (op == wanted && m.is_singleton())
if (op == wanted)
{
res |= m;
}
......@@ -427,7 +427,7 @@ namespace spot
if (op == wanted)
{
auto m = pos[-1].mark;
if (!seen && m.is_singleton())
if (!seen)
{
seen = true;
res |= m;
......@@ -512,9 +512,9 @@ namespace spot
case acc_cond::acc_op::Inf:
case acc_cond::acc_op::Fin:
{
auto m = pos[-1].mark;
if (op == wanted && m.is_singleton())
singletons.emplace_back(m, pos);
if (op == wanted)
singletons.emplace_back(pos[-1].mark,
pos);
pos -= 2;
}
break;
......@@ -526,20 +526,20 @@ namespace spot
// {b,d} can receive {a} if they
// (b and d) are both used once.
if (auto m = find_interm_rec(pos))
{
singletons.emplace_back(m, pos);
// move this to the front, to
// be sure it is the first
// recipient tried.
swap(singletons.front(),
singletons.back());
}
singletons.emplace_back(m, pos);
pos -= pos->sub.size + 1;
break;
}
}
while (pos > rend);
// sort the singletons vector: we want
// those that are not really singleton to
// be first to they can become recipient
std::partition(singletons.begin(), singletons.end(),
[&] (auto s)
{ return !s.first.is_singleton(); });
acc_cond::mark_t can_receive = {};
for (auto p: singletons)
if ((p.first & once) == p.first)
......
......@@ -292,8 +292,6 @@ State: 1
--END--
EOF
acctwelve='Inf(0)&Inf(1)&Inf(2)&Inf(3)&Inf(4)&Inf(5)'
acctwelve=$acctwelve'&Inf(6)&Inf(7)&Inf(8)&Inf(9)&Inf(10)&Inf(11)'
cat >expected <<EOF
HOA: v1
States: 3
......@@ -339,21 +337,22 @@ HOA: v1
States: 3
Start: 0
AP: 2 "a" "b"
Acceptance: 3 (Inf(1)&Inf(2)) | Inf(0)
acc-name: generalized-Buchi 2
Acceptance: 2 Inf(0)&Inf(1)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[t] 0 {2}
[0] 1 {2}
[!0] 2 {0 2}
[t] 0 {1}
[0] 1 {1}
[!0] 2 {0 1}
State: 1
[1] 0 {2}
[0&1] 1 {0 2}
[!0&1] 2 {1 2}
[1] 0 {1}
[0&1] 1 {0 1}
[!0&1] 2 {0 1}
State: 2
[!1] 0
[0&!1] 1 {0}
[!0&!1] 2 {0}
[0&!1] 1 {0 1}
[!0&!1] 2 {0 1}
--END--
HOA: v1
States: 1
......@@ -867,7 +866,7 @@ HOA: v1
States: 6
Start: 0
AP: 3 "a" "b" "c"
Acceptance: 4 (Inf(0)&Inf(2)&Inf(3)) | (Inf(0)&Inf(1)&Inf(3))
Acceptance: 3 (Inf(1)&Inf(2)) | (Inf(0)&Inf(2))
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
......@@ -883,16 +882,16 @@ State: 1
[2] 4
[!2] 5
State: 2
[0] 2 {0 1 3}
[0] 2 {0 2}
State: 3
[0&2] 2 {0 1 3}
[0&!2] 3 {0 1}
[0&2] 2 {0 2}
[0&!2] 3 {0}
State: 4
[1 | 2] 4 {0 2 3}
[!1&!2] 5 {0 2}
[1 | 2] 4 {1 2}
[!1&!2] 5 {1}
State: 5
[2] 4 {0 2 3}
[!2] 5 {0 2}
[2] 4 {1 2}
[!2] 5 {1}
--END--
EOF
......
%% Cell type:code id: tags:
``` python
from IPython.display import display
import spot
from spot.jupyter import display_inline
spot.setup()
```
%% Cell type:markdown id: tags:
To build an automaton from an LTL formula, simply call `translate()` with a formula, and a list of options to characterize the automaton you want (those options have the same name as the long options name of the `ltl2tgba` tool, and they can be abbreviated).
%% Cell type:code id: tags:
``` python
a = spot.translate('(a U b) & GFc & GFd', 'BA', 'complete'); a
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="460pt" height="329pt"viewBox="0.00 0.00 460.00 328.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 324.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-324.8 456,-324.8 456,4 -4,4"/><text text-anchor="start" x="204.5" y="-290.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-120" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-116.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-120C2.79,-120 17.15,-120 30.63,-120"/><polygon fill="black" stroke="black" points="37.94,-120 30.94,-123.15 34.44,-120 30.94,-120 30.94,-120 30.94,-120 34.44,-120 30.94,-116.85 37.94,-120 37.94,-120"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-137.04C48.32,-146.86 50.45,-156 56,-156 60.17,-156 62.4,-150.86 62.71,-144.14"/><polygon fill="black" stroke="black" points="62.38,-137.04 65.85,-143.88 62.54,-140.53 62.71,-144.03 62.71,-144.03 62.71,-144.03 62.54,-140.53 59.56,-144.18 62.38,-137.04 62.38,-137.04"/><text text-anchor="start" x="38" y="-159.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="189" cy="-214" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="189" cy="-214" rx="22" ry="22"/><text text-anchor="middle" x="189" y="-210.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M68.18,-133.55C74.68,-140.97 83.3,-150.04 92,-157 114.27,-174.8 142.64,-190.97 162.75,-201.49"/><polygon fill="black" stroke="black" points="168.97,-204.71 161.3,-204.29 165.86,-203.1 162.75,-201.5 162.75,-201.5 162.75,-201.5 165.86,-203.1 164.19,-198.7 168.97,-204.71 168.97,-204.71"/><text text-anchor="start" x="92" y="-196.8" font-family="Lato" font-size="14.00">b &amp; c &amp; d</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="326" cy="-157" rx="18" ry="18"/><text text-anchor="middle" x="326" y="-153.3" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M74.17,-122.37C120.4,-128.75 247.6,-146.31 300.95,-153.68"/><polygon fill="black" stroke="black" points="307.97,-154.65 300.61,-156.81 304.5,-154.17 301.04,-153.69 301.04,-153.69 301.04,-153.69 304.5,-154.17 301.47,-150.57 307.97,-154.65 307.97,-154.65"/><text text-anchor="start" x="170.5" y="-143.8" font-family="Lato" font-size="14.00">b &amp; !d</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="434" cy="-222" rx="18" ry="18"/><text text-anchor="middle" x="434" y="-218.3" font-family="Lato" font-size="14.00">3</text></g><!-- 0&#45;&gt;3 --><g id="edge5" class="edge"><title>0&#45;&gt;3</title><path fill="none" stroke="black" d="M73.75,-116.58C119.38,-108.07 248.82,-89.46 344,-130 377.64,-144.33 404.8,-178.24 419.92,-200.65"/><polygon fill="black" stroke="black" points="423.86,-206.63 417.38,-202.52 421.93,-203.71 420.01,-200.79 420.01,-200.79 420.01,-200.79 421.93,-203.71 422.64,-199.05 423.86,-206.63 423.86,-206.63"/><text text-anchor="start" x="229" y="-116.8" font-family="Lato" font-size="14.00">b &amp; !c &amp; d</text></g><!-- 4 --><g id="node6" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="black" cx="189" cy="-18" rx="18" ry="18"/><text text-anchor="middle" x="189" y="-14.3" font-family="Lato" font-size="14.00">4</text></g><!-- 0&#45;&gt;4 --><g id="edge6" class="edge"><title>0&#45;&gt;4</title><path fill="none" stroke="black" d="M65.05,-103.9C71.24,-92.75 80.64,-78.15 92,-68 113.65,-48.65 144.15,-34.44 164.92,-26.22"/><polygon fill="black" stroke="black" points="171.56,-23.66 166.16,-29.12 168.29,-24.92 165.03,-26.18 165.03,-26.18 165.03,-26.18 168.29,-24.92 163.9,-23.24 171.56,-23.66 171.56,-23.66"/><text text-anchor="start" x="100.5" y="-71.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 1&#45;&gt;1 --><g id="edge7" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M177.05,-232.52C174.39,-243.58 178.38,-254 189,-254 197.3,-254 201.55,-247.64 201.74,-239.58"/><polygon fill="black" stroke="black" points="200.95,-232.52 204.86,-239.12 201.34,-235.99 201.73,-239.47 201.73,-239.47 201.73,-239.47 201.34,-235.99 198.6,-239.82 200.95,-232.52 200.95,-232.52"/><text text-anchor="start" x="173" y="-257.8" font-family="Lato" font-size="14.00">c &amp; d</text></g><!-- 1&#45;&gt;2 --><g id="edge8" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M211.12,-212.8C232.23,-210.84 265.05,-205.66 290,-192 297.27,-188.02 304.03,-182.07 309.64,-176.2"/><polygon fill="black" stroke="black" points="314.44,-170.89 312.08,-178.19 312.09,-173.48 309.74,-176.08 309.74,-176.08 309.74,-176.08 312.09,-173.48 307.41,-173.97 314.44,-170.89 314.44,-170.89"/><text text-anchor="start" x="253.5" y="-213.8" font-family="Lato" font-size="14.00">!d</text></g><!-- 1&#45;&gt;3 --><g id="edge9" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M201.34,-232.6C208.12,-241.95 217.63,-252.44 229,-258 274.97,-280.45 292.9,-265.36 344,-263 368.08,-261.89 376.25,-268.39 398,-258 405.71,-254.32 412.64,-248.18 418.27,-242"/><polygon fill="black" stroke="black" points="423.05,-236.39 420.91,-243.76 420.78,-239.05 418.51,-241.72 418.51,-241.72 418.51,-241.72 420.78,-239.05 416.11,-239.68 423.05,-236.39 423.05,-236.39"/><text text-anchor="start" x="308" y="-269.8" font-family="Lato" font-size="14.00">!c &amp; d</text></g><!-- 2&#45;&gt;1 --><g id="edge10" class="edge"><title>2&#45;&gt;1</title><path fill="none" stroke="black" d="M307.66,-156.66C287.58,-156.96 254.08,-159.7 229,-173 220.86,-177.32 213.46,-183.97 207.34,-190.67"/><polygon fill="black" stroke="black" points="202.51,-196.26 204.7,-188.9 204.8,-193.61 207.08,-190.96 207.08,-190.96 207.08,-190.96 204.8,-193.61 209.47,-193.02 202.51,-196.26 202.51,-196.26"/><text text-anchor="start" x="243.5" y="-176.8" font-family="Lato" font-size="14.00">c &amp; d</text></g><!-- 2&#45;&gt;2 --><g id="edge11" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M316.77,-172.54C314.17,-182.91 317.25,-193 326,-193 332.7,-193 336.08,-187.08 336.12,-179.66"/><polygon fill="black" stroke="black" points="335.23,-172.54 339.23,-179.1 335.67,-176.01 336.1,-179.49 336.1,-179.49 336.1,-179.49 335.67,-176.01 332.98,-179.88 335.23,-172.54 335.23,-172.54"/><text text-anchor="start" x="320" y="-196.8" font-family="Lato" font-size="14.00">!d</text></g><!-- 2&#45;&gt;3 --><g id="edge12" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M341.74,-166.04C360.09,-177.29 391.55,-196.58 412.31,-209.31"/><polygon fill="black" stroke="black" points="418.39,-213.04 410.77,-212.06 415.4,-211.21 412.42,-209.38 412.42,-209.38 412.42,-209.38 415.4,-211.21 414.07,-206.69 418.39,-213.04 418.39,-213.04"/><text text-anchor="start" x="362" y="-202.8" font-family="Lato" font-size="14.00">!c &amp; d</text></g><!-- 3&#45;&gt;1 --><g id="edge13" class="edge"><title>3&#45;&gt;1</title><path fill="none" stroke="black" d="M416.16,-225.02C381.02,-230.79 297.46,-241.71 229,-229 224.8,-228.22 220.46,-227 216.28,-225.59"/><polygon fill="black" stroke="black" points="209.43,-223.08 217.09,-222.54 212.72,-224.29 216,-225.49 216,-225.49 216,-225.49 212.72,-224.29 214.92,-228.45 209.43,-223.08 209.43,-223.08"/><text text-anchor="start" x="322.5" y="-237.8" font-family="Lato" font-size="14.00">c</text></g><!-- 3&#45;&gt;3 --><g id="edge14" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M424.77,-237.54C422.17,-247.91 425.25,-258 434,-258 440.7,-258 444.08,-252.08 444.12,-244.66"/><polygon fill="black" stroke="black" points="443.23,-237.54 447.23,-244.1 443.67,-241.01 444.1,-244.49 444.1,-244.49 444.1,-244.49 443.67,-241.01 440.98,-244.88 443.23,-237.54 443.23,-237.54"/><text text-anchor="start" x="428.5" y="-261.8" font-family="Lato" font-size="14.00">!c</text></g><!-- 4&#45;&gt;4 --><g id="edge15" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M177.76,-32.42C173.83,-43.17 177.58,-54 189,-54 197.92,-54 202.16,-47.39 201.72,-39.37"/><polygon fill="black" stroke="black" points="200.24,-32.42 204.78,-38.61 200.97,-35.84 201.7,-39.26 201.7,-39.26 201.7,-39.26 200.97,-35.84 198.61,-39.92 200.24,-32.42 200.24,-32.42"/><text text-anchor="middle" x="189" y="-57.8" font-family="Lato" font-size="14.00">1</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2c2bd0> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7cbd50> >
%% Cell type:markdown id: tags:
The call the `spot.setup()` in the first cells has installed a default style for the graphviz output. If you want to change this style temporarily, you can call the `show(style)` method explicitely. For instance here is a vertical layout with the default font of GraphViz.
%% Cell type:code id: tags:
``` python
a.show("v")
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="343pt" height="360pt"viewBox="0.00 0.00 343.40 360.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(0.9259259259259258 0.9259259259259258) rotate(0) translate(4 386)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-386 368.02,-386 368.02,4 -4,4"/><text text-anchor="middle" x="182.01" y="-350.8" font-family="Times,serif" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="none" stroke="black" cx="235.02" cy="-287" rx="18" ry="18"/><text text-anchor="middle" x="235.02" y="-283.3" font-family="Times,serif" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M235.02,-341.85C235.02,-340.21 235.02,-325.85 235.02,-312.37"/><polygon fill="black" stroke="black" points="235.02,-305.06 238.17,-312.06 235.02,-308.56 235.02,-312.06 235.02,-312.06 235.02,-312.06 235.02,-308.56 231.87,-312.06 235.02,-305.06 235.02,-305.06"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M252.06,-293.38C261.88,-294.68 271.02,-292.55 271.02,-287 271.02,-282.83 265.88,-280.6 259.16,-280.29"/><polygon fill="black" stroke="black" points="252.06,-280.62 258.9,-277.15 255.55,-280.46 259.05,-280.29 259.05,-280.29 259.05,-280.29 255.55,-280.46 259.2,-283.44 252.06,-280.62 252.06,-280.62"/><text text-anchor="middle" x="294.02" y="-283.3" font-family="Times,serif" font-size="14.00">a &amp; !b</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="none" stroke="black" cx="83.02" cy="-196" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="83.02" cy="-196" rx="22" ry="22"/><text text-anchor="middle" x="83.02" y="-192.3" font-family="Times,serif" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M217.12,-284.97C191.7,-282.65 144.81,-275.17 114.02,-251 104.95,-243.88 98.06,-233.32 93.11,-223.43"/><polygon fill="black" stroke="black" points="90.12,-217.06 95.95,-222.06 91.61,-220.23 93.09,-223.4 93.09,-223.4 93.09,-223.4 91.61,-220.23 90.24,-224.74 90.12,-217.06 90.12,-217.06"/><text text-anchor="middle" x="149.02" y="-239.8" font-family="Times,serif" font-size="14.00">b &amp; c &amp; d</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="none" stroke="black" cx="135.02" cy="-105" rx="18" ry="18"/><text text-anchor="middle" x="135.02" y="-101.3" font-family="Times,serif" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M229,-269.97C216.48,-237.07 187.54,-163.14 172.02,-141 167.12,-134.02 160.66,-127.33 154.51,-121.7"/><polygon fill="black" stroke="black" points="149.01,-116.85 156.34,-119.11 151.63,-119.17 154.26,-121.48 154.26,-121.48 154.26,-121.48 151.63,-119.17 152.18,-123.84 149.01,-116.85 149.01,-116.85"/><text text-anchor="middle" x="231.02" y="-192.3" font-family="Times,serif" font-size="14.00">b &amp; !d</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="none" stroke="black" cx="108.02" cy="-18" rx="18" ry="18"/><text text-anchor="middle" x="108.02" y="-14.3" font-family="Times,serif" font-size="14.00">3</text></g><!-- 0&#45;&gt;3 --><g id="edge5" class="edge"><title>0&#45;&gt;3</title><path fill="none" stroke="black" d="M243.11,-270.52C253.43,-248.66 268.74,-207.67 258.02,-174 238.2,-111.72 221.97,-97.3 173.02,-54 160.68,-43.08 144.33,-34.3 131.12,-28.27"/><polygon fill="black" stroke="black" points="124.54,-25.36 132.22,-25.3 127.74,-26.77 130.94,-28.19 130.94,-28.19 130.94,-28.19 127.74,-26.77 129.67,-31.07 124.54,-25.36 124.54,-25.36"/><text text-anchor="middle" x="289.02" y="-144.8" font-family="Times,serif" font-size="14.00">b &amp; !c &amp; d</text></g><!-- 4 --><g id="node6" class="node"><title>4</title><ellipse fill="none" stroke="black" cx="318.02" cy="-196" rx="18" ry="18"/><text text-anchor="middle" x="318.02" y="-192.3" font-family="Times,serif" font-size="14.00">4</text></g><!-- 0&#45;&gt;4 --><g id="edge6" class="edge"><title>0&#45;&gt;4</title><path fill="none" stroke="black" d="M250.62,-277.72C261.46,-271.42 275.75,-261.98 286.02,-251 294.69,-241.73 302.1,-229.72 307.6,-219.37"/><polygon fill="black" stroke="black" points="310.93,-212.87 310.54,-220.53 309.33,-215.98 307.74,-219.1 307.74,-219.1 307.74,-219.1 309.33,-215.98 304.93,-217.66 310.93,-212.87 310.93,-212.87"/><text text-anchor="middle" x="323.02" y="-239.8" font-family="Times,serif" font-size="14.00">!a &amp; !b</text></g><!-- 1&#45;&gt;1 --><g id="edge7" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M103.6,-204.37C113.87,-205.53 123.02,-202.74 123.02,-196 123.02,-190.95 117.87,-188.11 110.97,-187.5"/><polygon fill="black" stroke="black" points="103.6,-187.63 110.55,-184.36 107.1,-187.57 110.6,-187.51 110.6,-187.51 110.6,-187.51 107.1,-187.57 110.66,-190.66 103.6,-187.63 103.6,-187.63"/><text text-anchor="middle" x="142.52" y="-192.3" font-family="Times,serif" font-size="14.00">c &amp; d</text></g><!-- 1&#45;&gt;2 --><g id="edge8" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M89.91,-175.09C93.93,-164.59 99.5,-151.7 106.02,-141 109.58,-135.16 114.05,-129.26 118.41,-124.02"/><polygon fill="black" stroke="black" points="123.05,-118.61 120.88,-125.98 120.77,-121.27 118.49,-123.93 118.49,-123.93 118.49,-123.93 120.77,-121.27 116.1,-121.87 123.05,-118.61 123.05,-118.61"/><text text-anchor="middle" x="114.02" y="-144.8" font-family="Times,serif" font-size="14.00">!d</text></g><!-- 1&#45;&gt;3 --><g id="edge9" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M64.14,-183.69C35.05,-164.73 -15.36,-124.88 5.02,-87 21.73,-55.95 59.5,-36.73 84.37,-26.95"/><polygon fill="black" stroke="black" points="91.01,-24.44 85.57,-29.86 87.74,-25.68 84.46,-26.91 84.46,-26.91 84.46,-26.91 87.74,-25.68 83.35,-23.97 91.01,-24.44 91.01,-24.44"/><text text-anchor="middle" x="27.52" y="-101.3" font-family="Times,serif" font-size="14.00">!c &amp; d</text></g><!-- 2&#45;&gt;1 --><g id="edge10" class="edge"><title>2&#45;&gt;1</title><path fill="none" stroke="black" d="M132.88,-123.06C131.08,-133.15 127.81,-145.88 122.02,-156 117.64,-163.66 111.35,-170.86 105.1,-176.94"/><polygon fill="black" stroke="black" points="99.91,-181.77 102.89,-174.7 102.47,-179.39 105.04,-177 105.04,-177 105.04,-177 102.47,-179.39 107.18,-179.31 99.91,-181.77 99.91,-181.77"/><text text-anchor="middle" x="148.52" y="-144.8" font-family="Times,serif" font-size="14.00">c &amp; d</text></g><!-- 2&#45;&gt;2 --><g id="edge11" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M151.69,-112.38C161.65,-114.02 171.02,-111.56 171.02,-105 171.02,-100.08 165.75,-97.46 158.91,-97.16"/><polygon fill="black" stroke="black" points="151.69,-97.62 158.47,-94.03 155.18,-97.39 158.67,-97.17 158.67,-97.17 158.67,-97.17 155.18,-97.39 158.87,-100.31 151.69,-97.62 151.69,-97.62"/><text text-anchor="middle" x="179.02" y="-101.3" font-family="Times,serif" font-size="14.00">!d</text></g><!-- 2&#45;&gt;3 --><g id="edge12" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M129.82,-87.61C125.71,-74.68 119.92,-56.47 115.35,-42.07"/><polygon fill="black" stroke="black" points="113.21,-35.34 118.33,-41.06 114.27,-38.67 115.33,-42.01 115.33,-42.01 115.33,-42.01 114.27,-38.67 112.33,-42.96 113.21,-35.34 113.21,-35.34"/><text text-anchor="middle" x="146.52" y="-57.8" font-family="Times,serif" font-size="14.00">!c &amp; d</text></g><!-- 3&#45;&gt;1 --><g id="edge13" class="edge"><title>3&#45;&gt;1</title><path fill="none" stroke="black" d="M105.62,-35.92C101.31,-66.27 92.22,-130.21 86.98,-167.12"/><polygon fill="black" stroke="black" points="85.99,-174.12 83.85,-166.75 86.48,-170.65 86.97,-167.19 86.97,-167.19 86.97,-167.19 86.48,-170.65 90.09,-167.63 85.99,-174.12 85.99,-174.12"/><text text-anchor="middle" x="102.02" y="-101.3" font-family="Times,serif" font-size="14.00">c</text></g><!-- 3&#45;&gt;3 --><g id="edge14" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M124.69,-25.38C134.65,-27.02 144.02,-24.56 144.02,-18 144.02,-13.08 138.75,-10.46 131.91,-10.16"/><polygon fill="black" stroke="black" points="124.69,-10.62 131.47,-7.03 128.18,-10.39 131.67,-10.17 131.67,-10.17 131.67,-10.17 128.18,-10.39 131.87,-13.31 124.69,-10.62 124.69,-10.62"/><text text-anchor="middle" x="151.02" y="-14.3" font-family="Times,serif" font-size="14.00">!c</text></g><!-- 4&#45;&gt;4 --><g id="edge15" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M334.31,-204.02C344.41,-205.95 354.02,-203.28 354.02,-196 354.02,-190.54 348.61,-187.67 341.65,-187.4"/><polygon fill="black" stroke="black" points="334.31,-187.98 341.04,-184.29 337.8,-187.7 341.29,-187.43 341.29,-187.43 341.29,-187.43 337.8,-187.7 341.54,-190.57 334.31,-187.98 334.31,-187.98"/><text text-anchor="middle" x="359.02" y="-192.3" font-family="Times,serif" font-size="14.00">1</text></g></g></svg>)
<spot.jupyter.SVG object>
%% Cell type:markdown id: tags:
If you want to add some style options to the existing one, pass a dot to the `show()` function in addition to your own style options:
%% Cell type:code id: tags:
``` python
a.show(".st")
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="415pt" height="360pt"viewBox="0.00 0.00 414.84 360.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(0.8849557522123894 0.8849557522123894) rotate(0) translate(4 403)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-403 465,-403 465,4 -4,4"/><text text-anchor="start" x="210" y="-384.8" font-family="Lato" font-size="14.00">Inf(</text><text text-anchor="start" x="231" y="-384.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="247" y="-384.8" font-family="Lato" font-size="14.00">)</text><text text-anchor="start" x="209" y="-370.8" font-family="Lato" font-size="14.00">[Büchi]</text><g id="clust1" class="cluster"><title>cluster_0</title><polygon fill="none" stroke="green" points="159.5,-153 159.5,-355 453,-355 453,-153 159.5,-153"/></g><g id="clust2" class="cluster"><title>cluster_1</title><polygon fill="none" stroke="grey" points="159.5,-8 159.5,-93 211.5,-93 211.5,-8 159.5,-8"/></g><g id="clust3" class="cluster"><title>cluster_2</title><polygon fill="none" stroke="red" points="30,-110 30,-195 82,-195 82,-110 30,-110"/></g><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-136" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-132.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-136C2.79,-136 17.15,-136 30.63,-136"/><polygon fill="black" stroke="black" points="37.94,-136 30.94,-139.15 34.44,-136 30.94,-136 30.94,-136 30.94,-136 34.44,-136 30.94,-132.85 37.94,-136 37.94,-136"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-153.04C48.32,-162.86 50.45,-172 56,-172 60.17,-172 62.4,-166.86 62.71,-160.14"/><polygon fill="black" stroke="black" points="62.38,-153.04 65.85,-159.88 62.54,-156.53 62.71,-160.03 62.71,-160.03 62.71,-160.03 62.54,-156.53 59.56,-160.18 62.38,-153.04 62.38,-153.04"/><text text-anchor="start" x="38" y="-175.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="185.5" cy="-245" rx="18" ry="18"/><text text-anchor="middle" x="185.5" y="-241.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M68.53,-149.14C75.14,-156.43 83.75,-165.51 92,-173 115.65,-194.48 145.09,-216.7 164.31,-230.66"/><polygon fill="black" stroke="black" points="170.18,-234.9 162.66,-233.35 167.34,-232.85 164.5,-230.8 164.5,-230.8 164.5,-230.8 167.34,-232.85 166.35,-228.25 170.18,-234.9 170.18,-234.9"/><text text-anchor="start" x="92" y="-221.8" font-family="Lato" font-size="14.00">b &amp; c &amp; d</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="319" cy="-179" rx="18" ry="18"/><text text-anchor="middle" x="319" y="-175.3" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M74.02,-138.74C111.69,-144.82 204.97,-159.92 283,-173 286.56,-173.6 290.32,-174.23 294,-174.86"/><polygon fill="black" stroke="black" points="300.91,-176.04 293.48,-177.97 297.46,-175.45 294.01,-174.86 294.01,-174.86 294.01,-174.86 297.46,-175.45 294.55,-171.76 300.91,-176.04 300.91,-176.04"/><text text-anchor="start" x="167" y="-163.8" font-family="Lato" font-size="14.00">b &amp; !d</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="427" cy="-212" rx="18" ry="18"/><text text-anchor="middle" x="427" y="-208.3" font-family="Lato" font-size="14.00">3</text></g><!-- 0&#45;&gt;3 --><g id="edge5" class="edge"><title>0&#45;&gt;3</title><path fill="none" stroke="black" d="M74.11,-133.61C118.95,-128.04 242.93,-117.18 337,-152 363.85,-161.94 390.53,-181.56 407.57,-195.66"/><polygon fill="black" stroke="black" points="412.96,-200.21 405.58,-198.1 410.29,-197.95 407.61,-195.7 407.61,-195.7 407.61,-195.7 410.29,-197.95 409.64,-193.29 412.96,-200.21 412.96,-200.21"/><text text-anchor="start" x="222" y="-139.8" font-family="Lato" font-size="14.00">b &amp; !c &amp; d</text></g><!-- 4 --><g id="node6" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="black" cx="185.5" cy="-34" rx="18" ry="18"/><text text-anchor="middle" x="185.5" y="-30.3" font-family="Lato" font-size="14.00">4</text></g><!-- 0&#45;&gt;4 --><g id="edge6" class="edge"><title>0&#45;&gt;4</title><path fill="none" stroke="black" d="M65.1,-119.95C71.31,-108.83 80.72,-94.24 92,-84 112.68,-65.23 141.67,-51.04 161.66,-42.66"/><polygon fill="black" stroke="black" points="168.32,-39.94 163.03,-45.5 165.08,-41.26 161.84,-42.58 161.84,-42.58 161.84,-42.58 165.08,-41.26 160.65,-39.67 168.32,-39.94 168.32,-39.94"/><text text-anchor="start" x="100.5" y="-87.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 1&#45;&gt;1 --><g id="edge7" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M174.79,-259.79C171.31,-270.42 174.88,-281 185.5,-281 193.63,-281 197.63,-274.8 197.5,-267.12"/><polygon fill="black" stroke="black" points="196.21,-259.79 200.52,-266.14 196.81,-263.24 197.42,-266.69 197.42,-266.69 197.42,-266.69 196.81,-263.24 194.32,-267.23 196.21,-259.79 196.21,-259.79"/><text text-anchor="start" x="169.5" y="-299.8" font-family="Lato" font-size="14.00">c &amp; d</text><text text-anchor="start" x="177.5" y="-284.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 1&#45;&gt;2 --><g id="edge8" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M193.27,-228.64C199.09,-216.75 208.65,-201.34 222,-193 243.63,-179.49 273.25,-177.06 293.85,-177.34"/><polygon fill="black" stroke="black" points="301,-177.54 293.91,-180.49 297.5,-177.44 294,-177.34 294,-177.34 294,-177.34 297.5,-177.44 294.09,-174.19 301,-177.54 301,-177.54"/><text text-anchor="start" x="246.5" y="-211.8" font-family="Lato" font-size="14.00">!d</text><text text-anchor="start" x="244.5" y="-196.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 1&#45;&gt;3 --><g id="edge9" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M201.57,-253.49C207.7,-256.49 214.99,-259.49 222,-261 248.51,-266.7 256.26,-265.45 283,-261 327.15,-253.65 375.94,-234.34 403.59,-222.28"/><polygon fill="black" stroke="black" points="410.15,-219.38 405.03,-225.09 406.95,-220.79 403.75,-222.21 403.75,-222.21 403.75,-222.21 406.95,-220.79 402.48,-219.33 410.15,-219.38 410.15,-219.38"/><text text-anchor="start" x="301" y="-274.8" font-family="Lato" font-size="14.00">!c &amp; d</text><text text-anchor="start" x="311" y="-259.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 2&#45;&gt;1 --><g id="edge10" class="edge"><title>2&#45;&gt;1</title><path fill="none" stroke="black" d="M309.27,-194.71C303.14,-204.31 294.07,-216.04 283,-223 261.11,-236.77 231.6,-241.95 211,-243.89"/><polygon fill="black" stroke="black" points="203.84,-244.46 210.57,-240.76 207.33,-244.18 210.82,-243.9 210.82,-243.9 210.82,-243.9 207.33,-244.18 211.07,-247.04 203.84,-244.46 203.84,-244.46"/><text text-anchor="start" x="236.5" y="-245.8" font-family="Lato" font-size="14.00">c &amp; d</text></g><!-- 2&#45;&gt;2 --><g id="edge11" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M309.77,-194.54C307.17,-204.91 310.25,-215 319,-215 325.7,-215 329.08,-209.08 329.12,-201.66"/><polygon fill="black" stroke="black" points="328.23,-194.54 332.23,-201.1 328.67,-198.01 329.1,-201.49 329.1,-201.49 329.1,-201.49 328.67,-198.01 325.98,-201.88 328.23,-194.54 328.23,-194.54"/><text text-anchor="start" x="313" y="-218.8" font-family="Lato" font-size="14.00">!d</text></g><!-- 2&#45;&gt;3 --><g id="edge12" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M336.56,-184.16C354.38,-189.7 382.83,-198.56 402.86,-204.79"/><polygon fill="black" stroke="black" points="409.55,-206.88 401.93,-207.81 406.21,-205.84 402.87,-204.8 402.87,-204.8 402.87,-204.8 406.21,-205.84 403.81,-201.79 409.55,-206.88 409.55,-206.88"/><text text-anchor="start" x="355" y="-203.8" font-family="Lato" font-size="14.00">!c &amp; d</text></g><!-- 3&#45;&gt;1 --><g id="edge13" class="edge"><title>3&#45;&gt;1</title><path fill="none" stroke="black" d="M415.53,-226.04C400.55,-244.81 371.04,-277.2 337,-290 291.2,-307.23 235.67,-278.2 206.55,-259.29"/><polygon fill="black" stroke="black" points="200.41,-255.2 207.98,-256.46 203.32,-257.14 206.23,-259.08 206.23,-259.08 206.23,-259.08 203.32,-257.14 204.48,-261.71 200.41,-255.2 200.41,-255.2"/><text text-anchor="start" x="315.5" y="-298.8" font-family="Lato" font-size="14.00">c</text></g><!-- 3&#45;&gt;3 --><g id="edge14" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M417.77,-227.54C415.17,-237.91 418.25,-248 427,-248 433.7,-248 437.08,-242.08 437.12,-234.66"/><polygon fill="black" stroke="black" points="436.23,-227.54 440.23,-234.1 436.67,-231.01 437.1,-234.49 437.1,-234.49 437.1,-234.49 436.67,-231.01 433.98,-234.88 436.23,-227.54 436.23,-227.54"/><text text-anchor="start" x="421.5" y="-251.8" font-family="Lato" font-size="14.00">!c</text></g><!-- 4&#45;&gt;4 --><g id="edge15" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M174.79,-48.79C171.31,-59.42 174.88,-70 185.5,-70 193.63,-70 197.63,-63.8 197.5,-56.12"/><polygon fill="black" stroke="black" points="196.21,-48.79 200.52,-55.14 196.81,-52.24 197.42,-55.69 197.42,-55.69 197.42,-55.69 196.81,-52.24 194.32,-56.23 196.21,-48.79 196.21,-48.79"/><text text-anchor="middle" x="185.5" y="-73.8" font-family="Lato" font-size="14.00">1</text></g></g></svg>)
<spot.jupyter.SVG object>
%% Cell type:markdown id: tags:
The `translate()` function can also be called with a formula object. Either as a function, or as a method.
%% Cell type:code id: tags:
``` python
f = spot.formula('a U b'); f
```
%%%% Output: execute_result
$a \mathbin{\mathsf{U}} b$
spot.formula("a U b")
%% Cell type:code id: tags:
``` python
spot.translate(f)
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="170pt" height="125pt"viewBox="0.00 0.00 170.00 124.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 120.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-120.8 166,-120.8 166,4 -4,4"/><text text-anchor="start" x="59.5" y="-86.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 1 --><g id="node2" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-22" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-18.3" font-family="Lato" font-size="14.00">1</text></g><!-- I&#45;&gt;1 --><g id="edge1" class="edge"><title>I&#45;&gt;1</title><path fill="none" stroke="black" d="M1.15,-22C2.79,-22 17.15,-22 30.63,-22"/><polygon fill="black" stroke="black" points="37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22"/></g><!-- 1&#45;&gt;1 --><g id="edge4" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14"/><polygon fill="black" stroke="black" points="62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04"/><text text-anchor="start" x="38" y="-61.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 0 --><g id="node3" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="140" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="140" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="140" y="-18.3" font-family="Lato" font-size="14.00">0</text></g><!-- 1&#45;&gt;0 --><g id="edge3" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M74.39,-22C84.9,-22 98.55,-22 110.6,-22"/><polygon fill="black" stroke="black" points="117.85,-22 110.85,-25.15 114.35,-22 110.85,-22 110.85,-22 110.85,-22 114.35,-22 110.85,-18.85 117.85,-22 117.85,-22"/><text text-anchor="start" x="92" y="-25.8" font-family="Lato" font-size="14.00">b</text></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M131.99,-42.58C130.89,-52.84 133.55,-62 140,-62 144.83,-62 147.54,-56.85 148.13,-49.95"/><polygon fill="black" stroke="black" points="148.01,-42.58 151.27,-49.53 148.06,-46.08 148.12,-49.58 148.12,-49.58 148.12,-49.58 148.06,-46.08 144.97,-49.63 148.01,-42.58 148.01,-42.58"/><text text-anchor="middle" x="140" y="-65.8" font-family="Lato" font-size="14.00">1</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2c9270> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7cf480> >
%% Cell type:code id: tags:
``` python
f.translate()
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="170pt" height="125pt"viewBox="0.00 0.00 170.00 124.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 120.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-120.8 166,-120.8 166,4 -4,4"/><text text-anchor="start" x="59.5" y="-86.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 1 --><g id="node2" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-22" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-18.3" font-family="Lato" font-size="14.00">1</text></g><!-- I&#45;&gt;1 --><g id="edge1" class="edge"><title>I&#45;&gt;1</title><path fill="none" stroke="black" d="M1.15,-22C2.79,-22 17.15,-22 30.63,-22"/><polygon fill="black" stroke="black" points="37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22"/></g><!-- 1&#45;&gt;1 --><g id="edge4" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14"/><polygon fill="black" stroke="black" points="62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04"/><text text-anchor="start" x="38" y="-61.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 0 --><g id="node3" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="140" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="140" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="140" y="-18.3" font-family="Lato" font-size="14.00">0</text></g><!-- 1&#45;&gt;0 --><g id="edge3" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M74.39,-22C84.9,-22 98.55,-22 110.6,-22"/><polygon fill="black" stroke="black" points="117.85,-22 110.85,-25.15 114.35,-22 110.85,-22 110.85,-22 110.85,-22 114.35,-22 110.85,-18.85 117.85,-22 117.85,-22"/><text text-anchor="start" x="92" y="-25.8" font-family="Lato" font-size="14.00">b</text></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M131.99,-42.58C130.89,-52.84 133.55,-62 140,-62 144.83,-62 147.54,-56.85 148.13,-49.95"/><polygon fill="black" stroke="black" points="148.01,-42.58 151.27,-49.53 148.06,-46.08 148.12,-49.58 148.12,-49.58 148.12,-49.58 148.06,-46.08 144.97,-49.63 148.01,-42.58 148.01,-42.58"/><text text-anchor="middle" x="140" y="-65.8" font-family="Lato" font-size="14.00">1</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2c9a20> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7cfc00> >
%% Cell type:markdown id: tags:
When used as a method, all the arguments are translation options. Here is a monitor:
%% Cell type:code id: tags:
``` python
f.translate('mon')
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="162pt" height="115pt"viewBox="0.00 0.00 162.00 115.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 111)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-111 158,-111 158,4 -4,4"/><text text-anchor="start" x="74" y="-91.8" font-family="Lato" font-size="14.00">t</text><text text-anchor="start" x="66" y="-76.8" font-family="Lato" font-size="14.00">[all]</text><!-- I --><!-- 1 --><g id="node2" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-18" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-14.3" font-family="Lato" font-size="14.00">1</text></g><!-- I&#45;&gt;1 --><g id="edge1" class="edge"><title>I&#45;&gt;1</title><path fill="none" stroke="black" d="M1.15,-18C2.79,-18 17.15,-18 30.63,-18"/><polygon fill="black" stroke="black" points="37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18"/></g><!-- 1&#45;&gt;1 --><g id="edge4" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M49.62,-35.04C48.32,-44.86 50.45,-54 56,-54 60.17,-54 62.4,-48.86 62.71,-42.14"/><polygon fill="black" stroke="black" points="62.38,-35.04 65.85,-41.88 62.54,-38.53 62.71,-42.03 62.71,-42.03 62.71,-42.03 62.54,-38.53 59.56,-42.18 62.38,-35.04 62.38,-35.04"/><text text-anchor="start" x="38" y="-57.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 0 --><g id="node3" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="136" cy="-18" rx="18" ry="18"/><text text-anchor="middle" x="136" y="-14.3" font-family="Lato" font-size="14.00">0</text></g><!-- 1&#45;&gt;0 --><g id="edge3" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M74.31,-18C85.02,-18 98.92,-18 110.71,-18"/><polygon fill="black" stroke="black" points="117.74,-18 110.74,-21.15 114.24,-18 110.74,-18 110.74,-18 110.74,-18 114.24,-18 110.74,-14.85 117.74,-18 117.74,-18"/><text text-anchor="start" x="92" y="-21.8" font-family="Lato" font-size="14.00">b</text></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M128.97,-34.66C127.41,-44.62 129.75,-54 136,-54 140.69,-54 143.18,-48.73 143.47,-41.89"/><polygon fill="black" stroke="black" points="143.03,-34.66 146.6,-41.46 143.24,-38.16 143.46,-41.65 143.46,-41.65 143.46,-41.65 143.24,-38.16 140.31,-41.84 143.03,-34.66 143.03,-34.66"/><text text-anchor="middle" x="136" y="-57.8" font-family="Lato" font-size="14.00">1</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2ce600> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7cf3f0> >
%% Cell type:markdown id: tags:
The following three cells show a formulas for which it makes a difference to select `'small'` or `'deterministic'`.
%% Cell type:code id: tags:
``` python
f = spot.formula('Ga | Gb | Gc'); f
```
%%%% Output: execute_result
$\mathsf{G} a \lor \mathsf{G} b \lor \mathsf{G} c$
spot.formula("Ga | Gb | Gc")
%% Cell type:code id: tags:
``` python
f.translate('ba', 'small').show('.v')
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="252pt" height="217pt"viewBox="0.00 0.00 252.00 216.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 212.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-212.8 248,-212.8 248,4 -4,4"/><text text-anchor="start" x="100.5" y="-178.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="109" cy="-113" rx="18" ry="18"/><text text-anchor="middle" x="109" y="-109.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M109,-167.85C109,-166.21 109,-151.85 109,-138.37"/><polygon fill="black" stroke="black" points="109,-131.06 112.15,-138.06 109,-134.56 109,-138.06 109,-138.06 109,-138.06 109,-134.56 105.85,-138.06 109,-131.06 109,-131.06"/></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="22" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="22" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="22" y="-18.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge2" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M96.9,-99.62C82.69,-85.08 58.89,-60.73 41.93,-43.39"/><polygon fill="black" stroke="black" points="36.91,-38.25 44.05,-41.05 39.35,-40.75 41.8,-43.25 41.8,-43.25 41.8,-43.25 39.35,-40.75 39.55,-45.46 36.91,-38.25 36.91,-38.25"/><text text-anchor="start" x="74" y="-65.8" font-family="Lato" font-size="14.00">a</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="109" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="109" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="109" y="-18.3" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge3" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M109,-94.84C109,-82.54 109,-65.68 109,-51.39"/><polygon fill="black" stroke="black" points="109,-44.19 112.15,-51.19 109,-47.69 109,-51.19 109,-51.19 109,-51.19 109,-47.69 105.85,-51.19 109,-44.19 109,-44.19"/><text text-anchor="start" x="109" y="-65.8" font-family="Lato" font-size="14.00">b</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="197" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="197" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="197" y="-18.3" font-family="Lato" font-size="14.00">3</text></g><!-- 0&#45;&gt;3 --><g id="edge4" class="edge"><title>0&#45;&gt;3</title><path fill="none" stroke="black" d="M121.24,-99.62C135.62,-85.08 159.69,-60.73 176.84,-43.39"/><polygon fill="black" stroke="black" points="181.92,-38.25 179.24,-45.44 179.46,-40.74 177,-43.23 177,-43.23 177,-43.23 179.46,-40.74 174.76,-41.01 181.92,-38.25 181.92,-38.25"/><text text-anchor="start" x="158" y="-65.8" font-family="Lato" font-size="14.00">c</text></g><!-- 1&#45;&gt;1 --><g id="edge5" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M42.58,-30.37C52.84,-31.53 62,-28.74 62,-22 62,-16.95 56.85,-14.11 49.95,-13.5"/><polygon fill="black" stroke="black" points="42.58,-13.63 49.52,-10.36 46.08,-13.57 49.58,-13.51 49.58,-13.51 49.58,-13.51 46.08,-13.57 49.63,-16.66 42.58,-13.63 42.58,-13.63"/><text text-anchor="start" x="62" y="-18.3" font-family="Lato" font-size="14.00">a</text></g><!-- 2&#45;&gt;2 --><g id="edge6" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M129.58,-30.37C139.84,-31.53 149,-28.74 149,-22 149,-16.95 143.85,-14.11 136.95,-13.5"/><polygon fill="black" stroke="black" points="129.58,-13.63 136.52,-10.36 133.08,-13.57 136.58,-13.51 136.58,-13.51 136.58,-13.51 133.08,-13.57 136.63,-16.66 129.58,-13.63 129.58,-13.63"/><text text-anchor="start" x="149" y="-18.3" font-family="Lato" font-size="14.00">b</text></g><!-- 3&#45;&gt;3 --><g id="edge7" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M217.58,-30.37C227.84,-31.53 237,-28.74 237,-22 237,-16.95 231.85,-14.11 224.95,-13.5"/><polygon fill="black" stroke="black" points="217.58,-13.63 224.52,-10.36 221.08,-13.57 224.58,-13.51 224.58,-13.51 224.58,-13.51 221.08,-13.57 224.63,-16.66 217.58,-13.63 217.58,-13.63"/><text text-anchor="start" x="237" y="-18.3" font-family="Lato" font-size="14.00">c</text></g></g></svg>)
<spot.jupyter.SVG object>
%% Cell type:code id: tags:
``` python
f.translate('ba', 'det').show('v.')
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="586pt" height="320pt"viewBox="0.00 0.00 585.88 319.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 315.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-315.8 581.88,-315.8 581.88,4 -4,4"/><text text-anchor="start" x="267.44" y="-281.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 6 --><g id="node2" class="node"><title>6</title><ellipse fill="#ffffaa" stroke="black" cx="283.88" cy="-212" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="283.88" cy="-212" rx="22" ry="22"/><text text-anchor="middle" x="283.88" y="-208.3" font-family="Lato" font-size="14.00">6</text></g><!-- I&#45;&gt;6 --><g id="edge1" class="edge"><title>I&#45;&gt;6</title><path fill="none" stroke="black" d="M283.88,-270.83C283.88,-269.16 283.88,-255.12 283.88,-241.29"/><polygon fill="black" stroke="black" points="283.88,-234.14 287.03,-241.14 283.88,-237.64 283.88,-241.14 283.88,-241.14 283.88,-241.14 283.88,-237.64 280.73,-241.14 283.88,-234.14 283.88,-234.14"/></g><!-- 6&#45;&gt;6 --><g id="edge20" class="edge"><title>6&#45;&gt;6</title><path fill="none" stroke="black" d="M304.87,-219.32C314.97,-220.22 323.88,-217.78 323.88,-212 323.88,-207.66 318.87,-205.21 312.1,-204.63"/><polygon fill="black" stroke="black" points="304.87,-204.68 311.85,-201.48 308.37,-204.66 311.87,-204.63 311.87,-204.63 311.87,-204.63 308.37,-204.66 311.9,-207.78 304.87,-204.68 304.87,-204.68"/><text text-anchor="start" x="323.88" y="-208.3" font-family="Lato" font-size="14.00">a &amp; b &amp; c</text></g><!-- 0 --><g id="node3" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="96.88" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="96.88" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="96.88" y="-18.3" font-family="Lato" font-size="14.00">0</text></g><!-- 6&#45;&gt;0 --><g id="edge14" class="edge"><title>6&#45;&gt;0</title><path fill="none" stroke="black" d="M261.73,-208.65C201.89,-201.81 39.37,-179.75 7.88,-139 -20.31,-102.5 36.35,-59.38 71.61,-37.42"/><polygon fill="black" stroke="black" points="77.93,-33.57 73.59,-39.91 74.94,-35.4 71.95,-37.22 71.95,-37.22 71.95,-37.22 74.94,-35.4 70.31,-34.53 77.93,-33.57 77.93,-33.57"/><text text-anchor="start" x="7.88" y="-113.3" font-family="Lato" font-size="14.00">!a &amp; !b &amp; c</text></g><!-- 1 --><g id="node4" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="471.88" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="471.88" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="471.88" y="-18.3" font-family="Lato" font-size="14.00">1</text></g><!-- 6&#45;&gt;1 --><g id="edge15" class="edge"><title>6&#45;&gt;1</title><path fill="none" stroke="black" d="M306.14,-211.9C353.18,-212.4 462.08,-205.94 506.88,-139 526.19,-110.15 506.06,-70.3 489.32,-45.61"/><polygon fill="black" stroke="black" points="485.16,-39.68 491.76,-43.6 487.17,-42.54 489.18,-45.41 489.18,-45.41 489.18,-45.41 487.17,-42.54 486.6,-47.22 485.16,-39.68 485.16,-39.68"/><text text-anchor="start" x="513.88" y="-113.3" font-family="Lato" font-size="14.00">a &amp; !b &amp; !c</text></g><!-- 2 --><g id="node5" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="321.88" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="321.88" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="321.88" y="-18.3" font-family="Lato" font-size="14.00">2</text></g><!-- 6&#45;&gt;2 --><g id="edge16" class="edge"><title>6&#45;&gt;2</title><path fill="none" stroke="black" d="M296.7,-193.99C300.98,-187.44 305.31,-179.69 307.88,-172 321.33,-131.79 323.32,-82.31 323,-51.71"/><polygon fill="black" stroke="black" points="322.87,-44.35 326.14,-51.3 322.93,-47.85 322.99,-51.35 322.99,-51.35 322.99,-51.35 322.93,-47.85 319.84,-51.4 322.87,-44.35 322.87,-44.35"/><text text-anchor="start" x="320.88" y="-113.3" font-family="Lato" font-size="14.00">!a &amp; b &amp; !c</text></g><!-- 3 --><g id="node6" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="102.88" cy="-117" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="102.88" cy="-117" rx="22" ry="22"/><text text-anchor="middle" x="102.88" y="-113.3" font-family="Lato" font-size="14.00">3</text></g><!-- 6&#45;&gt;3 --><g id="edge17" class="edge"><title>6&#45;&gt;3</title><path fill="none" stroke="black" d="M262.8,-205.63C240.04,-199.36 203.12,-187.8 173.88,-172 156,-162.34 137.79,-148.39 124.29,-137.09"/><polygon fill="black" stroke="black" points="118.81,-132.43 126.18,-134.56 121.48,-134.69 124.14,-136.96 124.14,-136.96 124.14,-136.96 121.48,-134.69 122.1,-139.36 118.81,-132.43 118.81,-132.43"/><text text-anchor="start" x="173.88" y="-160.8" font-family="Lato" font-size="14.00">!a &amp; b &amp; c</text></g><!-- 4 --><g id="node7" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="black" cx="214.88" cy="-117" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="214.88" cy="-117" rx="22" ry="22"/><text text-anchor="middle" x="214.88" y="-113.3" font-family="Lato" font-size="14.00">4</text></g><!-- 6&#45;&gt;4 --><g id="edge18" class="edge"><title>6&#45;&gt;4</title><path fill="none" stroke="black" d="M268.43,-195.68C261.77,-188.73 254.1,-180.23 247.88,-172 241,-162.88 234.26,-152.26 228.69,-142.86"/><polygon fill="black" stroke="black" points="225.03,-136.58 231.27,-141.05 226.79,-139.61 228.55,-142.63 228.55,-142.63 228.55,-142.63 226.79,-139.61 225.83,-144.22 225.03,-136.58 225.03,-136.58"/><text text-anchor="start" x="247.88" y="-160.8" font-family="Lato" font-size="14.00">a &amp; !b &amp; c</text></g><!-- 5 --><g id="node8" class="node"><title>5</title><ellipse fill="#ffffaa" stroke="black" cx="425.88" cy="-117" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="425.88" cy="-117" rx="22" ry="22"/><text text-anchor="middle" x="425.88" y="-113.3" font-family="Lato" font-size="14.00">5</text></g><!-- 6&#45;&gt;5 --><g id="edge19" class="edge"><title>6&#45;&gt;5</title><path fill="none" stroke="black" d="M301.87,-199.22C327.12,-182.68 373.17,-152.52 401.49,-133.98"/><polygon fill="black" stroke="black" points="407.6,-129.98 403.47,-136.45 404.67,-131.89 401.74,-133.81 401.74,-133.81 401.74,-133.81 404.67,-131.89 400.02,-131.18 407.6,-129.98 407.6,-129.98"/><text text-anchor="start" x="362.88" y="-160.8" font-family="Lato" font-size="14.00">a &amp; b &amp; !c</text></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M117.46,-30.37C127.73,-31.53 136.88,-28.74 136.88,-22 136.88,-16.95 131.73,-14.11 124.83,-13.5"/><polygon fill="black" stroke="black" points="117.46,-13.63 124.41,-10.36 120.96,-13.57 124.46,-13.51 124.46,-13.51 124.46,-13.51 120.96,-13.57 124.52,-16.66 117.46,-13.63 117.46,-13.63"/><text text-anchor="start" x="136.88" y="-18.3" font-family="Lato" font-size="14.00">c</text></g><!-- 1&#45;&gt;1 --><g id="edge3" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M492.46,-30.37C502.73,-31.53 511.88,-28.74 511.88,-22 511.88,-16.95 506.73,-14.11 499.83,-13.5"/><polygon fill="black" stroke="black" points="492.46,-13.63 499.41,-10.36 495.96,-13.57 499.46,-13.51 499.46,-13.51 499.46,-13.51 495.96,-13.57 499.52,-16.66 492.46,-13.63 492.46,-13.63"/><text text-anchor="start" x="511.88" y="-18.3" font-family="Lato" font-size="14.00">a</text></g><!-- 2&#45;&gt;2 --><g id="edge4" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M342.46,-30.37C352.73,-31.53 361.88,-28.74 361.88,-22 361.88,-16.95 356.73,-14.11 349.83,-13.5"/><polygon fill="black" stroke="black" points="342.46,-13.63 349.41,-10.36 345.96,-13.57 349.46,-13.51 349.46,-13.51 349.46,-13.51 345.96,-13.57 349.52,-16.66 342.46,-13.63 342.46,-13.63"/><text text-anchor="start" x="361.88" y="-18.3" font-family="Lato" font-size="14.00">b</text></g><!-- 3&#45;&gt;0 --><g id="edge5" class="edge"><title>3&#45;&gt;0</title><path fill="none" stroke="black" d="M99.76,-94.99C99.02,-89.18 98.31,-82.85 97.88,-77 97.27,-68.61 96.96,-59.47 96.82,-51.13"/><polygon fill="black" stroke="black" points="96.74,-44.05 99.97,-51.02 96.78,-47.55 96.82,-51.05 96.82,-51.05 96.82,-51.05 96.78,-47.55 93.67,-51.09 96.74,-44.05 96.74,-44.05"/><text text-anchor="start" x="97.88" y="-65.8" font-family="Lato" font-size="14.00">!b &amp; c</text></g><!-- 3&#45;&gt;2 --><g id="edge6" class="edge"><title>3&#45;&gt;2</title><path fill="none" stroke="black" d="M116.32,-99.46C128.01,-85.47 144.37,-66.93 152.88,-62 197.27,-36.27 257.43,-27.51 292.71,-24.54"/><polygon fill="black" stroke="black" points="299.85,-23.98 293.11,-27.66 296.36,-24.25 292.87,-24.52 292.87,-24.52 292.87,-24.52 296.36,-24.25 292.63,-21.38 299.85,-23.98 299.85,-23.98"/><text text-anchor="start" x="152.88" y="-65.8" font-family="Lato" font-size="14.00">b &amp; !c</text></g><!-- 3&#45;&gt;3 --><g id="edge7" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M123.46,-125.37C133.73,-126.53 142.88,-123.74 142.88,-117 142.88,-111.95 137.73,-109.11 130.83,-108.5"/><polygon fill="black" stroke="black" points="123.46,-108.63 130.41,-105.36 126.96,-108.57 130.46,-108.51 130.46,-108.51 130.46,-108.51 126.96,-108.57 130.52,-111.66 123.46,-108.63 123.46,-108.63"/><text text-anchor="start" x="142.88" y="-113.3" font-family="Lato" font-size="14.00">b &amp; c</text></g><!-- 4&#45;&gt;0 --><g id="edge8" class="edge"><title>4&#45;&gt;0</title><path fill="none" stroke="black" d="M210.61,-95.34C207.38,-84.24 201.91,-71.01 192.88,-62 174.59,-43.72 146.57,-33.68 125.52,-28.38"/><polygon fill="black" stroke="black" points="118.67,-26.76 126.21,-25.3 122.07,-27.56 125.48,-28.37 125.48,-28.37 125.48,-28.37 122.07,-27.56 124.76,-31.43 118.67,-26.76 118.67,-26.76"/><text text-anchor="start" x="202.88" y="-65.8" font-family="Lato" font-size="14.00">!a &amp; c</text></g><!-- 4&#45;&gt;1 --><g id="edge9" class="edge"><title>4&#45;&gt;1</title><path fill="none" stroke="black" d="M235.16,-107.56C261.77,-96.58 310.02,-77.04 351.88,-62 383.22,-50.74 419.65,-39.11 444.07,-31.51"/><polygon fill="black" stroke="black" points="450.94,-29.38 445.19,-34.46 447.6,-30.42 444.25,-31.45 444.25,-31.45 444.25,-31.45 447.6,-30.42 443.32,-28.44 450.94,-29.38 450.94,-29.38"/><text text-anchor="start" x="351.88" y="-65.8" font-family="Lato" font-size="14.00">a &amp; !c</text></g><!-- 4&#45;&gt;4 --><g id="edge10" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M235.46,-125.37C245.73,-126.53 254.88,-123.74 254.88,-117 254.88,-111.95 249.73,-109.11 242.83,-108.5"/><polygon fill="black" stroke="black" points="235.46,-108.63 242.41,-105.36 238.96,-108.57 242.46,-108.51 242.46,-108.51 242.46,-108.51 238.96,-108.57 242.52,-111.66 235.46,-108.63 235.46,-108.63"/><text text-anchor="start" x="254.88" y="-113.3" font-family="Lato" font-size="14.00">a &amp; c</text></g><!-- 5&#45;&gt;1 --><g id="edge11" class="edge"><title>5&#45;&gt;1</title><path fill="none" stroke="black" d="M437.75,-98.1C441.84,-91.59 446.29,-84.09 449.88,-77 454.33,-68.22 458.58,-58.32 462.13,-49.42"/><polygon fill="black" stroke="black" points="464.7,-42.84 465.09,-50.51 463.43,-46.1 462.15,-49.36 462.15,-49.36 462.15,-49.36 463.43,-46.1 459.22,-48.21 464.7,-42.84 464.7,-42.84"/><text text-anchor="start" x="455.88" y="-65.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 5&#45;&gt;2 --><g id="edge12" class="edge"><title>5&#45;&gt;2</title><path fill="none" stroke="black" d="M416.48,-96.87C410.32,-85.72 401.46,-71.95 390.88,-62 378.57,-50.41 362.18,-40.96 348.46,-34.27"/><polygon fill="black" stroke="black" points="341.97,-31.21 349.65,-31.34 345.14,-32.7 348.3,-34.19 348.3,-34.19 348.3,-34.19 345.14,-32.7 346.96,-37.04 341.97,-31.21 341.97,-31.21"/><text text-anchor="start" x="402.88" y="-65.8" font-family="Lato" font-size="14.00">!a &amp; b</text></g><!-- 5&#45;&gt;5 --><g id="edge13" class="edge"><title>5&#45;&gt;5</title><path fill="none" stroke="black" d="M446.46,-125.37C456.73,-126.53 465.88,-123.74 465.88,-117 465.88,-111.95 460.73,-109.11 453.83,-108.5"/><polygon fill="black" stroke="black" points="446.46,-108.63 453.41,-105.36 449.96,-108.57 453.46,-108.51 453.46,-108.51 453.46,-108.51 449.96,-108.57 453.52,-111.66 446.46,-108.63 446.46,-108.63"/><text text-anchor="start" x="465.88" y="-113.3" font-family="Lato" font-size="14.00">a &amp; b</text></g></g></svg>)
<spot.jupyter.SVG object>
%% Cell type:markdown id: tags:
Here is how to build an unambiguous automaton:
%% Cell type:code id: tags:
``` python
spot.translate('GFa -> GFb', 'unambig')
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="298pt" height="347pt"viewBox="0.00 0.00 298.00 347.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 343)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-343 294,-343 294,4 -4,4"/><text text-anchor="start" x="124.5" y="-324.8" font-family="Lato" font-size="14.00">Inf(</text><text text-anchor="start" x="145.5" y="-324.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="161.5" y="-324.8" font-family="Lato" font-size="14.00">)</text><text text-anchor="start" x="123.5" y="-310.8" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-131" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-127.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-131C2.79,-131 17.15,-131 30.63,-131"/><polygon fill="black" stroke="black" points="37.94,-131 30.94,-134.15 34.44,-131 30.94,-131 30.94,-131 30.94,-131 34.44,-131 30.94,-127.85 37.94,-131 37.94,-131"/></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="156" cy="-204" rx="18" ry="18"/><text text-anchor="middle" x="156" y="-200.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge2" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M68.54,-144.52C75.02,-151.67 83.5,-160.33 92,-167 104.83,-177.07 120.67,-186.36 133.25,-193.11"/><polygon fill="black" stroke="black" points="139.5,-196.4 131.84,-195.93 136.41,-194.77 133.31,-193.14 133.31,-193.14 133.31,-193.14 136.41,-194.77 134.78,-190.35 139.5,-196.4 139.5,-196.4"/><text text-anchor="middle" x="105" y="-186.8" font-family="Lato" font-size="14.00">1</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="156" cy="-66" rx="18" ry="18"/><text text-anchor="middle" x="156" y="-62.3" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge3" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M71.46,-121.41C88.11,-110.37 115.57,-92.15 134.44,-79.64"/><polygon fill="black" stroke="black" points="140.48,-75.63 136.39,-82.12 137.56,-77.56 134.65,-79.5 134.65,-79.5 134.65,-79.5 137.56,-77.56 132.91,-76.87 140.48,-75.63 140.48,-75.63"/><text text-anchor="start" x="92" y="-109.8" font-family="Lato" font-size="14.00">a | b</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="270" cy="-123" rx="18" ry="18"/><text text-anchor="middle" x="270" y="-119.3" font-family="Lato" font-size="14.00">3</text></g><!-- 0&#45;&gt;3 --><g id="edge4" class="edge"><title>0&#45;&gt;3</title><path fill="none" stroke="black" d="M73.99,-133.48C105.7,-137.64 175.94,-144.68 234,-135 238.14,-134.31 242.45,-133.19 246.57,-131.91"/><polygon fill="black" stroke="black" points="253.26,-129.63 247.64,-134.87 249.94,-130.76 246.63,-131.88 246.63,-131.88 246.63,-131.88 249.94,-130.76 245.62,-128.9 253.26,-129.63 253.26,-129.63"/><text text-anchor="start" x="136" y="-142.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 4 --><g id="node6" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="black" cx="270" cy="-18" rx="18" ry="18"/><text text-anchor="middle" x="270" y="-14.3" font-family="Lato" font-size="14.00">4</text></g><!-- 0&#45;&gt;4 --><g id="edge5" class="edge"><title>0&#45;&gt;4</title><path fill="none" stroke="black" d="M63.69,-114.3C74.63,-89.51 98.92,-43.78 136,-24 170.45,-5.63 217.34,-8.89 245.25,-13.23"/><polygon fill="black" stroke="black" points="252.26,-14.41 244.84,-16.36 248.81,-13.83 245.36,-13.25 245.36,-13.25 245.36,-13.25 248.81,-13.83 245.88,-10.14 252.26,-14.41 252.26,-14.41"/><text text-anchor="start" x="136" y="-27.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 1&#45;&gt;1 --><g id="edge6" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M151.51,-221.78C150.74,-231.31 152.24,-240 156,-240 158.76,-240 160.3,-235.32 160.62,-229.05"/><polygon fill="black" stroke="black" points="160.49,-221.78 163.77,-228.72 160.56,-225.28 160.62,-228.78 160.62,-228.78 160.62,-228.78 160.56,-225.28 157.47,-228.84 160.49,-221.78 160.49,-221.78"/><text text-anchor="start" x="150" y="-243.8" font-family="Lato" font-size="14.00">!b</text></g><!-- 1&#45;&gt;1 --><g id="edge7" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M148.82,-220.59C144.33,-238.17 146.72,-258 156,-258 164.05,-258 166.91,-243.09 164.6,-227.66"/><polygon fill="black" stroke="black" points="163.18,-220.59 167.65,-226.83 163.87,-224.02 164.56,-227.45 164.56,-227.45 164.56,-227.45 163.87,-224.02 161.47,-228.07 163.18,-220.59 163.18,-220.59"/><text text-anchor="start" x="152" y="-276.8" font-family="Lato" font-size="14.00">b</text><text text-anchor="start" x="148" y="-261.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 2&#45;&gt;2 --><g id="edge8" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M147.37,-81.92C145.11,-92.15 147.99,-102 156,-102 162.13,-102 165.25,-96.23 165.37,-88.93"/><polygon fill="black" stroke="black" points="164.63,-81.92 168.5,-88.55 165,-85.4 165.37,-88.88 165.37,-88.88 165.37,-88.88 165,-85.4 162.23,-89.21 164.63,-81.92 164.63,-81.92"/><text text-anchor="start" x="143" y="-105.8" font-family="Lato" font-size="14.00">a | b</text></g><!-- 2&#45;&gt;3 --><g id="edge9" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M168.46,-79.62C175.23,-86.88 184.34,-95.45 194,-101 209.77,-110.06 229.59,-115.67 244.9,-118.95"/><polygon fill="black" stroke="black" points="252.01,-120.38 244.53,-122.09 248.58,-119.69 245.15,-119 245.15,-119 245.15,-119 248.58,-119.69 245.77,-115.91 252.01,-120.38 252.01,-120.38"/><text text-anchor="start" x="194" y="-119.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 2&#45;&gt;4 --><g id="edge10" class="edge"><title>2&#45;&gt;4</title><path fill="none" stroke="black" d="M172.37,-58.22C178.97,-54.95 186.81,-51.18 194,-48 211.19,-40.39 230.95,-32.52 245.86,-26.76"/><polygon fill="black" stroke="black" points="252.77,-24.1 247.36,-29.56 249.5,-25.36 246.23,-26.62 246.23,-26.62 246.23,-26.62 249.5,-25.36 245.1,-23.67 252.77,-24.1 252.77,-24.1"/><text text-anchor="start" x="194" y="-51.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 3&#45;&gt;2 --><g id="edge11" class="edge"><title>3&#45;&gt;2</title><path fill="none" stroke="black" d="M259.8,-107.89C253.6,-99 244.63,-88.29 234,-82 218.05,-72.56 197.36,-68.63 181.44,-67.02"/><polygon fill="black" stroke="black" points="174.05,-66.41 181.29,-63.85 177.54,-66.7 181.03,-66.99 181.03,-66.99 181.03,-66.99 177.54,-66.7 180.77,-70.13 174.05,-66.41 174.05,-66.41"/><text text-anchor="start" x="201" y="-85.8" font-family="Lato" font-size="14.00">a | b</text></g><!-- 3&#45;&gt;3 --><g id="edge12" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M260.43,-138.54C257.73,-148.91 260.92,-159 270,-159 276.95,-159 280.45,-153.08 280.5,-145.66"/><polygon fill="black" stroke="black" points="279.57,-138.54 283.6,-145.08 280.03,-142.01 280.48,-145.48 280.48,-145.48 280.48,-145.48 280.03,-142.01 277.35,-145.89 279.57,-138.54 279.57,-138.54"/><text text-anchor="start" x="250" y="-162.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 4&#45;&gt;4 --><g id="edge13" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M260.43,-33.54C257.73,-43.91 260.92,-54 270,-54 276.95,-54 280.45,-48.08 280.5,-40.66"/><polygon fill="black" stroke="black" points="279.57,-33.54 283.6,-40.08 280.03,-37.01 280.48,-40.48 280.48,-40.48 280.48,-40.48 280.03,-37.01 277.35,-40.89 279.57,-33.54 279.57,-33.54"/><text text-anchor="start" x="250" y="-72.8" font-family="Lato" font-size="14.00">!a &amp; !b</text><text text-anchor="start" x="262" y="-57.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2de5d0> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7d4930> >
%% Cell type:markdown id: tags:
Compare with the standard translation:
%% Cell type:code id: tags:
``` python
spot.translate('GFa -> GFb')
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="165pt" height="263pt"viewBox="0.00 0.00 165.00 263.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 259)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-259 161,-259 161,4 -4,4"/><text text-anchor="start" x="58" y="-240.8" font-family="Lato" font-size="14.00">Inf(</text><text text-anchor="start" x="79" y="-240.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="95" y="-240.8" font-family="Lato" font-size="14.00">)</text><text text-anchor="start" x="57" y="-226.8" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-69" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-65.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-69C2.79,-69 17.15,-69 30.63,-69"/><polygon fill="black" stroke="black" points="37.94,-69 30.94,-72.15 34.44,-69 30.94,-69 30.94,-69 30.94,-69 34.44,-69 30.94,-65.85 37.94,-69 37.94,-69"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-86.04C48.32,-95.86 50.45,-105 56,-105 60.17,-105 62.4,-99.86 62.71,-93.14"/><polygon fill="black" stroke="black" points="62.38,-86.04 65.85,-92.88 62.54,-89.53 62.71,-93.03 62.71,-93.03 62.71,-93.03 62.54,-89.53 59.56,-93.18 62.38,-86.04 62.38,-86.04"/><text text-anchor="start" x="51.5" y="-108.8" font-family="Lato" font-size="14.00">1</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="139" cy="-120" rx="18" ry="18"/><text text-anchor="start" x="134.5" y="-116.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M71.86,-78.35C84.53,-86.33 102.9,-97.9 117.06,-106.82"/><polygon fill="black" stroke="black" points="123.24,-110.71 115.64,-109.64 120.28,-108.84 117.31,-106.98 117.31,-106.98 117.31,-106.98 120.28,-108.84 118.99,-104.31 123.24,-110.71 123.24,-110.71"/><text text-anchor="start" x="93.5" y="-100.8" font-family="Lato" font-size="14.00">b</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="139" cy="-18" rx="18" ry="18"/><text text-anchor="middle" x="139" y="-14.3" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M71.86,-59.65C84.53,-51.67 102.9,-40.1 117.06,-31.18"/><polygon fill="black" stroke="black" points="123.24,-27.29 118.99,-33.69 120.28,-29.16 117.31,-31.02 117.31,-31.02 117.31,-31.02 120.28,-29.16 115.64,-28.36 123.24,-27.29 123.24,-27.29"/><text text-anchor="start" x="92" y="-49.8" font-family="Lato" font-size="14.00">!a</text></g><!-- 1&#45;&gt;1 --><g id="edge5" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M135.4,-137.78C134.79,-147.31 135.99,-156 139,-156 141.21,-156 142.44,-151.32 142.7,-145.05"/><polygon fill="black" stroke="black" points="142.6,-137.78 145.85,-144.74 142.65,-141.28 142.7,-144.78 142.7,-144.78 142.7,-144.78 142.65,-141.28 139.55,-144.83 142.6,-137.78 142.6,-137.78"/><text text-anchor="start" x="133" y="-159.8" font-family="Lato" font-size="14.00">!b</text></g><!-- 1&#45;&gt;1 --><g id="edge6" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M133.15,-137.14C129.71,-154.58 131.66,-174 139,-174 145.37,-174 147.68,-159.4 145.94,-144.15"/><polygon fill="black" stroke="black" points="144.85,-137.14 149.04,-143.58 145.39,-140.6 145.92,-144.06 145.92,-144.06 145.92,-144.06 145.39,-140.6 142.81,-144.54 144.85,-137.14 144.85,-137.14"/><text text-anchor="start" x="135" y="-192.8" font-family="Lato" font-size="14.00">b</text><text text-anchor="start" x="131" y="-177.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 2&#45;&gt;2 --><g id="edge7" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M131.97,-34.66C130.41,-44.62 132.75,-54 139,-54 143.69,-54 146.18,-48.73 146.47,-41.89"/><polygon fill="black" stroke="black" points="146.03,-34.66 149.6,-41.46 146.24,-38.16 146.46,-41.65 146.46,-41.65 146.46,-41.65 146.24,-38.16 143.31,-41.84 146.03,-34.66 146.03,-34.66"/><text text-anchor="start" x="133.5" y="-72.8" font-family="Lato" font-size="14.00">!a</text><text text-anchor="start" x="131" y="-57.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2defc0> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7d4cc0> >
%% Cell type:markdown id: tags:
And here is the automaton above with state-based acceptance:
%% Cell type:code id: tags:
``` python
a = spot.translate('GFa -> GFb', 'sbacc')
a
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="257pt" height="220pt"viewBox="0.00 0.00 257.00 219.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 215.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-215.8 253,-215.8 253,4 -4,4"/><text text-anchor="start" x="103" y="-181.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-69" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-65.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-69C2.79,-69 17.15,-69 30.63,-69"/><polygon fill="black" stroke="black" points="37.94,-69 30.94,-72.15 34.44,-69 30.94,-69 30.94,-69 30.94,-69 34.44,-69 30.94,-65.85 37.94,-69 37.94,-69"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-86.04C48.32,-95.86 50.45,-105 56,-105 60.17,-105 62.4,-99.86 62.71,-93.14"/><polygon fill="black" stroke="black" points="62.38,-86.04 65.85,-92.88 62.54,-89.53 62.71,-93.03 62.71,-93.03 62.71,-93.03 62.54,-89.53 59.56,-93.18 62.38,-86.04 62.38,-86.04"/><text text-anchor="start" x="51.5" y="-108.8" font-family="Lato" font-size="14.00">1</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="143" cy="-117" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="143" cy="-117" rx="22" ry="22"/><text text-anchor="start" x="138.5" y="-113.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M72.2,-77.58C84.62,-84.6 102.44,-94.66 116.97,-102.86"/><polygon fill="black" stroke="black" points="123.38,-106.48 115.73,-105.78 120.33,-104.76 117.28,-103.04 117.28,-103.04 117.28,-103.04 120.33,-104.76 118.83,-100.3 123.38,-106.48 123.38,-106.48"/><text text-anchor="start" x="93.5" y="-97.8" font-family="Lato" font-size="14.00">b</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="143" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="143" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="143" y="-18.3" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M72.2,-60.6C84.62,-53.73 102.44,-43.87 116.97,-35.84"/><polygon fill="black" stroke="black" points="123.38,-32.3 118.77,-38.44 120.31,-33.99 117.25,-35.69 117.25,-35.69 117.25,-35.69 120.31,-33.99 115.73,-32.93 123.38,-32.3 123.38,-32.3"/><text text-anchor="start" x="92" y="-52.8" font-family="Lato" font-size="14.00">!a</text></g><!-- 1&#45;&gt;1 --><g id="edge5" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M134.99,-137.58C133.89,-147.84 136.55,-157 143,-157 147.83,-157 150.54,-151.85 151.13,-144.95"/><polygon fill="black" stroke="black" points="151.01,-137.58 154.27,-144.53 151.06,-141.08 151.12,-144.58 151.12,-144.58 151.12,-144.58 151.06,-141.08 147.97,-144.63 151.01,-137.58 151.01,-137.58"/><text text-anchor="start" x="139" y="-160.8" font-family="Lato" font-size="14.00">b</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="231" cy="-117" rx="18" ry="18"/><text text-anchor="middle" x="231" y="-113.3" font-family="Lato" font-size="14.00">3</text></g><!-- 1&#45;&gt;3 --><g id="edge6" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M165.26,-117C177.48,-117 192.89,-117 205.61,-117"/><polygon fill="black" stroke="black" points="212.74,-117 205.74,-120.15 209.24,-117 205.74,-117 205.74,-117 205.74,-117 209.24,-117 205.74,-113.85 212.74,-117 212.74,-117"/><text text-anchor="start" x="183" y="-120.8" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;2 --><g id="edge7" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M134.99,-42.58C133.89,-52.84 136.55,-62 143,-62 147.83,-62 150.54,-56.85 151.13,-49.95"/><polygon fill="black" stroke="black" points="151.01,-42.58 154.27,-49.53 151.06,-46.08 151.12,-49.58 151.12,-49.58 151.12,-49.58 151.06,-46.08 147.97,-49.63 151.01,-42.58 151.01,-42.58"/><text text-anchor="start" x="137.5" y="-65.8" font-family="Lato" font-size="14.00">!a</text></g><!-- 3&#45;&gt;1 --><g id="edge8" class="edge"><title>3&#45;&gt;1</title><path fill="none" stroke="black" d="M215.69,-107.13C209.6,-103.51 202.24,-99.84 195,-98 186.13,-95.75 176.67,-97.92 168.33,-101.49"/><polygon fill="black" stroke="black" points="161.64,-104.75 166.55,-98.86 164.78,-103.22 167.93,-101.69 167.93,-101.69 167.93,-101.69 164.78,-103.22 169.31,-104.52 161.64,-104.75 161.64,-104.75"/><text text-anchor="start" x="185" y="-101.8" font-family="Lato" font-size="14.00">b</text></g><!-- 3&#45;&gt;3 --><g id="edge9" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M223.62,-133.66C221.98,-143.62 224.44,-153 231,-153 235.92,-153 238.54,-147.73 238.84,-140.89"/><polygon fill="black" stroke="black" points="238.38,-133.66 241.97,-140.45 238.61,-137.16 238.83,-140.65 238.83,-140.65 238.83,-140.65 238.61,-137.16 235.69,-140.85 238.38,-133.66 238.38,-133.66"/><text text-anchor="start" x="225" y="-156.8" font-family="Lato" font-size="14.00">!b</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2e4270> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7d4990> >
%% Cell type:markdown id: tags:
Some example of running the self-loopization algorithm on an automaton:
%% Cell type:code id: tags:
``` python
a.is_empty()
```
%%%% Output: execute_result
False
%% Cell type:markdown id: tags:
Reading from file (see `automaton-io.ipynb` for more examples).
%% Cell type:code id: tags:
``` python
%%file example1.aut
HOA: v1
States: 3
Start: 0
AP: 2 "a" "b"
acc-name: Buchi
Acceptance: 5 Inf(0)&Fin(1)&Fin(4) | Inf(2)&Inf(3) | Inf(1)
--BODY--
State: 0 {3}
[t] 0
[0] 1 {1}
[!0] 2 {0 4}
State: 1 {3}
[1] 0
[0&1] 1 {0}
[!0&1] 2 {2 4}
State: 2
[!1] 0
[0&!1] 1 {0}
[!0&!1] 2 {0 4}
--END--
```
%%%% Output: stream
Writing example1.aut
%% Cell type:code id: tags:
``` python
a = spot.automaton('example1.aut')
display(a)
display(spot.remove_fin(a))
display(a.postprocess('TGBA', 'complete'))
display(a.postprocess('BA'))
```
%%%% Output: display_data
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="354pt" height="178pt"viewBox="0.00 0.00 354.00 177.79" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 173.79)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-173.79 350,-173.79 350,4 -4,4"/><text text-anchor="start" x="8" y="-155.59" font-family="Lato" font-size="14.00">(Inf(</text><text text-anchor="start" x="33" y="-155.59" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="49" y="-155.59" font-family="Lato" font-size="14.00">) &amp; Fin(</text><text text-anchor="start" x="93" y="-155.59" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="109" y="-155.59" font-family="Lato" font-size="14.00">) &amp; Fin(</text><text text-anchor="start" x="153" y="-155.59" font-family="Lato" font-size="14.00" fill="#33a02c">❹</text><text text-anchor="start" x="169" y="-155.59" font-family="Lato" font-size="14.00">)) | (Inf(</text><text text-anchor="start" x="212" y="-155.59" font-family="Lato" font-size="14.00" fill="#ff7f00">❷</text><text text-anchor="start" x="228" y="-155.59" font-family="Lato" font-size="14.00">)&amp;Inf(</text><text text-anchor="start" x="262" y="-155.59" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text><text text-anchor="start" x="278" y="-155.59" font-family="Lato" font-size="14.00">)) | Inf(</text><text text-anchor="start" x="318" y="-155.59" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="334" y="-155.59" font-family="Lato" font-size="14.00">)</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="73" cy="-23.79" rx="18" ry="18"/><text text-anchor="middle" x="73" y="-20.09" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M18.15,-23.79C19.79,-23.79 34.15,-23.79 47.63,-23.79"/><polygon fill="black" stroke="black" points="54.94,-23.79 47.94,-26.94 51.44,-23.79 47.94,-23.79 47.94,-23.79 47.94,-23.79 51.44,-23.79 47.94,-20.64 54.94,-23.79 54.94,-23.79"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M66.62,-40.82C65.32,-50.65 67.45,-59.79 73,-59.79 77.17,-59.79 79.4,-54.65 79.71,-47.93"/><polygon fill="black" stroke="black" points="79.38,-40.82 82.85,-47.67 79.54,-44.32 79.71,-47.82 79.71,-47.82 79.71,-47.82 79.54,-44.32 76.56,-47.96 79.38,-40.82 79.38,-40.82"/><text text-anchor="start" x="68.5" y="-78.59" font-family="Lato" font-size="14.00">1</text><text text-anchor="start" x="65" y="-63.59" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="183" cy="-82.79" rx="18" ry="18"/><text text-anchor="middle" x="183" y="-79.09" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M81.44,-39.81C87.34,-50.65 96.65,-64.3 109,-71.79 123.6,-80.64 142.77,-83.26 157.8,-83.73"/><polygon fill="black" stroke="black" points="164.81,-83.81 157.77,-86.88 161.31,-83.77 157.81,-83.73 157.81,-83.73 157.81,-83.73 161.31,-83.77 157.85,-80.58 164.81,-83.81 164.81,-83.81"/><text text-anchor="start" x="121.5" y="-99.59" font-family="Lato" font-size="14.00">a</text><text text-anchor="start" x="109" y="-85.59" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="125" y="-85.59" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="309" cy="-23.79" rx="18" ry="18"/><text text-anchor="middle" x="309" y="-20.09" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M91.04,-23.17C125.44,-22.03 205.65,-19.86 273,-21.79 276.47,-21.89 280.13,-22.04 283.72,-22.22"/><polygon fill="black" stroke="black" points="290.92,-22.62 283.76,-25.38 287.42,-22.42 283.93,-22.23 283.93,-22.23 283.93,-22.23 287.42,-22.42 284.1,-19.09 290.92,-22.62 290.92,-22.62"/><text text-anchor="start" x="177.5" y="-38.59" font-family="Lato" font-size="14.00">!a</text><text text-anchor="start" x="159" y="-24.59" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="175" y="-24.59" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text><text text-anchor="start" x="191" y="-24.59" font-family="Lato" font-size="14.00" fill="#33a02c">❹</text></g><!-- 1&#45;&gt;0 --><g id="edge5" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M172.29,-67.96C164.91,-57.9 153.85,-45.13 141,-37.79 128.03,-30.38 111.64,-26.87 98.32,-25.22"/><polygon fill="black" stroke="black" points="91.27,-24.48 98.56,-22.08 94.75,-24.84 98.23,-25.21 98.23,-25.21 98.23,-25.21 94.75,-24.84 97.9,-28.34 91.27,-24.48 91.27,-24.48"/><text text-anchor="start" x="121" y="-56.59" font-family="Lato" font-size="14.00">b</text><text text-anchor="start" x="117" y="-41.59" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text></g><!-- 1&#45;&gt;1 --><g id="edge6" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M173.19,-97.95C170.21,-108.45 173.48,-118.79 183,-118.79 190.29,-118.79 193.91,-112.73 193.87,-105.18"/><polygon fill="black" stroke="black" points="192.81,-97.95 196.95,-104.42 193.32,-101.42 193.83,-104.88 193.83,-104.88 193.83,-104.88 193.32,-101.42 190.71,-105.34 192.81,-97.95 192.81,-97.95"/><text text-anchor="start" x="167" y="-136.59" font-family="Lato" font-size="14.00">a &amp; b</text><text text-anchor="start" x="167" y="-122.59" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="183" y="-122.59" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text></g><!-- 1&#45;&gt;2 --><g id="edge7" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M201.01,-84.52C219.92,-85.63 250.73,-84.89 273,-71.79 283.21,-65.78 291.3,-55.5 297.12,-46"/><polygon fill="black" stroke="black" points="300.62,-39.91 299.86,-47.55 298.87,-42.95 297.13,-45.98 297.13,-45.98 297.13,-45.98 298.87,-42.95 294.4,-44.41 300.62,-39.91 300.62,-39.91"/><text text-anchor="start" x="231" y="-101.59" font-family="Lato" font-size="14.00">!a &amp; b</text><text text-anchor="start" x="225" y="-87.59" font-family="Lato" font-size="14.00" fill="#ff7f00">❷</text><text text-anchor="start" x="241" y="-87.59" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text><text text-anchor="start" x="257" y="-87.59" font-family="Lato" font-size="14.00" fill="#33a02c">❹</text></g><!-- 2&#45;&gt;0 --><g id="edge8" class="edge"><title>2&#45;&gt;0</title><path fill="none" stroke="black" d="M291.49,-18.37C264.04,-10.04 207.25,4.35 159,-1.79 137.7,-4.5 114.1,-10.89 97.19,-16.09"/><polygon fill="black" stroke="black" points="90.37,-18.23 96.11,-13.12 93.71,-17.18 97.05,-16.13 97.05,-16.13 97.05,-16.13 93.71,-17.18 97.99,-19.13 90.37,-18.23 90.37,-18.23"/><text text-anchor="start" x="177" y="-5.59" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;1 --><g id="edge9" class="edge"><title>2&#45;&gt;1</title><path fill="none" stroke="black" d="M290.73,-23.48C273.16,-23.89 245.65,-26.52 225,-37.79 214.35,-43.6 205,-53.26 197.93,-62.13"/><polygon fill="black" stroke="black" points="193.62,-67.81 195.35,-60.33 195.74,-65.02 197.86,-62.23 197.86,-62.23 197.86,-62.23 195.74,-65.02 200.37,-64.14 193.62,-67.81 193.62,-67.81"/><text text-anchor="start" x="231" y="-56.59" font-family="Lato" font-size="14.00">a &amp; !b</text><text text-anchor="start" x="241" y="-41.59" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 2&#45;&gt;2 --><g id="edge10" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M298.85,-38.95C295.77,-49.45 299.16,-59.79 309,-59.79 316.54,-59.79 320.29,-53.73 320.25,-46.18"/><polygon fill="black" stroke="black" points="319.15,-38.95 323.32,-45.4 319.68,-42.41 320.2,-45.87 320.2,-45.87 320.2,-45.87 319.68,-42.41 317.09,-46.35 319.15,-38.95 319.15,-38.95"/><text text-anchor="start" x="289" y="-77.59" font-family="Lato" font-size="14.00">!a &amp; !b</text><text text-anchor="start" x="293" y="-63.59" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="309" y="-63.59" font-family="Lato" font-size="14.00" fill="#33a02c">❹</text></g></g></svg>)
%%%% Output: display_data
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="482pt" height="315pt"viewBox="0.00 0.00 482.00 315.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 311)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-311 478,-311 478,4 -4,4"/><text text-anchor="start" x="135.5" y="-292.8" font-family="Lato" font-size="14.00">Inf(</text><text text-anchor="start" x="156.5" y="-292.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="172.5" y="-292.8" font-family="Lato" font-size="14.00">) | Inf(</text><text text-anchor="start" x="208.5" y="-292.8" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="224.5" y="-292.8" font-family="Lato" font-size="14.00">) | (Inf(</text><text text-anchor="start" x="264.5" y="-292.8" font-family="Lato" font-size="14.00" fill="#ff7f00">❷</text><text text-anchor="start" x="280.5" y="-292.8" font-family="Lato" font-size="14.00">)&amp;Inf(</text><text text-anchor="start" x="314.5" y="-292.8" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text><text text-anchor="start" x="330.5" y="-292.8" font-family="Lato" font-size="14.00">))</text><text text-anchor="start" x="203" y="-278.8" font-family="Lato" font-size="14.00">[Fin&#45;less 4]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-97" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-93.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-97C2.79,-97 17.15,-97 30.63,-97"/><polygon fill="black" stroke="black" points="37.94,-97 30.94,-100.15 34.44,-97 30.94,-97 30.94,-97 30.94,-97 34.44,-97 30.94,-93.85 37.94,-97 37.94,-97"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-114.04C48.32,-123.86 50.45,-133 56,-133 60.17,-133 62.4,-127.86 62.71,-121.14"/><polygon fill="black" stroke="black" points="62.38,-114.04 65.85,-120.88 62.54,-117.53 62.71,-121.03 62.71,-121.03 62.71,-121.03 62.54,-117.53 59.56,-121.18 62.38,-114.04 62.38,-114.04"/><text text-anchor="start" x="51.5" y="-151.8" font-family="Lato" font-size="14.00">1</text><text text-anchor="start" x="48" y="-136.8" font-family="Lato" font-size="14.00" fill="#6a3d9a"></text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="160" cy="-174" rx="18" ry="18"/><text text-anchor="middle" x="160" y="-170.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M73.27,-103C87.57,-108.77 108.46,-118.47 124,-131 131.88,-137.36 139.2,-145.75 145.08,-153.43"/><polygon fill="black" stroke="black" points="149.28,-159.12 142.59,-155.36 147.2,-156.31 145.12,-153.49 145.12,-153.49 145.12,-153.49 147.2,-156.31 147.66,-151.62 149.28,-159.12 149.28,-159.12"/><text text-anchor="start" x="104.5" y="-148.8" font-family="Lato" font-size="14.00">a</text><text text-anchor="start" x="92" y="-134.8" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="108" y="-134.8" font-family="Lato" font-size="14.00" fill="#6a3d9a"></text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="268" cy="-117" rx="18" ry="18"/><text text-anchor="middle" x="268" y="-113.3" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M74.42,-98.17C105.92,-100.35 174.44,-105.43 232,-112 235.48,-112.4 239.14,-112.87 242.73,-113.35"/><polygon fill="black" stroke="black" points="249.93,-114.37 242.56,-116.51 246.47,-113.88 243,-113.39 243,-113.39 243,-113.39 246.47,-113.88 243.44,-110.27 249.93,-114.37 249.93,-114.37"/><text text-anchor="start" x="154.5" y="-124.8" font-family="Lato" font-size="14.00">!a</text><text text-anchor="start" x="152" y="-109.8" font-family="Lato" font-size="14.00" fill="#6a3d9a"></text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="456" cy="-134" rx="18" ry="18"/><text text-anchor="middle" x="456" y="-130.3" font-family="Lato" font-size="14.00">3</text></g><!-- 0&#45;&gt;3 --><g id="edge5" class="edge"><title>0&#45;&gt;3</title><path fill="none" stroke="black" d="M64.58,-80.98C78.87,-53.43 112.57,0 159,0 159,0 159,0 377,0 426.84,0 445.39,-70.1 451.84,-108.89"/><polygon fill="black" stroke="black" points="452.97,-116.21 448.78,-109.77 452.43,-112.75 451.9,-109.29 451.9,-109.29 451.9,-109.29 452.43,-112.75 455.01,-108.81 452.97,-116.21 452.97,-116.21"/><text text-anchor="middle" x="268" y="-3.8" font-family="Lato" font-size="14.00">1</text></g><!-- 1&#45;&gt;0 --><g id="edge6" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M141.73,-173.91C127.17,-173.02 106.45,-169.73 92,-159 79.24,-149.53 70.47,-133.93 64.9,-120.75"/><polygon fill="black" stroke="black" points="62.27,-114.12 67.78,-119.47 63.56,-117.37 64.85,-120.63 64.85,-120.63 64.85,-120.63 63.56,-117.37 61.92,-121.79 62.27,-114.12 62.27,-114.12"/><text text-anchor="start" x="104" y="-189.8" font-family="Lato" font-size="14.00">b</text><text text-anchor="start" x="100" y="-174.8" font-family="Lato" font-size="14.00" fill="#6a3d9a"></text></g><!-- 1&#45;&gt;1 --><g id="edge7" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M151.02,-189.92C148.68,-200.15 151.67,-210 160,-210 166.38,-210 169.63,-204.23 169.75,-196.93"/><polygon fill="black" stroke="black" points="168.98,-189.92 172.87,-196.53 169.36,-193.4 169.74,-196.87 169.74,-196.87 169.74,-196.87 169.36,-193.4 166.61,-197.22 168.98,-189.92 168.98,-189.92"/><text text-anchor="start" x="144" y="-228.8" font-family="Lato" font-size="14.00">a &amp; b</text><text text-anchor="start" x="152" y="-213.8" font-family="Lato" font-size="14.00" fill="#6a3d9a"></text></g><!-- 1&#45;&gt;2 --><g id="edge8" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M177.47,-169.15C192.31,-164.41 214.43,-156.38 232,-146 237.89,-142.52 243.8,-138.07 249.04,-133.71"/><polygon fill="black" stroke="black" points="254.44,-129.07 251.19,-136.02 251.79,-131.35 249.14,-133.63 249.14,-133.63 249.14,-133.63 251.79,-131.35 247.08,-131.25 254.44,-129.07 254.44,-129.07"/><text text-anchor="start" x="196" y="-179.8" font-family="Lato" font-size="14.00">!a &amp; b</text><text text-anchor="start" x="198" y="-165.8" font-family="Lato" font-size="14.00" fill="#ff7f00"></text><text text-anchor="start" x="214" y="-165.8" font-family="Lato" font-size="14.00" fill="#6a3d9a"></text></g><!-- 1&#45;&gt;3 --><g id="edge9" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M171.45,-188.1C177.73,-195.52 186.36,-204.07 196,-209 275.04,-249.38 316.7,-278.62 394,-235 422.9,-218.69 439.65,-182.57 448.06,-158.25"/><polygon fill="black" stroke="black" points="450.31,-151.42 451.11,-159.06 449.21,-154.75 448.12,-158.07 448.12,-158.07 448.12,-158.07 449.21,-154.75 445.12,-157.09 450.31,-151.42 450.31,-151.42"/><text text-anchor="start" x="318" y="-259.8" font-family="Lato" font-size="14.00">b</text></g><!-- 4 --><g id="node6" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="black" cx="376" cy="-160" rx="18" ry="18"/><text text-anchor="middle" x="376" y="-156.3" font-family="Lato" font-size="14.00">4</text></g><!-- 1&#45;&gt;4 --><g id="edge10" class="edge"><title>1&#45;&gt;4</title><path fill="none" stroke="black" d="M174.91,-184.17C181.05,-188.05 188.56,-192.02 196,-194 211.46,-198.11 216.11,-195.86 232,-194 274.81,-188.98 323.38,-175.78 351.47,-167.39"/><polygon fill="black" stroke="black" points="358.49,-165.26 352.71,-170.3 355.15,-166.27 351.8,-167.29 351.8,-167.29 351.8,-167.29 355.15,-166.27 350.88,-164.27 358.49,-165.26 358.49,-165.26"/><text text-anchor="start" x="252" y="-194.8" font-family="Lato" font-size="14.00">a &amp; b</text></g><!-- 2&#45;&gt;0 --><g id="edge11" class="edge"><title>2&#45;&gt;0</title><path fill="none" stroke="black" d="M251.4,-109.27C234,-101.12 204.76,-88.8 178,-84 144.45,-77.99 105.14,-84.71 80.65,-90.51"/><polygon fill="black" stroke="black" points="73.54,-92.27 79.58,-87.53 76.94,-91.43 80.34,-90.59 80.34,-90.59 80.34,-90.59 76.94,-91.43 81.1,-93.65 73.54,-92.27 73.54,-92.27"/><text text-anchor="start" x="154" y="-87.8" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;1 --><g id="edge12" class="edge"><title>2&#45;&gt;1</title><path fill="none" stroke="black" d="M250.02,-115.84C234.83,-115.59 212.49,-117.22 196,-127 186.19,-132.82 178.26,-142.56 172.44,-151.66"/><polygon fill="black" stroke="black" points="168.76,-157.81 169.65,-150.19 170.56,-154.81 172.36,-151.81 172.36,-151.81 172.36,-151.81 170.56,-154.81 175.06,-153.43 168.76,-157.81 168.76,-157.81"/><text text-anchor="start" x="196" y="-130.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 2&#45;&gt;2 --><g id="edge13" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M258.77,-132.54C256.17,-142.91 259.25,-153 268,-153 274.7,-153 278.08,-147.08 278.12,-139.66"/><polygon fill="black" stroke="black" points="277.23,-132.54 281.23,-139.1 277.67,-136.01 278.1,-139.49 278.1,-139.49 278.1,-139.49 277.67,-136.01 274.98,-139.88 277.23,-132.54 277.23,-132.54"/><text text-anchor="start" x="248" y="-156.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 2&#45;&gt;3 --><g id="edge14" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M286.08,-115.8C310.23,-114.41 355.71,-112.91 394,-118 406.64,-119.68 420.41,-123.15 431.66,-126.42"/><polygon fill="black" stroke="black" points="438.65,-128.53 431.04,-129.53 435.3,-127.52 431.95,-126.51 431.95,-126.51 431.95,-126.51 435.3,-127.52 432.86,-123.49 438.65,-128.53 438.65,-128.53"/><text text-anchor="start" x="370" y="-121.8" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;4 --><g id="edge15" class="edge"><title>2&#45;&gt;4</title><path fill="none" stroke="black" d="M285.1,-123.53C303.02,-130.8 332.13,-142.61 352.35,-150.81"/><polygon fill="black" stroke="black" points="359.1,-153.55 351.43,-153.84 355.85,-152.23 352.61,-150.92 352.61,-150.92 352.61,-150.92 355.85,-152.23 353.79,-148 359.1,-153.55 359.1,-153.55"/><text text-anchor="start" x="304" y="-147.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 3&#45;&gt;3 --><g id="edge16" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M448.97,-150.66C447.41,-160.62 449.75,-170 456,-170 460.69,-170 463.18,-164.73 463.47,-157.89"/><polygon fill="black" stroke="black" points="463.03,-150.66 466.6,-157.46 463.24,-154.16 463.46,-157.65 463.46,-157.65 463.46,-157.65 463.24,-154.16 460.31,-157.84 463.03,-150.66 463.03,-150.66"/><text text-anchor="middle" x="456" y="-173.8" font-family="Lato" font-size="14.00">1</text></g><!-- 4&#45;&gt;3 --><g id="edge17" class="edge"><title>4&#45;&gt;3</title><path fill="none" stroke="black" d="M393.54,-154.49C404.68,-150.77 419.53,-145.82 431.84,-141.72"/><polygon fill="black" stroke="black" points="438.75,-139.42 433.1,-144.62 435.43,-140.52 432.11,-141.63 432.11,-141.63 432.11,-141.63 435.43,-140.52 431.11,-138.64 438.75,-139.42 438.75,-139.42"/><text text-anchor="start" x="412" y="-150.8" font-family="Lato" font-size="14.00">b</text></g><!-- 4&#45;&gt;4 --><g id="edge18" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M368.97,-176.66C367.41,-186.62 369.75,-196 376,-196 380.69,-196 383.18,-190.73 383.47,-183.89"/><polygon fill="black" stroke="black" points="383.03,-176.66 386.6,-183.46 383.24,-180.16 383.46,-183.65 383.46,-183.65 383.46,-183.65 383.24,-180.16 380.31,-183.84 383.03,-176.66 383.03,-176.66"/><text text-anchor="start" x="360" y="-214.8" font-family="Lato" font-size="14.00">a &amp; b</text><text text-anchor="start" x="368" y="-199.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g></g></svg>)
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="482pt" height="315pt"viewBox="0.00 0.00 482.00 315.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 311)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-311 478,-311 478,4 -4,4"/><text text-anchor="start" x="161.5" y="-292.8" font-family="Lato" font-size="14.00">Inf(</text><text text-anchor="start" x="182.5" y="-292.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="198.5" y="-292.8" font-family="Lato" font-size="14.00">) | (Inf(</text><text text-anchor="start" x="238.5" y="-292.8" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="254.5" y="-292.8" font-family="Lato" font-size="14.00">)&amp;Inf(</text><text text-anchor="start" x="288.5" y="-292.8" font-family="Lato" font-size="14.00" fill="#ff7f00">❷</text><text text-anchor="start" x="304.5" y="-292.8" font-family="Lato" font-size="14.00">))</text><text text-anchor="start" x="203" y="-278.8" font-family="Lato" font-size="14.00">[Fin&#45;less 3]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-97" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-93.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-97C2.79,-97 17.15,-97 30.63,-97"/><polygon fill="black" stroke="black" points="37.94,-97 30.94,-100.15 34.44,-97 30.94,-97 30.94,-97 30.94,-97 34.44,-97 30.94,-93.85 37.94,-97 37.94,-97"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-114.04C48.32,-123.86 50.45,-133 56,-133 60.17,-133 62.4,-127.86 62.71,-121.14"/><polygon fill="black" stroke="black" points="62.38,-114.04 65.85,-120.88 62.54,-117.53 62.71,-121.03 62.71,-121.03 62.71,-121.03 62.54,-117.53 59.56,-121.18 62.38,-114.04 62.38,-114.04"/><text text-anchor="start" x="51.5" y="-151.8" font-family="Lato" font-size="14.00">1</text><text text-anchor="start" x="48" y="-136.8" font-family="Lato" font-size="14.00" fill="#ff7f00"></text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="160" cy="-174" rx="18" ry="18"/><text text-anchor="middle" x="160" y="-170.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M73.27,-103C87.57,-108.77 108.46,-118.47 124,-131 131.88,-137.36 139.2,-145.75 145.08,-153.43"/><polygon fill="black" stroke="black" points="149.28,-159.12 142.59,-155.36 147.2,-156.31 145.12,-153.49 145.12,-153.49 145.12,-153.49 147.2,-156.31 147.66,-151.62 149.28,-159.12 149.28,-159.12"/><text text-anchor="start" x="104.5" y="-148.8" font-family="Lato" font-size="14.00">a</text><text text-anchor="start" x="92" y="-134.8" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="108" y="-134.8" font-family="Lato" font-size="14.00" fill="#ff7f00"></text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="268" cy="-117" rx="18" ry="18"/><text text-anchor="middle" x="268" y="-113.3" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M74.42,-98.17C105.92,-100.35 174.44,-105.43 232,-112 235.48,-112.4 239.14,-112.87 242.73,-113.35"/><polygon fill="black" stroke="black" points="249.93,-114.37 242.56,-116.51 246.47,-113.88 243,-113.39 243,-113.39 243,-113.39 246.47,-113.88 243.44,-110.27 249.93,-114.37 249.93,-114.37"/><text text-anchor="start" x="154.5" y="-124.8" font-family="Lato" font-size="14.00">!a</text><text text-anchor="start" x="152" y="-109.8" font-family="Lato" font-size="14.00" fill="#ff7f00"></text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="456" cy="-134" rx="18" ry="18"/><text text-anchor="middle" x="456" y="-130.3" font-family="Lato" font-size="14.00">3</text></g><!-- 0&#45;&gt;3 --><g id="edge5" class="edge"><title>0&#45;&gt;3</title><path fill="none" stroke="black" d="M64.58,-80.98C78.87,-53.43 112.57,0 159,0 159,0 159,0 377,0 426.84,0 445.39,-70.1 451.84,-108.89"/><polygon fill="black" stroke="black" points="452.97,-116.21 448.78,-109.77 452.43,-112.75 451.9,-109.29 451.9,-109.29 451.9,-109.29 452.43,-112.75 455.01,-108.81 452.97,-116.21 452.97,-116.21"/><text text-anchor="middle" x="268" y="-3.8" font-family="Lato" font-size="14.00">1</text></g><!-- 1&#45;&gt;0 --><g id="edge6" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M141.73,-173.91C127.17,-173.02 106.45,-169.73 92,-159 79.24,-149.53 70.47,-133.93 64.9,-120.75"/><polygon fill="black" stroke="black" points="62.27,-114.12 67.78,-119.47 63.56,-117.37 64.85,-120.63 64.85,-120.63 64.85,-120.63 63.56,-117.37 61.92,-121.79 62.27,-114.12 62.27,-114.12"/><text text-anchor="start" x="104" y="-189.8" font-family="Lato" font-size="14.00">b</text><text text-anchor="start" x="100" y="-174.8" font-family="Lato" font-size="14.00" fill="#ff7f00"></text></g><!-- 1&#45;&gt;1 --><g id="edge7" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M151.02,-189.92C148.68,-200.15 151.67,-210 160,-210 166.38,-210 169.63,-204.23 169.75,-196.93"/><polygon fill="black" stroke="black" points="168.98,-189.92 172.87,-196.53 169.36,-193.4 169.74,-196.87 169.74,-196.87 169.74,-196.87 169.36,-193.4 166.61,-197.22 168.98,-189.92 168.98,-189.92"/><text text-anchor="start" x="144" y="-228.8" font-family="Lato" font-size="14.00">a &amp; b</text><text text-anchor="start" x="152" y="-213.8" font-family="Lato" font-size="14.00" fill="#ff7f00"></text></g><!-- 1&#45;&gt;2 --><g id="edge8" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M177.47,-169.15C192.31,-164.41 214.43,-156.38 232,-146 237.89,-142.52 243.8,-138.07 249.04,-133.71"/><polygon fill="black" stroke="black" points="254.44,-129.07 251.19,-136.02 251.79,-131.35 249.14,-133.63 249.14,-133.63 249.14,-133.63 251.79,-131.35 247.08,-131.25 254.44,-129.07 254.44,-129.07"/><text text-anchor="start" x="196" y="-179.8" font-family="Lato" font-size="14.00">!a &amp; b</text><text text-anchor="start" x="198" y="-165.8" font-family="Lato" font-size="14.00" fill="#ff4da0"></text><text text-anchor="start" x="214" y="-165.8" font-family="Lato" font-size="14.00" fill="#ff7f00"></text></g><!-- 1&#45;&gt;3 --><g id="edge9" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M171.45,-188.1C177.73,-195.52 186.36,-204.07 196,-209 275.04,-249.38 316.7,-278.62 394,-235 422.9,-218.69 439.65,-182.57 448.06,-158.25"/><polygon fill="black" stroke="black" points="450.31,-151.42 451.11,-159.06 449.21,-154.75 448.12,-158.07 448.12,-158.07 448.12,-158.07 449.21,-154.75 445.12,-157.09 450.31,-151.42 450.31,-151.42"/><text text-anchor="start" x="318" y="-259.8" font-family="Lato" font-size="14.00">b</text></g><!-- 4 --><g id="node6" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="black" cx="376" cy="-160" rx="18" ry="18"/><text text-anchor="middle" x="376" y="-156.3" font-family="Lato" font-size="14.00">4</text></g><!-- 1&#45;&gt;4 --><g id="edge10" class="edge"><title>1&#45;&gt;4</title><path fill="none" stroke="black" d="M174.91,-184.17C181.05,-188.05 188.56,-192.02 196,-194 211.46,-198.11 216.11,-195.86 232,-194 274.81,-188.98 323.38,-175.78 351.47,-167.39"/><polygon fill="black" stroke="black" points="358.49,-165.26 352.71,-170.3 355.15,-166.27 351.8,-167.29 351.8,-167.29 351.8,-167.29 355.15,-166.27 350.88,-164.27 358.49,-165.26 358.49,-165.26"/><text text-anchor="start" x="252" y="-194.8" font-family="Lato" font-size="14.00">a &amp; b</text></g><!-- 2&#45;&gt;0 --><g id="edge11" class="edge"><title>2&#45;&gt;0</title><path fill="none" stroke="black" d="M251.4,-109.27C234,-101.12 204.76,-88.8 178,-84 144.45,-77.99 105.14,-84.71 80.65,-90.51"/><polygon fill="black" stroke="black" points="73.54,-92.27 79.58,-87.53 76.94,-91.43 80.34,-90.59 80.34,-90.59 80.34,-90.59 76.94,-91.43 81.1,-93.65 73.54,-92.27 73.54,-92.27"/><text text-anchor="start" x="154" y="-87.8" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;1 --><g id="edge12" class="edge"><title>2&#45;&gt;1</title><path fill="none" stroke="black" d="M250.02,-115.84C234.83,-115.59 212.49,-117.22 196,-127 186.19,-132.82 178.26,-142.56 172.44,-151.66"/><polygon fill="black" stroke="black" points="168.76,-157.81 169.65,-150.19 170.56,-154.81 172.36,-151.81 172.36,-151.81 172.36,-151.81 170.56,-154.81 175.06,-153.43 168.76,-157.81 168.76,-157.81"/><text text-anchor="start" x="196" y="-130.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 2&#45;&gt;2 --><g id="edge13" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M258.77,-132.54C256.17,-142.91 259.25,-153 268,-153 274.7,-153 278.08,-147.08 278.12,-139.66"/><polygon fill="black" stroke="black" points="277.23,-132.54 281.23,-139.1 277.67,-136.01 278.1,-139.49 278.1,-139.49 278.1,-139.49 277.67,-136.01 274.98,-139.88 277.23,-132.54 277.23,-132.54"/><text text-anchor="start" x="248" y="-156.8" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 2&#45;&gt;3 --><g id="edge14" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M286.08,-115.8C310.23,-114.41 355.71,-112.91 394,-118 406.64,-119.68 420.41,-123.15 431.66,-126.42"/><polygon fill="black" stroke="black" points="438.65,-128.53 431.04,-129.53 435.3,-127.52 431.95,-126.51 431.95,-126.51 431.95,-126.51 435.3,-127.52 432.86,-123.49 438.65,-128.53 438.65,-128.53"/><text text-anchor="start" x="370" y="-121.8" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;4 --><g id="edge15" class="edge"><title>2&#45;&gt;4</title><path fill="none" stroke="black" d="M285.1,-123.53C303.02,-130.8 332.13,-142.61 352.35,-150.81"/><polygon fill="black" stroke="black" points="359.1,-153.55 351.43,-153.84 355.85,-152.23 352.61,-150.92 352.61,-150.92 352.61,-150.92 355.85,-152.23 353.79,-148 359.1,-153.55 359.1,-153.55"/><text text-anchor="start" x="304" y="-147.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 3&#45;&gt;3 --><g id="edge16" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M448.97,-150.66C447.41,-160.62 449.75,-170 456,-170 460.69,-170 463.18,-164.73 463.47,-157.89"/><polygon fill="black" stroke="black" points="463.03,-150.66 466.6,-157.46 463.24,-154.16 463.46,-157.65 463.46,-157.65 463.46,-157.65 463.24,-154.16 460.31,-157.84 463.03,-150.66 463.03,-150.66"/><text text-anchor="middle" x="456" y="-173.8" font-family="Lato" font-size="14.00">1</text></g><!-- 4&#45;&gt;3 --><g id="edge17" class="edge"><title>4&#45;&gt;3</title><path fill="none" stroke="black" d="M393.54,-154.49C404.68,-150.77 419.53,-145.82 431.84,-141.72"/><polygon fill="black" stroke="black" points="438.75,-139.42 433.1,-144.62 435.43,-140.52 432.11,-141.63 432.11,-141.63 432.11,-141.63 435.43,-140.52 431.11,-138.64 438.75,-139.42 438.75,-139.42"/><text text-anchor="start" x="412" y="-150.8" font-family="Lato" font-size="14.00">b</text></g><!-- 4&#45;&gt;4 --><g id="edge18" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M368.97,-176.66C367.41,-186.62 369.75,-196 376,-196 380.69,-196 383.18,-190.73 383.47,-183.89"/><polygon fill="black" stroke="black" points="383.03,-176.66 386.6,-183.46 383.24,-180.16 383.46,-183.65 383.46,-183.65 383.46,-183.65 383.24,-180.16 380.31,-183.84 383.03,-176.66 383.03,-176.66"/><text text-anchor="start" x="360" y="-214.8" font-family="Lato" font-size="14.00">a &amp; b</text><text text-anchor="start" x="368" y="-199.8" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g></g></svg>)
%%%% Output: display_data
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="492pt" height="229pt"viewBox="0.00 0.00 492.00 228.63" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 224.63)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-224.63 488,-224.63 488,4 -4,4"/><text text-anchor="start" x="221.5" y="-206.43" font-family="Lato" font-size="14.00">Inf(</text><text text-anchor="start" x="242.5" y="-206.43" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="258.5" y="-206.43" font-family="Lato" font-size="14.00">)</text><text text-anchor="start" x="220.5" y="-192.43" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-123.63" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-119.93" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-123.63C2.79,-123.63 17.15,-123.63 30.63,-123.63"/><polygon fill="black" stroke="black" points="37.94,-123.63 30.94,-126.78 34.44,-123.63 30.94,-123.63 30.94,-123.63 30.94,-123.63 34.44,-123.63 30.94,-120.48 37.94,-123.63 37.94,-123.63"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-140.67C48.32,-150.49 50.45,-159.63 56,-159.63 60.17,-159.63 62.4,-154.49 62.71,-147.78"/><polygon fill="black" stroke="black" points="62.38,-140.67 65.85,-147.52 62.54,-144.17 62.71,-147.66 62.71,-147.66 62.71,-147.66 62.54,-144.17 59.56,-147.81 62.38,-140.67 62.38,-140.67"/><text text-anchor="start" x="51.5" y="-163.43" font-family="Lato" font-size="14.00">1</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="144" cy="-60.63" rx="18" ry="18"/><text text-anchor="start" x="139.5" y="-56.93" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M71.2,-113.23C85.35,-102.86 107.21,-86.86 123.09,-75.22"/><polygon fill="black" stroke="black" points="129.06,-70.84 125.28,-77.52 126.24,-72.91 123.42,-74.98 123.42,-74.98 123.42,-74.98 126.24,-72.91 121.55,-72.44 129.06,-70.84 129.06,-70.84"/><text text-anchor="start" x="96.5" y="-116.43" font-family="Lato" font-size="14.00">a</text><text text-anchor="start" x="92" y="-101.43" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="252" cy="-112.63" rx="18" ry="18"/><text text-anchor="middle" x="252" y="-108.93" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M66.6,-138.23C72.83,-146.47 81.69,-156.19 92,-161.63 119.58,-176.21 130.84,-168.07 162,-166.63 186.08,-165.52 195.1,-173.64 216,-161.63 226.41,-155.65 234.52,-145.18 240.31,-135.44"/><polygon fill="black" stroke="black" points="243.77,-129.21 243.12,-136.86 242.07,-132.27 240.37,-135.33 240.37,-135.33 240.37,-135.33 242.07,-132.27 237.62,-133.8 243.77,-129.21 243.77,-129.21"/><text text-anchor="start" x="138.5" y="-173.43" font-family="Lato" font-size="14.00">!a</text></g><!-- 1&#45;&gt;0 --><g id="edge5" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M125.67,-59.03C115.17,-58.9 101.92,-60.3 92,-66.63 79.78,-74.44 71.15,-88.2 65.52,-100.24"/><polygon fill="black" stroke="black" points="62.7,-106.7 62.62,-99.03 64.1,-103.49 65.5,-100.29 65.5,-100.29 65.5,-100.29 64.1,-103.49 68.39,-101.55 62.7,-106.7 62.7,-106.7"/><text text-anchor="start" x="96" y="-70.43" font-family="Lato" font-size="14.00">b</text></g><!-- 1&#45;&gt;1 --><g id="edge6" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M136.33,-76.92C134.48,-87.02 137.04,-96.63 144,-96.63 149.22,-96.63 151.96,-91.23 152.23,-84.26"/><polygon fill="black" stroke="black" points="151.67,-76.92 155.34,-83.66 151.93,-80.41 152.2,-83.9 152.2,-83.9 152.2,-83.9 151.93,-80.41 149.06,-84.14 151.67,-76.92 151.67,-76.92"/><text text-anchor="start" x="128" y="-100.43" font-family="Lato" font-size="14.00">a &amp; b</text></g><!-- 1&#45;&gt;2 --><g id="edge7" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M159.82,-69.52C165.98,-73.11 173.27,-77.2 180,-80.63 195.94,-88.76 214.38,-97.04 228.47,-103.14"/><polygon fill="black" stroke="black" points="235,-105.94 227.33,-106.08 231.79,-104.56 228.57,-103.18 228.57,-103.18 228.57,-103.18 231.79,-104.56 229.82,-100.29 235,-105.94 235,-105.94"/><text text-anchor="start" x="180" y="-115.43" font-family="Lato" font-size="14.00">!a &amp; b</text><text text-anchor="start" x="190" y="-100.43" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="360" cy="-31.63" rx="18" ry="18"/><text text-anchor="middle" x="360" y="-27.93" font-family="Lato" font-size="14.00">3</text></g><!-- 1&#45;&gt;3 --><g id="edge8" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M161.63,-55.85C167.41,-54.32 173.95,-52.74 180,-51.63 234.76,-41.59 299.93,-35.84 334.54,-33.27"/><polygon fill="black" stroke="black" points="341.85,-32.75 335.1,-36.39 338.36,-33 334.87,-33.25 334.87,-33.25 334.87,-33.25 338.36,-33 334.64,-30.11 341.85,-32.75 341.85,-32.75"/><text text-anchor="start" x="236" y="-47.43" font-family="Lato" font-size="14.00">a &amp; b</text></g><!-- 4 --><g id="node6" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="black" cx="466" cy="-31.63" rx="18" ry="18"/><text text-anchor="middle" x="466" y="-27.93" font-family="Lato" font-size="14.00">4</text></g><!-- 1&#45;&gt;4 --><g id="edge9" class="edge"><title>1&#45;&gt;4</title><path fill="none" stroke="black" d="M159.99,-51.97C166.06,-48.71 173.22,-45.19 180,-42.63 263.86,-11.07 289.41,8.8 378,-4.63 400.3,-8.02 424.76,-16.01 442.04,-22.43"/><polygon fill="black" stroke="black" points="448.99,-25.06 441.33,-25.52 445.72,-23.82 442.44,-22.58 442.44,-22.58 442.44,-22.58 445.72,-23.82 443.56,-19.63 448.99,-25.06 448.99,-25.06"/><text text-anchor="start" x="300" y="-8.43" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;0 --><g id="edge10" class="edge"><title>2&#45;&gt;0</title><path fill="none" stroke="black" d="M236.27,-122.14C230.24,-125.51 223.03,-128.9 216,-130.63 120.51,-154.22 124.8,-135.34 92,-131.63 88.3,-131.22 84.42,-130.56 80.65,-129.8"/><polygon fill="black" stroke="black" points="73.6,-128.23 81.12,-126.67 77.02,-128.99 80.44,-129.75 80.44,-129.75 80.44,-129.75 77.02,-128.99 79.76,-132.82 73.6,-128.23 73.6,-128.23"/><text text-anchor="start" x="138" y="-145.43" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;1 --><g id="edge11" class="edge"><title>2&#45;&gt;1</title><path fill="none" stroke="black" d="M244.59,-96.08C239,-84.16 229.63,-68.94 216,-61.63 201.75,-54 183.47,-53.93 169.02,-55.67"/><polygon fill="black" stroke="black" points="161.86,-56.72 168.33,-52.59 165.33,-56.21 168.79,-55.7 168.79,-55.7 168.79,-55.7 165.33,-56.21 169.24,-58.82 161.86,-56.72 161.86,-56.72"/><text text-anchor="start" x="180" y="-65.43" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 2&#45;&gt;2 --><g id="edge12" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M242.77,-128.18C240.17,-138.54 243.25,-148.63 252,-148.63 258.7,-148.63 262.08,-142.72 262.12,-135.29"/><polygon fill="black" stroke="black" points="261.23,-128.18 265.23,-134.73 261.67,-131.65 262.1,-135.12 262.1,-135.12 262.1,-135.12 261.67,-131.65 258.98,-135.51 261.23,-128.18 261.23,-128.18"/><text text-anchor="start" x="232" y="-152.43" font-family="Lato" font-size="14.00">!a &amp; !b</text></g><!-- 2&#45;&gt;3 --><g id="edge13" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M266.86,-102.05C285.43,-87.86 318.48,-62.6 339.54,-46.51"/><polygon fill="black" stroke="black" points="345.14,-42.23 341.49,-48.98 342.36,-44.35 339.58,-46.48 339.58,-46.48 339.58,-46.48 342.36,-44.35 337.66,-43.97 345.14,-42.23 345.14,-42.23"/><text text-anchor="start" x="288" y="-87.43" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 2&#45;&gt;4 --><g id="edge14" class="edge"><title>2&#45;&gt;4</title><path fill="none" stroke="black" d="M269.91,-115.19C294.64,-118.21 341.68,-121.13 378,-106.63 407.37,-94.91 433.74,-68.93 449.56,-50.85"/><polygon fill="black" stroke="black" points="454.12,-45.52 451.96,-52.89 451.84,-48.18 449.57,-50.84 449.57,-50.84 449.57,-50.84 451.84,-48.18 447.17,-48.8 454.12,-45.52 454.12,-45.52"/><text text-anchor="start" x="356" y="-118.43" font-family="Lato" font-size="14.00">b</text></g><!-- 3&#45;&gt;3 --><g id="edge15" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M351.02,-47.55C348.68,-57.78 351.67,-67.63 360,-67.63 366.38,-67.63 369.63,-61.86 369.75,-54.56"/><polygon fill="black" stroke="black" points="368.98,-47.55 372.87,-54.17 369.36,-51.03 369.74,-54.51 369.74,-54.51 369.74,-54.51 369.36,-51.03 366.61,-54.85 368.98,-47.55 368.98,-47.55"/><text text-anchor="start" x="344" y="-86.43" font-family="Lato" font-size="14.00">a &amp; b</text><text text-anchor="start" x="352" y="-71.43" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 3&#45;&gt;4 --><g id="edge16" class="edge"><title>3&#45;&gt;4</title><path fill="none" stroke="black" d="M378.17,-31.63C395.18,-31.63 421.4,-31.63 440.57,-31.63"/><polygon fill="black" stroke="black" points="447.8,-31.63 440.8,-34.78 444.3,-31.63 440.8,-31.63 440.8,-31.63 440.8,-31.63 444.3,-31.63 440.8,-28.48 447.8,-31.63 447.8,-31.63"/><text text-anchor="start" x="396" y="-35.43" font-family="Lato" font-size="14.00">!a | !b</text></g><!-- 4&#45;&gt;4 --><g id="edge17" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M457.02,-47.55C454.68,-57.78 457.67,-67.63 466,-67.63 472.38,-67.63 475.63,-61.86 475.75,-54.56"/><polygon fill="black" stroke="black" points="474.98,-47.55 478.87,-54.17 475.36,-51.03 475.74,-54.51 475.74,-54.51 475.74,-54.51 475.36,-51.03 472.61,-54.85 474.98,-47.55 474.98,-47.55"/><text text-anchor="start" x="461.5" y="-71.43" font-family="Lato" font-size="14.00">1</text></g></g></svg>)
%%%% Output: display_data
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="506pt" height="203pt"viewBox="0.00 0.00 506.00 202.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 198.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-198.8 502,-198.8 502,4 -4,4"/><text text-anchor="start" x="227.5" y="-164.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-18" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-14.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-18C2.79,-18 17.15,-18 30.63,-18"/><polygon fill="black" stroke="black" points="37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-35.04C48.32,-44.86 50.45,-54 56,-54 60.17,-54 62.4,-48.86 62.71,-42.14"/><polygon fill="black" stroke="black" points="62.38,-35.04 65.85,-41.88 62.54,-38.53 62.71,-42.03 62.71,-42.03 62.71,-42.03 62.54,-38.53 59.56,-42.18 62.38,-35.04 62.38,-35.04"/><text text-anchor="start" x="51.5" y="-57.8" font-family="Lato" font-size="14.00">1</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="140" cy="-56" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="140" cy="-56" rx="22" ry="22"/><text text-anchor="start" x="135.5" y="-52.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M72.81,-25.33C84.22,-30.62 99.89,-37.88 113.12,-44.01"/><polygon fill="black" stroke="black" points="119.77,-47.09 112.1,-47.01 116.6,-45.62 113.42,-44.15 113.42,-44.15 113.42,-44.15 116.6,-45.62 114.75,-41.29 119.77,-47.09 119.77,-47.09"/><text text-anchor="start" x="92.5" y="-40.8" font-family="Lato" font-size="14.00">a</text></g><!-- 1&#45;&gt;0 --><g id="edge4" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M127.18,-37.94C120.39,-29.26 111.01,-19.72 100,-15 94.07,-12.46 87.25,-11.97 80.82,-12.44"/><polygon fill="black" stroke="black" points="73.53,-13.36 80.07,-9.36 77,-12.92 80.47,-12.48 80.47,-12.48 80.47,-12.48 77,-12.92 80.87,-15.61 73.53,-13.36 73.53,-13.36"/><text text-anchor="start" x="92" y="-18.8" font-family="Lato" font-size="14.00">b</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="248" cy="-69" rx="18" ry="18"/><text text-anchor="middle" x="248" y="-65.3" font-family="Lato" font-size="14.00">2</text></g><!-- 1&#45;&gt;2 --><g id="edge5" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M161.94,-58.57C179.36,-60.71 204.19,-63.75 222.52,-66"/><polygon fill="black" stroke="black" points="229.95,-66.91 222.61,-69.18 226.47,-66.48 223,-66.06 223,-66.06 223,-66.06 226.47,-66.48 223.38,-62.93 229.95,-66.91 229.95,-66.91"/><text text-anchor="start" x="180" y="-67.8" font-family="Lato" font-size="14.00">a &amp; b</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="360" cy="-51" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="360" cy="-51" rx="22" ry="22"/><text text-anchor="middle" x="360" y="-47.3" font-family="Lato" font-size="14.00">3</text></g><!-- 1&#45;&gt;3 --><g id="edge6" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M160.7,-47.59C178.45,-40.5 205.44,-30.9 230,-27 265.58,-21.35 306.42,-31.84 332.45,-40.68"/><polygon fill="black" stroke="black" points="339.39,-43.12 331.74,-43.77 336.08,-41.96 332.78,-40.8 332.78,-40.8 332.78,-40.8 336.08,-41.96 333.83,-37.83 339.39,-43.12 339.39,-43.12"/><text text-anchor="start" x="230" y="-30.8" font-family="Lato" font-size="14.00">!a &amp; b</text></g><!-- 4 --><g id="node6" class="node"><title>4</title><ellipse fill="#ffffaa" stroke="black" cx="476" cy="-100" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="476" cy="-100" rx="22" ry="22"/><text text-anchor="middle" x="476" y="-96.3" font-family="Lato" font-size="14.00">4</text></g><!-- 1&#45;&gt;4 --><g id="edge7" class="edge"><title>1&#45;&gt;4</title><path fill="none" stroke="black" d="M154.68,-72.58C170.62,-90.45 198.76,-117.83 230,-129 305.95,-156.17 402.75,-127.67 448.62,-110.7"/><polygon fill="black" stroke="black" points="455.27,-108.19 449.83,-113.61 451.99,-109.43 448.72,-110.66 448.72,-110.66 448.72,-110.66 451.99,-109.43 447.61,-107.72 455.27,-108.19 455.27,-108.19"/><text text-anchor="start" x="286" y="-143.8" font-family="Lato" font-size="14.00">a &amp; b</text></g><!-- 2&#45;&gt;2 --><g id="edge8" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M239.02,-84.92C236.68,-95.15 239.67,-105 248,-105 254.38,-105 257.63,-99.23 257.75,-91.93"/><polygon fill="black" stroke="black" points="256.98,-84.92 260.87,-91.53 257.36,-88.4 257.74,-91.87 257.74,-91.87 257.74,-91.87 257.36,-88.4 254.61,-92.22 256.98,-84.92 256.98,-84.92"/><text text-anchor="start" x="232" y="-108.8" font-family="Lato" font-size="14.00">a &amp; b</text></g><!-- 2&#45;&gt;3 --><g id="edge9" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M266.13,-70.23C280.64,-70.86 301.9,-70.83 320,-67 324.42,-66.06 328.97,-64.65 333.34,-63.04"/><polygon fill="black" stroke="black" points="340,-60.4 334.65,-65.91 336.75,-61.69 333.49,-62.98 333.49,-62.98 333.49,-62.98 336.75,-61.69 332.33,-60.05 340,-60.4 340,-60.4"/><text text-anchor="start" x="284" y="-73.8" font-family="Lato" font-size="14.00">!a &amp; b</text></g><!-- 3&#45;&gt;0 --><g id="edge10" class="edge"><title>3&#45;&gt;0</title><path fill="none" stroke="black" d="M342.55,-36.96C335.95,-32.06 328.01,-27.04 320,-24 228.34,10.78 198.03,-9.31 100,-8 96.44,-7.95 95.52,-7.51 92,-8 88.09,-8.55 84,-9.42 80.06,-10.44"/><polygon fill="black" stroke="black" points="73.18,-12.36 79.07,-7.44 76.55,-11.42 79.92,-10.47 79.92,-10.47 79.92,-10.47 76.55,-11.42 80.77,-13.51 73.18,-12.36 73.18,-12.36"/><text text-anchor="start" x="190" y="-7.8" font-family="Lato" font-size="14.00">!b</text></g><!-- 3&#45;&gt;2 --><g id="edge11" class="edge"><title>3&#45;&gt;2</title><path fill="none" stroke="black" d="M338.24,-46.81C322.96,-44.52 301.83,-43.06 284,-48 278.84,-49.43 273.67,-51.85 268.95,-54.55"/><polygon fill="black" stroke="black" points="262.84,-58.33 267.13,-51.97 265.81,-56.49 268.79,-54.65 268.79,-54.65 268.79,-54.65 265.81,-56.49 270.45,-57.32 262.84,-58.33 262.84,-58.33"/><text text-anchor="start" x="284" y="-51.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 3&#45;&gt;4 --><g id="edge12" class="edge"><title>3&#45;&gt;4</title><path fill="none" stroke="black" d="M380.6,-59.42C399.44,-67.52 428.04,-79.82 448.83,-88.75"/><polygon fill="black" stroke="black" points="455.28,-91.52 447.6,-91.65 452.06,-90.14 448.85,-88.76 448.85,-88.76 448.85,-88.76 452.06,-90.14 450.09,-85.86 455.28,-91.52 455.28,-91.52"/><text text-anchor="start" x="400" y="-85.8" font-family="Lato" font-size="14.00">a &amp; !b</text></g><!-- 4&#45;&gt;4 --><g id="edge13" class="edge"><title>4&#45;&gt;4</title><path fill="none" stroke="black" d="M465.57,-119.76C463.8,-130.35 467.28,-140 476,-140 482.68,-140 486.28,-134.34 486.81,-126.94"/><polygon fill="black" stroke="black" points="486.43,-119.76 489.94,-126.58 486.61,-123.25 486.8,-126.75 486.8,-126.75 486.8,-126.75 486.61,-123.25 483.65,-126.91 486.43,-119.76 486.43,-119.76"/><text text-anchor="start" x="460" y="-143.8" font-family="Lato" font-size="14.00">a &amp; b</text></g></g></svg>)
%% Cell type:code id: tags:
``` python
!rm example1.aut
```
%% Cell type:code id: tags:
``` python
spot.complete(a)
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="398pt" height="189pt"viewBox="0.00 0.00 398.00 189.02" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 185.02)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-185.02 394,-185.02 394,4 -4,4"/><text text-anchor="start" x="30" y="-166.82" font-family="Lato" font-size="14.00">(Inf(</text><text text-anchor="start" x="55" y="-166.82" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="71" y="-166.82" font-family="Lato" font-size="14.00">) &amp; Fin(</text><text text-anchor="start" x="115" y="-166.82" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="131" y="-166.82" font-family="Lato" font-size="14.00">) &amp; Fin(</text><text text-anchor="start" x="175" y="-166.82" font-family="Lato" font-size="14.00" fill="#33a02c">❹</text><text text-anchor="start" x="191" y="-166.82" font-family="Lato" font-size="14.00">)) | (Inf(</text><text text-anchor="start" x="234" y="-166.82" font-family="Lato" font-size="14.00" fill="#ff7f00">❷</text><text text-anchor="start" x="250" y="-166.82" font-family="Lato" font-size="14.00">)&amp;Inf(</text><text text-anchor="start" x="284" y="-166.82" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text><text text-anchor="start" x="300" y="-166.82" font-family="Lato" font-size="14.00">)) | Inf(</text><text text-anchor="start" x="340" y="-166.82" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="356" y="-166.82" font-family="Lato" font-size="14.00">)</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-26.02" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-22.32" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-26.02C2.79,-26.02 17.15,-26.02 30.63,-26.02"/><polygon fill="black" stroke="black" points="37.94,-26.02 30.94,-29.17 34.44,-26.02 30.94,-26.02 30.94,-26.02 30.94,-26.02 34.44,-26.02 30.94,-22.87 37.94,-26.02 37.94,-26.02"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-43.05C48.32,-52.87 50.45,-62.02 56,-62.02 60.17,-62.02 62.4,-56.87 62.71,-50.16"/><polygon fill="black" stroke="black" points="62.38,-43.05 65.85,-49.9 62.54,-46.55 62.71,-50.04 62.71,-50.04 62.71,-50.04 62.54,-46.55 59.56,-50.19 62.38,-43.05 62.38,-43.05"/><text text-anchor="start" x="51.5" y="-80.82" font-family="Lato" font-size="14.00">1</text><text text-anchor="start" x="48" y="-65.82" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="166" cy="-94.02" rx="18" ry="18"/><text text-anchor="middle" x="166" y="-90.32" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M64.99,-42.06C71.03,-52.61 80.29,-65.93 92,-74.02 106.5,-84.02 125.83,-89.03 140.96,-91.54"/><polygon fill="black" stroke="black" points="148.01,-92.57 140.62,-94.67 144.55,-92.06 141.08,-91.55 141.08,-91.55 141.08,-91.55 144.55,-92.06 141.54,-88.44 148.01,-92.57 148.01,-92.57"/><text text-anchor="start" x="104.5" y="-104.82" font-family="Lato" font-size="14.00">a</text><text text-anchor="start" x="92" y="-90.82" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="108" y="-90.82" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text></g><!-- 2 --><g id="node4" class="node"><title>2</title><ellipse fill="#ffffaa" stroke="black" cx="292" cy="-39.02" rx="18" ry="18"/><text text-anchor="middle" x="292" y="-35.32" font-family="Lato" font-size="14.00">2</text></g><!-- 0&#45;&gt;2 --><g id="edge4" class="edge"><title>0&#45;&gt;2</title><path fill="none" stroke="black" d="M74.08,-24.84C79.78,-24.5 86.16,-24.18 92,-24.02 164.91,-21.93 183.87,-19.22 256,-30.02 259.71,-30.57 263.59,-31.36 267.36,-32.23"/><polygon fill="black" stroke="black" points="274.41,-34 266.85,-35.35 271.01,-33.15 267.62,-32.3 267.62,-32.3 267.62,-32.3 271.01,-33.15 268.39,-29.24 274.41,-34 274.41,-34"/><text text-anchor="start" x="160.5" y="-39.82" font-family="Lato" font-size="14.00">!a</text><text text-anchor="start" x="142" y="-25.82" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="158" y="-25.82" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text><text text-anchor="start" x="174" y="-25.82" font-family="Lato" font-size="14.00" fill="#33a02c">❹</text></g><!-- 1&#45;&gt;0 --><g id="edge5" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M157.13,-78.26C150.13,-65.92 138.73,-49.32 124,-40.02 111.29,-31.98 94.77,-28.47 81.31,-26.97"/><polygon fill="black" stroke="black" points="74.2,-26.33 81.45,-23.82 77.68,-26.64 81.17,-26.96 81.17,-26.96 81.17,-26.96 77.68,-26.64 80.89,-30.09 74.2,-26.33 74.2,-26.33"/><text text-anchor="start" x="104" y="-58.82" font-family="Lato" font-size="14.00">b</text><text text-anchor="start" x="100" y="-43.82" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text></g><!-- 1&#45;&gt;1 --><g id="edge6" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M156.19,-109.18C153.21,-119.68 156.48,-130.02 166,-130.02 173.29,-130.02 176.91,-123.96 176.87,-116.41"/><polygon fill="black" stroke="black" points="175.81,-109.18 179.95,-115.65 176.32,-112.64 176.83,-116.11 176.83,-116.11 176.83,-116.11 176.32,-112.64 173.71,-116.57 175.81,-109.18 175.81,-109.18"/><text text-anchor="start" x="150" y="-147.82" font-family="Lato" font-size="14.00">a &amp; b</text><text text-anchor="start" x="150" y="-133.82" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="166" y="-133.82" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text></g><!-- 1&#45;&gt;2 --><g id="edge7" class="edge"><title>1&#45;&gt;2</title><path fill="none" stroke="black" d="M175.12,-78.38C182.12,-66.68 193.4,-51.47 208,-44.02 226.22,-34.71 249.71,-34.18 267.05,-35.55"/><polygon fill="black" stroke="black" points="274.07,-36.24 266.8,-38.69 270.59,-35.9 267.1,-35.56 267.1,-35.56 267.1,-35.56 270.59,-35.9 267.41,-32.42 274.07,-36.24 274.07,-36.24"/><text text-anchor="start" x="214" y="-61.82" font-family="Lato" font-size="14.00">!a &amp; b</text><text text-anchor="start" x="208" y="-47.82" font-family="Lato" font-size="14.00" fill="#ff7f00">❷</text><text text-anchor="start" x="224" y="-47.82" font-family="Lato" font-size="14.00" fill="#6a3d9a">❸</text><text text-anchor="start" x="240" y="-47.82" font-family="Lato" font-size="14.00" fill="#33a02c">❹</text></g><!-- 3 --><g id="node5" class="node"><title>3</title><ellipse fill="#ffffaa" stroke="black" cx="372" cy="-89.02" rx="18" ry="18"/><text text-anchor="middle" x="372" y="-85.32" font-family="Lato" font-size="14.00">3</text></g><!-- 1&#45;&gt;3 --><g id="edge8" class="edge"><title>1&#45;&gt;3</title><path fill="none" stroke="black" d="M179.95,-105.86C187.53,-111.98 197.62,-118.81 208,-122.02 257.24,-137.23 317.06,-115.18 348.77,-100.44"/><polygon fill="black" stroke="black" points="355.46,-97.24 350.51,-103.1 352.3,-98.75 349.15,-100.26 349.15,-100.26 349.15,-100.26 352.3,-98.75 347.79,-97.42 355.46,-97.24 355.46,-97.24"/><text text-anchor="start" x="286" y="-127.82" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;0 --><g id="edge9" class="edge"><title>2&#45;&gt;0</title><path fill="none" stroke="black" d="M276.06,-29.85C269.99,-26.42 262.82,-22.7 256,-20.02 208.33,-1.27 192.78,3.73 142,-3.02 120.65,-5.85 97.06,-12.53 80.16,-17.97"/><polygon fill="black" stroke="black" points="73.35,-20.2 79.02,-15.03 76.67,-19.11 80,-18.02 80,-18.02 80,-18.02 76.67,-19.11 80.98,-21.01 73.35,-20.2 73.35,-20.2"/><text text-anchor="start" x="160" y="-6.82" font-family="Lato" font-size="14.00">!b</text></g><!-- 2&#45;&gt;1 --><g id="edge10" class="edge"><title>2&#45;&gt;1</title><path fill="none" stroke="black" d="M279.62,-52.67C273.31,-59.41 264.95,-67.14 256,-72.02 235.64,-83.11 209.64,-88.7 191,-91.46"/><polygon fill="black" stroke="black" points="184,-92.42 190.51,-88.35 187.47,-91.94 190.94,-91.47 190.94,-91.47 190.94,-91.47 187.47,-91.94 191.36,-94.59 184,-92.42 184,-92.42"/><text text-anchor="start" x="214" y="-106.82" font-family="Lato" font-size="14.00">a &amp; !b</text><text text-anchor="start" x="224" y="-91.82" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 2&#45;&gt;2 --><g id="edge11" class="edge"><title>2&#45;&gt;2</title><path fill="none" stroke="black" d="M284.97,-55.68C283.41,-65.64 285.75,-75.02 292,-75.02 296.69,-75.02 299.18,-69.74 299.47,-62.9"/><polygon fill="black" stroke="black" points="299.03,-55.68 302.6,-62.47 299.24,-59.17 299.46,-62.67 299.46,-62.67 299.46,-62.67 299.24,-59.17 296.31,-62.86 299.03,-55.68 299.03,-55.68"/><text text-anchor="start" x="272" y="-92.82" font-family="Lato" font-size="14.00">!a &amp; !b</text><text text-anchor="start" x="276" y="-78.82" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="292" y="-78.82" font-family="Lato" font-size="14.00" fill="#33a02c">❹</text></g><!-- 2&#45;&gt;3 --><g id="edge12" class="edge"><title>2&#45;&gt;3</title><path fill="none" stroke="black" d="M307.67,-48.42C319.66,-56.1 336.74,-67.06 350.15,-75.65"/><polygon fill="black" stroke="black" points="356.39,-79.65 348.8,-78.53 353.45,-77.76 350.5,-75.87 350.5,-75.87 350.5,-75.87 353.45,-77.76 352.2,-73.22 356.39,-79.65 356.39,-79.65"/><text text-anchor="start" x="328" y="-68.82" font-family="Lato" font-size="14.00">b</text></g><!-- 3&#45;&gt;3 --><g id="edge13" class="edge"><title>3&#45;&gt;3</title><path fill="none" stroke="black" d="M364.97,-105.68C363.41,-115.64 365.75,-125.02 372,-125.02 376.69,-125.02 379.18,-119.74 379.47,-112.9"/><polygon fill="black" stroke="black" points="379.03,-105.68 382.6,-112.47 379.24,-109.17 379.46,-112.67 379.46,-112.67 379.46,-112.67 379.24,-109.17 376.31,-112.86 379.03,-105.68 379.03,-105.68"/><text text-anchor="middle" x="372" y="-128.82" font-family="Lato" font-size="14.00">1</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2f4060> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7d4c00> >
%% Cell type:code id: tags:
``` python
spot.complete(spot.translate('Ga'))
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="173pt" height="125pt"viewBox="0.00 0.00 173.00 124.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 120.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-120.8 169,-120.8 169,4 -4,4"/><text text-anchor="start" x="61" y="-86.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="60" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="60" cy="-22" rx="22" ry="22"/><text text-anchor="middle" x="60" y="-18.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.17,-22C2.84,-22 16.88,-22 30.71,-22"/><polygon fill="black" stroke="black" points="37.86,-22 30.86,-25.15 34.36,-22 30.86,-22 30.86,-22 30.86,-22 34.36,-22 30.86,-18.85 37.86,-22 37.86,-22"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M52.68,-42.99C51.78,-53.09 54.22,-62 60,-62 64.34,-62 66.79,-56.99 67.37,-50.22"/><polygon fill="black" stroke="black" points="67.32,-42.99 70.52,-49.97 67.34,-46.49 67.37,-49.99 67.37,-49.99 67.37,-49.99 67.34,-46.49 64.22,-50.01 67.32,-42.99 67.32,-42.99"/><text text-anchor="start" x="56.5" y="-65.8" font-family="Lato" font-size="14.00">a</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="147" cy="-22" rx="18" ry="18"/><text text-anchor="middle" x="147" y="-18.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M82.01,-22C94.09,-22 109.32,-22 121.89,-22"/><polygon fill="black" stroke="black" points="128.94,-22 121.94,-25.15 125.44,-22 121.94,-22 121.94,-22 121.94,-22 125.44,-22 121.94,-18.85 128.94,-22 128.94,-22"/><text text-anchor="start" x="100" y="-25.8" font-family="Lato" font-size="14.00">!a</text></g><!-- 1&#45;&gt;1 --><g id="edge4" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M139.97,-38.66C138.41,-48.62 140.75,-58 147,-58 151.69,-58 154.18,-52.73 154.47,-45.89"/><polygon fill="black" stroke="black" points="154.03,-38.66 157.6,-45.46 154.24,-42.16 154.46,-45.65 154.46,-45.65 154.46,-45.65 154.24,-42.16 151.31,-45.84 154.03,-38.66 154.03,-38.66"/><text text-anchor="middle" x="147" y="-61.8" font-family="Lato" font-size="14.00">1</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c2f4de0> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7e2f90> >
%% Cell type:code id: tags:
``` python
spot.formula('(a W c) & FGa').is_syntactic_persistence()
```
%%%% Output: execute_result
True
%% Cell type:code id: tags:
``` python
# Using +1 in the display options is a convient way to shift the
# set numbers in the output, as an aid in reading the product.
a1 = spot.translate('GF(a <-> Xa)')
print(a1.prop_weak())
a2 = spot.translate('a U b & GFc')
display_inline(a1.show('.t'), a2.show('.t+1'))
# the product should display pairs of states, unless asked not to (using '1').
p = spot.product(a1, a2)
display_inline(p.show('.t'), p.show('.t1'), per_row=2)
```
%%%% Output: stream
no
%%%% Output: display_data
%%%% Output: display_data
%% Cell type:markdown id: tags:
Explicit determinization after translation:
%% Cell type:code id: tags:
``` python
a = spot.translate('FGa')
display(a)
display(a.is_deterministic())
```
%%%% Output: display_data
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="169pt" height="125pt"viewBox="0.00 0.00 169.00 124.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 120.8)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-120.8 165,-120.8 165,4 -4,4"/><text text-anchor="start" x="59" y="-86.6" font-family="Lato" font-size="14.00">[Büchi]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-22" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-18.3" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-22C2.79,-22 17.15,-22 30.63,-22"/><polygon fill="black" stroke="black" points="37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14"/><polygon fill="black" stroke="black" points="62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04"/><text text-anchor="start" x="51.5" y="-61.8" font-family="Lato" font-size="14.00">1</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="139" cy="-22" rx="18" ry="18"/><ellipse fill="none" stroke="black" cx="139" cy="-22" rx="22" ry="22"/><text text-anchor="start" x="134.5" y="-18.3" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M74.18,-22C84.48,-22 97.85,-22 109.68,-22"/><polygon fill="black" stroke="black" points="116.81,-22 109.81,-25.15 113.31,-22 109.81,-22 109.81,-22 109.81,-22 113.31,-22 109.81,-18.85 116.81,-22 116.81,-22"/><text text-anchor="start" x="92" y="-25.8" font-family="Lato" font-size="14.00">a</text></g><!-- 1&#45;&gt;1 --><g id="edge4" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M131.32,-42.99C130.37,-53.09 132.93,-62 139,-62 143.55,-62 146.13,-56.99 146.74,-50.22"/><polygon fill="black" stroke="black" points="146.68,-42.99 149.88,-49.97 146.71,-46.49 146.73,-49.99 146.73,-49.99 146.73,-49.99 146.71,-46.49 143.58,-50.01 146.68,-42.99 146.68,-42.99"/><text text-anchor="start" x="135.5" y="-65.8" font-family="Lato" font-size="14.00">a</text></g></g></svg>)
%%%% Output: display_data
%% Cell type:code id: tags:
``` python
spot.tgba_determinize(a)
```
%%%% Output: execute_result
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Generated by graphviz version 2.43.0 (0)--><!-- Pages: 1 --><svg width="170pt" height="140pt"viewBox="0.00 0.00 170.00 140.47" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1.0 1.0) rotate(0) translate(4 136.47)"><polygon fill="white" stroke="transparent" points="-4,4 -4,-136.47 166,-136.47 166,4 -4,4"/><text text-anchor="start" x="30.5" y="-118.27" font-family="Lato" font-size="14.00">Fin(</text><text text-anchor="start" x="53.5" y="-118.27" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text><text text-anchor="start" x="69.5" y="-118.27" font-family="Lato" font-size="14.00">) &amp; Inf(</text><text text-anchor="start" x="111.5" y="-118.27" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text><text text-anchor="start" x="127.5" y="-118.27" font-family="Lato" font-size="14.00">)</text><text text-anchor="start" x="53.5" y="-104.27" font-family="Lato" font-size="14.00">[Rabin 1]</text><!-- I --><!-- 0 --><g id="node2" class="node"><title>0</title><ellipse fill="#ffffaa" stroke="black" cx="56" cy="-30.47" rx="18" ry="18"/><text text-anchor="middle" x="56" y="-26.77" font-family="Lato" font-size="14.00">0</text></g><!-- I&#45;&gt;0 --><g id="edge1" class="edge"><title>I&#45;&gt;0</title><path fill="none" stroke="black" d="M1.15,-30.47C2.79,-30.47 17.15,-30.47 30.63,-30.47"/><polygon fill="black" stroke="black" points="37.94,-30.47 30.94,-33.62 34.44,-30.47 30.94,-30.47 30.94,-30.47 30.94,-30.47 34.44,-30.47 30.94,-27.32 37.94,-30.47 37.94,-30.47"/></g><!-- 0&#45;&gt;0 --><g id="edge2" class="edge"><title>0&#45;&gt;0</title><path fill="none" stroke="black" d="M49.62,-47.5C48.32,-57.32 50.45,-66.47 56,-66.47 60.17,-66.47 62.4,-61.32 62.71,-54.61"/><polygon fill="black" stroke="black" points="62.38,-47.5 65.85,-54.35 62.54,-51 62.71,-54.5 62.71,-54.5 62.71,-54.5 62.54,-51 59.56,-54.64 62.38,-47.5 62.38,-47.5"/><text text-anchor="start" x="50.5" y="-70.27" font-family="Lato" font-size="14.00">!a</text></g><!-- 1 --><g id="node3" class="node"><title>1</title><ellipse fill="#ffffaa" stroke="black" cx="144" cy="-30.47" rx="18" ry="18"/><text text-anchor="middle" x="144" y="-26.77" font-family="Lato" font-size="14.00">1</text></g><!-- 0&#45;&gt;1 --><g id="edge3" class="edge"><title>0&#45;&gt;1</title><path fill="none" stroke="black" d="M74.04,-33.39C79.73,-34.24 86.12,-35.05 92,-35.47 99.09,-35.97 100.91,-35.97 108,-35.47 111.49,-35.22 115.16,-34.83 118.76,-34.38"/><polygon fill="black" stroke="black" points="125.96,-33.39 119.46,-37.47 122.49,-33.87 119.03,-34.35 119.03,-34.35 119.03,-34.35 122.49,-33.87 118.6,-31.23 125.96,-33.39 125.96,-33.39"/><text text-anchor="start" x="96.5" y="-54.27" font-family="Lato" font-size="14.00">a</text><text text-anchor="start" x="92" y="-39.27" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text></g><!-- 1&#45;&gt;0 --><g id="edge4" class="edge"><title>1&#45;&gt;0</title><path fill="none" stroke="black" d="M131.4,-17.33C125.16,-11.25 116.91,-4.68 108,-1.47 95.99,2.87 83.5,-4 73.9,-12.14"/><polygon fill="black" stroke="black" points="68.6,-17 71.63,-9.95 71.18,-14.64 73.76,-12.27 73.76,-12.27 73.76,-12.27 71.18,-14.64 75.89,-14.59 68.6,-17 68.6,-17"/><text text-anchor="start" x="94.5" y="-20.27" font-family="Lato" font-size="14.00">!a</text><text text-anchor="start" x="92" y="-5.27" font-family="Lato" font-size="14.00" fill="#1f78b4">⓿</text></g><!-- 1&#45;&gt;1 --><g id="edge5" class="edge"><title>1&#45;&gt;1</title><path fill="none" stroke="black" d="M136.33,-46.76C134.48,-56.85 137.04,-66.47 144,-66.47 149.22,-66.47 151.96,-61.06 152.23,-54.1"/><polygon fill="black" stroke="black" points="151.67,-46.76 155.34,-53.5 151.93,-50.25 152.2,-53.74 152.2,-53.74 152.2,-53.74 151.93,-50.25 149.06,-53.98 151.67,-46.76 151.67,-46.76"/><text text-anchor="start" x="140.5" y="-85.27" font-family="Lato" font-size="14.00">a</text><text text-anchor="start" x="136" y="-70.27" font-family="Lato" font-size="14.00" fill="#ff4da0">❶</text></g></g></svg>)
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fbc2c279390> >
<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f9f5d7d4b70> >
%% Cell type:markdown id: tags:
Determinization by `translate()`. The `generic` option allows any acceptance condition to be used instead of the default generalized Büchi.
%% Cell type:code id: tags:
``` python
spot.translate('FGa', 'generic', 'deterministic')
```
%%%% Output: execute_result