spot/tests/python/zlktree.ipynb
Alexandre Duret-Lutz fea0be96c1 acd: add ORDER_HEURISTIC for state-based ACD-transform
* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: Add the
acd_options::ORDER_HEURISTIC and use it by default in
acd_transform_sbacc().
* spot/misc/bitvect.hh (bitvect::count, bitvect::add_common): New
methods.
* tests/python/zlktree.ipynb: Adjust examples and discuss this
heuristic.
2021-09-24 22:28:10 +02:00

10772 lines
761 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "found-hurricane",
"metadata": {},
"outputs": [],
"source": [
"import spot\n",
"spot.setup()"
]
},
{
"cell_type": "markdown",
"id": "fb656100",
"metadata": {},
"source": [
"This notebook demonstrates the implementation of Zielonka Tree and ACD (Alternating Cycle Decomposition)\n",
"in Spot. \n",
"\n",
"These two structures are used to decompose an acceptance condition (or automaton) into trees that alternate accepting and rejecting elements in order to help converting an automaton to parity acceptance. Spot implements those structures, includes some display code to better explore them iteractively, and finally use them to implement a transformation to parity acceptance.\n",
"\n",
"For a formal tratement of these, in a slightly different formalism, see [Optimal Transformations of Games and Automata Using Muller Conditions](https://arxiv.org/abs/2011.13041) by Casares, Colcombet, and Fijalkow. In Spot those definitions have been adapted to use Emerson-Lei acceptance, and support transitions labeled by multiple colors (the main differences are for the Zielonka Tree, the ACD is almost identical)."
]
},
{
"cell_type": "markdown",
"id": "4e8b5d3f",
"metadata": {},
"source": [
"# Zielonka Tree\n",
"\n",
"The Zielonka tree is built from an acceptance formula and is labeled by sets of colors. The root contains all colors used in the formula. If seing infinitely all colors of one node would satisfy the acceptance condition, we say that the node is accepting and draw it with an ellipse, otherwise is is rejecting and drawn with a rectangle. The children of an accepting (resp. rejecting) node, are the largest subsets of colors that are rejecting (resp. accepting).\n",
"\n",
"Here is an example:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "b330dcc5",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: zielonka_tree Pages: 1 -->\n",
"<svg width=\"560pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 560.07 277.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 273.74)\">\n",
"<title>zielonka_tree</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-273.74 556.07,-273.74 556.07,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"295.36,-269.74 211.36,-269.74 211.36,-233.74 295.36,-233.74 295.36,-269.74\"/>\n",
"<text text-anchor=\"middle\" x=\"253.36\" y=\"-248.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3}</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"161.36\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"161.36\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M230.61,-233.44C218.3,-224.07 202.98,-212.41 189.88,-202.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"191.72,-199.45 181.64,-196.18 187.48,-205.02 191.72,-199.45\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"340.36\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"340.36\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,3}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M274.86,-233.44C286.39,-224.16 300.72,-212.63 313.03,-202.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"315.57,-205.17 321.17,-196.18 311.18,-199.72 315.57,-205.17\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"107.86,-125.74 50.86,-125.74 50.86,-89.74 107.86,-89.74 107.86,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"79.36\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3}</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M142.75,-162.86C132.23,-153.88 118.87,-142.47 107.13,-132.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"109.2,-129.61 99.32,-125.78 104.65,-134.94 109.2,-129.61\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"189.86,-125.74 132.86,-125.74 132.86,-89.74 189.86,-89.74 189.86,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"161.36\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.36,-161.44C161.36,-153.72 161.36,-144.45 161.36,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"164.86,-135.84 161.36,-125.84 157.86,-135.84 164.86,-135.84\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"368.86,-125.74 311.86,-125.74 311.86,-89.74 368.86,-89.74 368.86,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"340.36\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M340.36,-161.44C340.36,-153.72 340.36,-144.45 340.36,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"343.86,-135.84 340.36,-125.84 336.86,-135.84 343.86,-135.84\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"506.86,-125.74 449.86,-125.74 449.86,-89.74 506.86,-89.74 506.86,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"478.36\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M367.29,-165.08C388.11,-154.52 417.19,-139.76 440.38,-128.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.25,-130.98 449.58,-123.33 439.08,-124.74 442.25,-130.98\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"35.36\" cy=\"-26.87\" rx=\"35.21\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"35.36\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{3}</text>\n",
"<text text-anchor=\"middle\" x=\"35.36\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;7&gt;</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M69.81,-89.63C65.09,-81.16 59.22,-70.65 53.68,-60.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"56.65,-58.86 48.72,-51.83 50.54,-62.27 56.65,-58.86\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"124.36\" cy=\"-26.87\" rx=\"35.21\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"124.36\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"124.36\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;8&gt;</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.33,-89.63C149.46,-81.39 144.69,-71.21 140.14,-61.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"143.29,-60 135.88,-52.43 136.96,-62.97 143.29,-60\"/>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"213.36\" cy=\"-26.87\" rx=\"35.21\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"213.36\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{3}</text>\n",
"<text text-anchor=\"middle\" x=\"213.36\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;9&gt;</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;9 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M172.64,-89.63C178.43,-80.85 185.66,-69.87 192.43,-59.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"195.37,-61.51 197.95,-51.23 189.52,-57.66 195.37,-61.51\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"308.36\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"308.36\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"308.36\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;10&gt;</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;10 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>5&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M333.41,-89.63C330.19,-81.69 326.24,-71.96 322.44,-62.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"325.57,-60.99 318.57,-53.04 319.08,-63.62 325.57,-60.99\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>11</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"409.36\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"409.36\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{3}</text>\n",
"<text text-anchor=\"middle\" x=\"409.36\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;11&gt;</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;11 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>5&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M355.33,-89.63C363.36,-80.44 373.51,-68.84 382.83,-58.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"385.49,-60.47 389.44,-50.64 380.22,-55.86 385.49,-60.47\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>12</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"510.36\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"510.36\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"510.36\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;12&gt;</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;12 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>6&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M485.3,-89.63C488.52,-81.69 492.47,-71.96 496.27,-62.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"499.63,-63.62 500.14,-53.04 493.14,-60.99 499.63,-63.62\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.zielonka_tree; proxy of <Swig Object of type 'spot::zielonka_tree *' at 0x7f0c504752a0> >"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = spot.acc_cond('Fin(0)&Inf(1)&(Inf(2)|Fin(3)) | (Inf(0)|Fin(1))&Fin(2)&Inf(3)')\n",
"t = spot.zielonka_tree(c)\n",
"t"
]
},
{
"cell_type": "markdown",
"id": "d7629725",
"metadata": {},
"source": [
"Above we can see that `{0,1,2,3}` is a rejecting root, but it has two accepting maximal subsets: `{1,2,3}` and `{0,1,3}`. Similarly, `{1,2,3}` has two rejecting maximal subsets: `{2,3}` and `{1,3}`.\n",
"\n",
"The leaves of this tree have some additional numbers in angle brackets: those are the node numbers. Each node has a number (it can be seen by hovering over it with the mouse), but those leaf numbers play a particular role when the tree is used to paritize an automaton.\n",
"\n",
"This tree is also layered: all nodes in each layers are alternatively rejecting and accepting. Layers are numbered incrementally from 0 at the root. In this example, leaves are in layer 3. Since it is conventional to put the root at the top, we will say that a node is high in the tree when it has a small level.\n",
"\n",
"In this example, odd levels are accepting: we say the tree is odd. On another example, it could be the other way arround. The `is_even()` method tells us which way it is."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ef1a0061",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.is_even()"
]
},
{
"cell_type": "markdown",
"id": "15fbd4e6",
"metadata": {},
"source": [
"The number of leaves, and the number of the left-most leaf can be found with the following functions:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ad093868",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(6, 7)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.num_branches(), t.first_branch()"
]
},
{
"cell_type": "markdown",
"id": "de4cdc45",
"metadata": {},
"source": [
"The `step()` methods takes one leaf L, one set of colors S, and returns a pair: (leaf, level).\n",
"It works as follows: starting from node L, it walks up the tree until it has seen all colors in S, and then return the left-most leaf of the *next* branch of the node it has seen (assuming branches are ordered circularly from left to right). The level returned is that of the highest node seen.\n",
"\n",
"We refer to the process performed by `step(L,S)` as *reading S from L*. \n",
"\n",
"For instance reading `[3]` from 7 does not change the leaf, since that leaf is already labeled by `{3}`. The level emitted is 3, since that's the level of 7."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "f4795cff",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7, 3)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(7, [3])"
]
},
{
"cell_type": "markdown",
"id": "4c3bf70b",
"metadata": {},
"source": [
"Reading `[3]` from 8, would however move to leave 9 and emit level 2. Indeed, color 3 is not recognized by 8, so we move up to node 4 (the one labelled by `{1,3}`), emit its level (2), and go down to the left-most leaf of the next branch."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "27899524",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(9, 2)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(8, [3])"
]
},
{
"cell_type": "markdown",
"id": "0d865f30",
"metadata": {},
"source": [
"If we read `[0,2]` from 9, we will have to go all the way up to the root (emitting 0) and then down to leaf 10:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "94d01547",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(10, 0)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(9, [0,2])"
]
},
{
"cell_type": "markdown",
"id": "8b6b3928",
"metadata": {},
"source": [
"Now, let's take this a *step* further, and chain multiple steps, by reading a sequence of Sᵢ and producing a sequence of levels."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "43b17b85",
"metadata": {},
"outputs": [],
"source": [
"def steps(tree, leaf, seq_of_s):\n",
" seq_of_lvl = []\n",
" for s in seq_of_s:\n",
" leaf, lvl = tree.step(leaf, s)\n",
" seq_of_lvl.append(lvl)\n",
" return leaf, seq_of_lvl"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1d411142",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(10, [1, 0, 2, 2, 1, 1, 3, 1, 1, 3, 1, 1])\n",
"(9, [1, 2, 2, 2, 2, 2, 2, 2])\n"
]
}
],
"source": [
"print(steps(t, 7, [[1],[0],[3],[1],[0],[3],[1],[0],[3],[1],[0],[3]]))\n",
"print(steps(t, 7, [[1],[3],[1],[3],[1],[3],[1],[3]]))"
]
},
{
"cell_type": "markdown",
"id": "656e05f4",
"metadata": {},
"source": [
"If we imagine an run looping on tree transitions labeled by `[1]`, `[0]`, `[3]`, we know (from the original acceptance condition) that it should be accepting. Infinite repetition of the `step()` procedure will emit many levels, but the smallest level we see infinitely often is `1`. It corresponds to node 2, labeled by `{0,1,3}`: this is the highest node we visit infinitely often while steping through this tree in a loop.\n",
"\n",
"Similarly, a loop of two transitions labeled by `[1]` and `[3]` should be rejecting. Stepping through the tree will emit infinitely many 2, a rejecting level."
]
},
{
"cell_type": "markdown",
"id": "5c7014e9",
"metadata": {},
"source": [
"All of this can be used to transform an automaton with arbitrary acceptance into a parity automaton, where the emitted levels will correspond to the priorities of the parity automaton.\n",
"\n",
"The states of the new automaton will be pairs of states of the form `(original state, leaf)`. If the input edge `(src,dst)` has colors `S`, then the output edge `((src,leaf),(dst,nextleaf))` will have priority `L` where `L` and `nextleaf` are computed as `(nextleaf,L)=t.step(leaf, S)`. The leaf used for the initial state does not really matter, we use the left-most one."
]
},
{
"cell_type": "markdown",
"id": "2750cb1d",
"metadata": {},
"source": [
"Let's create a random automaton with this example acceptance condition, and paritize it:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "0b9511da",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"510pt\" height=\"276pt\"\n",
" viewBox=\"0.00 0.00 509.50 276.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 272)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-272 505.5,-272 505.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"16.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"43.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"59.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"101.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"117.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"163.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"179.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"217.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"233.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">))) | ((Inf(</text>\n",
"<text text-anchor=\"start\" x=\"284.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"300.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"338.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"354.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">)) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"402.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"418.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"460.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"476.75\" y=\"-253.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-130\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-126.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-130C2.79,-130 17.15,-130 30.63,-130\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-130 30.94,-133.15 34.44,-130 30.94,-130 30.94,-130 30.94,-130 34.44,-130 30.94,-126.85 37.94,-130 37.94,-130\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-147.04C48.32,-156.86 50.45,-166 56,-166 60.17,-166 62.4,-160.86 62.71,-154.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-147.04 65.85,-153.88 62.54,-150.53 62.71,-154.03 62.71,-154.03 62.71,-154.03 62.54,-150.53 59.56,-154.18 62.38,-147.04 62.38,-147.04\"/>\n",
"<text text-anchor=\"start\" x=\"27.5\" y=\"-184.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-169.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"191.5\" cy=\"-77\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"191.5\" y=\"-73.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.96,-128.04C92.96,-125.38 124.31,-119.57 149,-108 157.14,-104.18 165.26,-98.62 172.12,-93.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"177.57,-88.84 174.12,-95.69 174.85,-91.04 172.13,-93.25 172.13,-93.25 172.13,-93.25 174.85,-91.04 170.15,-90.8 177.57,-88.84 177.57,-88.84\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"473\" cy=\"-120\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"473\" y=\"-116.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M61.9,-147.22C66.96,-161.67 76.37,-181.58 92,-192 165.86,-241.24 202.38,-214.14 291,-209 356.22,-205.22 383.72,-229.8 437,-192 452.63,-180.91 461.58,-160.88 466.5,-144.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"468.5,-137.67 469.63,-145.26 467.55,-141.04 466.6,-144.41 466.6,-144.41 466.6,-144.41 467.55,-141.04 463.57,-143.56 468.5,-137.67 468.5,-137.67\"/>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-233.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"254.5\" y=\"-218.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M173.96,-71.64C153.36,-65.99 117.74,-59.73 92,-74 79.39,-80.99 70.73,-94.62 65.17,-106.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.4,-113.17 62.25,-105.49 63.78,-109.95 65.15,-106.73 65.15,-106.73 65.15,-106.73 63.78,-109.95 68.05,-107.97 62.4,-113.17 62.4,-113.17\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M180.07,-91.04C175.8,-101.91 179.61,-113 191.5,-113 200.79,-113 205.15,-106.23 204.57,-98.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"202.93,-91.04 207.59,-97.14 203.73,-94.45 204.52,-97.86 204.52,-97.86 204.52,-97.86 203.73,-94.45 201.45,-98.57 202.93,-91.04 202.93,-91.04\"/>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"183.5\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"337.5\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"337.5\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.6,-75.03C229.84,-72.21 264.18,-65.87 291,-53 300.74,-48.33 310.39,-41.34 318.27,-34.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"323.94,-30 320.66,-36.94 321.27,-32.27 318.61,-34.54 318.61,-34.54 318.61,-34.54 321.27,-32.27 316.57,-32.15 323.94,-30 323.94,-30\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"254.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M456.56,-128.18C450.55,-131.18 443.55,-134.46 437,-137 406.32,-148.9 398.57,-153.28 366,-158 305.74,-166.72 149.46,-178.15 92,-158 85.64,-155.77 79.57,-151.84 74.33,-147.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"68.99,-142.99 76.35,-145.19 71.64,-145.28 74.28,-147.57 74.28,-147.57 74.28,-147.57 71.64,-145.28 72.22,-149.95 68.99,-142.99 68.99,-142.99\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"254.5\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M455,-121.72C415.16,-125.16 313.16,-130.4 234,-104 226.13,-101.38 218.3,-96.9 211.6,-92.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"205.79,-88.17 213.31,-89.68 208.63,-90.2 211.48,-92.24 211.48,-92.24 211.48,-92.24 208.63,-90.2 209.64,-94.8 205.79,-88.17 205.79,-88.17\"/>\n",
"<text text-anchor=\"start\" x=\"309\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"329.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M462.63,-134.79C459.25,-145.42 462.71,-156 473,-156 480.88,-156 484.75,-149.8 484.62,-142.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"483.37,-134.79 487.65,-141.16 483.96,-138.24 484.55,-141.69 484.55,-141.69 484.55,-141.69 483.96,-138.24 481.44,-142.22 483.37,-134.79 483.37,-134.79\"/>\n",
"<text text-anchor=\"start\" x=\"444.5\" y=\"-174.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M471.74,-101.95C470.3,-78.18 463.82,-37.15 437,-18 415.24,-2.46 383.33,-5.9 361.77,-10.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.89,-12.68 360.9,-7.91 358.28,-11.82 361.68,-10.96 361.68,-10.96 361.68,-10.96 358.28,-11.82 362.45,-14.01 354.89,-12.68 354.89,-12.68\"/>\n",
"<text text-anchor=\"start\" x=\"384\" y=\"-36.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"402.5\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M320.28,-12.63C311.68,-10.07 300.88,-7.28 291,-6 236,1.13 219.04,-0.82 167,-20 131.36,-33.14 118.44,-33.73 92,-61 79.63,-73.76 70.69,-91.77 64.95,-106.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-112.94 61.92,-105.28 63.63,-109.67 64.87,-106.4 64.87,-106.4 64.87,-106.4 63.63,-109.67 67.81,-107.51 62.38,-112.94 62.38,-112.94\"/>\n",
"<text text-anchor=\"start\" x=\"167\" y=\"-38.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"183.5\" y=\"-23.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M319.78,-13.77C298.52,-9.33 261.31,-4.79 234,-19 219.69,-26.45 209.2,-41.34 202.34,-54.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"199.09,-60.63 199.42,-52.97 200.66,-57.51 202.23,-54.38 202.23,-54.38 202.23,-54.38 200.66,-57.51 205.05,-55.8 199.09,-60.63 199.09,-60.63\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"254.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M351.9,-29.23C360.69,-36.28 372.62,-45.28 384,-52 406.27,-65.15 416.6,-60.1 437,-76 445.22,-82.41 452.67,-91.12 458.57,-99.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"462.76,-105.02 456.14,-101.13 460.73,-102.17 458.71,-99.31 458.71,-99.31 458.71,-99.31 460.73,-102.17 461.28,-97.49 462.76,-105.02 462.76,-105.02\"/>\n",
"<text text-anchor=\"start\" x=\"384\" y=\"-94.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"402.5\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M325.74,-32.04C321.35,-42.91 325.27,-54 337.5,-54 347.06,-54 351.54,-47.23 350.95,-39.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.26,-32.04 353.95,-38.11 350.07,-35.45 350.89,-38.85 350.89,-38.85 350.89,-38.85 350.07,-35.45 347.83,-39.58 349.26,-32.04 349.26,-32.04\"/>\n",
"<text text-anchor=\"start\" x=\"311\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"329.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c49328600> >"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a1 = spot.automaton(\"randaut -Q4 --colored -e.7 -A '{}' 2 |\".format(c.get_acceptance()))\n",
"a1"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "499c26d8",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"581pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 581.40 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.4504504504504504 0.4504504504504504) rotate(0) translate(4 794)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-794 1284.76,-794 1284.76,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"525.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"548.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"564.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"610.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"626.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"668.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"684.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"726.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"742.88\" y=\"-775.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
"<text text-anchor=\"start\" x=\"586.38\" y=\"-761.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"64.65\" cy=\"-442\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"52.15\" y=\"-438.3\" font-family=\"Lato\" font-size=\"14.00\">0#7</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.05,-442C1.94,-442 16.02,-442 30.59,-442\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.73,-442 30.73,-445.15 34.23,-442 30.73,-442 30.73,-442 30.73,-442 34.23,-442 30.73,-438.85 37.73,-442 37.73,-442\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"210.94\" cy=\"-443\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"198.44\" y=\"-439.3\" font-family=\"Lato\" font-size=\"14.00\">1#7</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M90.99,-445.4C96.98,-446.06 103.36,-446.66 109.3,-447 134.59,-448.44 140.99,-448.16 166.3,-447 169.91,-446.83 173.68,-446.59 177.44,-446.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"184.58,-445.72 177.86,-449.43 181.09,-446.01 177.61,-446.3 177.61,-446.3 177.61,-446.3 181.09,-446.01 177.35,-443.16 184.58,-445.72 184.58,-445.72\"/>\n",
"<text text-anchor=\"start\" x=\"109.3\" y=\"-465.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"129.8\" y=\"-450.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"955.67\" cy=\"-523\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"943.17\" y=\"-519.3\" font-family=\"Lato\" font-size=\"14.00\">3#7</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M69.37,-459.84C80.8,-509.03 120.16,-643 209.94,-643 209.94,-643 209.94,-643 650.53,-643 761.58,-643 880.52,-572.92 930.44,-539.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"936.46,-535.84 932.39,-542.35 933.55,-537.79 930.64,-539.74 930.64,-539.74 930.64,-539.74 933.55,-537.79 928.89,-537.12 936.46,-535.84 936.46,-535.84\"/>\n",
"<text text-anchor=\"start\" x=\"472.89\" y=\"-661.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"493.39\" y=\"-646.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"797.68\" cy=\"-688\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"785.18\" y=\"-684.3\" font-family=\"Lato\" font-size=\"14.00\">0#8</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M67.2,-460.24C71.47,-506.45 84.7,-626.56 109.3,-657 139.97,-694.98 161.12,-701 209.94,-701 209.94,-701 209.94,-701 650.53,-701 689.75,-701 734.65,-696.3 764.22,-692.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"771.39,-691.62 764.86,-695.64 767.92,-692.07 764.45,-692.52 764.45,-692.52 764.45,-692.52 767.92,-692.07 764.05,-689.4 771.39,-691.62 771.39,-691.62\"/>\n",
"<text text-anchor=\"start\" x=\"397.89\" y=\"-719.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"418.39\" y=\"-704.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M194.2,-428.73C186.4,-422.62 176.48,-416.16 166.3,-413 142.1,-405.49 133.55,-405.68 109.3,-413 101.69,-415.3 94.2,-419.4 87.63,-423.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"81.87,-427.9 85.75,-421.27 84.73,-425.87 87.58,-423.84 87.58,-423.84 87.58,-423.84 84.73,-425.87 89.4,-426.41 81.87,-427.9 81.87,-427.9\"/>\n",
"<text text-anchor=\"start\" x=\"111.3\" y=\"-431.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"129.8\" y=\"-416.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M198.74,-459.29C195.8,-469.39 199.87,-479 210.94,-479 219.25,-479 223.61,-473.59 224.03,-466.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"223.14,-459.29 227.11,-465.86 223.56,-462.76 223.99,-466.24 223.99,-466.24 223.99,-466.24 223.56,-462.76 220.86,-466.62 223.14,-459.29 223.14,-459.29\"/>\n",
"<text text-anchor=\"start\" x=\"184.44\" y=\"-497.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"202.94\" y=\"-482.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"353.24\" cy=\"-390\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"340.74\" y=\"-386.3\" font-family=\"Lato\" font-size=\"14.00\">2#7</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M237.44,-439.99C257.45,-436.97 285.66,-431.26 308.59,-421 316,-417.69 323.42,-413.03 330,-408.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"335.78,-404.04 332.04,-410.74 332.97,-406.13 330.16,-408.21 330.16,-408.21 330.16,-408.21 332.97,-406.13 328.28,-405.69 335.78,-404.04 335.78,-404.04\"/>\n",
"<text text-anchor=\"start\" x=\"257.59\" y=\"-454.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"274.09\" y=\"-439.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M931.24,-530.36C923.07,-532.6 913.8,-534.79 905.18,-536 804.36,-550.14 777.97,-539.89 676.18,-541 486.62,-543.07 432.17,-538.99 255.59,-470 248.87,-467.37 242.03,-463.71 235.82,-459.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"229.85,-456.13 237.45,-457.22 232.81,-458 235.76,-459.88 235.76,-459.88 235.76,-459.88 232.81,-458 234.07,-462.54 229.85,-456.13 229.85,-456.13\"/>\n",
"<text text-anchor=\"start\" x=\"547.89\" y=\"-559.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"568.39\" y=\"-544.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M928.8,-523.51C907.2,-523.69 875.62,-523.41 848.18,-521 747.26,-512.14 484.29,-502.87 397.89,-450 383.85,-441.41 372.96,-426.46 365.56,-413.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"362.01,-407.15 368.14,-411.78 363.7,-410.22 365.38,-413.29 365.38,-413.29 365.38,-413.29 363.7,-410.22 362.62,-414.81 362.01,-407.15 362.01,-407.15\"/>\n",
"<text text-anchor=\"start\" x=\"623.03\" y=\"-525.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"641.53\" y=\"-510.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"797.68\" cy=\"-379\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"780.68\" y=\"-375.3\" font-family=\"Lato\" font-size=\"14.00\">0#10</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M943.74,-506.63C934.66,-494.09 920.75,-477.11 905.18,-466 882.94,-450.14 869.96,-459.49 848.18,-443 833.61,-431.97 821.07,-415.63 812.25,-402.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"808.47,-396.29 814.89,-400.5 810.35,-399.24 812.23,-402.19 812.23,-402.19 812.23,-402.19 810.35,-399.24 809.58,-403.89 808.47,-396.29 808.47,-396.29\"/>\n",
"<text text-anchor=\"start\" x=\"850.18\" y=\"-484.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"868.68\" y=\"-469.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1107.82\" cy=\"-379\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1095.32\" y=\"-375.3\" font-family=\"Lato\" font-size=\"14.00\">3#8</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M971.9,-508.4C998.99,-482.42 1055.59,-428.13 1086.16,-398.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1091.55,-393.64 1088.68,-400.76 1089.03,-396.06 1086.5,-398.48 1086.5,-398.48 1086.5,-398.48 1089.03,-396.06 1084.32,-396.21 1091.55,-393.64 1091.55,-393.64\"/>\n",
"<text text-anchor=\"start\" x=\"1006.17\" y=\"-490.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1026.67\" y=\"-475.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M814.52,-673.49C824.13,-664.8 836.72,-653.6 848.18,-644 872.91,-623.27 883.41,-622.84 905.18,-599 919.85,-582.92 933.11,-562.05 942.21,-546.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"945.84,-539.81 945.14,-547.45 944.12,-542.85 942.4,-545.9 942.4,-545.9 942.4,-545.9 944.12,-542.85 939.65,-544.35 945.84,-539.81 945.84,-539.81\"/>\n",
"<text text-anchor=\"start\" x=\"848.18\" y=\"-662.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"868.68\" y=\"-647.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M784.56,-703.92C781.13,-714.15 785.51,-724 797.68,-724 807,-724 811.75,-718.23 811.92,-710.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"810.8,-703.92 815.02,-710.33 811.35,-707.37 811.91,-710.83 811.91,-710.83 811.91,-710.83 811.35,-707.37 808.8,-711.33 810.8,-703.92 810.8,-703.92\"/>\n",
"<text text-anchor=\"start\" x=\"769.18\" y=\"-742.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"789.68\" y=\"-727.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1254.11\" cy=\"-225\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1241.61\" y=\"-221.3\" font-family=\"Lato\" font-size=\"14.00\">1#9</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M824.4,-688.73C875.64,-688.82 991.67,-682.1 1063.17,-624 1187.54,-522.93 1235.41,-321.14 1248.82,-250.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1250.15,-243.08 1251.98,-250.54 1249.51,-246.53 1248.88,-249.97 1248.88,-249.97 1248.88,-249.97 1249.51,-246.53 1245.78,-249.4 1250.15,-243.08 1250.15,-243.08\"/>\n",
"<text text-anchor=\"start\" x=\"1006.17\" y=\"-674.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1026.67\" y=\"-659.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M328.29,-383.29C307.9,-378.92 278.37,-375.87 255.59,-387 241.63,-393.82 230.84,-407.5 223.48,-419.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"219.94,-425.78 220.69,-418.15 221.68,-422.75 223.43,-419.71 223.43,-419.71 223.43,-419.71 221.68,-422.75 226.16,-421.28 219.94,-425.78 219.94,-425.78\"/>\n",
"<text text-anchor=\"start\" x=\"255.59\" y=\"-405.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"274.09\" y=\"-390.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M378.19,-396.84C384.57,-398.59 391.48,-400.42 397.89,-402 596.46,-450.84 837.4,-499.7 922.8,-516.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"929.87,-518.11 922.39,-519.83 926.43,-517.43 923,-516.74 923,-516.74 923,-516.74 926.43,-517.43 923.61,-513.66 929.87,-518.11 929.87,-518.11\"/>\n",
"<text text-anchor=\"start\" x=\"623.03\" y=\"-483.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"641.53\" y=\"-468.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M379.94,-389.36C454.2,-387.51 669.43,-382.16 757.95,-379.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"765.11,-379.78 758.19,-383.11 761.61,-379.87 758.11,-379.96 758.11,-379.96 758.11,-379.96 761.61,-379.87 758.04,-376.81 765.11,-379.78 765.11,-379.78\"/>\n",
"<text text-anchor=\"start\" x=\"551.89\" y=\"-403.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"568.39\" y=\"-388.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"501.39\" cy=\"-290\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"488.89\" y=\"-286.3\" font-family=\"Lato\" font-size=\"14.00\">2#8</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M367.43,-374.62C375.62,-365.62 386.71,-354.41 397.89,-346 421.24,-328.44 450.78,-312.91 472.14,-302.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"478.49,-299.68 473.5,-305.52 475.32,-301.18 472.16,-302.67 472.16,-302.67 472.16,-302.67 475.32,-301.18 470.81,-299.82 478.49,-299.68 478.49,-299.68\"/>\n",
"<text text-anchor=\"start\" x=\"399.89\" y=\"-364.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"418.39\" y=\"-349.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M827.76,-385.83C857.21,-392.96 899.24,-403.82 905.18,-409 931.77,-432.22 944.59,-472.33 950.38,-498.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"951.83,-505.16 947.31,-498.96 951.11,-501.73 950.39,-498.31 950.39,-498.31 950.39,-498.31 951.11,-501.73 953.47,-497.66 951.83,-505.16 951.83,-505.16\"/>\n",
"<text text-anchor=\"start\" x=\"848.18\" y=\"-427.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"868.68\" y=\"-412.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M784.32,-395.66C781.35,-405.62 785.8,-415 797.68,-415 806.58,-415 811.32,-409.73 811.87,-402.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"811.04,-395.66 814.97,-402.26 811.44,-399.14 811.84,-402.62 811.84,-402.62 811.84,-402.62 811.44,-399.14 808.71,-402.98 811.04,-395.66 811.04,-395.66\"/>\n",
"<text text-anchor=\"start\" x=\"769.18\" y=\"-433.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"789.68\" y=\"-418.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"955.67\" cy=\"-58\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"938.67\" y=\"-54.3\" font-family=\"Lato\" font-size=\"14.00\">1#11</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;9 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>5&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M813.62,-363.24C822.91,-354.1 835.47,-342.88 848.18,-335 871.39,-320.6 887.79,-333.07 905.18,-312 907.02,-309.77 937.96,-146.57 949.97,-82.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"951.27,-76.08 953.06,-83.54 950.62,-79.52 949.97,-82.96 949.97,-82.96 949.97,-82.96 950.62,-79.52 946.87,-82.37 951.27,-76.08 951.27,-76.08\"/>\n",
"<text text-anchor=\"start\" x=\"848.18\" y=\"-353.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"868.68\" y=\"-338.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;4 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>6&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1104.65,-396.9C1100.64,-423.38 1089.89,-473.34 1063.17,-506 1038.7,-535.91 1023.67,-534.74 988.17,-550 831.06,-617.55 775.88,-581.15 604.89,-584 579.56,-584.42 571.98,-591.83 547.89,-584 469.51,-558.53 451.5,-537.58 397.89,-475 382.35,-456.87 370.49,-432.27 363.08,-414.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"360.37,-407.37 365.88,-412.71 361.66,-410.62 362.96,-413.88 362.96,-413.88 362.96,-413.88 361.66,-410.62 360.03,-415.04 360.37,-407.37 360.37,-407.37\"/>\n",
"<text text-anchor=\"start\" x=\"694.18\" y=\"-607.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"712.68\" y=\"-592.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;5 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>6&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1080.86,-379C1026.63,-379 901.04,-379 837.29,-379\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"830.21,-379 837.21,-375.85 833.71,-379 837.21,-379 837.21,-379 837.21,-379 833.71,-379 837.21,-382.15 830.21,-379 830.21,-379\"/>\n",
"<text text-anchor=\"start\" x=\"929.17\" y=\"-397.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"947.67\" y=\"-382.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1095.27,-395.29C1092.24,-405.39 1096.43,-415 1107.82,-415 1116.36,-415 1120.85,-409.59 1121.28,-402.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1120.36,-395.29 1124.36,-401.85 1120.8,-398.76 1121.23,-402.24 1121.23,-402.24 1121.23,-402.24 1120.8,-398.76 1118.11,-402.63 1120.36,-395.29 1120.36,-395.29\"/>\n",
"<text text-anchor=\"start\" x=\"1079.32\" y=\"-433.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1099.82\" y=\"-418.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1122.92,-363.95C1148.93,-336.19 1204.49,-276.9 1233.91,-245.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1238.74,-240.34 1236.26,-247.6 1236.35,-242.89 1233.96,-245.44 1233.96,-245.44 1233.96,-245.44 1236.35,-242.89 1231.66,-243.29 1238.74,-240.34 1238.74,-240.34\"/>\n",
"<text text-anchor=\"start\" x=\"1152.46\" y=\"-348.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1172.96\" y=\"-333.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1250.44,-206.97C1241.43,-153.58 1206.96,0 1108.82,0 209.94,0 209.94,0 209.94,0 150.82,0 137.13,-34.83 109.3,-87 78.69,-144.35 68.95,-345.35 66.42,-416.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"66.17,-423.93 63.26,-416.83 66.29,-420.43 66.41,-416.94 66.41,-416.94 66.41,-416.94 66.29,-420.43 69.56,-417.04 66.17,-423.93 66.17,-423.93\"/>\n",
"<text text-anchor=\"start\" x=\"623.03\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"641.53\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>7&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1237.14,-210.58C1211.85,-189.3 1160.19,-152 1108.82,-152 875.68,-152 875.68,-152 875.68,-152 659.83,-152 554.91,-90.9 397.89,-239 362.91,-271.99 355.4,-331.08 354.12,-364.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"353.93,-371.91 350.97,-364.83 354.02,-368.41 354.12,-364.91 354.12,-364.91 354.12,-364.91 354.02,-368.41 357.27,-365 353.93,-371.91 353.93,-371.91\"/>\n",
"<text text-anchor=\"start\" x=\"773.18\" y=\"-170.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"789.68\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1241.56,-241.29C1238.54,-251.39 1242.72,-261 1254.11,-261 1262.66,-261 1267.14,-255.59 1267.58,-248.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1266.66,-241.29 1270.65,-247.85 1267.09,-244.76 1267.53,-248.24 1267.53,-248.24 1267.53,-248.24 1267.09,-244.76 1264.4,-248.63 1266.66,-241.29 1266.66,-241.29\"/>\n",
"<text text-anchor=\"start\" x=\"1227.61\" y=\"-279.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1246.11\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;5 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>8&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M520.23,-302.92C528.34,-308.27 538.25,-314.12 547.89,-318 602.01,-339.82 619.51,-332.07 676.18,-346 705.13,-353.12 737.72,-362.1 761.71,-368.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"768.55,-370.85 760.95,-371.96 765.18,-369.89 761.81,-368.93 761.81,-368.93 761.81,-368.93 765.18,-369.89 762.67,-365.9 768.55,-370.85 768.55,-370.85\"/>\n",
"<text text-anchor=\"start\" x=\"625.03\" y=\"-364.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"641.53\" y=\"-349.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;7 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>8&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M525.27,-281.78C549.35,-273.33 588.46,-260.13 622.89,-251 745.82,-218.38 778.04,-200.17 905.18,-204 1021.14,-207.5 1158.54,-217.53 1220.24,-222.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1227.38,-222.91 1220.16,-225.51 1223.89,-222.64 1220.41,-222.37 1220.41,-222.37 1220.41,-222.37 1223.89,-222.64 1220.65,-219.23 1227.38,-222.91 1227.38,-222.91\"/>\n",
"<text text-anchor=\"start\" x=\"850.18\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"868.68\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M488.61,-305.92C485.28,-316.15 489.53,-326 501.39,-326 510.46,-326 515.08,-320.23 515.26,-312.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"514.16,-305.92 518.35,-312.35 514.7,-309.37 515.24,-312.83 515.24,-312.83 515.24,-312.83 514.7,-309.37 512.13,-313.32 514.16,-305.92 514.16,-305.92\"/>\n",
"<text text-anchor=\"start\" x=\"474.89\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"493.39\" y=\"-329.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"649.53\" cy=\"-278\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"637.03\" y=\"-274.3\" font-family=\"Lato\" font-size=\"14.00\">3#9</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>8&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M528.18,-287.88C552.6,-285.88 589.36,-282.86 615.83,-280.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"623,-280.1 616.28,-283.81 619.51,-280.38 616.02,-280.67 616.02,-280.67 616.02,-280.67 619.51,-280.38 615.77,-277.53 623,-280.1 623,-280.1\"/>\n",
"<text text-anchor=\"start\" x=\"549.89\" y=\"-305.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"568.39\" y=\"-290.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;0 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>9&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M923,-58C891.49,-58 841.74,-58 798.68,-58 209.94,-58 209.94,-58 209.94,-58 132.96,-58 83.09,-331.88 69.44,-417.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"68.34,-423.99 66.33,-416.59 68.89,-420.54 69.44,-417.08 69.44,-417.08 69.44,-417.08 68.89,-420.54 72.55,-417.57 68.34,-423.99 68.34,-423.99\"/>\n",
"<text text-anchor=\"start\" x=\"474.89\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"493.39\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;4 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>9&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M926.82,-66.55C919.8,-68.52 912.25,-70.48 905.18,-72 793.74,-96 479.68,-68.6 397.89,-148 367.18,-177.81 357.8,-309.37 355.17,-365.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.86,-372.03 352.03,-364.9 355.02,-368.53 355.17,-365.04 355.17,-365.04 355.17,-365.04 355.02,-368.53 358.32,-365.18 354.86,-372.03 354.86,-372.03\"/>\n",
"<text text-anchor=\"start\" x=\"625.03\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"641.53\" y=\"-94.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;9 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>9&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M941.96,-74.66C938.91,-84.62 943.48,-94 955.67,-94 964.81,-94 969.67,-88.73 970.24,-81.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"969.38,-74.66 973.34,-81.24 969.8,-78.14 970.21,-81.62 970.21,-81.62 970.21,-81.62 969.8,-78.14 967.08,-81.99 969.38,-74.66 969.38,-74.66\"/>\n",
"<text text-anchor=\"start\" x=\"929.17\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"947.67\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;4 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>10&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M630.03,-265.69C597.4,-245.61 527.85,-210.23 472.89,-233 414.5,-257.19 378.54,-328.4 363.08,-366.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"360.44,-372.66 360.11,-364.99 361.74,-369.41 363.04,-366.16 363.04,-366.16 363.04,-366.16 361.74,-369.41 365.96,-367.33 360.44,-372.66 360.44,-372.66\"/>\n",
"<text text-anchor=\"start\" x=\"474.89\" y=\"-251.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"493.39\" y=\"-236.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;5 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>10&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M673.38,-286.26C699.95,-295.99 741,-311.4 747.18,-316 761.57,-326.7 774.01,-342.6 782.83,-355.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"786.86,-361.95 780.4,-357.79 784.95,-359.01 783.04,-356.08 783.04,-356.08 783.04,-356.08 784.95,-359.01 785.68,-354.36 786.86,-361.95 786.86,-361.95\"/>\n",
"<text text-anchor=\"start\" x=\"694.18\" y=\"-334.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"712.68\" y=\"-319.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;6 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>10&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M675.92,-274.19C722.23,-268.08 823.22,-258.62 905.18,-278 974.15,-294.31 1046.41,-338.06 1082.81,-362.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1088.76,-366.28 1081.2,-364.99 1085.86,-364.33 1082.95,-362.38 1082.95,-362.38 1082.95,-362.38 1085.86,-364.33 1084.71,-359.76 1088.76,-366.28 1088.76,-366.28\"/>\n",
"<text text-anchor=\"start\" x=\"848.18\" y=\"-296.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"868.68\" y=\"-281.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;7 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>10&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M673.45,-269.91C680.08,-267.77 687.37,-265.61 694.18,-264 739.05,-253.37 750.57,-248 796.68,-248 796.68,-248 796.68,-248 1108.82,-248 1148.22,-248 1192.93,-239.53 1222,-232.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1229.04,-231.22 1222.95,-235.89 1225.64,-232.02 1222.23,-232.82 1222.23,-232.82 1222.23,-232.82 1225.64,-232.02 1221.51,-229.75 1229.04,-231.22 1229.04,-231.22\"/>\n",
"<text text-anchor=\"start\" x=\"927.17\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"947.67\" y=\"-251.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c493284b0> >"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p1 = spot.zielonka_tree_transform(a1)\n",
"p1.copy_state_names_from(a1)\n",
"p1"
]
},
{
"cell_type": "markdown",
"id": "ea452913",
"metadata": {},
"source": [
"Here the parity automaton output has as many proprities as there are levels in the Zielonka tree.\n",
"\n",
"The call to `copy_state_names_from()` above causes the states to be labeled by strings of the form `orig#leaf` when `orig` is the original state number, and `leaf` is a leaf of the Zielonka tree.\n",
"\n",
"Since this notebook is part of our test-suite, let us also make sure those automata are equivalent. "
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "934e5cd5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.are_equivalent(p1, a1)"
]
},
{
"cell_type": "markdown",
"id": "da8d9e97",
"metadata": {},
"source": [
"Note that `a1` above was generated as a so-called \"colored\" automaton, i.e., each edge has exactly one color. But the transformation also works when edges have arbitrary and possibly empty subsets of colors. In that case, reading a transition without color may emit a level that is not in the Zielonka tree, as if an additional imaginary layer labeled with the empty set was below the tree: we do not store this level for simplicity, but the `step()` function is aware of that."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "87eb80e1",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"492pt\" height=\"181pt\"\n",
" viewBox=\"0.00 0.00 492.00 181.06\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 177.06)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-177.06 488,-177.06 488,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"35\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"51\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"109\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"155\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"209\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"225\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">))) | ((Inf(</text>\n",
"<text text-anchor=\"start\" x=\"276\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"292\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"330\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">)) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"394\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"410\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"452\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"468\" y=\"-158.86\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"119.25\" cy=\"-39.06\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"119.25\" y=\"-35.36\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M64.4,-39.06C66.04,-39.06 80.4,-39.06 93.88,-39.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"101.19,-39.06 94.19,-42.21 97.69,-39.06 94.19,-39.06 94.19,-39.06 94.19,-39.06 97.69,-39.06 94.19,-35.91 101.19,-39.06 101.19,-39.06\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M112.87,-56.1C111.57,-65.92 113.7,-75.06 119.25,-75.06 123.42,-75.06 125.65,-69.92 125.96,-63.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"125.63,-56.1 129.1,-62.94 125.79,-59.6 125.96,-63.09 125.96,-63.09 125.96,-63.09 125.79,-59.6 122.81,-63.24 125.63,-56.1 125.63,-56.1\"/>\n",
"<text text-anchor=\"start\" x=\"90.75\" y=\"-93.86\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"111.25\" y=\"-78.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"254.75\" cy=\"-99.06\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"254.75\" y=\"-95.36\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M127.63,-55.19C133.5,-66.08 142.8,-79.75 155.25,-87.06 177.97,-100.41 208.71,-102.09 229.77,-101.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.79,-100.91 229.96,-104.42 233.29,-101.09 229.8,-101.28 229.8,-101.28 229.8,-101.28 233.29,-101.09 229.63,-98.13 236.79,-100.91 236.79,-100.91\"/>\n",
"<text text-anchor=\"start\" x=\"155.25\" y=\"-118.86\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"173.75\" y=\"-103.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"394.25\" cy=\"-39.06\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"394.25\" y=\"-35.36\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M137.33,-37.89C143.03,-37.55 149.41,-37.23 155.25,-37.06 245.44,-34.49 268.06,-34.49 358.25,-37.06 361.72,-37.16 365.38,-37.31 368.97,-37.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"376.17,-37.89 369.01,-40.65 372.67,-37.7 369.18,-37.51 369.18,-37.51 369.18,-37.51 372.67,-37.7 369.35,-34.36 376.17,-37.89 376.17,-37.89\"/>\n",
"<text text-anchor=\"start\" x=\"226.25\" y=\"-53.86\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"246.75\" y=\"-38.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M243.51,-84.59C235.24,-74.08 222.64,-60.45 208.25,-53.06 188.5,-42.92 163.24,-39.75 144.86,-38.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"137.43,-38.7 144.52,-35.76 140.93,-38.8 144.43,-38.91 144.43,-38.91 144.43,-38.91 140.93,-38.8 144.33,-42.06 137.43,-38.7 137.43,-38.7\"/>\n",
"<text text-anchor=\"start\" x=\"155.25\" y=\"-71.86\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"173.75\" y=\"-56.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.99,-113.1C238.6,-123.97 242.52,-135.06 254.75,-135.06 264.31,-135.06 268.79,-128.29 268.2,-120.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"266.51,-113.1 271.2,-119.17 267.32,-116.51 268.14,-119.91 268.14,-119.91 268.14,-119.91 267.32,-116.51 265.08,-120.65 266.51,-113.1 266.51,-113.1\"/>\n",
"<text text-anchor=\"start\" x=\"230.25\" y=\"-138.86\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M272.65,-101.03C294.09,-102.68 331.49,-102.7 358.25,-87.06 368.48,-81.09 376.57,-70.81 382.39,-61.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"385.88,-55.21 385.13,-62.85 384.14,-58.25 382.4,-61.28 382.4,-61.28 382.4,-61.28 384.14,-58.25 379.67,-59.71 385.88,-55.21 385.88,-55.21\"/>\n",
"<text text-anchor=\"start\" x=\"305.25\" y=\"-118.86\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"313.75\" y=\"-104.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"329.75\" y=\"-104.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M377.61,-32.19C356.63,-23.39 317.98,-8.6 283.25,-3.06 258.23,0.93 251.24,1.07 226.25,-3.06 196.45,-7.98 163.76,-20.2 142.68,-29.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"135.99,-31.89 141.19,-26.25 139.21,-30.52 142.43,-29.14 142.43,-29.14 142.43,-29.14 139.21,-30.52 143.67,-32.04 135.99,-31.89 135.99,-31.89\"/>\n",
"<text text-anchor=\"start\" x=\"230.25\" y=\"-20.86\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"238.75\" y=\"-6.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"254.75\" y=\"-6.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M376.07,-39.64C356.88,-40.9 325.35,-44.84 301.25,-57.06 290.34,-62.59 280.15,-71.5 272.18,-79.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"267.04,-85.2 269.52,-77.93 269.43,-82.64 271.82,-80.08 271.82,-80.08 271.82,-80.08 269.43,-82.64 274.12,-82.23 267.04,-85.2 267.04,-85.2\"/>\n",
"<text text-anchor=\"start\" x=\"301.25\" y=\"-75.86\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"321.75\" y=\"-60.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M383.54,-53.85C380.06,-64.48 383.62,-75.06 394.25,-75.06 402.38,-75.06 406.38,-68.86 406.25,-61.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"404.96,-53.85 409.27,-60.2 405.56,-57.3 406.17,-60.75 406.17,-60.75 406.17,-60.75 405.56,-57.3 403.07,-61.29 404.96,-53.85 404.96,-53.85\"/>\n",
"<text text-anchor=\"start\" x=\"367.75\" y=\"-93.86\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"386.25\" y=\"-78.86\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c49328f30> >"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a2 = spot.automaton(\"randaut -Q3 -e.8 --seed=4 -A '{}' 2 |\".format(c.get_acceptance()))\n",
"a2"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "201acd7e",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"520pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 520.25 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.4310344827586207 0.4310344827586207) rotate(0) translate(4 830)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-830 1201.25,-830 1201.25,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"453.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"476.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"492.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"538.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"554.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"596.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"612.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"658.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"674.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"712.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"728.13\" y=\"-811.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
"<text text-anchor=\"start\" x=\"544.63\" y=\"-797.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 6 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"70.5\" cy=\"-252\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"53.5\" y=\"-248.3\" font-family=\"Lato\" font-size=\"14.00\">0#11</text>\n",
"</g>\n",
"<!-- I&#45;&gt;6 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.05,-252C1.97,-252 15.51,-252 30.31,-252\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.63,-252 30.63,-255.15 34.13,-252 30.63,-252 30.63,-252 30.63,-252 34.13,-252 30.63,-248.85 37.63,-252 37.63,-252\"/>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M61.57,-269.41C59.9,-279.09 62.88,-288 70.5,-288 76.09,-288 79.18,-283.19 79.77,-276.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"79.42,-269.41 82.9,-276.26 79.59,-272.91 79.75,-276.4 79.75,-276.4 79.75,-276.4 79.59,-272.91 76.6,-276.55 79.42,-269.41 79.42,-269.41\"/>\n",
"<text text-anchor=\"start\" x=\"42\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"62.5\" y=\"-291.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"228.49\" cy=\"-367\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"211.49\" y=\"-363.3\" font-family=\"Lato\" font-size=\"14.00\">1#10</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;1 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>6&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M75.96,-269.75C82.28,-291.06 95.96,-326.25 120.99,-345 140.27,-359.44 166.79,-364.95 188.54,-366.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"195.71,-367.36 188.5,-370 192.22,-367.11 188.73,-366.86 188.73,-366.86 188.73,-366.86 192.22,-367.11 188.95,-363.72 195.71,-367.36 195.71,-367.36\"/>\n",
"<text text-anchor=\"start\" x=\"120.99\" y=\"-383.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"141.49\" y=\"-368.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1018.46\" cy=\"-85\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1001.46\" y=\"-81.3\" font-family=\"Lato\" font-size=\"14.00\">2#11</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;10 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>6&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.12,-233.76C71.27,-195.7 76.71,-106.81 120.99,-52 154.1,-11.03 174.82,0 227.49,0 227.49,0 227.49,0 861.47,0 915.25,0 968.14,-39.44 996.4,-64.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1001.72,-69.41 994.42,-67.04 999.13,-67.06 996.53,-64.71 996.53,-64.71 996.53,-64.71 999.13,-67.06 998.65,-62.37 1001.72,-69.41 1001.72,-69.41\"/>\n",
"<text text-anchor=\"start\" x=\"517.98\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"536.48\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1170.61\" cy=\"-465\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1158.11\" y=\"-461.3\" font-family=\"Lato\" font-size=\"14.00\">1#8</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"702.47\" cy=\"-417\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"689.97\" y=\"-413.3\" font-family=\"Lato\" font-size=\"14.00\">1#7</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1151.6,-452.1C1143.99,-447.12 1134.83,-441.73 1125.96,-438 1059.29,-409.97 1039.76,-407.73 967.97,-399 884.36,-388.83 785.13,-402.4 735.33,-410.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"728.35,-412.19 734.7,-407.88 731.8,-411.58 735.25,-410.98 735.25,-410.98 735.25,-410.98 731.8,-411.58 735.79,-414.08 728.35,-412.19 728.35,-412.19\"/>\n",
"<text text-anchor=\"start\" x=\"912.97\" y=\"-417.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"931.47\" y=\"-402.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.47\" cy=\"-435\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"847.97\" y=\"-431.3\" font-family=\"Lato\" font-size=\"14.00\">2#8</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1146.75,-456.64C1140.12,-454.5 1132.82,-452.4 1125.96,-451 1043.91,-434.22 944.8,-433.21 894.39,-434.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"887.31,-434.17 894.25,-430.89 890.81,-434.1 894.31,-434.03 894.31,-434.03 894.31,-434.03 890.81,-434.1 894.37,-437.18 887.31,-434.17 887.31,-434.17\"/>\n",
"<text text-anchor=\"start\" x=\"989.96\" y=\"-457.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1010.46\" y=\"-442.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1018.46\" cy=\"-562\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1005.96\" y=\"-558.3\" font-family=\"Lato\" font-size=\"14.00\">0#9</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1145.43,-471.06C1119.61,-477.89 1080.81,-489.31 1068.96,-499 1056.62,-509.08 1060.62,-517.33 1050.96,-530 1047.71,-534.26 1043.93,-538.54 1040.15,-542.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1035.03,-547.74 1037.68,-540.54 1037.48,-545.24 1039.93,-542.74 1039.93,-542.74 1039.93,-542.74 1037.48,-545.24 1042.18,-544.95 1035.03,-547.74 1035.03,-547.74\"/>\n",
"<text text-anchor=\"start\" x=\"1072.96\" y=\"-517.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1089.46\" y=\"-502.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M689.01,-432.92C685.49,-443.15 689.98,-453 702.47,-453 712.04,-453 716.91,-447.23 717.09,-439.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"715.94,-432.92 720.19,-439.31 716.51,-436.37 717.08,-439.82 717.08,-439.82 717.08,-439.82 716.51,-436.37 713.97,-440.33 715.94,-432.92 715.94,-432.92\"/>\n",
"<text text-anchor=\"start\" x=\"675.97\" y=\"-471.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"694.47\" y=\"-456.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M729.07,-414.96C750.77,-413.77 782.64,-413.3 809.97,-418 816.68,-419.15 823.7,-421.09 830.27,-423.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"837.2,-425.65 829.55,-426.33 833.89,-424.5 830.59,-423.35 830.59,-423.35 830.59,-423.35 833.89,-424.5 831.62,-420.38 837.2,-425.65 837.2,-425.65\"/>\n",
"<text text-anchor=\"start\" x=\"752.97\" y=\"-436.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"773.47\" y=\"-421.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.47\" cy=\"-547\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"847.97\" y=\"-543.3\" font-family=\"Lato\" font-size=\"14.00\">0#8</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;7 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M719.87,-430.67C748,-454.11 805.49,-502.01 837.21,-528.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"842.82,-533.13 835.43,-531.06 840.13,-530.88 837.44,-528.64 837.44,-528.64 837.44,-528.64 840.13,-530.88 839.46,-526.22 842.82,-533.13 842.82,-533.13\"/>\n",
"<text text-anchor=\"start\" x=\"756.97\" y=\"-522.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"773.47\" y=\"-507.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M847,-450.92C843.49,-461.15 847.98,-471 860.47,-471 870.03,-471 874.91,-465.23 875.09,-457.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"873.94,-450.92 878.18,-457.31 874.5,-454.37 875.07,-457.82 875.07,-457.82 875.07,-457.82 874.5,-454.37 871.96,-458.33 873.94,-450.92 873.94,-450.92\"/>\n",
"<text text-anchor=\"start\" x=\"835.97\" y=\"-489.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"852.47\" y=\"-474.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M879.15,-447.92C900.57,-463.73 937.55,-491.54 967.97,-517 977.7,-525.15 988.15,-534.54 996.92,-542.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1002.15,-547.48 994.87,-545.03 999.58,-545.1 997.01,-542.72 997.01,-542.72 997.01,-542.72 999.58,-545.1 999.16,-540.41 1002.15,-547.48 1002.15,-547.48\"/>\n",
"<text text-anchor=\"start\" x=\"912.97\" y=\"-535.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"931.47\" y=\"-520.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M851.54,-452.18C843.42,-467.68 829.26,-489.72 809.97,-501 768.76,-525.09 751.21,-515 703.47,-515 385.49,-515 385.49,-515 385.49,-515 314.26,-515 262.55,-432.79 240.83,-390.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"237.61,-384.56 243.59,-389.37 239.19,-387.68 240.78,-390.8 240.78,-390.8 240.78,-390.8 239.19,-387.68 237.97,-392.23 237.61,-384.56 237.61,-384.56\"/>\n",
"<text text-anchor=\"start\" x=\"519.98\" y=\"-533.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"536.48\" y=\"-518.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1043.93,-556.41C1071.1,-549.85 1112.88,-538.66 1125.96,-529 1140.09,-518.56 1151.16,-502.11 1158.62,-488.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1161.99,-482.09 1161.52,-489.75 1160.36,-485.19 1158.73,-488.29 1158.73,-488.29 1158.73,-488.29 1160.36,-485.19 1155.95,-486.82 1161.99,-482.09 1161.99,-482.09\"/>\n",
"<text text-anchor=\"start\" x=\"1068.96\" y=\"-567.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1089.46\" y=\"-552.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1004.99,-577.92C1001.48,-588.15 1005.97,-598 1018.46,-598 1028.03,-598 1032.9,-592.23 1033.08,-584.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1031.93,-577.92 1036.17,-584.31 1032.5,-581.37 1033.07,-584.82 1033.07,-584.82 1033.07,-584.82 1032.5,-581.37 1029.96,-585.33 1031.93,-577.92 1031.93,-577.92\"/>\n",
"<text text-anchor=\"start\" x=\"989.96\" y=\"-616.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1010.46\" y=\"-601.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1170.61\" cy=\"-679\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1158.11\" y=\"-675.3\" font-family=\"Lato\" font-size=\"14.00\">2#9</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1041.64,-570.96C1050.18,-574.41 1060.02,-578.39 1068.96,-582 1094.29,-592.23 1105.26,-587.18 1125.96,-605 1141.59,-618.45 1153.07,-638.96 1160.32,-654.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1163.17,-661.53 1157.49,-656.36 1161.77,-658.32 1160.38,-655.11 1160.38,-655.11 1160.38,-655.11 1161.77,-658.32 1163.27,-653.85 1163.17,-661.53 1163.17,-661.53\"/>\n",
"<text text-anchor=\"start\" x=\"1070.96\" y=\"-623.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1089.46\" y=\"-608.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;6 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M214.71,-350.2C205.49,-339.02 192.22,-324.67 177.99,-315 155.4,-299.65 144.54,-305.85 120.99,-292 111.4,-286.36 101.69,-278.96 93.44,-272.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"87.99,-267.4 95.35,-269.55 90.65,-269.67 93.31,-271.95 93.31,-271.95 93.31,-271.95 90.65,-269.67 91.26,-274.34 87.99,-267.4 87.99,-267.4\"/>\n",
"<text text-anchor=\"start\" x=\"124.99\" y=\"-333.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"141.49\" y=\"-318.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M260.37,-370.83C266.54,-371.57 272.97,-372.32 278.99,-373 423.93,-389.33 597.11,-406.69 668.36,-413.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"675.74,-414.47 668.46,-416.92 672.26,-414.13 668.77,-413.78 668.77,-413.78 668.77,-413.78 672.26,-414.13 669.08,-410.65 675.74,-414.47 675.74,-414.47\"/>\n",
"<text text-anchor=\"start\" x=\"438.98\" y=\"-413.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"457.48\" y=\"-398.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"386.49\" cy=\"-187\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"369.49\" y=\"-183.3\" font-family=\"Lato\" font-size=\"14.00\">2#10</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M243.61,-350.71C271.8,-318.18 335.07,-245.18 366.71,-208.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"371.51,-203.12 369.31,-210.48 369.22,-205.77 366.93,-208.41 366.93,-208.41 366.93,-208.41 369.22,-205.77 364.55,-206.35 371.51,-203.12 371.51,-203.12\"/>\n",
"<text text-anchor=\"start\" x=\"278.99\" y=\"-326.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"299.49\" y=\"-311.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M355.86,-193.13C298.24,-205.06 171.22,-231.36 108.3,-244.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"101.32,-245.83 107.54,-241.32 104.75,-245.12 108.17,-244.41 108.17,-244.41 108.17,-244.41 104.75,-245.12 108.81,-247.49 101.32,-245.83 101.32,-245.83\"/>\n",
"<text text-anchor=\"start\" x=\"201.99\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"220.49\" y=\"-229.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M372.77,-203.66C369.73,-213.62 374.3,-223 386.49,-223 395.63,-223 400.48,-217.73 401.05,-210.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"400.2,-203.66 404.15,-210.24 400.61,-207.14 401.02,-210.62 401.02,-210.62 401.02,-210.62 400.61,-207.14 397.89,-210.99 400.2,-203.66 400.2,-203.66\"/>\n",
"<text text-anchor=\"start\" x=\"361.99\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"378.49\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"544.48\" cy=\"-184\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"527.48\" y=\"-180.3\" font-family=\"Lato\" font-size=\"14.00\">1#12</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;9 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>5&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M419.05,-186.39C443.79,-185.92 478.33,-185.25 504.74,-184.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"511.96,-184.61 505.02,-187.89 508.46,-184.67 504.96,-184.74 504.96,-184.74 504.96,-184.74 508.46,-184.67 504.9,-181.59 511.96,-184.61 511.96,-184.61\"/>\n",
"<text text-anchor=\"start\" x=\"440.98\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"457.48\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M883.79,-538.11C921.38,-523.5 999.98,-494.49 1068.96,-479 1091.5,-473.94 1117.3,-470.39 1137.15,-468.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1144.17,-467.36 1137.55,-471.26 1140.69,-467.75 1137.21,-468.13 1137.21,-468.13 1137.21,-468.13 1140.69,-467.75 1136.86,-465 1144.17,-467.36 1144.17,-467.36\"/>\n",
"<text text-anchor=\"start\" x=\"989.96\" y=\"-519.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1010.46\" y=\"-504.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>7&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M886.88,-549.44C913.54,-552.01 955.55,-556.05 984.69,-558.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"991.8,-559.53 984.53,-562 988.32,-559.2 984.84,-558.86 984.84,-558.86 984.84,-558.86 988.32,-559.2 985.14,-555.73 991.8,-559.53 991.8,-559.53\"/>\n",
"<text text-anchor=\"start\" x=\"910.97\" y=\"-575.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"931.47\" y=\"-560.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;8 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>7&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M875.81,-561.82C907.23,-593.03 985.97,-664.56 1068.96,-688 1091.76,-694.44 1118.52,-691.58 1138.72,-687.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1145.57,-685.93 1139.41,-690.51 1142.15,-686.69 1138.73,-687.44 1138.73,-687.44 1138.73,-687.44 1142.15,-686.69 1138.05,-684.36 1145.57,-685.93 1145.57,-685.93\"/>\n",
"<text text-anchor=\"start\" x=\"991.96\" y=\"-698.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1010.46\" y=\"-683.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;4 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>8&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1148.42,-668.47C1141.33,-665.03 1133.34,-661.26 1125.96,-658 1100.97,-646.96 1090.21,-652.16 1068.96,-635 1052.49,-621.7 1039.37,-601.48 1030.79,-585.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1027.39,-579.22 1033.44,-583.95 1029.02,-582.32 1030.65,-585.42 1030.65,-585.42 1030.65,-585.42 1029.02,-582.32 1027.86,-586.88 1027.39,-579.22 1027.39,-579.22\"/>\n",
"<text text-anchor=\"start\" x=\"1070.96\" y=\"-676.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1089.46\" y=\"-661.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;1 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>8&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1154.43,-693.86C1128.85,-717.24 1074.55,-760 1019.46,-760 385.49,-760 385.49,-760 385.49,-760 305.95,-760 249.3,-478.44 233.77,-391.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"232.52,-384.91 236.84,-391.25 233.13,-388.35 233.74,-391.8 233.74,-391.8 233.74,-391.8 233.13,-388.35 230.64,-392.35 232.52,-384.91 232.52,-384.91\"/>\n",
"<text text-anchor=\"start\" x=\"677.97\" y=\"-778.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"694.47\" y=\"-763.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1158.06,-695.29C1155.03,-705.39 1159.22,-715 1170.61,-715 1179.15,-715 1183.64,-709.59 1184.07,-702.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1183.15,-695.29 1187.15,-701.85 1183.59,-698.76 1184.02,-702.24 1184.02,-702.24 1184.02,-702.24 1183.59,-698.76 1180.9,-702.63 1183.15,-695.29 1183.15,-695.29\"/>\n",
"<text text-anchor=\"start\" x=\"1146.11\" y=\"-733.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1162.61\" y=\"-718.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;2 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>9&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M556.7,-200.76C584.31,-242 655.57,-348.44 686.63,-394.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"690.56,-400.71 684.05,-396.64 688.62,-397.8 686.67,-394.89 686.67,-394.89 686.67,-394.89 688.62,-397.8 689.29,-393.14 690.56,-400.71 690.56,-400.71\"/>\n",
"<text text-anchor=\"start\" x=\"596.98\" y=\"-359.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"615.48\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>11</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"702.47\" cy=\"-216\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"685.47\" y=\"-212.3\" font-family=\"Lato\" font-size=\"14.00\">2#12</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;11 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>9&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M575.97,-179.49C597.63,-177.36 627.15,-176.67 651.98,-184 661.21,-186.72 670.33,-191.76 678.19,-197.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"683.93,-201.11 676.39,-199.64 681.07,-199.09 678.21,-197.07 678.21,-197.07 678.21,-197.07 681.07,-199.09 680.03,-194.5 683.93,-201.11 683.93,-201.11\"/>\n",
"<text text-anchor=\"start\" x=\"594.98\" y=\"-202.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"615.48\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>12</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"860.47\" cy=\"-216\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"843.47\" y=\"-212.3\" font-family=\"Lato\" font-size=\"14.00\">0#10</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;12 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>9&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M572.4,-174.65C609.36,-163.13 677.75,-146.52 734.97,-159 770.15,-166.67 807.28,-185.22 831.74,-199.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"837.99,-202.68 830.35,-201.92 834.95,-200.93 831.92,-199.19 831.92,-199.19 831.92,-199.19 834.95,-200.93 833.49,-196.46 837.99,-202.68 837.99,-202.68\"/>\n",
"<text text-anchor=\"start\" x=\"677.97\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"694.47\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;6 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>10&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M987.69,-79.2C956.39,-73.61 905.67,-66 861.47,-66 227.49,-66 227.49,-66 227.49,-66 144.17,-66 96.51,-176.93 79.12,-227.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"76.87,-234.17 76.11,-226.53 77.98,-230.85 79.09,-227.53 79.09,-227.53 79.09,-227.53 77.98,-230.85 82.08,-228.53 76.87,-234.17 76.87,-234.17\"/>\n",
"<text text-anchor=\"start\" x=\"517.98\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"536.48\" y=\"-69.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;9 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>10&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M985.95,-86.06C914.3,-89.35 734.61,-102.49 594.98,-154 586.73,-157.04 578.34,-161.51 570.86,-166.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"564.82,-169.9 569.05,-163.49 567.78,-168.03 570.74,-166.15 570.74,-166.15 570.74,-166.15 567.78,-168.03 572.42,-168.81 564.82,-169.9 564.82,-169.9\"/>\n",
"<text text-anchor=\"start\" x=\"756.97\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"773.47\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;10 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>10&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1004.75,-101.66C1001.7,-111.62 1006.28,-121 1018.46,-121 1027.6,-121 1032.46,-115.73 1033.03,-108.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1032.17,-101.66 1036.13,-108.24 1032.59,-105.14 1033,-108.62 1033,-108.62 1033,-108.62 1032.59,-105.14 1029.87,-108.99 1032.17,-101.66 1032.17,-101.66\"/>\n",
"<text text-anchor=\"start\" x=\"993.96\" y=\"-139.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1010.46\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;9 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>11&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M670.54,-219.61C648.94,-221.12 619.67,-221.15 594.98,-214 586.38,-211.51 577.77,-207.12 570.21,-202.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"564.12,-198.51 571.7,-199.67 567.05,-200.41 569.99,-202.32 569.99,-202.32 569.99,-202.32 567.05,-200.41 568.28,-204.96 564.12,-198.51 564.12,-198.51\"/>\n",
"<text text-anchor=\"start\" x=\"598.98\" y=\"-239.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"615.48\" y=\"-224.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;11 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>11&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M688.76,-232.66C685.72,-242.62 690.29,-252 702.47,-252 711.61,-252 716.47,-246.73 717.04,-239.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"716.18,-232.66 720.14,-239.24 716.6,-236.14 717.01,-239.62 717.01,-239.62 717.01,-239.62 716.6,-236.14 713.88,-239.99 716.18,-232.66 716.18,-232.66\"/>\n",
"<text text-anchor=\"start\" x=\"677.97\" y=\"-270.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"694.47\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;12 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>11&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M735.04,-216C759.78,-216 794.32,-216 820.73,-216\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"827.95,-216 820.95,-219.15 824.45,-216 820.95,-216 820.95,-216 820.95,-216 824.45,-216 820.95,-212.85 827.95,-216 827.95,-216\"/>\n",
"<text text-anchor=\"start\" x=\"754.97\" y=\"-234.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"773.47\" y=\"-219.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;6 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>12&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M842.03,-231.13C819.25,-249.74 777.27,-280.19 734.97,-291 694.12,-301.44 587.65,-281 545.48,-281 227.49,-281 227.49,-281 227.49,-281 185.24,-281 137.61,-270.59 106.22,-262.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"99.39,-260.39 106.97,-259.18 102.77,-261.3 106.14,-262.22 106.14,-262.22 106.14,-262.22 102.77,-261.3 105.32,-265.26 99.39,-260.39 99.39,-260.39\"/>\n",
"<text text-anchor=\"start\" x=\"436.98\" y=\"-299.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"457.48\" y=\"-284.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;1 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>12&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M855.92,-233.96C850.28,-257.84 837.04,-299.81 809.97,-324 772.82,-357.2 753.3,-359 703.47,-359 385.49,-359 385.49,-359 385.49,-359 345.44,-359 299.69,-361.66 268.14,-363.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"260.84,-364.45 267.59,-360.8 264.33,-364.19 267.82,-363.94 267.82,-363.94 267.82,-363.94 264.33,-364.19 268.05,-367.08 260.84,-364.45 260.84,-364.45\"/>\n",
"<text text-anchor=\"start\" x=\"515.98\" y=\"-377.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"536.48\" y=\"-362.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;10 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>12&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M879.06,-201.23C907.26,-177.54 962.62,-131.05 994.11,-104.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"999.7,-99.92 996.36,-106.83 997.02,-102.17 994.34,-104.42 994.34,-104.42 994.34,-104.42 997.02,-102.17 992.31,-102.01 999.7,-99.92 999.7,-99.92\"/>\n",
"<text text-anchor=\"start\" x=\"912.97\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"931.47\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c49330420> >"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p2 = spot.zielonka_tree_transform(a2)\n",
"p2.copy_state_names_from(a2)\n",
"p2"
]
},
{
"cell_type": "markdown",
"id": "9bf70138",
"metadata": {},
"source": [
"The shape of the Zielonka tree (and later of the ACD), can also tell us if the acceptance condition can be converted into Rabin/Streett/parity without changing the automaton structure. This follows from the following properties:\n",
"\n",
"- an automaton is Rabin-type iff the union of any two accepting cycle is necessarily accepting\n",
"- an automaton is Streett-type iff the union of two rejecting cycle is necessarily rejecting\n",
"- an automaton is parity-type iff it is Rabin-type and Streett-type\n",
"\n",
"Here, X-type means that the acceptance condition of the automaton can be changed into X without changing the transition structure (just by coloring it differently). The Zielonka tree does not really look at the automaton, however its shape can still implies some typeness:\n",
"\n",
"- an automaton is Rabin-type if (not iff) accepting nodes of the Zielonka tree have at most one child\n",
"- an automaton is Street-type if (not iff) rejecting nodes of the Zielonka tree have at most one child\n",
"\n",
"The following methods provide this information:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "25ae5666",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(False, False, False)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.has_rabin_shape(), t.has_streett_shape(), t.has_parity_shape()"
]
},
{
"cell_type": "markdown",
"id": "147a71a6",
"metadata": {},
"source": [
"Let's look at some examples:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "e24c005d",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(Fin(0) & Inf(1)) | (Fin(2) & Inf(3)) | (Fin(4) & Inf(5)) : True False False\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: zielonka_tree Pages: 1 -->\n",
"<svg width=\"650pt\" height=\"422pt\"\n",
" viewBox=\"0.00 0.00 650.29 421.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 417.74)\">\n",
"<title>zielonka_tree</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-417.74 646.29,-417.74 646.29,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"381.65,-413.74 270.65,-413.74 270.65,-377.74 381.65,-377.74 381.65,-413.74\"/>\n",
"<text text-anchor=\"middle\" x=\"326.15\" y=\"-392.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,4,5}</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"161.15\" cy=\"-323.74\" rx=\"63.89\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"161.15\" y=\"-320.04\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4,5}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M285.78,-377.62C261.08,-367.14 229.49,-353.73 204.29,-343.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"205.55,-339.78 194.97,-339.09 202.81,-346.22 205.55,-339.78\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"326.15\" cy=\"-323.74\" rx=\"63.89\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"326.15\" y=\"-320.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,3,4,5}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M326.15,-377.44C326.15,-369.72 326.15,-360.45 326.15,-351.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"329.65,-351.84 326.15,-341.84 322.65,-351.84 329.65,-351.84\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"481.15\" cy=\"-323.74\" rx=\"63.89\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"481.15\" y=\"-320.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M364.06,-377.62C386.91,-367.3 416.02,-354.15 439.5,-343.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"441.18,-346.63 448.86,-339.32 438.3,-340.25 441.18,-346.63\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"198.15,-269.74 114.15,-269.74 114.15,-233.74 198.15,-233.74 198.15,-269.74\"/>\n",
"<text text-anchor=\"middle\" x=\"156.15\" y=\"-248.04\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3,4,5}</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M159.91,-305.44C159.36,-297.72 158.7,-288.45 158.08,-279.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.57,-279.57 157.37,-269.84 154.59,-280.07 161.57,-279.57\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"368.15,-269.74 284.15,-269.74 284.15,-233.74 368.15,-233.74 368.15,-269.74\"/>\n",
"<text text-anchor=\"middle\" x=\"326.15\" y=\"-248.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,4,5}</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M326.15,-305.44C326.15,-297.72 326.15,-288.45 326.15,-279.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"329.65,-279.84 326.15,-269.84 322.65,-279.84 329.65,-279.84\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"528.15,-269.74 444.15,-269.74 444.15,-233.74 528.15,-233.74 528.15,-269.74\"/>\n",
"<text text-anchor=\"middle\" x=\"486.15\" y=\"-248.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M482.38,-305.44C482.93,-297.72 483.6,-288.45 484.21,-279.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"487.7,-280.07 484.92,-269.84 480.72,-279.57 487.7,-280.07\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"46.15\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"46.15\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{3,4,5}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.24,-233.62C113.78,-223.78 94.28,-211.37 78.05,-201.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"79.74,-197.97 69.42,-195.55 75.98,-203.87 79.74,-197.97\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"156.15\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"156.15\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3,5}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M156.15,-233.44C156.15,-225.72 156.15,-216.45 156.15,-207.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.65,-207.84 156.15,-197.84 152.65,-207.84 159.65,-207.84\"/>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"266.15\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"266.15\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{1,4,5}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;9 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>5&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M311.31,-233.44C304.01,-224.92 295.09,-214.5 287.1,-205.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"289.56,-202.68 280.39,-197.36 284.24,-207.23 289.56,-202.68\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"376.15\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"376.15\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,5}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;10 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>5&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M338.51,-233.44C344.47,-225.09 351.73,-214.92 358.28,-205.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"361.31,-207.53 364.27,-197.36 355.61,-203.47 361.31,-207.53\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>11</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"486.15\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"486.15\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;11 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>6&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M486.15,-233.44C486.15,-225.72 486.15,-216.45 486.15,-207.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"489.65,-207.84 486.15,-197.84 482.65,-207.84 489.65,-207.84\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>12</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"596.15\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"596.15\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,3}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;12 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>6&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M513.05,-233.62C528.51,-223.78 548.01,-211.37 564.24,-201.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"566.31,-203.87 572.87,-195.55 562.55,-197.97 566.31,-203.87\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>13</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"74.65,-125.74 17.65,-125.74 17.65,-89.74 74.65,-89.74 74.65,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"46.15\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{4,5}</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;13 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>7&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M46.15,-161.44C46.15,-153.72 46.15,-144.45 46.15,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"49.65,-135.84 46.15,-125.84 42.65,-135.84 49.65,-135.84\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>14</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"184.65,-125.74 127.65,-125.74 127.65,-89.74 184.65,-89.74 184.65,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"156.15\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3}</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;14 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>8&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M156.15,-161.44C156.15,-153.72 156.15,-144.45 156.15,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.65,-135.84 156.15,-125.84 152.65,-135.84 159.65,-135.84\"/>\n",
"</g>\n",
"<!-- 15 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>15</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"294.65,-125.74 237.65,-125.74 237.65,-89.74 294.65,-89.74 294.65,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"266.15\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{4,5}</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;15 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>9&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M266.15,-161.44C266.15,-153.72 266.15,-144.45 266.15,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"269.65,-135.84 266.15,-125.84 262.65,-135.84 269.65,-135.84\"/>\n",
"</g>\n",
"<!-- 16 -->\n",
"<g id=\"node17\" class=\"node\">\n",
"<title>16</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"404.65,-125.74 347.65,-125.74 347.65,-89.74 404.65,-89.74 404.65,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"376.15\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;16 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>10&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M376.15,-161.44C376.15,-153.72 376.15,-144.45 376.15,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"379.65,-135.84 376.15,-125.84 372.65,-135.84 379.65,-135.84\"/>\n",
"</g>\n",
"<!-- 17 -->\n",
"<g id=\"node18\" class=\"node\">\n",
"<title>17</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"514.65,-125.74 457.65,-125.74 457.65,-89.74 514.65,-89.74 514.65,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"486.15\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3}</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;17 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>11&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M486.15,-161.44C486.15,-153.72 486.15,-144.45 486.15,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"489.65,-135.84 486.15,-125.84 482.65,-135.84 489.65,-135.84\"/>\n",
"</g>\n",
"<!-- 18 -->\n",
"<g id=\"node19\" class=\"node\">\n",
"<title>18</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"624.65,-125.74 567.65,-125.74 567.65,-89.74 624.65,-89.74 624.65,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"596.15\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;18 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>12&#45;&gt;18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M596.15,-161.44C596.15,-153.72 596.15,-144.45 596.15,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"599.65,-135.84 596.15,-125.84 592.65,-135.84 599.65,-135.84\"/>\n",
"</g>\n",
"<!-- 19 -->\n",
"<g id=\"node20\" class=\"node\">\n",
"<title>19</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"46.15\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"46.15\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{5}</text>\n",
"<text text-anchor=\"middle\" x=\"46.15\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;19&gt;</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;19 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>13&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M46.15,-89.63C46.15,-82.14 46.15,-73.05 46.15,-64.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"49.65,-63.95 46.15,-53.95 42.65,-63.95 49.65,-63.95\"/>\n",
"</g>\n",
"<!-- 20 -->\n",
"<g id=\"node21\" class=\"node\">\n",
"<title>20</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"156.15\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"156.15\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{3}</text>\n",
"<text text-anchor=\"middle\" x=\"156.15\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;20&gt;</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;20 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>14&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M156.15,-89.63C156.15,-82.14 156.15,-73.05 156.15,-64.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.65,-63.95 156.15,-53.95 152.65,-63.95 159.65,-63.95\"/>\n",
"</g>\n",
"<!-- 21 -->\n",
"<g id=\"node22\" class=\"node\">\n",
"<title>21</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"266.15\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"266.15\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{5}</text>\n",
"<text text-anchor=\"middle\" x=\"266.15\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;21&gt;</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;21 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>15&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M266.15,-89.63C266.15,-82.14 266.15,-73.05 266.15,-64.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"269.65,-63.95 266.15,-53.95 262.65,-63.95 269.65,-63.95\"/>\n",
"</g>\n",
"<!-- 22 -->\n",
"<g id=\"node23\" class=\"node\">\n",
"<title>22</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"376.15\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"376.15\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"376.15\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;22&gt;</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;22 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>16&#45;&gt;22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M376.15,-89.63C376.15,-82.14 376.15,-73.05 376.15,-64.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"379.65,-63.95 376.15,-53.95 372.65,-63.95 379.65,-63.95\"/>\n",
"</g>\n",
"<!-- 23 -->\n",
"<g id=\"node24\" class=\"node\">\n",
"<title>23</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"486.15\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"486.15\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{3}</text>\n",
"<text text-anchor=\"middle\" x=\"486.15\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;23&gt;</text>\n",
"</g>\n",
"<!-- 17&#45;&gt;23 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>17&#45;&gt;23</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M486.15,-89.63C486.15,-82.14 486.15,-73.05 486.15,-64.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"489.65,-63.95 486.15,-53.95 482.65,-63.95 489.65,-63.95\"/>\n",
"</g>\n",
"<!-- 24 -->\n",
"<g id=\"node25\" class=\"node\">\n",
"<title>24</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"596.15\" cy=\"-26.87\" rx=\"41.94\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"596.15\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"596.15\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;24&gt;</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;24 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>18&#45;&gt;24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M596.15,-89.63C596.15,-82.14 596.15,-73.05 596.15,-64.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"599.65,-63.95 596.15,-53.95 592.65,-63.95 599.65,-63.95\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.zielonka_tree; proxy of <Swig Object of type 'spot::zielonka_tree *' at 0x7f0c493357e0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"(Fin(0) | Inf(1)) & (Fin(2) | Inf(3)) & (Fin(4) | Inf(5)) : False True False\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: zielonka_tree Pages: 1 -->\n",
"<svg width=\"542pt\" height=\"406pt\"\n",
" viewBox=\"0.00 0.00 542.09 406.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 402)\">\n",
"<title>zielonka_tree</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-402 538.09,-402 538.09,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"270.05\" cy=\"-380\" rx=\"72.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"270.05\" y=\"-376.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,4,5}</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"187.05,-326 89.05,-326 89.05,-290 187.05,-290 187.05,-326\"/>\n",
"<text text-anchor=\"middle\" x=\"138.05\" y=\"-304.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,2,3,4,5}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M240.75,-363.46C222.7,-353.89 199.29,-341.48 179.37,-330.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"180.98,-327.8 170.5,-326.21 177.7,-333.99 180.98,-327.8\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"319.05,-326 221.05,-326 221.05,-290 319.05,-290 319.05,-326\"/>\n",
"<text text-anchor=\"middle\" x=\"270.05\" y=\"-304.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,4,5}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M270.05,-361.7C270.05,-353.98 270.05,-344.71 270.05,-336.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"273.55,-336.1 270.05,-326.1 266.55,-336.1 273.55,-336.1\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"440.05,-326 342.05,-326 342.05,-290 440.05,-290 440.05,-326\"/>\n",
"<text text-anchor=\"middle\" x=\"391.05\" y=\"-304.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,4}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M297.2,-363.29C313.46,-353.89 334.39,-341.78 352.36,-331.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.54,-334.16 361.44,-326.13 351.03,-328.11 354.54,-334.16\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"129.05\" cy=\"-236\" rx=\"54.69\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"129.05\" y=\"-232.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3,4,5}</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M135.82,-289.7C134.83,-281.98 133.64,-272.71 132.53,-264.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"135.99,-263.58 131.25,-254.1 129.05,-264.47 135.99,-263.58\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"270.05\" cy=\"-236\" rx=\"54.69\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"270.05\" y=\"-232.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,4,5}</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M270.05,-289.7C270.05,-281.98 270.05,-272.71 270.05,-264.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"273.55,-264.1 270.05,-254.1 266.55,-264.1 273.55,-264.1\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"405.05\" cy=\"-236\" rx=\"54.69\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"405.05\" y=\"-232.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3}</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M394.51,-289.7C396.05,-281.98 397.9,-272.71 399.62,-264.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"403.1,-264.6 401.63,-254.1 396.23,-263.22 403.1,-264.6\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>7</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"74.55,-182 3.55,-182 3.55,-146 74.55,-146 74.55,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"39.05\" y=\"-160.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,4,5}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M108.62,-219.12C96.97,-210.05 82.14,-198.51 69.16,-188.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"71,-185.42 60.96,-182.04 66.71,-190.95 71,-185.42\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>8</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"164.55,-182 93.55,-182 93.55,-146 164.55,-146 164.55,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"129.05\" y=\"-160.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3,4}</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;8 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>4&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.05,-217.7C129.05,-209.98 129.05,-200.71 129.05,-192.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"132.55,-192.1 129.05,-182.1 125.55,-192.1 132.55,-192.1\"/>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>9</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"257.55,-182 186.55,-182 186.55,-146 257.55,-146 257.55,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"222.05\" y=\"-160.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,4,5}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;9 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>5&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M258.43,-218.05C252.79,-209.84 245.9,-199.79 239.64,-190.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"242.43,-188.54 233.89,-182.28 236.66,-192.5 242.43,-188.54\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>10</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"347.55,-182 276.55,-182 276.55,-146 347.55,-146 347.55,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"312.05\" y=\"-160.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,4}</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;10 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>5&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M280.21,-218.05C285.09,-209.92 291.05,-200 296.48,-190.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"299.54,-192.65 301.68,-182.28 293.54,-189.05 299.54,-192.65\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>11</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"440.55,-182 369.55,-182 369.55,-146 440.55,-146 440.55,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"405.05\" y=\"-160.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,2,3}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;11 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>6&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M405.05,-217.7C405.05,-209.98 405.05,-200.71 405.05,-192.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"408.55,-192.1 405.05,-182.1 401.55,-192.1 408.55,-192.1\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>12</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"530.55,-182 459.55,-182 459.55,-146 530.55,-146 530.55,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"495.05\" y=\"-160.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2}</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;12 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>6&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M425.47,-219.12C437.13,-210.05 451.96,-198.51 464.93,-188.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"467.39,-190.95 473.13,-182.04 463.09,-185.42 467.39,-190.95\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>13</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"37.05\" cy=\"-92\" rx=\"37.09\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"37.05\" y=\"-88.3\" font-family=\"Times,serif\" font-size=\"14.00\">{4,5}</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;13 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>7&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M38.55,-145.7C38.33,-137.98 38.07,-128.71 37.82,-120.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"41.32,-120 37.54,-110.1 34.32,-120.2 41.32,-120\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>14</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"129.05\" cy=\"-92\" rx=\"37.09\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"129.05\" y=\"-88.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3}</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;14 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>8&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.05,-145.7C129.05,-137.98 129.05,-128.71 129.05,-120.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"132.55,-120.1 129.05,-110.1 125.55,-120.1 132.55,-120.1\"/>\n",
"</g>\n",
"<!-- 15 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>15</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"221.05\" cy=\"-92\" rx=\"37.09\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"221.05\" y=\"-88.3\" font-family=\"Times,serif\" font-size=\"14.00\">{4,5}</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;15 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>9&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M221.8,-145.7C221.69,-137.98 221.56,-128.71 221.43,-120.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"224.93,-120.05 221.29,-110.1 217.93,-120.15 224.93,-120.05\"/>\n",
"</g>\n",
"<!-- 16 -->\n",
"<g id=\"node17\" class=\"node\">\n",
"<title>16</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"313.05\" cy=\"-92\" rx=\"37.09\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"313.05\" y=\"-88.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;16 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>10&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M312.29,-145.7C312.4,-137.98 312.54,-128.71 312.66,-120.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"316.16,-120.15 312.8,-110.1 309.16,-120.05 316.16,-120.15\"/>\n",
"</g>\n",
"<!-- 17 -->\n",
"<g id=\"node18\" class=\"node\">\n",
"<title>17</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"405.05\" cy=\"-92\" rx=\"37.09\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"405.05\" y=\"-88.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3}</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;17 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>11&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M405.05,-145.7C405.05,-137.98 405.05,-128.71 405.05,-120.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"408.55,-120.1 405.05,-110.1 401.55,-120.1 408.55,-120.1\"/>\n",
"</g>\n",
"<!-- 18 -->\n",
"<g id=\"node19\" class=\"node\">\n",
"<title>18</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"497.05\" cy=\"-92\" rx=\"37.09\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"497.05\" y=\"-88.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;18 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>12&#45;&gt;18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M495.54,-145.7C495.76,-137.98 496.03,-128.71 496.27,-120.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"499.77,-120.2 496.56,-110.1 492.77,-120 499.77,-120.2\"/>\n",
"</g>\n",
"<!-- 19 -->\n",
"<g id=\"node20\" class=\"node\">\n",
"<title>19</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"66.55,-38 7.55,-38 7.55,0 66.55,0 66.55,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"37.05\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{4}</text>\n",
"<text text-anchor=\"middle\" x=\"37.05\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;19&gt;</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;19 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>13&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M37.05,-73.81C37.05,-66.11 37.05,-56.82 37.05,-48.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"40.55,-48.02 37.05,-38.02 33.55,-48.02 40.55,-48.02\"/>\n",
"</g>\n",
"<!-- 20 -->\n",
"<g id=\"node21\" class=\"node\">\n",
"<title>20</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158.55,-38 99.55,-38 99.55,0 158.55,0 158.55,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"129.05\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{2}</text>\n",
"<text text-anchor=\"middle\" x=\"129.05\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;20&gt;</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;20 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>14&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.05,-73.81C129.05,-66.11 129.05,-56.82 129.05,-48.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"132.55,-48.02 129.05,-38.02 125.55,-48.02 132.55,-48.02\"/>\n",
"</g>\n",
"<!-- 21 -->\n",
"<g id=\"node22\" class=\"node\">\n",
"<title>21</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"250.55,-38 191.55,-38 191.55,0 250.55,0 250.55,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"221.05\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{4}</text>\n",
"<text text-anchor=\"middle\" x=\"221.05\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;21&gt;</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;21 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>15&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M221.05,-73.81C221.05,-66.11 221.05,-56.82 221.05,-48.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"224.55,-48.02 221.05,-38.02 217.55,-48.02 224.55,-48.02\"/>\n",
"</g>\n",
"<!-- 22 -->\n",
"<g id=\"node23\" class=\"node\">\n",
"<title>22</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"342.55,-38 283.55,-38 283.55,0 342.55,0 342.55,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"313.05\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"313.05\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;22&gt;</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;22 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>16&#45;&gt;22</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M313.05,-73.81C313.05,-66.11 313.05,-56.82 313.05,-48.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"316.55,-48.02 313.05,-38.02 309.55,-48.02 316.55,-48.02\"/>\n",
"</g>\n",
"<!-- 23 -->\n",
"<g id=\"node24\" class=\"node\">\n",
"<title>23</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"434.55,-38 375.55,-38 375.55,0 434.55,0 434.55,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"405.05\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{2}</text>\n",
"<text text-anchor=\"middle\" x=\"405.05\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;23&gt;</text>\n",
"</g>\n",
"<!-- 17&#45;&gt;23 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>17&#45;&gt;23</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M405.05,-73.81C405.05,-66.11 405.05,-56.82 405.05,-48.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"408.55,-48.02 405.05,-38.02 401.55,-48.02 408.55,-48.02\"/>\n",
"</g>\n",
"<!-- 24 -->\n",
"<g id=\"node25\" class=\"node\">\n",
"<title>24</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"526.55,-38 467.55,-38 467.55,0 526.55,0 526.55,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"497.05\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"497.05\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;24&gt;</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;24 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>18&#45;&gt;24</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M497.05,-73.81C497.05,-66.11 497.05,-56.82 497.05,-48.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"500.55,-48.02 497.05,-38.02 493.55,-48.02 500.55,-48.02\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.zielonka_tree; proxy of <Swig Object of type 'spot::zielonka_tree *' at 0x7f0c493357b0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fin(0) & (Inf(1) | (Fin(2) & (Inf(3) | Fin(4)))) : True True True\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: zielonka_tree Pages: 1 -->\n",
"<svg width=\"117pt\" height=\"334pt\"\n",
" viewBox=\"0.00 0.00 117.19 334.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 330)\">\n",
"<title>zielonka_tree</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-330 113.19,-330 113.19,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"103.6,-326 5.6,-326 5.6,-290 103.6,-290 103.6,-326\"/>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-304.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,4}</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"54.6\" cy=\"-236\" rx=\"54.69\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-232.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.6,-289.7C54.6,-281.98 54.6,-272.71 54.6,-264.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"58.1,-264.1 54.6,-254.1 51.1,-264.1 58.1,-264.1\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"90.1,-182 19.1,-182 19.1,-146 90.1,-146 90.1,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-160.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3,4}</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.6,-217.7C54.6,-209.98 54.6,-200.71 54.6,-192.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"58.1,-192.1 54.6,-182.1 51.1,-192.1 58.1,-192.1\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"54.6\" cy=\"-92\" rx=\"37.09\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-88.3\" font-family=\"Times,serif\" font-size=\"14.00\">{3,4}</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.6,-145.7C54.6,-137.98 54.6,-128.71 54.6,-120.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"58.1,-120.1 54.6,-110.1 51.1,-120.1 58.1,-120.1\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"81.6,-38 27.6,-38 27.6,0 81.6,0 81.6,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{4}</text>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;4&gt;</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.6,-73.81C54.6,-66.11 54.6,-56.82 54.6,-48.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"58.1,-48.02 54.6,-38.02 51.1,-48.02 58.1,-48.02\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.zielonka_tree; proxy of <Swig Object of type 'spot::zielonka_tree *' at 0x7f0c49335390> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"(Inf(0) & Fin(1)) | (Inf(2) & Fin(3) & Fin(4)) : True False False\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: zielonka_tree Pages: 1 -->\n",
"<svg width=\"228pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 227.74 277.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 273.74)\">\n",
"<title>zielonka_tree</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-273.74 223.74,-273.74 223.74,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"162.6,-269.74 64.6,-269.74 64.6,-233.74 162.6,-233.74 162.6,-269.74\"/>\n",
"<text text-anchor=\"middle\" x=\"113.6\" y=\"-248.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,4}</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"54.6\" cy=\"-179.74\" rx=\"54.69\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,2,3,4}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M99.01,-233.44C91.83,-224.92 83.05,-214.5 75.2,-205.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"77.73,-202.75 68.61,-197.36 72.37,-207.26 77.73,-202.75\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"173.6\" cy=\"-179.74\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"173.6\" y=\"-176.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M128.43,-233.44C135.73,-224.92 144.65,-214.5 152.64,-205.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.5,-207.23 159.35,-197.36 150.18,-202.68 155.5,-207.23\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"90.1,-125.74 19.1,-125.74 19.1,-89.74 90.1,-89.74 90.1,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3,4}</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.6,-161.44C54.6,-153.72 54.6,-144.45 54.6,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"58.1,-135.84 54.6,-125.84 51.1,-135.84 58.1,-135.84\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"202.1,-125.74 145.1,-125.74 145.1,-89.74 202.1,-89.74 202.1,-125.74\"/>\n",
"<text text-anchor=\"middle\" x=\"173.6\" y=\"-104.04\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M173.6,-161.44C173.6,-153.72 173.6,-144.45 173.6,-135.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"177.1,-135.84 173.6,-125.84 170.1,-135.84 177.1,-135.84\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"54.6\" cy=\"-26.87\" rx=\"35.21\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{2}</text>\n",
"<text text-anchor=\"middle\" x=\"54.6\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;5&gt;</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.6,-89.63C54.6,-82.14 54.6,-73.05 54.6,-64.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"58.1,-63.95 54.6,-53.95 51.1,-63.95 58.1,-63.95\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"173.6\" cy=\"-26.87\" rx=\"35.21\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"173.6\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"173.6\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;6&gt;</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M173.6,-89.63C173.6,-82.14 173.6,-73.05 173.6,-64.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"177.1,-63.95 173.6,-53.95 170.1,-63.95 177.1,-63.95\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.zielonka_tree; proxy of <Swig Object of type 'spot::zielonka_tree *' at 0x7f0c49335420> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"f : True True True\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: zielonka_tree Pages: 1 -->\n",
"<svg width=\"62pt\" height=\"46pt\"\n",
" viewBox=\"0.00 0.00 62.00 46.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 42)\">\n",
"<title>zielonka_tree</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-42 58,-42 58,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"54,-38 0,-38 0,0 54,0 54,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"27\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<text text-anchor=\"middle\" x=\"27\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;0&gt;</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.zielonka_tree; proxy of <Swig Object of type 'spot::zielonka_tree *' at 0x7f0c49335360> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"t : True True True\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: zielonka_tree Pages: 1 -->\n",
"<svg width=\"79pt\" height=\"62pt\"\n",
" viewBox=\"0.00 0.00 78.71 61.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 57.74)\">\n",
"<title>zielonka_tree</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-57.74 74.71,-57.74 74.71,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"35.36\" cy=\"-26.87\" rx=\"35.21\" ry=\"26.74\"/>\n",
"<text text-anchor=\"middle\" x=\"35.36\" y=\"-30.67\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<text text-anchor=\"middle\" x=\"35.36\" y=\"-15.67\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;0&gt;</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.zielonka_tree; proxy of <Swig Object of type 'spot::zielonka_tree *' at 0x7f0c493357b0> >"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for ct in ('Rabin 3', 'Streett 3', 'parity min odd 5', \n",
" 'Inf(0)&Fin(1) | (Inf(2)&Fin(3)&Fin(4))', 'f', 't'):\n",
" cond = spot.acc_cond(ct)\n",
" tcond = spot.zielonka_tree(cond)\n",
" print(cond.get_acceptance(), \":\", tcond.has_rabin_shape(), \n",
" tcond.has_streett_shape(), tcond.has_parity_shape());\n",
" display(tcond)"
]
},
{
"cell_type": "markdown",
"id": "75838579",
"metadata": {},
"source": [
"# Alternating Cycle Decomposition\n",
"\n",
"We now turn to the ACD, which extends the Zielonka tree to take the automaton structure into account. Instead of storing subsets of colors, it stores SCCs (not necessarily maximal). In Spot, those SCCs are stored as bitvectors of edges. The principle is similar: instead of one tree, we are building a forest, with one root per non-trivial maximal SCC. The root of each tree is labeled by all the transitions in this maximal SCC: if such a huge cycle is accepting the node is said accepting and drawn as an ellipse, otherwise it is rejecting and drawn as a rectangle. For children, we look for maximal subsets of cycles that can be rejecting (if the parent was accepting), or accepting (if the parent was rejecting). \n",
"\n",
"In other words all nodes correspond to SCCs that may not be maximal from a graph point of view, but that are maximal with respect to their accepting or rejecting status: adding more cycles to it would change that status."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "ea3488b1",
"metadata": {},
"outputs": [],
"source": [
"a3 = spot.automaton(\"\"\"HOA: v1 name: \"(FGp0 & ((XFp0 & F!p1) | F(Gp1 &\n",
"XG!p0))) | G(F!p0 &\\n(XFp0 | F!p1) & F(Gp1 | G!p0))\" States: 10 Start:\n",
"0 AP: 2 \"p0\" \"p1\" Acceptance: 6 (Fin(0) & Fin(1)) | ((Fin(4)|Fin(5)) &\n",
"(Inf(2)&Inf(3))) properties: trans-labels explicit-labels trans-acc\n",
"complete properties: deterministic --BODY-- State: 0 [!0&!1] 0 {0 1 2\n",
"3 5} [!0&1] 1 [0&!1] 2 [0&1] 3 State: 1 [!0&1] 1 {1 3} [0&!1] 2\n",
"[!0&!1] 4 {0 1 2 3 5} [0&1] 5 State: 2 [!0&!1] 2 {1 2 3 5} [0&!1] 2 {2\n",
"4 5} [!0&1] 3 {1 3} [0&1] 3 {4} State: 3 [0&!1] 2 {2 4 5} [!0&1] 3 {1\n",
"3} [0&1] 5 {2 4} [!0&!1] 6 {1 2 3 5} State: 4 [!0&1] 1 {1 3} [0&!1] 2\n",
"[0&1] 3 [!0&!1] 7 State: 5 [0&!1] 2 {2 4 5} [0&1] 3 {4} [!0&1] 5 {1 3}\n",
"[!0&!1] 8 {1 3 5} State: 6 [0&!1] 2 {2 4 5} [!0&1] 3 {1 3} [0&1] 3 {4}\n",
"[!0&!1] 8 {1 3 5} State: 7 [0&!1] 2 [0&1] 5 [!0&!1] 7 {0 1 2 3 5}\n",
"[!0&1] 9 {1 2 3} State: 8 [0&!1] 2 {2 4 5} [!0&1] 5 {1 2 3} [0&1] 5 {2\n",
"4} [!0&!1] 8 {1 2 3 5} State: 9 [0&!1] 2 [0&1] 3 [!0&!1] 7 {0 1 3 5}\n",
"[!0&1] 9 {1 3} --END--\"\"\")"
]
},
{
"cell_type": "markdown",
"id": "cb546bc2",
"metadata": {},
"source": [
"Here is the ACD for automaton `a3`, displayed below a copy of the automaton. Note that the automaton and ACD are linked interactively: you may click on nodes of the ACD to highlight the cycles it stores, and you may click on a state or an edge in the automaton to highlight to relevant ACD nodes (it is easier to click on edge labels than on edges)."
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "fad721c0",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"1356pt\" height=\"458pt\"\n",
" viewBox=\"0.00 0.00 1355.97 457.97\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 453.97)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-453.97 1351.97,-453.97 1351.97,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"673.98\" y=\"-418.77\" font-family=\"Times,serif\" font-size=\"14.00\">min odd</text>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"602.67,-383.18 446.67,-383.18 446.67,-300.18 602.67,-300.18 602.67,-383.18\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 9&#45;16,21&#45;28,33&#45;36</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4,5}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2,3,5,6,8</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"116.67\" cy=\"-177.69\" rx=\"116.85\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 10,12,13,15,21,22</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{2,4,5}</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2,3,5</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;4&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M446.56,-313.57C389.61,-293.37 310.82,-264.53 242.67,-236.38 232.18,-232.05 221.28,-227.35 210.47,-222.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.57,-219.23 201.01,-218.36 208.72,-225.62 211.57,-219.23\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"336.67\" cy=\"-177.69\" rx=\"84.71\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23,24,34,36</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5,8</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M477.23,-299.8C450.9,-277.11 418.04,-248.8 390.72,-225.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"392.66,-222.31 382.8,-218.43 388.09,-227.61 392.66,-222.31\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"524.67\" cy=\"-177.69\" rx=\"84.71\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14,15,22,23</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3,5</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M524.67,-299.8C524.67,-280.47 524.67,-257.06 524.67,-235.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"528.17,-235.87 524.67,-225.87 521.17,-235.87 528.17,-235.87\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"696.67\" cy=\"-177.69\" rx=\"69.09\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14,16,26</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3,6</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M568.08,-299.8C592.71,-276.6 623.59,-247.52 648.91,-223.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"651.36,-226.17 656.24,-216.77 646.56,-221.08 651.36,-226.17\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"843.67\" cy=\"-177.69\" rx=\"59.29\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 9</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;8&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M602.78,-314.99C653.61,-296.64 720.31,-269.4 774.67,-236.38 780.5,-232.84 786.35,-228.83 792.04,-224.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"794.44,-227.18 800.25,-218.31 790.18,-221.62 794.44,-227.18\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>11</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"366.17,-83 307.17,-83 307.17,0 366.17,0 366.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;11&gt;</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;11 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>5&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M336.67,-129.38C336.67,-117.71 336.67,-105.16 336.67,-93.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"340.17,-93.15 336.67,-83.15 333.17,-93.15 340.17,-93.15\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>12</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"515.17,-83 456.17,-83 456.17,0 515.17,0 515.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14</text>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;12&gt;</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;12 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>6&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M511.14,-130.13C507.64,-118.07 503.84,-105.02 500.28,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"503.64,-91.78 497.49,-83.16 496.92,-93.74 503.64,-91.78\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>13</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"592.17,-83 533.17,-83 533.17,0 592.17,0 592.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23</text>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5</text>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;13&gt;</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;13 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>6&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M537.86,-130.13C541.24,-118.19 544.89,-105.28 548.33,-93.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"551.8,-93.73 551.16,-83.16 545.07,-91.83 551.8,-93.73\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>14</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"726.17,-83 667.17,-83 667.17,0 726.17,0 726.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;14&gt;</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;14 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>7&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M696.67,-129.38C696.67,-117.71 696.67,-105.16 696.67,-93.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"700.17,-93.15 696.67,-83.15 693.17,-93.15 700.17,-93.15\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"949.67\" cy=\"-341.68\" rx=\"84.71\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #1</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 31,32,39,40</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 7,9</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>9</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"978.17,-219.19 921.17,-219.19 921.17,-136.19 978.17,-136.19 978.17,-219.19\"/>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 40</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 9</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;9&gt;</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;9 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M949.67,-282.65C949.67,-265.36 949.67,-246.55 949.67,-229.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"953.17,-229.56 949.67,-219.56 946.17,-229.56 953.17,-229.56\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"1121.67\" cy=\"-341.68\" rx=\"69.09\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #2</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 5,7,17</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1,4</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>10</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"1151.17,-219.19 1092.17,-219.19 1092.17,-136.19 1151.17,-136.19 1151.17,-219.19\"/>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 5</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;10&gt;</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1121.67,-282.65C1121.67,-265.36 1121.67,-246.55 1121.67,-229.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1125.17,-229.56 1121.67,-219.56 1118.17,-229.56 1125.17,-229.56\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"1278.67\" cy=\"-341.68\" rx=\"69.09\" ry=\"69.09\"/>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-375.48\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #3</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-360.48\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-345.48\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-330.48\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-315.48\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-300.48\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;3&gt;</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<style>\n",
".acdhigh ellipse,.acdacc ellipse,.acdacc path,.acdacc polygon{stroke:green;}\n",
".acdhigh polygon,.acdrej ellipse,.acdrej path,.acdrej polygon{stroke:red;}\n",
".acdbold ellipse,.acdbold polygon,.acdbold path{stroke-width:2;}\n",
".acdrej polygon{fill:red;}\n",
".acdacc polygon{fill:green;}\n",
"</style><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: (FGp0 &amp; ((XFp0 &amp; F!p1) | F(Gp1 &amp;\\nXG!p0))) | G(F!p0 &amp;\\n(XFp0 | F!p1) &amp; F(Gp1 | G!p0)) Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"253pt\"\n",
" viewBox=\"0.00 0.00 729.00 252.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acdaut0\" class=\"graph\" transform=\"scale(0.5376344086021505 0.5376344086021505) rotate(0) translate(4 467)\">\n",
"<title>(FGp0 &amp; ((XFp0 &amp; F!p1) | F(Gp1 &amp;\\nXG!p0))) | G(F!p0 &amp;\\n(XFp0 | F!p1) &amp; F(Gp1 | G!p0))</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-467 1353.5,-467 1353.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"503.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"530.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"546.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"590.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"606.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)) | ((Fin(</text>\n",
"<text text-anchor=\"start\" x=\"655.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"671.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)|Fin(</text>\n",
"<text text-anchor=\"start\" x=\"702.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"<text text-anchor=\"start\" x=\"718.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"767.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"783.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"817.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"833.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"S0\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-134\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-130.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"acdaut0_edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-134C2.79,-134 17.15,-134 30.63,-134\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-134 30.94,-137.15 34.44,-134 30.94,-134 30.94,-134 30.94,-134 34.44,-134 30.94,-130.85 37.94,-134 37.94,-134\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"E1\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<g id=\"a_E1\"><a xlink:title=\"0&#45;&gt;0&#10;#1\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-151.04C48.32,-160.86 50.45,-170 56,-170 60.17,-170 62.4,-164.86 62.71,-158.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-151.04 65.85,-157.88 62.54,-154.53 62.71,-158.03 62.71,-158.03 62.71,-158.03 62.54,-154.53 59.56,-158.18 62.38,-151.04 62.38,-151.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"27.5\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"16\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"32\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"64\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"80\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"S1\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"181\" cy=\"-134\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"181\" y=\"-130.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"E2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<g id=\"a_E2\"><a xlink:title=\"0&#45;&gt;1&#10;#2\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.1,-134C95.28,-134 131.49,-134 155.59,-134\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"162.65,-134 155.65,-137.15 159.15,-134 155.65,-134 155.65,-134 155.65,-134 159.15,-134 155.65,-130.85 162.65,-134 162.65,-134\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"S2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"763.5\" cy=\"-277\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"763.5\" y=\"-273.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"E3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<g id=\"a_E3\"><a xlink:title=\"0&#45;&gt;2&#10;#3\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.04,-152.28C58.2,-212.38 70.61,-400 180,-400 180,-400 180,-400 624.5,-400 684.47,-400 730.42,-334.46 750.87,-299.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"754.38,-292.83 753.69,-300.47 752.66,-295.88 750.94,-298.93 750.94,-298.93 750.94,-298.93 752.66,-295.88 748.2,-297.38 754.38,-292.83 754.38,-292.83\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"371\" y=\"-403.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"S3\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"903.5\" cy=\"-175\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"903.5\" y=\"-171.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"E4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<g id=\"a_E4\"><a xlink:title=\"0&#45;&gt;3&#10;#4\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.12,-117.3C77.49,-81.38 117,0 180,0 180,0 180,0 695.5,0 779.99,0 808.53,-29.23 859,-97 872.05,-114.52 883.91,-136.38 891.94,-152.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"895.13,-159.02 889.23,-154.12 893.59,-155.88 892.05,-152.73 892.05,-152.73 892.05,-152.73 893.59,-155.88 894.88,-151.35 895.13,-159.02 895.13,-159.02\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"E5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<g id=\"a_E5\"><a xlink:title=\"1&#45;&gt;1&#10;#5\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.63,-148.79C167.25,-159.42 170.71,-170 181,-170 188.88,-170 192.75,-163.8 192.62,-156.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"191.37,-148.79 195.65,-155.16 191.96,-152.24 192.55,-155.69 192.55,-155.69 192.55,-155.69 191.96,-152.24 189.44,-156.22 191.37,-148.79 191.37,-148.79\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"E6\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<g id=\"a_E6\"><a xlink:title=\"1&#45;&gt;2&#10;#6\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M192.8,-147.6C199.31,-155.3 208.06,-164.8 217,-172 308.05,-245.36 331.15,-274.38 444,-305 562.89,-337.26 601.33,-324.26 721,-295 727.61,-293.38 734.5,-290.8 740.72,-288.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"747.17,-285.13 742.12,-290.91 743.99,-286.59 740.81,-288.05 740.81,-288.05 740.81,-288.05 743.99,-286.59 739.49,-285.19 747.17,-285.13 747.17,-285.13\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"444\" y=\"-321.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"S4\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"333\" cy=\"-135\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"333\" y=\"-131.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"E7\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<g id=\"a_E7\"><a xlink:title=\"1&#45;&gt;4&#10;#7\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M194.95,-122.33C201.16,-117.52 208.98,-112.49 217,-110 250.96,-99.47 263.14,-99.15 297,-110 302.93,-111.9 308.71,-115.21 313.81,-118.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"319.45,-123.12 311.97,-121.38 316.66,-121 313.88,-118.88 313.88,-118.88 313.88,-118.88 316.66,-121 315.79,-116.37 319.45,-123.12 319.45,-123.12\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"228.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"217\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"233\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"265\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"281\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"S5\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1323\" cy=\"-229\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1323\" y=\"-225.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"E8\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<g id=\"a_E8\"><a xlink:title=\"1&#45;&gt;5&#10;#8\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M192.96,-120.46C199.39,-113.13 208.01,-104.31 217,-98 262.91,-65.77 275.91,-46 332,-46 332,-46 332,-46 695.5,-46 787.52,-46 810.48,-42 902.5,-42 902.5,-42 902.5,-42 1195,-42 1272.62,-42 1306.11,-153.61 1317.32,-204.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1318.82,-211.41 1314.28,-205.22 1318.09,-207.98 1317.36,-204.56 1317.36,-204.56 1317.36,-204.56 1318.09,-207.98 1320.44,-203.9 1318.82,-211.41 1318.82,-211.41\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"739\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"E9\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<g id=\"a_E9\"><a xlink:title=\"2&#45;&gt;2&#10;#9\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M757.48,-294.04C756.25,-303.86 758.25,-313 763.5,-313 767.43,-313 769.55,-307.86 769.84,-301.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"769.52,-294.04 772.98,-300.89 769.68,-297.53 769.83,-301.03 769.83,-301.03 769.83,-301.03 769.68,-297.53 766.69,-301.17 769.52,-294.04 769.52,-294.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"735\" y=\"-330.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"731.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"747.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"763.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"779.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"E10\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<g id=\"a_E10\"><a xlink:title=\"2&#45;&gt;2&#10;#10\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M754.56,-292.69C747.37,-313.48 750.35,-341 763.5,-341 775.26,-341 778.89,-318.98 774.37,-299.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"772.44,-292.69 777.39,-298.55 773.4,-296.05 774.36,-299.42 774.36,-299.42 774.36,-299.42 773.4,-296.05 771.33,-300.28 772.44,-292.69 772.44,-292.69\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"737\" y=\"-358.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"739.5\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"755.5\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"771.5\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"E11\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<g id=\"a_E11\"><a xlink:title=\"2&#45;&gt;3&#10;#11\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M766.03,-259.06C769.12,-235.44 778.38,-194.72 806,-176 827.34,-161.54 857.89,-164.1 878.86,-168.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"885.85,-170.03 878.33,-171.55 882.44,-169.26 879.03,-168.48 879.03,-168.48 879.03,-168.48 882.44,-169.26 879.72,-165.41 885.85,-170.03 885.85,-170.03\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"806\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"816.5\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"832.5\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"E12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<g id=\"a_E12\"><a xlink:title=\"2&#45;&gt;3&#10;#12\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M781.61,-277.09C802.02,-276.36 836.22,-272.35 859,-255 877.32,-241.05 888.88,-217.07 895.43,-199\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"897.79,-192.15 898.49,-199.79 896.65,-195.46 895.51,-198.77 895.51,-198.77 895.51,-198.77 896.65,-195.46 892.53,-197.75 897.79,-192.15 897.79,-192.15\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"808\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"824.5\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"E13\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<g id=\"a_E13\"><a xlink:title=\"3&#45;&gt;2&#10;#13\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M888.53,-185.58C880.25,-191.53 869.38,-198.78 859,-204 836.65,-215.25 826.22,-208.26 806,-223 794.34,-231.5 784.36,-244.17 777.12,-255.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"773.18,-261.29 774.28,-253.69 775.06,-258.34 776.94,-255.39 776.94,-255.39 776.94,-255.39 775.06,-258.34 779.59,-257.08 773.18,-261.29 773.18,-261.29\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"806\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"808.5\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"824.5\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"840.5\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"E14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<g id=\"a_E14\"><a xlink:title=\"3&#45;&gt;3&#10;#14\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M892.07,-189.04C887.8,-199.91 891.61,-211 903.5,-211 912.79,-211 917.15,-204.23 916.57,-196.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"914.93,-189.04 919.59,-195.14 915.73,-192.45 916.52,-195.86 916.52,-195.86 916.52,-195.86 915.73,-192.45 913.45,-196.57 914.93,-189.04 914.93,-189.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"877\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"887.5\" y=\"-214.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"903.5\" y=\"-214.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"E15\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<g id=\"a_E15\"><a xlink:title=\"3&#45;&gt;5&#10;#15\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M920.19,-167.23C928.28,-163.65 938.44,-159.8 948,-158 975.95,-152.73 983.62,-156.15 1012,-158 1135,-166.02 1176.43,-139.52 1287,-194 1294.44,-197.66 1301.24,-203.54 1306.83,-209.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1311.6,-214.79 1304.59,-211.66 1309.28,-212.18 1306.95,-209.57 1306.95,-209.57 1306.95,-209.57 1309.28,-212.18 1309.3,-207.47 1311.6,-214.79 1311.6,-214.79\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1105\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1113.5\" y=\"-163.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1129.5\" y=\"-163.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"S6\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1056.5\" cy=\"-256\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1056.5\" y=\"-252.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"E16\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<g id=\"a_E16\"><a xlink:title=\"3&#45;&gt;6&#10;#16\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M918.47,-185.58C926.75,-191.52 937.62,-198.77 948,-204 975,-217.59 985,-213.41 1012,-227 1020.11,-231.08 1028.52,-236.4 1035.76,-241.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1041.53,-245.42 1033.99,-243.98 1038.67,-243.41 1035.8,-241.4 1035.8,-241.4 1035.8,-241.4 1038.67,-243.41 1037.61,-238.82 1041.53,-245.42 1041.53,-245.42\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"951.5\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"948\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"964\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"980\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"996\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"E17\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<g id=\"a_E17\"><a xlink:title=\"4&#45;&gt;1&#10;#17\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M314.93,-136.76C309.23,-137.27 302.85,-137.75 297,-138 261.48,-139.52 252.5,-140.02 217,-138 213.52,-137.8 209.85,-137.49 206.26,-137.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"199.06,-136.34 206.36,-133.98 202.54,-136.73 206.01,-137.11 206.01,-137.11 206.01,-137.11 202.54,-136.73 205.67,-140.24 199.06,-136.34 199.06,-136.34\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"230.5\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"257\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"E18\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<g id=\"a_E18\"><a xlink:title=\"4&#45;&gt;2&#10;#18\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M351.17,-132.6C399.9,-126.49 542.48,-113.58 650,-154 687.36,-168.05 694.39,-179.25 721,-209 733.28,-222.73 744.02,-240.58 751.49,-254.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"754.89,-261.06 748.86,-256.31 753.27,-257.96 751.65,-254.85 751.65,-254.85 751.65,-254.85 753.27,-257.96 754.44,-253.4 754.89,-261.06 754.89,-261.06\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"520.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"E19\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<g id=\"a_E19\"><a xlink:title=\"4&#45;&gt;3&#10;#19\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.35,-126.71C373.96,-114.21 424.09,-92 469.5,-92 469.5,-92 469.5,-92 764.5,-92 814.4,-92 861.81,-132.35 885.94,-156.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"891,-162.03 883.87,-159.18 888.57,-159.51 886.14,-157 886.14,-157 886.14,-157 888.57,-159.51 888.41,-154.81 891,-162.03 891,-162.03\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"599\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"S7\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"470.5\" cy=\"-232\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"470.5\" y=\"-228.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g id=\"E20\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n",
"<g id=\"a_E20\"><a xlink:title=\"4&#45;&gt;7&#10;#20\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M347.99,-145.02C372.13,-162.3 421.68,-197.77 449.47,-217.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.38,-221.89 447.86,-220.38 452.54,-219.86 449.69,-217.82 449.69,-217.82 449.69,-217.82 452.54,-219.86 451.52,-215.26 455.38,-221.89 455.38,-221.89\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"369\" y=\"-204.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"E21\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<g id=\"a_E21\"><a xlink:title=\"5&#45;&gt;2&#10;#21\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1316.73,-212.05C1311.47,-198.03 1301.99,-178.74 1287,-168 1193.04,-100.67 1145.35,-120.49 1030,-128 958.55,-132.65 823.81,-146.71 806,-162 779.65,-184.63 770.03,-225.31 766.52,-251.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"765.68,-258.76 763.38,-251.44 766.1,-255.29 766.51,-251.81 766.51,-251.81 766.51,-251.81 766.1,-255.29 769.64,-252.19 765.68,-258.76 765.68,-258.76\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1030\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1032.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1048.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"1064.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"E22\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<g id=\"a_E22\"><a xlink:title=\"5&#45;&gt;3&#10;#22\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1320.99,-247.12C1318.69,-269.23 1311.21,-305.89 1287,-324 1226.54,-369.22 1006.7,-348.49 948,-301 917.48,-276.31 908.31,-229.02 905.59,-199.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"905.03,-192.94 908.73,-199.66 905.31,-196.43 905.59,-199.92 905.59,-199.92 905.59,-199.92 905.31,-196.43 902.45,-200.17 905.03,-192.94 905.03,-192.94\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1105\" y=\"-367.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1121.5\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"E23\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<g id=\"a_E23\"><a xlink:title=\"5&#45;&gt;5&#10;#23\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1312.29,-243.79C1308.81,-254.42 1312.38,-265 1323,-265 1331.13,-265 1335.13,-258.8 1335,-251.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1333.71,-243.79 1338.02,-250.14 1334.31,-247.24 1334.92,-250.69 1334.92,-250.69 1334.92,-250.69 1334.31,-247.24 1331.82,-251.23 1333.71,-243.79 1333.71,-243.79\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1296.5\" y=\"-282.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1307\" y=\"-268.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1323\" y=\"-268.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"S8\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1194\" cy=\"-256\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1194\" y=\"-252.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;8 -->\n",
"<g id=\"E24\" class=\"edge\">\n",
"<title>5&#45;&gt;8</title>\n",
"<g id=\"a_E24\"><a xlink:title=\"5&#45;&gt;8&#10;#24\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1316.41,-245.8C1311.09,-258.82 1301.68,-275.94 1287,-284 1264.79,-296.19 1253.91,-292.39 1230,-284 1223.64,-281.77 1217.57,-277.84 1212.33,-273.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1206.99,-268.99 1214.35,-271.19 1209.64,-271.28 1212.28,-273.57 1212.28,-273.57 1212.28,-273.57 1209.64,-271.28 1210.22,-275.95 1206.99,-268.99 1206.99,-268.99\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1230\" y=\"-309.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1234.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1250.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"1266.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"E25\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<g id=\"a_E25\"><a xlink:title=\"6&#45;&gt;2&#10;#25\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1045.67,-271.05C1037.91,-281.5 1026.06,-294.65 1012,-301 951.77,-328.19 845.16,-321.01 806,-308 797.33,-305.12 789.01,-299.65 782.12,-294.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"776.7,-289.46 784.07,-291.61 779.36,-291.73 782.02,-294 782.02,-294 782.02,-294 779.36,-291.73 779.98,-296.4 776.7,-289.46 776.7,-289.46\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"877\" y=\"-337.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"879.5\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"895.5\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"911.5\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"E26\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<g id=\"a_E26\"><a xlink:title=\"6&#45;&gt;3&#10;#26\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1052.06,-238.49C1047.07,-218.41 1035.71,-186.42 1012,-172 986.52,-156.5 950.99,-161.51 927.87,-167.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"920.83,-169.41 926.74,-164.51 924.2,-168.48 927.58,-167.55 927.58,-167.55 927.58,-167.55 924.2,-168.48 928.41,-170.59 920.83,-169.41 920.83,-169.41\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"953.5\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"964\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"980\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"E27\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<g id=\"a_E27\"><a xlink:title=\"6&#45;&gt;3&#10;#27\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1038.82,-260.72C1016.41,-266.05 976.16,-271.92 948,-255 928.02,-243 916.63,-218.29 910.56,-199.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"908.41,-192.35 913.44,-198.15 909.42,-195.71 910.43,-199.06 910.43,-199.06 910.43,-199.06 909.42,-195.71 907.41,-199.96 908.41,-192.35 908.41,-192.35\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"955.5\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"972\" y=\"-270.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g id=\"E28\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n",
"<g id=\"a_E28\"><a xlink:title=\"6&#45;&gt;8&#10;#28\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1074.66,-256C1098.49,-256 1141.7,-256 1168.79,-256\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1175.98,-256 1168.98,-259.15 1172.48,-256 1168.98,-256 1168.98,-256 1168.98,-256 1172.48,-256 1168.98,-252.85 1175.98,-256 1175.98,-256\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1101\" y=\"-273.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1105.5\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1121.5\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"1137.5\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;2 -->\n",
"<g id=\"E29\" class=\"edge\">\n",
"<title>7&#45;&gt;2</title>\n",
"<g id=\"a_E29\"><a xlink:title=\"7&#45;&gt;2&#10;#29\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M485.13,-242.86C493.3,-248.74 504.18,-255.49 515,-259 593.6,-284.53 693.37,-281.91 738.45,-278.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"745.46,-278.5 738.7,-282.13 741.97,-278.74 738.48,-278.99 738.48,-278.99 738.48,-278.99 741.97,-278.74 738.26,-275.84 745.46,-278.5 745.46,-278.5\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"597\" y=\"-284.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;5 -->\n",
"<g id=\"E30\" class=\"edge\">\n",
"<title>7&#45;&gt;5</title>\n",
"<g id=\"a_E30\"><a xlink:title=\"7&#45;&gt;5&#10;#30\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M482.2,-246.19C517.13,-290.76 633.07,-425 762.5,-425 762.5,-425 762.5,-425 1195,-425 1275.74,-425 1307.72,-306.41 1317.94,-253.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1319.24,-246.74 1321.05,-254.2 1318.6,-250.18 1317.95,-253.62 1317.95,-253.62 1317.95,-253.62 1318.6,-250.18 1314.86,-253.04 1319.24,-246.74 1319.24,-246.74\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"879\" y=\"-428.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"E31\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<g id=\"a_E31\"><a xlink:title=\"7&#45;&gt;7&#10;#31\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M458.74,-246.04C454.35,-256.91 458.27,-268 470.5,-268 480.06,-268 484.54,-261.23 483.95,-253.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"482.26,-246.04 486.95,-252.11 483.07,-249.45 483.89,-252.85 483.89,-252.85 483.89,-252.85 483.07,-249.45 480.83,-253.58 482.26,-246.04 482.26,-246.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"442\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"430.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"446.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"462.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"478.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"494.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"S9\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"623.5\" cy=\"-181\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"623.5\" y=\"-177.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;9 -->\n",
"<g id=\"E32\" class=\"edge\">\n",
"<title>7&#45;&gt;9</title>\n",
"<g id=\"a_E32\"><a xlink:title=\"7&#45;&gt;9&#10;#32\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M488.48,-230.56C510.18,-228.27 548.58,-222.68 579,-210 587.38,-206.51 595.85,-201.32 603.06,-196.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"608.79,-192.15 604.97,-198.8 605.96,-194.2 603.12,-196.25 603.12,-196.25 603.12,-196.25 605.96,-194.2 601.27,-193.7 608.79,-192.15 608.79,-192.15\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"520.5\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"523\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"539\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"555\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;2 -->\n",
"<g id=\"E33\" class=\"edge\">\n",
"<title>8&#45;&gt;2</title>\n",
"<g id=\"a_E33\"><a xlink:title=\"8&#45;&gt;2&#10;#33\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1181.49,-269.11C1175.14,-275.63 1166.78,-283.12 1158,-288 1066,-339.12 1034.27,-337.64 930,-352 874.31,-359.67 852.14,-359.13 806,-327 794.96,-319.31 785.2,-307.94 777.92,-297.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"773.72,-292.01 780.33,-295.92 775.74,-294.87 777.75,-297.73 777.75,-297.73 777.75,-297.73 775.74,-294.87 775.17,-299.54 773.72,-292.01 773.72,-292.01\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"953.5\" y=\"-366.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"956\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"972\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"988\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;5 -->\n",
"<g id=\"E34\" class=\"edge\">\n",
"<title>8&#45;&gt;5</title>\n",
"<g id=\"a_E34\"><a xlink:title=\"8&#45;&gt;5&#10;#34\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1201.38,-239.39C1206.95,-227.44 1216.32,-212.2 1230,-205 1252.42,-193.2 1262.8,-197.5 1287,-205 1292.64,-206.75 1298.18,-209.75 1303.13,-213.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1309.05,-217.33 1301.53,-215.79 1306.21,-215.28 1303.37,-213.23 1303.37,-213.23 1303.37,-213.23 1306.21,-215.28 1305.22,-210.68 1309.05,-217.33 1309.05,-217.33\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1232\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1234.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1250.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1266.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;5 -->\n",
"<g id=\"E35\" class=\"edge\">\n",
"<title>8&#45;&gt;5</title>\n",
"<g id=\"a_E35\"><a xlink:title=\"8&#45;&gt;5&#10;#35\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1211.86,-252.41C1233.97,-247.71 1272.89,-239.44 1298.05,-234.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1305.07,-232.6 1298.87,-237.14 1301.64,-233.33 1298.22,-234.06 1298.22,-234.06 1298.22,-234.06 1301.64,-233.33 1297.56,-230.97 1305.07,-232.6 1305.07,-232.6\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1234\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1242.5\" y=\"-252.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1258.5\" y=\"-252.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"E36\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<g id=\"a_E36\"><a xlink:title=\"8&#45;&gt;8&#10;#36\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1183.29,-270.79C1179.81,-281.42 1183.38,-292 1194,-292 1202.13,-292 1206.13,-285.8 1206,-278.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1204.71,-270.79 1209.02,-277.14 1205.31,-274.24 1205.92,-277.69 1205.92,-277.69 1205.92,-277.69 1205.31,-274.24 1202.82,-278.23 1204.71,-270.79 1204.71,-270.79\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1165.5\" y=\"-309.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1162\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1178\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1194\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"1210\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;2 -->\n",
"<g id=\"E37\" class=\"edge\">\n",
"<title>9&#45;&gt;2</title>\n",
"<g id=\"a_E37\"><a xlink:title=\"9&#45;&gt;2&#10;#37\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M638.75,-190.91C663.33,-208.01 713.8,-243.12 742.1,-262.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"748.12,-267 740.58,-265.59 745.25,-265 742.38,-263 742.38,-263 742.38,-263 745.25,-265 744.17,-260.41 748.12,-267 748.12,-267\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"668\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;3 -->\n",
"<g id=\"E38\" class=\"edge\">\n",
"<title>9&#45;&gt;3</title>\n",
"<g id=\"a_E38\"><a xlink:title=\"9&#45;&gt;3&#10;#38\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M641.36,-177.04C680.02,-168.52 777.97,-150.15 859,-162 865.76,-162.99 872.93,-164.8 879.45,-166.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"886.23,-168.91 878.6,-169.79 882.89,-167.85 879.56,-166.79 879.56,-166.79 879.56,-166.79 882.89,-167.85 880.51,-163.79 886.23,-168.91 886.23,-168.91\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"739\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;7 -->\n",
"<g id=\"E39\" class=\"edge\">\n",
"<title>9&#45;&gt;7</title>\n",
"<g id=\"a_E39\"><a xlink:title=\"9&#45;&gt;7&#10;#39\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M605.88,-176.05C583.89,-170.48 544.47,-163.9 515,-178 501.16,-184.62 490.33,-198.03 482.93,-209.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"479.18,-216.16 480.03,-208.53 480.96,-213.15 482.74,-210.14 482.74,-210.14 482.74,-210.14 480.96,-213.15 485.45,-211.74 479.18,-216.16 479.18,-216.16\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"518.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"515\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"531\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"547\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"563\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;9 -->\n",
"<g id=\"E40\" class=\"edge\">\n",
"<title>9&#45;&gt;9</title>\n",
"<g id=\"a_E40\"><a xlink:title=\"9&#45;&gt;9&#10;#40\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M612.07,-195.04C607.8,-205.91 611.61,-217 623.5,-217 632.79,-217 637.15,-210.23 636.57,-202.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"634.93,-195.04 639.59,-201.14 635.73,-198.45 636.52,-201.86 636.52,-201.86 636.52,-201.86 635.73,-198.45 633.45,-202.57 634.93,-195.04 634.93,-195.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"597\" y=\"-234.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"607.5\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"623.5\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"1356pt\" height=\"458pt\"\n",
" viewBox=\"0.00 0.00 1355.97 457.97\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acd0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 453.97)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-453.97 1351.97,-453.97 1351.97,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"673.98\" y=\"-418.77\" font-family=\"Times,serif\" font-size=\"14.00\">min odd</text>\n",
"<!-- 0 -->\n",
"<g id=\"N0\" class=\"node acdS2\n",
" acdS3\n",
" acdS5\n",
" acdS6\n",
" acdS8\n",
"\">\n",
"<title>0</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"602.67,-383.18 446.67,-383.18 446.67,-300.18 602.67,-300.18 602.67,-383.18\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 9&#45;16,21&#45;28,33&#45;36</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4,5}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2,3,5,6,8</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"N4\" class=\"node acdS2\n",
" acdS3\n",
" acdS5\n",
"\">\n",
"<title>4</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"116.67\" cy=\"-177.69\" rx=\"116.85\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 10,12,13,15,21,22</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{2,4,5}</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2,3,5</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;4&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"acd0_edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M446.56,-313.57C389.61,-293.37 310.82,-264.53 242.67,-236.38 232.18,-232.05 221.28,-227.35 210.47,-222.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.57,-219.23 201.01,-218.36 208.72,-225.62 211.57,-219.23\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"N5\" class=\"node acdS5\n",
" acdS8\n",
"\">\n",
"<title>5</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"336.67\" cy=\"-177.69\" rx=\"84.71\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23,24,34,36</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5,8</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"acd0_edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M477.23,-299.8C450.9,-277.11 418.04,-248.8 390.72,-225.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"392.66,-222.31 382.8,-218.43 388.09,-227.61 392.66,-222.31\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"N6\" class=\"node acdS3\n",
" acdS5\n",
"\">\n",
"<title>6</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"524.67\" cy=\"-177.69\" rx=\"84.71\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14,15,22,23</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3,5</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"acd0_edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M524.67,-299.8C524.67,-280.47 524.67,-257.06 524.67,-235.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"528.17,-235.87 524.67,-225.87 521.17,-235.87 528.17,-235.87\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"N7\" class=\"node acdS3\n",
" acdS6\n",
"\">\n",
"<title>7</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"696.67\" cy=\"-177.69\" rx=\"69.09\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14,16,26</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3,6</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"acd0_edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M568.08,-299.8C592.71,-276.6 623.59,-247.52 648.91,-223.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"651.36,-226.17 656.24,-216.77 646.56,-221.08 651.36,-226.17\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"N8\" class=\"node acdS2\n",
"\">\n",
"<title>8</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"843.67\" cy=\"-177.69\" rx=\"59.29\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 9</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;8&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"acd0_edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M602.78,-314.99C653.61,-296.64 720.31,-269.4 774.67,-236.38 780.5,-232.84 786.35,-228.83 792.04,-224.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"794.44,-227.18 800.25,-218.31 790.18,-221.62 794.44,-227.18\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"N11\" class=\"node acdS5\n",
"\">\n",
"<title>11</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"366.17,-83 307.17,-83 307.17,0 366.17,0 366.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;11&gt;</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;11 -->\n",
"<g id=\"acd0_edge8\" class=\"edge\">\n",
"<title>5&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M336.67,-129.38C336.67,-117.71 336.67,-105.16 336.67,-93.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"340.17,-93.15 336.67,-83.15 333.17,-93.15 340.17,-93.15\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"N12\" class=\"node acdS3\n",
"\">\n",
"<title>12</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"515.17,-83 456.17,-83 456.17,0 515.17,0 515.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14</text>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"485.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;12&gt;</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;12 -->\n",
"<g id=\"acd0_edge9\" class=\"edge\">\n",
"<title>6&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M511.14,-130.13C507.64,-118.07 503.84,-105.02 500.28,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"503.64,-91.78 497.49,-83.16 496.92,-93.74 503.64,-91.78\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"N13\" class=\"node acdS5\n",
"\">\n",
"<title>13</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"592.17,-83 533.17,-83 533.17,0 592.17,0 592.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23</text>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5</text>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"562.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;13&gt;</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;13 -->\n",
"<g id=\"acd0_edge10\" class=\"edge\">\n",
"<title>6&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M537.86,-130.13C541.24,-118.19 544.89,-105.28 548.33,-93.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"551.8,-93.73 551.16,-83.16 545.07,-91.83 551.8,-93.73\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"N14\" class=\"node acdS3\n",
"\">\n",
"<title>14</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"726.17,-83 667.17,-83 667.17,0 726.17,0 726.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;14&gt;</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;14 -->\n",
"<g id=\"acd0_edge11\" class=\"edge\">\n",
"<title>7&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M696.67,-129.38C696.67,-117.71 696.67,-105.16 696.67,-93.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"700.17,-93.15 696.67,-83.15 693.17,-93.15 700.17,-93.15\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"N1\" class=\"node acdS7\n",
" acdS9\n",
"\">\n",
"<title>1</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"949.67\" cy=\"-341.68\" rx=\"84.71\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #1</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 31,32,39,40</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 7,9</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"N9\" class=\"node acdS9\n",
"\">\n",
"<title>9</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"978.17,-219.19 921.17,-219.19 921.17,-136.19 978.17,-136.19 978.17,-219.19\"/>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 40</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 9</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;9&gt;</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;9 -->\n",
"<g id=\"acd0_edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M949.67,-282.65C949.67,-265.36 949.67,-246.55 949.67,-229.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"953.17,-229.56 949.67,-219.56 946.17,-229.56 953.17,-229.56\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"N2\" class=\"node acdS1\n",
" acdS4\n",
"\">\n",
"<title>2</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"1121.67\" cy=\"-341.68\" rx=\"69.09\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #2</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 5,7,17</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1,4</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"N10\" class=\"node acdS1\n",
"\">\n",
"<title>10</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"1151.17,-219.19 1092.17,-219.19 1092.17,-136.19 1151.17,-136.19 1151.17,-219.19\"/>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 5</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;10&gt;</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;10 -->\n",
"<g id=\"acd0_edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1121.67,-282.65C1121.67,-265.36 1121.67,-246.55 1121.67,-229.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1125.17,-229.56 1121.67,-219.56 1118.17,-229.56 1125.17,-229.56\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"N3\" class=\"node acdS0\n",
"\">\n",
"<title>3</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"1278.67\" cy=\"-341.68\" rx=\"69.09\" ry=\"69.09\"/>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-375.48\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #3</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-360.48\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-345.48\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-330.48\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-315.48\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-300.48\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;3&gt;</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><script>\n",
"function acd0_clear(){\n",
" $(\"#acd0 .node,#acdaut0 .node,#acdaut0 .edge\")\n",
" .removeClass(\"acdhigh acdbold acdacc acdrej\");\n",
"};\n",
"function acd0_state(state){\n",
" acd0_clear();\n",
" $(\"#acd0 .acdS\" + state).addClass(\"acdhigh acdbold\");\n",
" $(\"#acdaut0 #S\" + state).addClass(\"acdbold\");\n",
"};\n",
"function acd0_edge(edge){\n",
" acd0_clear();\n",
" var theedge = $('#acdaut0 #E' + edge)\n",
" var classList = theedge.attr('class').split(/\\s+/);\n",
" $.each(classList, function(index, item) {\n",
" if (item.startsWith('acdN')) {\n",
" $(\"#acd0 #\" + item.substring(3)).addClass(\"acdhigh acdbold\");\n",
" }\n",
" });\n",
" theedge.addClass(\"acdbold\");\n",
"};\n",
"function acd0_node(node, acc){\n",
" acd0_clear();\n",
" $(\"#acdaut0 .acdN\" + node).addClass(acc\n",
" ? \"acdacc acdbold\"\n",
" : \"acdrej acdbold\");\n",
" $(\"#acd0 #N\" + node).addClass(\"acdbold acdhigh\");\n",
"};$(\"#acdaut0 #E9\").addClass(\"acdN0\");$(\"#acdaut0 #E10\").addClass(\"acdN0\");$(\"#acdaut0 #E11\").addClass(\"acdN0\");$(\"#acdaut0 #E12\").addClass(\"acdN0\");$(\"#acdaut0 #E13\").addClass(\"acdN0\");$(\"#acdaut0 #E14\").addClass(\"acdN0\");$(\"#acdaut0 #E15\").addClass(\"acdN0\");$(\"#acdaut0 #E16\").addClass(\"acdN0\");$(\"#acdaut0 #E21\").addClass(\"acdN0\");$(\"#acdaut0 #E22\").addClass(\"acdN0\");$(\"#acdaut0 #E23\").addClass(\"acdN0\");$(\"#acdaut0 #E24\").addClass(\"acdN0\");$(\"#acdaut0 #E25\").addClass(\"acdN0\");$(\"#acdaut0 #E26\").addClass(\"acdN0\");$(\"#acdaut0 #E27\").addClass(\"acdN0\");$(\"#acdaut0 #E28\").addClass(\"acdN0\");$(\"#acdaut0 #E33\").addClass(\"acdN0\");$(\"#acdaut0 #E34\").addClass(\"acdN0\");$(\"#acdaut0 #E35\").addClass(\"acdN0\");$(\"#acdaut0 #E36\").addClass(\"acdN0\");$(\"#acdaut0 #E31\").addClass(\"acdN1\");$(\"#acdaut0 #E32\").addClass(\"acdN1\");$(\"#acdaut0 #E39\").addClass(\"acdN1\");$(\"#acdaut0 #E40\").addClass(\"acdN1\");$(\"#acdaut0 #E5\").addClass(\"acdN2\");$(\"#acdaut0 #E7\").addClass(\"acdN2\");$(\"#acdaut0 #E17\").addClass(\"acdN2\");$(\"#acdaut0 #E1\").addClass(\"acdN3\");$(\"#acdaut0 #E10\").addClass(\"acdN4\");$(\"#acdaut0 #E12\").addClass(\"acdN4\");$(\"#acdaut0 #E13\").addClass(\"acdN4\");$(\"#acdaut0 #E15\").addClass(\"acdN4\");$(\"#acdaut0 #E21\").addClass(\"acdN4\");$(\"#acdaut0 #E22\").addClass(\"acdN4\");$(\"#acdaut0 #E23\").addClass(\"acdN5\");$(\"#acdaut0 #E24\").addClass(\"acdN5\");$(\"#acdaut0 #E34\").addClass(\"acdN5\");$(\"#acdaut0 #E36\").addClass(\"acdN5\");$(\"#acdaut0 #E14\").addClass(\"acdN6\");$(\"#acdaut0 #E15\").addClass(\"acdN6\");$(\"#acdaut0 #E22\").addClass(\"acdN6\");$(\"#acdaut0 #E23\").addClass(\"acdN6\");$(\"#acdaut0 #E14\").addClass(\"acdN7\");$(\"#acdaut0 #E16\").addClass(\"acdN7\");$(\"#acdaut0 #E26\").addClass(\"acdN7\");$(\"#acdaut0 #E9\").addClass(\"acdN8\");$(\"#acdaut0 #E40\").addClass(\"acdN9\");$(\"#acdaut0 #E5\").addClass(\"acdN10\");$(\"#acdaut0 #E23\").addClass(\"acdN11\");$(\"#acdaut0 #E14\").addClass(\"acdN12\");$(\"#acdaut0 #E23\").addClass(\"acdN13\");$(\"#acdaut0 #E14\").addClass(\"acdN14\");$(\"#acdaut0 #E1\").click(function(){acd0_edge(1);});$(\"#acdaut0 #E2\").click(function(){acd0_edge(2);});$(\"#acdaut0 #E3\").click(function(){acd0_edge(3);});$(\"#acdaut0 #E4\").click(function(){acd0_edge(4);});$(\"#acdaut0 #E5\").click(function(){acd0_edge(5);});$(\"#acdaut0 #E6\").click(function(){acd0_edge(6);});$(\"#acdaut0 #E7\").click(function(){acd0_edge(7);});$(\"#acdaut0 #E8\").click(function(){acd0_edge(8);});$(\"#acdaut0 #E9\").click(function(){acd0_edge(9);});$(\"#acdaut0 #E10\").click(function(){acd0_edge(10);});$(\"#acdaut0 #E11\").click(function(){acd0_edge(11);});$(\"#acdaut0 #E12\").click(function(){acd0_edge(12);});$(\"#acdaut0 #E13\").click(function(){acd0_edge(13);});$(\"#acdaut0 #E14\").click(function(){acd0_edge(14);});$(\"#acdaut0 #E15\").click(function(){acd0_edge(15);});$(\"#acdaut0 #E16\").click(function(){acd0_edge(16);});$(\"#acdaut0 #E17\").click(function(){acd0_edge(17);});$(\"#acdaut0 #E18\").click(function(){acd0_edge(18);});$(\"#acdaut0 #E19\").click(function(){acd0_edge(19);});$(\"#acdaut0 #E20\").click(function(){acd0_edge(20);});$(\"#acdaut0 #E21\").click(function(){acd0_edge(21);});$(\"#acdaut0 #E22\").click(function(){acd0_edge(22);});$(\"#acdaut0 #E23\").click(function(){acd0_edge(23);});$(\"#acdaut0 #E24\").click(function(){acd0_edge(24);});$(\"#acdaut0 #E25\").click(function(){acd0_edge(25);});$(\"#acdaut0 #E26\").click(function(){acd0_edge(26);});$(\"#acdaut0 #E27\").click(function(){acd0_edge(27);});$(\"#acdaut0 #E28\").click(function(){acd0_edge(28);});$(\"#acdaut0 #E29\").click(function(){acd0_edge(29);});$(\"#acdaut0 #E30\").click(function(){acd0_edge(30);});$(\"#acdaut0 #E31\").click(function(){acd0_edge(31);});$(\"#acdaut0 #E32\").click(function(){acd0_edge(32);});$(\"#acdaut0 #E33\").click(function(){acd0_edge(33);});$(\"#acdaut0 #E34\").click(function(){acd0_edge(34);});$(\"#acdaut0 #E35\").click(function(){acd0_edge(35);});$(\"#acdaut0 #E36\").click(function(){acd0_edge(36);});$(\"#acdaut0 #E37\").click(function(){acd0_edge(37);});$(\"#acdaut0 #E38\").click(function(){acd0_edge(38);});$(\"#acdaut0 #E39\").click(function(){acd0_edge(39);});$(\"#acdaut0 #E40\").click(function(){acd0_edge(40);});$(\"#acdaut0 #S0\").click(function(){acd0_state(0);});$(\"#acdaut0 #S1\").click(function(){acd0_state(1);});$(\"#acdaut0 #S2\").click(function(){acd0_state(2);});$(\"#acdaut0 #S3\").click(function(){acd0_state(3);});$(\"#acdaut0 #S4\").click(function(){acd0_state(4);});$(\"#acdaut0 #S5\").click(function(){acd0_state(5);});$(\"#acdaut0 #S6\").click(function(){acd0_state(6);});$(\"#acdaut0 #S7\").click(function(){acd0_state(7);});$(\"#acdaut0 #S8\").click(function(){acd0_state(8);});$(\"#acdaut0 #S9\").click(function(){acd0_state(9);});$(\"#acd0 #N0\").click(function(){acd0_node(0, 0);});$(\"#acd0 #N1\").click(function(){acd0_node(1, 1);});$(\"#acd0 #N2\").click(function(){acd0_node(2, 1);});$(\"#acd0 #N3\").click(function(){acd0_node(3, 1);});$(\"#acd0 #N4\").click(function(){acd0_node(4, 1);});$(\"#acd0 #N5\").click(function(){acd0_node(5, 1);});$(\"#acd0 #N6\").click(function(){acd0_node(6, 1);});$(\"#acd0 #N7\").click(function(){acd0_node(7, 1);});$(\"#acd0 #N8\").click(function(){acd0_node(8, 1);});$(\"#acd0 #N9\").click(function(){acd0_node(9, 0);});$(\"#acd0 #N10\").click(function(){acd0_node(10, 0);});$(\"#acd0 #N11\").click(function(){acd0_node(11, 0);});$(\"#acd0 #N12\").click(function(){acd0_node(12, 0);});$(\"#acd0 #N13\").click(function(){acd0_node(13, 0);});$(\"#acd0 #N14\").click(function(){acd0_node(14, 0);});</script>"
],
"text/plain": [
"<spot.acd; proxy of <Swig Object of type 'spot::acd *' at 0x7f0c49330f90> >"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd = spot.acd(a3); theacd"
]
},
{
"cell_type": "markdown",
"id": "0f2f00c4",
"metadata": {},
"source": [
"The nodes of the ACD represent various bits of informations. First, the root of each tree shows the number of the maximal SCC (as computed by `spot.scc_info`). Trivial maximal SCCs (without cycles) are omitted from the construction. Children are sorted by decreasing size of the SCCs they represent (i.e., decreasing count of edges).\n",
"\n",
"The numbers after `T:` list the edges that belong to the strongly connected component. The numbers are simply the indices of those edges in the automaton. Between braces are the colors covered by all those edges, to decide if a cycle formed by all these edges would be accepting. The numbers after `Q:` are the states touched by those edges. `lvl:` indicates the level of each node. Since some trees can have accepting roots while others have rejecting roots, the levels of some tree have been shifted down (i.e., the root start at levl 1 instead of 0) to ensure that all trees use the same parity. The parity of the decomposition (i.e., whether even levels are accepting) is indicated by the `is_even()` method."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "859a993a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.is_even()"
]
},
{
"cell_type": "markdown",
"id": "3a3db431",
"metadata": {},
"source": [
"Finally, the leaves have their node number indicated between angle brackets, but again, node numbers can be obtained by hovering over the node with the mouse. This construction may step in more that just those indicated leaves because it will consider subtrees of the ACD.\n",
"\n",
"For each state of the original automaton, there exists a subtree in the ACD formed by all the node whose `Q:` contain that state. In the display of `theacd` above, you can click on any state of the input automaton to highlight the corresponding subtree of the ACD."
]
},
{
"cell_type": "markdown",
"id": "6595333d",
"metadata": {},
"source": [
"The `step()` method works similarly to Zielonka trees, except it uses edge number instead of colors. It is given a node of the ACD and the number of an edge whose source state touched belong to `Q:` in the current node. Then it walks up the tree until it finds a node that contains the given edge, emit the level of that node, and returns the left-most node of the next-branch in the sub-tree associated to the destination state.\n",
"\n",
"For instance, let's consider the edges 2->3 and 3->2 in `a1`. There are actually two edges going from 2 to 3. Hovering above those arrows tells us the number of these edges:\n",
" - 2->3 with {1,3} is edge 11\n",
" - 2->3 with {4} is edge 12\n",
" - 3->2 with {2,4,5} is edge 13\n",
" \n",
"Let us assume we are in node 4 of the ACD (a node that contains state 2) and want to step through edges 12 and 13:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "a8bd0844",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4, 1)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.step(4, 12)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "93116a05",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4, 1)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.step(4, 13)"
]
},
{
"cell_type": "markdown",
"id": "1c6d4fe9",
"metadata": {},
"source": [
"In both case, we stay in node 4 and emit level 1, this is the level of node 4, which contains both edges.\n",
"\n",
"If we were to iterate through edges 11 and 13 instead, the story would be different:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "23940b6a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(12, 0)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.step(4, 11)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "de7cbd02",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(8, 0)"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.step(12, 13)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "8b0305d4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4, 0)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.step(8, 11)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "4f0a10f5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(4, 1)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.step(4, 13)"
]
},
{
"cell_type": "markdown",
"id": "ad201f45",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"And then it would loop again. \n",
"\n",
"Let's consider the first step. Node 4 does not contains edge 11, so we move up the tree until we find node 0 that contains it, and emit level 0. Then the destination of edge 11 is 3, so we consider the subtree associated to 3 (clicking on state 3 shows us this is the tree that has nodes 4,7,13 as leaves) and return the left-most node of the next branch: 12.\n",
"\n",
"When we read edge 13 from node 12, go all the way up to node 0 again, and consider the left-most node of the next branch in the tree for the destination 2: that's node 8. \n",
"\n",
"Reading edges 11 and 13 will get us back to node 4. If we repeat this infinitely often, the smallest level we will see infinitely often is therefore 0, meaning that is a rejecting cycle."
]
},
{
"cell_type": "markdown",
"id": "04d7cc51",
"metadata": {},
"source": [
"The initial node we use to start this process can be any node that contains this state. The `first_branch(s)` method returns the left-most node containing state `s`."
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "2bd04c1f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.first_branch(2)"
]
},
{
"cell_type": "markdown",
"id": "1015abb6",
"metadata": {},
"source": [
"This `first_branch()` method is actually being used when `step()` is used to take an edge between two SCCs. In that case the edge does not appear in the ACD, and `step()` will return the `first_branch()` for its destination, and level 0."
]
},
{
"cell_type": "markdown",
"id": "b89a6186",
"metadata": {},
"source": [
"An automaton can be paritized using ACD following a procedure similar to Zielonka tree, with this more complex stepping process."
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "e28035e8",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"253pt\"\n",
" viewBox=\"0.00 0.00 729.00 252.58\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.3333333333333333 0.3333333333333333) rotate(0) translate(4 754)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-754 2183.78,-754 2183.78,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"1008.39\" y=\"-735.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"1031.39\" y=\"-735.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"1047.39\" y=\"-735.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"1093.39\" y=\"-735.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1109.39\" y=\"-735.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"1147.39\" y=\"-735.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1163.39\" y=\"-735.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
"<text text-anchor=\"start\" x=\"1035.89\" y=\"-721.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 3]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"64.65\" cy=\"-502\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"52.15\" y=\"-498.3\" font-family=\"Lato\" font-size=\"14.00\">0#3</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.05,-502C1.94,-502 16.02,-502 30.59,-502\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.73,-502 30.73,-505.15 34.23,-502 30.73,-502 30.73,-502 30.73,-502 34.23,-502 30.73,-498.85 37.73,-502 37.73,-502\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.79,-519.41C55.33,-529.09 57.94,-538 64.65,-538 69.57,-538 72.29,-533.19 72.81,-526.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.5,-519.41 75.94,-526.27 72.65,-522.91 72.79,-526.4 72.79,-526.4 72.79,-526.4 72.65,-522.91 69.64,-526.53 72.5,-519.41 72.5,-519.41\"/>\n",
"<text text-anchor=\"start\" x=\"36.15\" y=\"-556.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"56.65\" y=\"-541.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"212.79\" cy=\"-502\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"195.79\" y=\"-498.3\" font-family=\"Lato\" font-size=\"14.00\">1#10</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M91.44,-502C114.06,-502 147.27,-502 173.08,-502\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"180.15,-502 173.15,-505.15 176.65,-502 173.15,-502 173.15,-502 173.15,-502 176.65,-502 173.15,-498.85 180.15,-502 180.15,-502\"/>\n",
"<text text-anchor=\"start\" x=\"109.3\" y=\"-520.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"127.8\" y=\"-505.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"799.82\" cy=\"-321\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"787.32\" y=\"-317.3\" font-family=\"Lato\" font-size=\"14.00\">2#4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M67.24,-483.93C73.49,-425.43 101.69,-245 211.79,-245 211.79,-245 211.79,-245 658.53,-245 705.91,-245 752.61,-278.93 778.39,-301.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"783.87,-306.35 776.55,-304.03 781.26,-304.02 778.65,-301.68 778.65,-301.68 778.65,-301.68 781.26,-304.02 780.75,-299.33 783.87,-306.35 783.87,-306.35\"/>\n",
"<text text-anchor=\"start\" x=\"411.58\" y=\"-263.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"430.08\" y=\"-248.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"942.12\" cy=\"-335\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"929.62\" y=\"-331.3\" font-family=\"Lato\" font-size=\"14.00\">3#4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.04,-519.2C90.83,-557.61 139.95,-647 211.79,-647 211.79,-647 211.79,-647 729.68,-647 867.9,-647 921.98,-434.55 936.66,-360.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"938.04,-353.12 939.81,-360.59 937.38,-356.56 936.72,-360 936.72,-360 936.72,-360 937.38,-356.56 933.62,-359.4 938.04,-353.12 938.04,-353.12\"/>\n",
"<text text-anchor=\"start\" x=\"486.73\" y=\"-665.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"503.23\" y=\"-650.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M199.43,-518.66C196.46,-528.62 200.92,-538 212.79,-538 221.7,-538 226.43,-532.73 226.99,-525.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"226.15,-518.66 230.08,-525.26 226.55,-522.14 226.96,-525.62 226.96,-525.62 226.96,-525.62 226.55,-522.14 223.83,-525.98 226.15,-518.66 226.15,-518.66\"/>\n",
"<text text-anchor=\"start\" x=\"186.29\" y=\"-556.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"204.79\" y=\"-541.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.34,-509.64C272.37,-516.99 321.13,-527 363.94,-527 363.94,-527 363.94,-527 585.38,-527 668.61,-527 708.17,-516.69 755.18,-448 766.74,-431.1 782.99,-377.57 792.05,-345.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"793.98,-338.81 795.11,-346.4 793.03,-342.18 792.08,-345.55 792.08,-345.55 792.08,-345.55 793.03,-342.18 789.05,-344.69 793.98,-338.81 793.98,-338.81\"/>\n",
"<text text-anchor=\"start\" x=\"484.73\" y=\"-545.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"503.23\" y=\"-530.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"364.94\" cy=\"-414\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"352.44\" y=\"-410.3\" font-family=\"Lato\" font-size=\"14.00\">4#2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M240.25,-491.99C262.47,-483.02 294.62,-468.73 320.29,-452 328.47,-446.67 336.74,-439.9 343.84,-433.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.02,-428.83 345.97,-435.88 346.44,-431.19 343.85,-433.55 343.85,-433.55 343.85,-433.55 346.44,-431.19 341.73,-431.23 349.02,-428.83 349.02,-428.83\"/>\n",
"<text text-anchor=\"start\" x=\"263.29\" y=\"-499.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"283.79\" y=\"-484.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1392.7\" cy=\"-556\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1380.2\" y=\"-552.3\" font-family=\"Lato\" font-size=\"14.00\">5#4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M233.27,-516.11C242.09,-521.99 252.87,-528.49 263.29,-533 295.28,-546.85 835.11,-693 869.97,-693 869.97,-693 869.97,-693 1241.56,-693 1308.11,-693 1358.09,-618.65 1379.8,-579.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1383.28,-573.07 1382.71,-580.73 1381.61,-576.15 1379.94,-579.23 1379.94,-579.23 1379.94,-579.23 1381.61,-576.15 1377.17,-577.73 1383.28,-573.07 1383.28,-573.07\"/>\n",
"<text text-anchor=\"start\" x=\"775.32\" y=\"-702.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"791.82\" y=\"-687.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M787.62,-337.29C784.68,-347.39 788.75,-357 799.82,-357 808.13,-357 812.49,-351.59 812.91,-344.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"812.02,-337.29 815.99,-343.86 812.44,-340.76 812.87,-344.24 812.87,-344.24 812.87,-344.24 812.44,-340.76 809.74,-344.62 812.02,-337.29 812.02,-337.29\"/>\n",
"<text text-anchor=\"start\" x=\"773.32\" y=\"-375.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"791.82\" y=\"-360.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M817.05,-306.9C824.8,-301.08 834.54,-295 844.47,-292 867.02,-285.19 875.67,-283.07 897.47,-292 908.19,-296.39 917.68,-304.83 925.06,-313.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"929.81,-318.69 922.89,-315.38 927.55,-316.02 925.29,-313.35 925.29,-313.35 925.29,-313.35 927.55,-316.02 927.7,-311.31 929.81,-318.69 929.81,-318.69\"/>\n",
"<text text-anchor=\"start\" x=\"846.47\" y=\"-310.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"862.97\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"2151.28\" cy=\"-246\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"2138.78\" y=\"-242.3\" font-family=\"Lato\" font-size=\"14.00\">2#8</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M801.34,-302.91C803.28,-247.32 811.77,-80.25 844.47,-39 873.25,-2.71 894.8,0 941.12,0 941.12,0 941.12,0 2004.13,0 2052.87,0 2074.95,-1.96 2106.63,-39 2129.9,-66.21 2143.04,-172.06 2147.99,-220.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2148.68,-228.03 2144.86,-221.38 2148.34,-224.55 2148,-221.07 2148,-221.07 2148,-221.07 2148.34,-224.55 2151.13,-220.76 2148.68,-228.03 2148.68,-228.03\"/>\n",
"<text text-anchor=\"start\" x=\"1437.35\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1457.85\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1849.14\" cy=\"-302\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1832.14\" y=\"-298.3\" font-family=\"Lato\" font-size=\"14.00\">3#12</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;7 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M810.89,-304.42C835.38,-265.74 902.36,-169.76 986.77,-129 1109.14,-69.91 1155.32,-105.67 1291.06,-99 1413.16,-93 1449.96,-75.49 1565.65,-115 1674.27,-152.09 1781.44,-241.3 1826.26,-281.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1831.66,-286.51 1824.36,-284.15 1829.07,-284.16 1826.47,-281.81 1826.47,-281.81 1826.47,-281.81 1829.07,-284.16 1828.59,-279.48 1831.66,-286.51 1831.66,-286.51\"/>\n",
"<text text-anchor=\"start\" x=\"1293.06\" y=\"-117.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1311.56\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M915.43,-332.44C892.34,-330.13 858.32,-326.74 833.34,-324.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"826.23,-323.54 833.51,-321.1 829.71,-323.88 833.19,-324.23 833.19,-324.23 833.19,-324.23 829.71,-323.88 832.88,-327.36 826.23,-323.54 826.23,-323.54\"/>\n",
"<text text-anchor=\"start\" x=\"844.47\" y=\"-348.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"862.97\" y=\"-333.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M951.52,-352.05C959.13,-366.11 971.49,-385.82 986.77,-399 1117.5,-511.84 1183.29,-490.27 1348.06,-542 1352.34,-543.35 1356.86,-544.78 1361.3,-546.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1368.16,-548.39 1360.53,-549.26 1364.83,-547.32 1361.49,-546.26 1361.49,-546.26 1361.49,-546.26 1364.83,-547.32 1362.45,-543.26 1368.16,-548.39 1368.16,-548.39\"/>\n",
"<text text-anchor=\"start\" x=\"1137.06\" y=\"-520.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1153.56\" y=\"-505.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M956.06,-319.39C979.37,-293.15 1031.26,-243 1087.41,-243 1087.41,-243 1087.41,-243 1320.56,-243 1505.9,-243 1725.61,-279.41 1811.32,-295.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1818.23,-296.29 1810.78,-298.13 1814.79,-295.66 1811.34,-295.03 1811.34,-295.03 1811.34,-295.03 1814.79,-295.66 1811.91,-291.93 1818.23,-296.29 1818.23,-296.29\"/>\n",
"<text text-anchor=\"start\" x=\"1366.2\" y=\"-263.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1384.7\" y=\"-248.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1088.41\" cy=\"-364\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1075.91\" y=\"-360.3\" font-family=\"Lato\" font-size=\"14.00\">6#7</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;8 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>3&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M961.93,-347.16C969.37,-351.36 978.19,-355.6 986.77,-358 1008.84,-364.16 1034.66,-365.59 1054.62,-365.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1061.69,-365.43 1054.73,-368.66 1058.19,-365.47 1054.69,-365.52 1054.69,-365.52 1054.69,-365.52 1058.19,-365.47 1054.65,-362.37 1061.69,-365.43 1061.69,-365.43\"/>\n",
"<text text-anchor=\"start\" x=\"986.77\" y=\"-383.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1007.27\" y=\"-368.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M339.32,-408.75C317.72,-405.52 286.25,-404.27 263.29,-418 241.46,-431.06 228.2,-457.73 220.97,-477.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"218.67,-484.22 217.97,-476.58 219.81,-480.91 220.95,-477.6 220.95,-477.6 220.95,-477.6 219.81,-480.91 223.93,-478.63 218.67,-484.22 218.67,-484.22\"/>\n",
"<text text-anchor=\"start\" x=\"265.29\" y=\"-436.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"283.79\" y=\"-421.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M386.96,-403.63C421.34,-387.19 492.16,-355.55 555.88,-341 629.51,-324.19 718.54,-321.09 765.72,-320.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"772.92,-320.73 765.94,-323.91 769.42,-320.75 765.92,-320.76 765.92,-320.76 765.92,-320.76 769.42,-320.75 765.91,-317.61 772.92,-320.73 772.92,-320.73\"/>\n",
"<text text-anchor=\"start\" x=\"557.88\" y=\"-359.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"576.38\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M377.21,-397.45C385.17,-386.87 396.68,-373.58 409.58,-365 496.17,-307.41 528.6,-307.8 630.88,-289 747.45,-267.57 790.28,-231.42 897.47,-282 910.75,-288.27 921.36,-300.77 928.79,-312.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"932.59,-318.17 926.21,-313.89 930.74,-315.2 928.89,-312.22 928.89,-312.22 928.89,-312.22 930.74,-315.2 931.56,-310.56 932.59,-318.17 932.59,-318.17\"/>\n",
"<text text-anchor=\"start\" x=\"633.03\" y=\"-307.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"649.53\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"511.23\" cy=\"-414\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"498.73\" y=\"-410.3\" font-family=\"Lato\" font-size=\"14.00\">7#1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;9 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>4&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M391.73,-414C415.59,-414 451.18,-414 477.13,-414\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"484.17,-414 477.17,-417.15 480.67,-414 477.17,-414 477.17,-414 477.17,-414 480.67,-414 477.17,-410.85 484.17,-414 484.17,-414\"/>\n",
"<text text-anchor=\"start\" x=\"409.58\" y=\"-432.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"430.08\" y=\"-417.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1370.36,-565.86C1363.39,-568.65 1355.52,-571.38 1348.06,-573 1270.93,-589.77 1166.63,-592.88 1133.06,-582 990,-535.62 862.99,-396.12 818.08,-342.4\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"813.5,-336.88 820.39,-340.26 815.73,-339.58 817.97,-342.27 817.97,-342.27 817.97,-342.27 815.73,-339.58 815.54,-344.28 813.5,-336.88 813.5,-336.88\"/>\n",
"<text text-anchor=\"start\" x=\"1061.91\" y=\"-593.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1080.41\" y=\"-578.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1366.2,-558.03C1318.76,-560.9 1214.36,-562.96 1133.06,-534 1058.87,-507.57 1037.09,-494.58 986.77,-434 968.43,-411.93 956.44,-380.96 949.75,-359.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"947.68,-352.7 952.71,-358.49 948.69,-356.05 949.7,-359.4 949.7,-359.4 949.7,-359.4 948.69,-356.05 946.68,-360.31 947.68,-352.7 947.68,-352.7\"/>\n",
"<text text-anchor=\"start\" x=\"1137.06\" y=\"-566.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1153.56\" y=\"-551.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1691.14\" cy=\"-484\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1674.14\" y=\"-480.3\" font-family=\"Lato\" font-size=\"14.00\">5#11</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;10 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>5&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1419.19,-558.02C1465.49,-560.65 1565.59,-561.5 1640.65,-528 1652.3,-522.8 1663.15,-513.84 1671.7,-505.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1676.72,-500.18 1674.11,-507.4 1674.28,-502.69 1671.85,-505.21 1671.85,-505.21 1671.85,-505.21 1674.28,-502.69 1669.59,-503.01 1676.72,-500.18 1676.72,-500.18\"/>\n",
"<text text-anchor=\"start\" x=\"1512.5\" y=\"-575.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1531\" y=\"-560.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>11</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1539\" cy=\"-454\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1526.5\" y=\"-450.3\" font-family=\"Lato\" font-size=\"14.00\">8#5</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;11 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>5&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1406.96,-540.72C1415.18,-531.75 1426.27,-520.53 1437.35,-512 1460.28,-494.35 1489.12,-478.27 1510.04,-467.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1516.54,-464.25 1511.72,-470.22 1513.42,-465.83 1510.3,-467.41 1510.3,-467.41 1510.3,-467.41 1513.42,-465.83 1508.87,-464.6 1516.54,-464.25 1516.54,-464.25\"/>\n",
"<text text-anchor=\"start\" x=\"1437.35\" y=\"-530.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1457.85\" y=\"-515.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2146.01,-228.19C2133.39,-180.41 2091.55,-53 2004.13,-53 941.12,-53 941.12,-53 941.12,-53 832.14,-53 807.65,-229.08 802.29,-295.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"801.75,-303 799.13,-295.78 802.01,-299.51 802.27,-296.02 802.27,-296.02 802.27,-296.02 802.01,-299.51 805.41,-296.25 801.75,-303 801.75,-303\"/>\n",
"<text text-anchor=\"start\" x=\"1439.35\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1457.85\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2134,-231.97C2108.25,-211.28 2055.75,-175 2004.13,-175 1769.14,-175 1769.14,-175 1769.14,-175 1569.53,-175 1520.17,-197 1320.56,-197 1087.41,-197 1087.41,-197 1087.41,-197 1037.27,-197 1022.15,-212.47 986.77,-248 969.24,-265.59 957.45,-291.66 950.59,-310.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"948.28,-317.32 947.6,-309.68 949.43,-314.02 950.58,-310.71 950.58,-310.71 950.58,-310.71 949.43,-314.02 953.55,-311.74 948.28,-317.32 948.28,-317.32\"/>\n",
"<text text-anchor=\"start\" x=\"1512.5\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1531\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2142.16,-229.08C2134.63,-214.91 2122.25,-194.97 2106.63,-182 2068.35,-150.22 2053.88,-137 2004.13,-137 1611.15,-137 1611.15,-137 1611.15,-137 1091.84,-137 1019.17,-173.42 986.77,-200 953.97,-226.9 945.55,-278.69 943.54,-309.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"943.18,-316.76 940.4,-309.6 943.36,-313.26 943.54,-309.77 943.54,-309.77 943.54,-309.77 943.36,-313.26 946.69,-309.93 943.18,-316.76 943.18,-316.76\"/>\n",
"<text text-anchor=\"start\" x=\"1514.5\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1531\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2139.08,-262.29C2136.14,-272.39 2140.2,-282 2151.28,-282 2159.58,-282 2163.95,-276.59 2164.37,-269.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2163.48,-262.29 2167.45,-268.86 2163.9,-265.76 2164.32,-269.24 2164.32,-269.24 2164.32,-269.24 2163.9,-265.76 2161.19,-269.62 2163.48,-262.29 2163.48,-262.29\"/>\n",
"<text text-anchor=\"start\" x=\"2122.78\" y=\"-300.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"2143.28\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;6 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>7&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1877.45,-293.02C1884.62,-290.86 1892.37,-288.69 1899.63,-287 1977.05,-269.02 2069.7,-256.03 2117.76,-249.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2124.8,-249.04 2118.25,-253.04 2121.33,-249.47 2117.86,-249.91 2117.86,-249.91 2117.86,-249.91 2121.33,-249.47 2117.46,-246.79 2124.8,-249.04 2124.8,-249.04\"/>\n",
"<text text-anchor=\"start\" x=\"1976.63\" y=\"-290.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1995.13\" y=\"-275.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1835.78,-318.66C1832.81,-328.62 1837.26,-338 1849.14,-338 1858.04,-338 1862.77,-332.73 1863.33,-325.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1862.5,-318.66 1866.43,-325.26 1862.9,-322.14 1863.3,-325.62 1863.3,-325.62 1863.3,-325.62 1862.9,-322.14 1860.17,-325.98 1862.5,-318.66 1862.5,-318.66\"/>\n",
"<text text-anchor=\"start\" x=\"1822.64\" y=\"-356.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1841.14\" y=\"-341.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;8 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>7&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1818.1,-308.03C1763.15,-318.51 1642.64,-339 1540,-339 1239.56,-339 1239.56,-339 1239.56,-339 1197.85,-339 1150.49,-348.5 1120.31,-355.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1113.39,-357.5 1119.44,-352.76 1116.79,-356.66 1120.19,-355.82 1120.19,-355.82 1120.19,-355.82 1116.79,-356.66 1120.94,-358.88 1113.39,-357.5 1113.39,-357.5\"/>\n",
"<text text-anchor=\"start\" x=\"1437.35\" y=\"-357.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1457.85\" y=\"-342.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>12</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"2003.13\" cy=\"-355\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1986.13\" y=\"-351.3\" font-family=\"Lato\" font-size=\"14.00\">5#13</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;12 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>7&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1869.51,-316.34C1878.32,-322.26 1889.11,-328.73 1899.63,-333 1920.21,-341.35 1944.46,-346.74 1964.2,-350.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1971.26,-351.24 1963.84,-353.22 1967.8,-350.68 1964.35,-350.11 1964.35,-350.11 1964.35,-350.11 1967.8,-350.68 1964.85,-347 1971.26,-351.24 1971.26,-351.24\"/>\n",
"<text text-anchor=\"start\" x=\"1901.63\" y=\"-365.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1918.13\" y=\"-350.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;3 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>8&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1075.15,-347.99C1067.28,-339.08 1056.22,-328.84 1043.77,-324 1021.05,-315.17 993.42,-319.13 972.86,-324.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"965.9,-326.6 971.76,-321.65 969.26,-325.64 972.63,-324.68 972.63,-324.68 972.63,-324.68 969.26,-325.64 973.49,-327.71 965.9,-326.6 965.9,-326.6\"/>\n",
"<text text-anchor=\"start\" x=\"990.77\" y=\"-342.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1007.27\" y=\"-327.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;6 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>8&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1107.24,-350.96C1114.83,-346.07 1124.01,-340.98 1133.06,-338 1328.33,-273.75 1848.37,-258.19 2053.63,-247 2074.78,-245.85 2098.57,-245.59 2117.26,-245.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2124.41,-245.65 2117.4,-248.77 2120.91,-245.64 2117.41,-245.62 2117.41,-245.62 2117.41,-245.62 2120.91,-245.64 2117.43,-242.47 2124.41,-245.65 2124.41,-245.65\"/>\n",
"<text text-anchor=\"start\" x=\"1585.65\" y=\"-290.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1604.15\" y=\"-275.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;11 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>8&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1114.66,-367.38C1135.03,-370.14 1164.41,-374.19 1190.06,-378 1260.38,-388.45 1278.52,-388.21 1348.06,-403 1404.88,-415.09 1470.08,-433.64 1507.42,-444.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1514.5,-446.83 1506.89,-447.85 1511.15,-445.83 1507.79,-444.83 1507.79,-444.83 1507.79,-444.83 1511.15,-445.83 1508.69,-441.81 1514.5,-446.83 1514.5,-446.83\"/>\n",
"<text text-anchor=\"start\" x=\"1291.06\" y=\"-421.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1311.56\" y=\"-406.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>13</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1240.56\" cy=\"-424\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1223.56\" y=\"-420.3\" font-family=\"Lato\" font-size=\"14.00\">3#14</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;13 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>8&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1113.4,-370.93C1134.04,-377.18 1164.46,-387.03 1190.06,-398 1196.89,-400.92 1204.05,-404.42 1210.75,-407.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1217.25,-411.33 1209.59,-410.84 1214.16,-409.69 1211.06,-408.06 1211.06,-408.06 1211.06,-408.06 1214.16,-409.69 1212.53,-405.27 1217.25,-411.33 1217.25,-411.33\"/>\n",
"<text text-anchor=\"start\" x=\"1135.06\" y=\"-416.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1153.56\" y=\"-401.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;2 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>9&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M533.78,-404.02C540.76,-400.95 548.59,-397.67 555.88,-395 642.73,-363.15 666.84,-362.46 755.18,-335 759.46,-333.67 763.98,-332.24 768.42,-330.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"775.29,-328.63 769.58,-333.77 771.96,-329.7 768.62,-330.76 768.62,-330.76 768.62,-330.76 771.96,-329.7 767.66,-327.76 775.29,-328.63 775.29,-328.63\"/>\n",
"<text text-anchor=\"start\" x=\"631.03\" y=\"-387.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"649.53\" y=\"-372.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;5 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>9&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M522.02,-430.64C529.94,-443 542.01,-459.61 555.88,-471 584.6,-494.6 595.89,-495.46 630.88,-508 816.03,-574.39 866.37,-586.41 1061.77,-609 1188.41,-623.64 1230.51,-640.37 1348.06,-591 1356.59,-587.41 1364.82,-581.65 1371.79,-575.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1377.33,-570.96 1374.15,-577.94 1374.7,-573.27 1372.07,-575.58 1372.07,-575.58 1372.07,-575.58 1374.7,-573.27 1369.99,-573.21 1377.33,-570.96 1377.33,-570.96\"/>\n",
"<text text-anchor=\"start\" x=\"917.62\" y=\"-615.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"934.12\" y=\"-600.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;9 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>9&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M498.68,-430.29C495.66,-440.39 499.84,-450 511.23,-450 519.78,-450 524.26,-444.59 524.7,-437.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"523.78,-430.29 527.77,-436.85 524.21,-433.76 524.65,-437.24 524.65,-437.24 524.65,-437.24 524.21,-433.76 521.52,-437.63 523.78,-430.29 523.78,-430.29\"/>\n",
"<text text-anchor=\"start\" x=\"482.73\" y=\"-468.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"503.23\" y=\"-453.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>14</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"657.53\" cy=\"-433\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"645.03\" y=\"-429.3\" font-family=\"Lato\" font-size=\"14.00\">9#9</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;14 -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>9&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M535.53,-406.22C556.26,-400.51 587.2,-395.02 612.88,-403 620.68,-405.42 628.32,-409.77 634.97,-414.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"640.78,-418.73 633.28,-417.09 637.97,-416.65 635.16,-414.56 635.16,-414.56 635.16,-414.56 637.97,-416.65 637.04,-412.03 640.78,-418.73 640.78,-418.73\"/>\n",
"<text text-anchor=\"start\" x=\"557.88\" y=\"-421.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"576.38\" y=\"-406.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;6 -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>10&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1723.74,-485.84C1787.05,-488.14 1932.22,-486.25 2035.63,-430 2097.98,-396.08 2130.69,-312.28 2143.58,-270.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2145.63,-263.69 2146.63,-271.3 2144.62,-267.04 2143.62,-270.39 2143.62,-270.39 2143.62,-270.39 2144.62,-267.04 2140.6,-269.49 2145.63,-263.69 2145.63,-263.69\"/>\n",
"<text text-anchor=\"start\" x=\"1899.63\" y=\"-492.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1918.13\" y=\"-477.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;7 -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>10&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1694.06,-465.67C1698,-436.96 1709.52,-381.25 1741.64,-348 1760.62,-328.35 1773.58,-335.87 1798.64,-325 1804.77,-322.34 1811.28,-319.4 1817.49,-316.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1824.08,-313.48 1819.06,-319.28 1820.91,-314.95 1817.73,-316.43 1817.73,-316.43 1817.73,-316.43 1820.91,-314.95 1816.41,-313.57 1824.08,-313.48 1824.08,-313.48\"/>\n",
"<text text-anchor=\"start\" x=\"1745.64\" y=\"-366.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1762.14\" y=\"-351.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;10 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>10&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1677.43,-500.66C1674.39,-510.62 1678.96,-520 1691.14,-520 1700.28,-520 1705.14,-514.73 1705.71,-507.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1704.85,-500.66 1708.81,-507.24 1705.27,-504.14 1705.68,-507.62 1705.68,-507.62 1705.68,-507.62 1705.27,-504.14 1702.55,-507.99 1704.85,-500.66 1704.85,-500.66\"/>\n",
"<text text-anchor=\"start\" x=\"1664.64\" y=\"-538.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1683.14\" y=\"-523.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;11 -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>10&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1661.27,-491.11C1639.35,-495.15 1608.79,-497.84 1583.65,-489 1574.77,-485.88 1566.36,-480.11 1559.34,-474.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1553.78,-469.14 1561.09,-471.48 1556.38,-471.48 1558.98,-473.82 1558.98,-473.82 1558.98,-473.82 1556.38,-471.48 1556.87,-476.16 1553.78,-469.14 1553.78,-469.14\"/>\n",
"<text text-anchor=\"start\" x=\"1583.65\" y=\"-512.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1604.15\" y=\"-497.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;6 -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>11&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1546.47,-471.44C1553.39,-487.98 1565.85,-512.55 1583.65,-528 1610.88,-551.64 1623.27,-551.98 1658.65,-559 1788.72,-584.82 1829.73,-557.81 1952.63,-508 2029.87,-476.69 2060.35,-470.31 2106.63,-401 2133.5,-360.75 2143.99,-304.05 2147.96,-271.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2148.8,-264.24 2151.14,-271.55 2148.4,-267.71 2148.01,-271.19 2148.01,-271.19 2148.01,-271.19 2148.4,-267.71 2144.88,-270.83 2148.8,-264.24 2148.8,-264.24\"/>\n",
"<text text-anchor=\"start\" x=\"1822.64\" y=\"-577.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1841.14\" y=\"-562.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;10 -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>11&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1565.31,-450.7C1585.98,-448.85 1615.72,-448.1 1640.65,-455 1649.04,-457.32 1657.48,-461.45 1664.96,-465.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1670.98,-469.62 1663.38,-468.59 1668.01,-467.77 1665.04,-465.92 1665.04,-465.92 1665.04,-465.92 1668.01,-467.77 1666.7,-463.25 1670.98,-469.62 1670.98,-469.62\"/>\n",
"<text text-anchor=\"start\" x=\"1585.65\" y=\"-473.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1604.15\" y=\"-458.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;11 -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>11&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1526.45,-470.29C1523.43,-480.39 1527.61,-490 1539,-490 1547.54,-490 1552.03,-484.59 1552.46,-477.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1551.55,-470.29 1555.54,-476.85 1551.98,-473.76 1552.41,-477.24 1552.41,-477.24 1552.41,-477.24 1551.98,-473.76 1549.29,-477.63 1551.55,-470.29 1551.55,-470.29\"/>\n",
"<text text-anchor=\"start\" x=\"1510.5\" y=\"-508.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1531\" y=\"-493.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;12 -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>11&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1552.43,-438.39C1560.36,-429.62 1571.42,-419.39 1583.65,-414 1734.29,-347.54 1794.69,-427.52 1952.63,-381 1960.19,-378.77 1967.93,-375.35 1974.98,-371.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1981.23,-368.32 1976.57,-374.42 1978.15,-369.99 1975.07,-371.65 1975.07,-371.65 1975.07,-371.65 1978.15,-369.99 1973.57,-368.88 1981.23,-368.32 1981.23,-368.32\"/>\n",
"<text text-anchor=\"start\" x=\"1745.64\" y=\"-411.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1762.14\" y=\"-396.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;6 -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>12&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2024.55,-341.46C2045.53,-327.36 2078.92,-304.4 2106.63,-283 2114,-277.31 2121.82,-270.82 2128.78,-264.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2134.4,-260.06 2131.14,-267.01 2131.74,-262.34 2129.09,-264.63 2129.09,-264.63 2129.09,-264.63 2131.74,-262.34 2127.03,-262.24 2134.4,-260.06 2134.4,-260.06\"/>\n",
"<text text-anchor=\"start\" x=\"2053.63\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"2072.13\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;7 -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>12&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1992.48,-337.72C1983.95,-324.38 1970.14,-306.89 1952.63,-299 1931.87,-289.64 1906.27,-290.39 1885.84,-293.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1878.85,-294.65 1885.23,-290.38 1882.3,-294.07 1885.76,-293.49 1885.76,-293.49 1885.76,-293.49 1882.3,-294.07 1886.28,-296.59 1878.85,-294.65 1878.85,-294.65\"/>\n",
"<text text-anchor=\"start\" x=\"1901.63\" y=\"-317.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1918.13\" y=\"-302.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;11 -->\n",
"<g id=\"edge53\" class=\"edge\">\n",
"<title>12&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1988.64,-371.25C1979.52,-381.14 1966.61,-393.15 1952.63,-400 1804.28,-472.71 1747.16,-421.38 1583.65,-445 1579.62,-445.58 1575.41,-446.3 1571.26,-447.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1564.38,-448.44 1570.64,-443.99 1567.81,-447.76 1571.25,-447.09 1571.25,-447.09 1571.25,-447.09 1567.81,-447.76 1571.85,-450.18 1564.38,-448.44 1564.38,-448.44\"/>\n",
"<text text-anchor=\"start\" x=\"1741.64\" y=\"-458.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1762.14\" y=\"-443.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;12 -->\n",
"<g id=\"edge52\" class=\"edge\">\n",
"<title>12&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1989.77,-371.66C1986.8,-381.62 1991.26,-391 2003.13,-391 2012.04,-391 2016.77,-385.73 2017.33,-378.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2016.49,-371.66 2020.42,-378.26 2016.89,-375.14 2017.29,-378.62 2017.29,-378.62 2017.29,-378.62 2016.89,-375.14 2014.17,-378.98 2016.49,-371.66 2016.49,-371.66\"/>\n",
"<text text-anchor=\"start\" x=\"1976.63\" y=\"-409.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1995.13\" y=\"-394.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;5 -->\n",
"<g id=\"edge56\" class=\"edge\">\n",
"<title>13&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1260.69,-438.59C1269.62,-445.02 1280.58,-452.38 1291.06,-458 1315.12,-470.92 1327.4,-463.12 1348.06,-481 1363.9,-494.72 1375.41,-515.68 1382.63,-531.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1385.45,-538.61 1379.82,-533.4 1384.08,-535.39 1382.72,-532.17 1382.72,-532.17 1382.72,-532.17 1384.08,-535.39 1385.61,-530.94 1385.45,-538.61 1385.45,-538.61\"/>\n",
"<text text-anchor=\"start\" x=\"1295.06\" y=\"-499.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1311.56\" y=\"-484.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;6 -->\n",
"<g id=\"edge54\" class=\"edge\">\n",
"<title>13&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1272,-429.55C1338.37,-441.72 1490.48,-469.96 1494.35,-474 1530.75,-511.99 1474.69,-554.26 1512.35,-591 1594.72,-671.35 1654.07,-624 1769.14,-624 1769.14,-624 1769.14,-624 2004.13,-624 2080.03,-624 2131.79,-355.55 2146.2,-271.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2147.4,-263.98 2149.35,-271.4 2146.82,-267.43 2146.24,-270.88 2146.24,-270.88 2146.24,-270.88 2146.82,-267.43 2143.13,-270.36 2147.4,-263.98 2147.4,-263.98\"/>\n",
"<text text-anchor=\"start\" x=\"1664.64\" y=\"-652.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1683.14\" y=\"-637.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;8 -->\n",
"<g id=\"edge57\" class=\"edge\">\n",
"<title>13&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1211.62,-432.37C1189.08,-437.46 1157.27,-440.79 1133.06,-428 1117.08,-419.55 1105.85,-402.33 1098.78,-387.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1095.83,-381.48 1101.62,-386.51 1097.29,-384.66 1098.76,-387.83 1098.76,-387.83 1098.76,-387.83 1097.29,-384.66 1095.9,-389.15 1095.83,-381.48 1095.83,-381.48\"/>\n",
"<text text-anchor=\"start\" x=\"1133.06\" y=\"-454.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1153.56\" y=\"-439.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;13 -->\n",
"<g id=\"edge55\" class=\"edge\">\n",
"<title>13&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1226.85,-440.66C1223.8,-450.62 1228.37,-460 1240.56,-460 1249.7,-460 1254.55,-454.73 1255.13,-447.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1254.27,-440.66 1258.22,-447.24 1254.68,-444.14 1255.09,-447.62 1255.09,-447.62 1255.09,-447.62 1254.68,-444.14 1251.97,-447.99 1254.27,-440.66 1254.27,-440.66\"/>\n",
"<text text-anchor=\"start\" x=\"1214.06\" y=\"-478.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1232.56\" y=\"-463.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;2 -->\n",
"<g id=\"edge58\" class=\"edge\">\n",
"<title>14&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M681,-424.34C701.79,-415.58 732.78,-400.55 755.18,-381 767.24,-370.47 777.88,-356.01 785.63,-343.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"789.42,-337.86 788.39,-345.47 787.57,-340.83 785.72,-343.8 785.72,-343.8 785.72,-343.8 787.57,-340.83 783.04,-342.14 789.42,-337.86 789.42,-337.86\"/>\n",
"<text text-anchor=\"start\" x=\"702.18\" y=\"-432.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"720.68\" y=\"-417.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;3 -->\n",
"<g id=\"edge59\" class=\"edge\">\n",
"<title>14&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M680.81,-442.24C687.56,-444.61 695.06,-446.81 702.18,-448 725.41,-451.88 732.45,-454.21 755.18,-448 821.04,-430.01 886.59,-381.09 919.44,-353.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"925.18,-349.07 921.84,-355.98 922.5,-351.32 919.82,-353.57 919.82,-353.57 919.82,-353.57 922.5,-351.32 917.79,-351.15 925.18,-349.07 925.18,-349.07\"/>\n",
"<text text-anchor=\"start\" x=\"775.32\" y=\"-460.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"791.82\" y=\"-445.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;9 -->\n",
"<g id=\"edge60\" class=\"edge\">\n",
"<title>14&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M631,-435.85C610.48,-437.46 581.03,-438.24 555.88,-433 550.3,-431.84 544.57,-429.93 539.16,-427.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"532.53,-424.89 540.2,-424.77 535.74,-426.28 538.96,-427.66 538.96,-427.66 538.96,-427.66 535.74,-426.28 537.71,-430.56 532.53,-424.89 532.53,-424.89\"/>\n",
"<text text-anchor=\"start\" x=\"555.88\" y=\"-455.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"576.38\" y=\"-440.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;14 -->\n",
"<g id=\"edge61\" class=\"edge\">\n",
"<title>14&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M645.33,-449.29C642.39,-459.39 646.45,-469 657.53,-469 665.83,-469 670.2,-463.59 670.62,-456.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"669.73,-449.29 673.7,-455.86 670.15,-452.76 670.57,-456.24 670.57,-456.24 670.57,-456.24 670.15,-452.76 667.44,-456.62 669.73,-449.29 669.73,-449.29\"/>\n",
"<text text-anchor=\"start\" x=\"631.03\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"649.53\" y=\"-472.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c49328840> >"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p3 = spot.acd_transform(a3, True)\n",
"p3.copy_state_names_from(a3)\n",
"p3"
]
},
{
"cell_type": "markdown",
"id": "f039aeaa",
"metadata": {},
"source": [
"Note how the cycles `2#4 → 3#4 → 2#4` and `2#4 → 3#12 → 2#8 → 3#4 → 2#4` corresponds to the two cycles stepped though before."
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "numerical-education",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a3.equivalent_to(p3)"
]
},
{
"cell_type": "markdown",
"id": "07aaab3a",
"metadata": {},
"source": [
"By default, the construction will try to save colors by not emitting colors between SCCs, and not emitting colors for the largest level of an SCC when the parity allows it. So this automaton can actually be paritized with two colors:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "3e239a0c",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"245pt\"\n",
" viewBox=\"0.00 0.00 729.00 245.25\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.3333333333333333 0.3333333333333333) rotate(0) translate(4 732)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-732 2183.78,-732 2183.78,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"1039.39\" y=\"-713.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"1062.39\" y=\"-713.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"1078.39\" y=\"-713.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"1120.39\" y=\"-713.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1136.39\" y=\"-713.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"1062.39\" y=\"-699.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"64.65\" cy=\"-521\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"52.15\" y=\"-517.3\" font-family=\"Lato\" font-size=\"14.00\">0#3</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.05,-521C1.94,-521 16.02,-521 30.59,-521\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.73,-521 30.73,-524.15 34.23,-521 30.73,-521 30.73,-521 30.73,-521 34.23,-521 30.73,-517.85 37.73,-521 37.73,-521\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.79,-538.41C55.33,-548.09 57.94,-557 64.65,-557 69.57,-557 72.29,-552.19 72.81,-545.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.5,-538.41 75.94,-545.27 72.65,-541.91 72.79,-545.4 72.79,-545.4 72.79,-545.4 72.65,-541.91 69.64,-545.53 72.5,-538.41 72.5,-538.41\"/>\n",
"<text text-anchor=\"start\" x=\"36.15\" y=\"-575.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"56.65\" y=\"-560.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"212.79\" cy=\"-521\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"195.79\" y=\"-517.3\" font-family=\"Lato\" font-size=\"14.00\">1#10</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M91.44,-521C114.06,-521 147.27,-521 173.08,-521\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"180.15,-521 173.15,-524.15 176.65,-521 173.15,-521 173.15,-521 173.15,-521 176.65,-521 173.15,-517.85 180.15,-521 180.15,-521\"/>\n",
"<text text-anchor=\"start\" x=\"109.3\" y=\"-524.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"799.82\" cy=\"-344\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"787.32\" y=\"-340.3\" font-family=\"Lato\" font-size=\"14.00\">2#4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M67.39,-502.8C74.05,-444.79 103.24,-268 211.79,-268 211.79,-268 211.79,-268 658.53,-268 683.24,-268 741.64,-304.91 774.77,-327.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"780.65,-331.28 773.09,-329.95 777.76,-329.31 774.86,-327.34 774.86,-327.34 774.86,-327.34 777.76,-329.31 776.64,-324.74 780.65,-331.28 780.65,-331.28\"/>\n",
"<text text-anchor=\"start\" x=\"411.58\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"942.12\" cy=\"-364\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"929.62\" y=\"-360.3\" font-family=\"Lato\" font-size=\"14.00\">3#4</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.69,-537.73C94.57,-572.01 145.63,-647 211.79,-647 211.79,-647 211.79,-647 585.38,-647 752.05,-647 885.83,-454.41 927.55,-386.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"931.3,-380.86 930.33,-388.47 929.48,-383.84 927.65,-386.83 927.65,-386.83 927.65,-386.83 929.48,-383.84 924.96,-385.18 931.3,-380.86 931.3,-380.86\"/>\n",
"<text text-anchor=\"start\" x=\"486.73\" y=\"-650.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M199.43,-537.66C196.46,-547.62 200.92,-557 212.79,-557 221.7,-557 226.43,-551.73 226.99,-544.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"226.15,-537.66 230.08,-544.26 226.55,-541.14 226.96,-544.62 226.96,-544.62 226.96,-544.62 226.55,-541.14 223.83,-544.98 226.15,-537.66 226.15,-537.66\"/>\n",
"<text text-anchor=\"start\" x=\"186.29\" y=\"-560.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.41,-528.47C249.2,-529.94 256.46,-531.25 263.29,-532 288.47,-534.76 294.97,-532.87 320.29,-532 482.3,-526.44 532.93,-565.35 684.18,-507 721.67,-492.53 731.01,-483.11 755.18,-451 774.01,-425.98 786.1,-391.68 792.67,-368.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"794.62,-361.7 795.79,-369.29 793.68,-365.08 792.75,-368.45 792.75,-368.45 792.75,-368.45 793.68,-365.08 789.72,-367.61 794.62,-361.7 794.62,-361.7\"/>\n",
"<text text-anchor=\"start\" x=\"484.73\" y=\"-542.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"364.94\" cy=\"-433\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"352.44\" y=\"-429.3\" font-family=\"Lato\" font-size=\"14.00\">4#2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M240.25,-510.99C262.47,-502.02 294.62,-487.73 320.29,-471 328.47,-465.67 336.74,-458.9 343.84,-452.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.02,-447.83 345.97,-454.88 346.44,-450.19 343.85,-452.55 343.85,-452.55 343.85,-452.55 346.44,-450.19 341.73,-450.23 349.02,-447.83 349.02,-447.83\"/>\n",
"<text text-anchor=\"start\" x=\"263.29\" y=\"-518.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"283.79\" y=\"-503.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1392.7\" cy=\"-556\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1380.2\" y=\"-552.3\" font-family=\"Lato\" font-size=\"14.00\">5#4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M235.95,-533.64C244.32,-538.02 254.05,-542.67 263.29,-546 295.81,-557.74 835.39,-685 869.97,-685 869.97,-685 869.97,-685 1241.56,-685 1305.88,-685 1356.41,-616.04 1378.93,-578.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1382.55,-572.86 1381.68,-580.49 1380.76,-575.87 1378.98,-578.88 1378.98,-578.88 1378.98,-578.88 1380.76,-575.87 1376.27,-577.27 1382.55,-572.86 1382.55,-572.86\"/>\n",
"<text text-anchor=\"start\" x=\"775.32\" y=\"-680.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M787.62,-360.29C784.68,-370.39 788.75,-380 799.82,-380 808.13,-380 812.49,-374.59 812.91,-367.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"812.02,-360.29 815.99,-366.86 812.44,-363.76 812.87,-367.24 812.87,-367.24 812.87,-367.24 812.44,-363.76 809.74,-367.62 812.02,-360.29 812.02,-360.29\"/>\n",
"<text text-anchor=\"start\" x=\"773.32\" y=\"-398.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"791.82\" y=\"-383.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M823.26,-334.93C843.21,-328.22 872.94,-321.57 897.47,-330 906.13,-332.97 914.39,-338.45 921.35,-344.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"926.87,-348.93 919.52,-346.73 924.23,-346.64 921.58,-344.35 921.58,-344.35 921.58,-344.35 924.23,-346.64 923.65,-341.97 926.87,-348.93 926.87,-348.93\"/>\n",
"<text text-anchor=\"start\" x=\"846.47\" y=\"-348.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"862.97\" y=\"-333.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"2151.28\" cy=\"-246\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"2138.78\" y=\"-242.3\" font-family=\"Lato\" font-size=\"14.00\">2#8</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M801.11,-325.7C802.39,-266.91 809.17,-84.05 844.47,-39 873.04,-2.54 894.8,0 941.12,0 941.12,0 941.12,0 2004.13,0 2052.87,0 2074.95,-1.96 2106.63,-39 2129.9,-66.21 2143.04,-172.06 2147.99,-220.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2148.68,-228.03 2144.86,-221.38 2148.34,-224.55 2148,-221.07 2148,-221.07 2148,-221.07 2148.34,-224.55 2151.13,-220.76 2148.68,-228.03 2148.68,-228.03\"/>\n",
"<text text-anchor=\"start\" x=\"1437.35\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1457.85\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1849.14\" cy=\"-302\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1832.14\" y=\"-298.3\" font-family=\"Lato\" font-size=\"14.00\">3#12</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;7 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M809.49,-327.03C832.06,-284.88 897.16,-175.42 986.77,-129 1107.43,-66.49 1155.32,-105.67 1291.06,-99 1413.16,-93 1449.96,-75.49 1565.65,-115 1674.27,-152.09 1781.44,-241.3 1826.26,-281.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1831.66,-286.51 1824.36,-284.15 1829.07,-284.16 1826.47,-281.81 1826.47,-281.81 1826.47,-281.81 1829.07,-284.16 1828.59,-279.48 1831.66,-286.51 1831.66,-286.51\"/>\n",
"<text text-anchor=\"start\" x=\"1293.06\" y=\"-117.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1311.56\" y=\"-102.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M915.43,-365.08C895.8,-365.39 868.19,-364.72 844.47,-360 839.46,-359 834.27,-357.52 829.28,-355.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"822.64,-353.5 830.3,-352.88 825.94,-354.67 829.24,-355.85 829.24,-355.85 829.24,-355.85 825.94,-354.67 828.19,-358.81 822.64,-353.5 822.64,-353.5\"/>\n",
"<text text-anchor=\"start\" x=\"844.47\" y=\"-383.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"862.97\" y=\"-368.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M954.62,-380.23C962.67,-390.67 974.2,-403.94 986.77,-413 1125.05,-512.74 1185.38,-490.94 1348.06,-542 1352.34,-543.34 1356.86,-544.78 1361.3,-546.19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1368.16,-548.39 1360.53,-549.26 1364.83,-547.32 1361.49,-546.26 1361.49,-546.26 1361.49,-546.26 1364.83,-547.32 1362.45,-543.26 1368.16,-548.39 1368.16,-548.39\"/>\n",
"<text text-anchor=\"start\" x=\"1137.06\" y=\"-520.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1153.56\" y=\"-505.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M952.62,-347.18C972.79,-313.93 1023.33,-243 1087.41,-243 1087.41,-243 1087.41,-243 1320.56,-243 1505.9,-243 1725.61,-279.41 1811.32,-295.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1818.23,-296.29 1810.78,-298.13 1814.79,-295.66 1811.34,-295.03 1811.34,-295.03 1811.34,-295.03 1814.79,-295.66 1811.91,-291.93 1818.23,-296.29 1818.23,-296.29\"/>\n",
"<text text-anchor=\"start\" x=\"1366.2\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1384.7\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1088.41\" cy=\"-364\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1075.91\" y=\"-360.3\" font-family=\"Lato\" font-size=\"14.00\">6#7</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;8 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>3&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M965.94,-372.15C972.57,-374.15 979.88,-376 986.77,-377 1011.83,-380.65 1018.7,-380.65 1043.77,-377 1048.28,-376.34 1052.99,-375.32 1057.56,-374.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1064.59,-372.15 1058.7,-377.08 1061.22,-373.1 1057.85,-374.05 1057.85,-374.05 1057.85,-374.05 1061.22,-373.1 1057,-371.01 1064.59,-372.15 1064.59,-372.15\"/>\n",
"<text text-anchor=\"start\" x=\"986.77\" y=\"-397.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1007.27\" y=\"-382.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M339.32,-427.75C317.72,-424.52 286.25,-423.27 263.29,-437 241.46,-450.06 228.2,-476.73 220.97,-496.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"218.67,-503.22 217.97,-495.58 219.81,-499.91 220.95,-496.6 220.95,-496.6 220.95,-496.6 219.81,-499.91 223.93,-497.63 218.67,-503.22 218.67,-503.22\"/>\n",
"<text text-anchor=\"start\" x=\"265.29\" y=\"-455.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"283.79\" y=\"-440.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M389.06,-425.14C424.55,-413.34 494.78,-391.05 555.88,-378 630.2,-362.12 718.96,-351.86 765.91,-347.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"773.08,-346.38 766.43,-350.21 769.6,-346.73 766.11,-347.08 766.11,-347.08 766.11,-347.08 769.6,-346.73 765.8,-343.94 773.08,-346.38 773.08,-346.38\"/>\n",
"<text text-anchor=\"start\" x=\"557.88\" y=\"-381.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.54,-418.26C388.53,-410.94 398.94,-402.5 409.58,-397 556.56,-321 608.12,-328.54 773.18,-317 828.33,-313.14 846.95,-299.55 897.47,-322 907.78,-326.58 917.11,-334.7 924.47,-342.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"929.25,-347.95 922.24,-344.81 926.92,-345.34 924.6,-342.72 924.6,-342.72 924.6,-342.72 926.92,-345.34 926.95,-340.63 929.25,-347.95 929.25,-347.95\"/>\n",
"<text text-anchor=\"start\" x=\"633.03\" y=\"-329.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"511.23\" cy=\"-433\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"498.73\" y=\"-429.3\" font-family=\"Lato\" font-size=\"14.00\">7#1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;9 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>4&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M391.73,-433C415.59,-433 451.18,-433 477.13,-433\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"484.17,-433 477.17,-436.15 480.67,-433 477.17,-433 477.17,-433 477.17,-433 480.67,-433 477.17,-429.85 484.17,-433 484.17,-433\"/>\n",
"<text text-anchor=\"start\" x=\"409.58\" y=\"-436.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1369.87,-565.43C1363.01,-568.01 1355.33,-570.49 1348.06,-572 1275.92,-586.93 1168.43,-591.22 1133.06,-581 987.38,-538.9 957.33,-500.27 844.47,-399 833.85,-389.47 823.82,-377.16 816.06,-366.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"811.76,-360.62 818.4,-364.47 813.8,-363.47 815.85,-366.31 815.85,-366.31 815.85,-366.31 813.8,-363.47 813.29,-368.15 811.76,-360.62 811.76,-360.62\"/>\n",
"<text text-anchor=\"start\" x=\"1061.91\" y=\"-593.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1080.41\" y=\"-578.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1365.97,-557.63C1318.59,-559.82 1214.88,-560.72 1133.06,-534 1060.72,-510.37 1039.16,-500.2 986.77,-445 971.14,-428.53 959.41,-405.38 952.07,-388.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"949.38,-381.48 954.94,-386.76 950.7,-384.72 952.03,-387.96 952.03,-387.96 952.03,-387.96 950.7,-384.72 949.11,-389.15 949.38,-381.48 949.38,-381.48\"/>\n",
"<text text-anchor=\"start\" x=\"1137.06\" y=\"-565.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1153.56\" y=\"-550.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1691.14\" cy=\"-489\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1674.14\" y=\"-485.3\" font-family=\"Lato\" font-size=\"14.00\">5#11</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;10 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>5&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1419.39,-557.82C1465.61,-560.1 1564.99,-560.48 1640.65,-529 1651.25,-524.59 1661.41,-517.16 1669.74,-509.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1675.19,-504.93 1672.13,-511.97 1672.6,-507.28 1670.01,-509.64 1670.01,-509.64 1670.01,-509.64 1672.6,-507.28 1667.89,-507.31 1675.19,-504.93 1675.19,-504.93\"/>\n",
"<text text-anchor=\"start\" x=\"1512.5\" y=\"-574.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1531\" y=\"-559.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>11</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1539\" cy=\"-454\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1526.5\" y=\"-450.3\" font-family=\"Lato\" font-size=\"14.00\">8#5</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;11 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>5&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1406.96,-540.72C1415.18,-531.75 1426.27,-520.53 1437.35,-512 1460.28,-494.35 1489.12,-478.27 1510.04,-467.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1516.54,-464.25 1511.72,-470.22 1513.42,-465.83 1510.3,-467.41 1510.3,-467.41 1510.3,-467.41 1513.42,-465.83 1508.87,-464.6 1516.54,-464.25 1516.54,-464.25\"/>\n",
"<text text-anchor=\"start\" x=\"1437.35\" y=\"-530.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1457.85\" y=\"-515.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2146.01,-228.19C2133.39,-180.41 2091.55,-53 2004.13,-53 941.12,-53 941.12,-53 941.12,-53 823.69,-53 804.5,-247.65 801.4,-318.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"801.13,-325.8 798.25,-318.68 801.26,-322.3 801.39,-318.8 801.39,-318.8 801.39,-318.8 801.26,-322.3 804.54,-318.92 801.13,-325.8 801.13,-325.8\"/>\n",
"<text text-anchor=\"start\" x=\"1439.35\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1457.85\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2134,-231.97C2108.25,-211.28 2055.75,-175 2004.13,-175 1769.14,-175 1769.14,-175 1769.14,-175 1569.53,-175 1520.17,-197 1320.56,-197 1087.41,-197 1087.41,-197 1087.41,-197 1036.44,-197 1020.42,-213.71 986.77,-252 964.69,-277.11 953.15,-314.65 947.61,-339.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"946.14,-346.11 944.52,-338.6 946.87,-342.68 947.6,-339.26 947.6,-339.26 947.6,-339.26 946.87,-342.68 950.68,-339.92 946.14,-346.11 946.14,-346.11\"/>\n",
"<text text-anchor=\"start\" x=\"1512.5\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1531\" y=\"-192.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2142.16,-229.08C2134.63,-214.91 2122.25,-194.97 2106.63,-182 2068.35,-150.22 2053.88,-137 2004.13,-137 1611.15,-137 1611.15,-137 1611.15,-137 1086.35,-137 1017.49,-173.42 986.77,-200 965.85,-218.09 952.14,-297.84 946.31,-339.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"945.35,-346.08 943.18,-338.72 945.83,-342.61 946.3,-339.15 946.3,-339.15 946.3,-339.15 945.83,-342.61 949.43,-339.58 945.35,-346.08 945.35,-346.08\"/>\n",
"<text text-anchor=\"start\" x=\"1514.5\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1531\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2139.08,-262.29C2136.14,-272.39 2140.2,-282 2151.28,-282 2159.58,-282 2163.95,-276.59 2164.37,-269.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2163.48,-262.29 2167.45,-268.86 2163.9,-265.76 2164.32,-269.24 2164.32,-269.24 2164.32,-269.24 2163.9,-265.76 2161.19,-269.62 2163.48,-262.29 2163.48,-262.29\"/>\n",
"<text text-anchor=\"start\" x=\"2122.78\" y=\"-300.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"2143.28\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;6 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>7&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1877.45,-293.02C1884.62,-290.86 1892.37,-288.69 1899.63,-287 1977.05,-269.02 2069.7,-256.03 2117.76,-249.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2124.8,-249.04 2118.25,-253.04 2121.33,-249.47 2117.86,-249.91 2117.86,-249.91 2117.86,-249.91 2121.33,-249.47 2117.46,-246.79 2124.8,-249.04 2124.8,-249.04\"/>\n",
"<text text-anchor=\"start\" x=\"1976.63\" y=\"-290.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1995.13\" y=\"-275.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1835.78,-318.66C1832.81,-328.62 1837.26,-338 1849.14,-338 1858.04,-338 1862.77,-332.73 1863.33,-325.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1862.5,-318.66 1866.43,-325.26 1862.9,-322.14 1863.3,-325.62 1863.3,-325.62 1863.3,-325.62 1862.9,-322.14 1860.17,-325.98 1862.5,-318.66 1862.5,-318.66\"/>\n",
"<text text-anchor=\"start\" x=\"1822.64\" y=\"-341.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;8 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>7&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1818.1,-308.03C1763.15,-318.51 1642.64,-339 1540,-339 1239.56,-339 1239.56,-339 1239.56,-339 1197.85,-339 1150.49,-348.5 1120.31,-355.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1113.39,-357.5 1119.44,-352.76 1116.79,-356.66 1120.19,-355.82 1120.19,-355.82 1120.19,-355.82 1116.79,-356.66 1120.94,-358.88 1113.39,-357.5 1113.39,-357.5\"/>\n",
"<text text-anchor=\"start\" x=\"1437.35\" y=\"-357.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1457.85\" y=\"-342.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>12</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"2003.13\" cy=\"-355\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1986.13\" y=\"-351.3\" font-family=\"Lato\" font-size=\"14.00\">5#13</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;12 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>7&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1869.51,-316.34C1878.32,-322.26 1889.11,-328.73 1899.63,-333 1920.21,-341.35 1944.46,-346.74 1964.2,-350.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1971.26,-351.24 1963.84,-353.22 1967.8,-350.68 1964.35,-350.11 1964.35,-350.11 1964.35,-350.11 1967.8,-350.68 1964.85,-347 1971.26,-351.24 1971.26,-351.24\"/>\n",
"<text text-anchor=\"start\" x=\"1901.63\" y=\"-365.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1918.13\" y=\"-350.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;3 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>8&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1067.68,-352.19C1060.42,-348.48 1051.96,-344.87 1043.77,-343 1019.07,-337.37 1011.47,-337.37 986.77,-343 980.87,-344.34 974.85,-346.59 969.23,-349.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"962.86,-352.19 967.8,-346.32 966.01,-350.67 969.16,-349.16 969.16,-349.16 969.16,-349.16 966.01,-350.67 970.53,-351.99 962.86,-352.19 962.86,-352.19\"/>\n",
"<text text-anchor=\"start\" x=\"990.77\" y=\"-361.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1007.27\" y=\"-346.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;6 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>8&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1107.24,-350.96C1114.83,-346.06 1124.01,-340.97 1133.06,-338 1328.34,-273.86 1848.44,-260.14 2053.63,-248 2074.78,-246.75 2098.57,-246.25 2117.26,-246.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2124.41,-246 2117.44,-249.21 2120.91,-246.03 2117.41,-246.06 2117.41,-246.06 2117.41,-246.06 2120.91,-246.03 2117.39,-242.91 2124.41,-246 2124.41,-246\"/>\n",
"<text text-anchor=\"start\" x=\"1585.65\" y=\"-291.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1604.15\" y=\"-276.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;11 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>8&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1114.66,-367.42C1135.02,-370.2 1164.4,-374.27 1190.06,-378 1260.35,-388.23 1278.48,-387.72 1348.06,-402 1413.86,-415.51 1429.83,-421.29 1494.35,-440 1498.66,-441.25 1503.2,-442.63 1507.64,-444.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1514.51,-446.2 1506.89,-447.09 1511.18,-445.14 1507.84,-444.08 1507.84,-444.08 1507.84,-444.08 1511.18,-445.14 1508.79,-441.08 1514.51,-446.2 1514.51,-446.2\"/>\n",
"<text text-anchor=\"start\" x=\"1291.06\" y=\"-420.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1311.56\" y=\"-405.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>13</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1240.56\" cy=\"-439\" rx=\"32.49\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"1223.56\" y=\"-435.3\" font-family=\"Lato\" font-size=\"14.00\">3#14</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;13 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>8&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1113.49,-371.02C1138.8,-378.61 1176.77,-390.59 1190.06,-398 1200.04,-403.56 1209.95,-411.24 1218.26,-418.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1223.73,-423.32 1216.41,-421.01 1221.12,-420.99 1218.5,-418.66 1218.5,-418.66 1218.5,-418.66 1221.12,-420.99 1220.6,-416.31 1223.73,-423.32 1223.73,-423.32\"/>\n",
"<text text-anchor=\"start\" x=\"1135.06\" y=\"-416.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1153.56\" y=\"-401.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;2 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>9&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M534.3,-423.97C541.17,-421.28 548.8,-418.41 555.88,-416 643.23,-386.34 666.96,-384.98 755.18,-358 759.47,-356.69 763.99,-355.27 768.43,-353.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"775.3,-351.67 769.59,-356.8 771.97,-352.74 768.63,-353.8 768.63,-353.8 768.63,-353.8 771.97,-352.74 767.68,-350.8 775.3,-351.67 775.3,-351.67\"/>\n",
"<text text-anchor=\"start\" x=\"631.03\" y=\"-395.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;5 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>9&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M520.79,-450.09C528.27,-463.26 540.36,-480.89 555.88,-491 768.7,-629.65 861.22,-617.83 1115.06,-609 1218.9,-605.39 1251.73,-628.93 1348.06,-590 1356.4,-586.63 1364.49,-581.16 1371.39,-575.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1376.88,-570.94 1373.58,-577.87 1374.21,-573.2 1371.55,-575.46 1371.55,-575.46 1371.55,-575.46 1374.21,-573.2 1369.51,-573.06 1376.88,-570.94 1376.88,-570.94\"/>\n",
"<text text-anchor=\"start\" x=\"917.62\" y=\"-616.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;9 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>9&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M498.68,-449.29C495.66,-459.39 499.84,-469 511.23,-469 519.78,-469 524.26,-463.59 524.7,-456.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"523.78,-449.29 527.77,-455.85 524.21,-452.76 524.65,-456.24 524.65,-456.24 524.65,-456.24 524.21,-452.76 521.52,-456.63 523.78,-449.29 523.78,-449.29\"/>\n",
"<text text-anchor=\"start\" x=\"482.73\" y=\"-487.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"503.23\" y=\"-472.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>14</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"657.53\" cy=\"-447\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"645.03\" y=\"-443.3\" font-family=\"Lato\" font-size=\"14.00\">9#9</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;14 -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>9&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M536.16,-426.49C556.77,-421.91 587.16,-417.64 612.88,-424 619.23,-425.57 625.68,-428.25 631.6,-431.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"637.78,-434.57 630.13,-434.03 634.7,-432.91 631.62,-431.25 631.62,-431.25 631.62,-431.25 634.7,-432.91 633.11,-428.48 637.78,-434.57 637.78,-434.57\"/>\n",
"<text text-anchor=\"start\" x=\"557.88\" y=\"-442.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"576.38\" y=\"-427.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;6 -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>10&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1723.8,-487.59C1786.6,-483.68 1930,-469.03 2035.63,-415 2072.41,-396.19 2082.45,-388.5 2106.63,-355 2125.33,-329.08 2137.49,-294.03 2144.12,-270.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2145.99,-263.93 2147.17,-271.51 2145.07,-267.3 2144.14,-270.67 2144.14,-270.67 2144.14,-270.67 2145.07,-267.3 2141.1,-269.84 2145.99,-263.93 2145.99,-263.93\"/>\n",
"<text text-anchor=\"start\" x=\"1899.63\" y=\"-480.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1918.13\" y=\"-465.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;7 -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>10&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1693.75,-470.97C1697.28,-441.52 1708.31,-382.9 1741.64,-348 1760.51,-328.24 1773.58,-335.87 1798.64,-325 1804.77,-322.34 1811.28,-319.4 1817.49,-316.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1824.08,-313.48 1819.06,-319.28 1820.91,-314.95 1817.73,-316.43 1817.73,-316.43 1817.73,-316.43 1820.91,-314.95 1816.41,-313.57 1824.08,-313.48 1824.08,-313.48\"/>\n",
"<text text-anchor=\"start\" x=\"1745.64\" y=\"-366.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1762.14\" y=\"-351.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;10 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>10&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1677.43,-505.66C1674.39,-515.62 1678.96,-525 1691.14,-525 1700.28,-525 1705.14,-519.73 1705.71,-512.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1704.85,-505.66 1708.81,-512.24 1705.27,-509.14 1705.68,-512.62 1705.68,-512.62 1705.68,-512.62 1705.27,-509.14 1702.55,-512.99 1704.85,-505.66 1704.85,-505.66\"/>\n",
"<text text-anchor=\"start\" x=\"1664.64\" y=\"-528.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;11 -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>10&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1659.87,-494.23C1638.05,-496.77 1608.24,-497.64 1583.65,-489 1574.77,-485.88 1566.36,-480.11 1559.34,-474.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1553.78,-469.14 1561.09,-471.48 1556.38,-471.48 1558.98,-473.82 1558.98,-473.82 1558.98,-473.82 1556.38,-471.48 1556.87,-476.16 1553.78,-469.14 1553.78,-469.14\"/>\n",
"<text text-anchor=\"start\" x=\"1583.65\" y=\"-513.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1604.15\" y=\"-498.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;6 -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>11&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1545.73,-471.56C1552.23,-488.73 1564.49,-514.37 1583.65,-529 1611.06,-549.94 1624.44,-544.52 1658.65,-549 1790.29,-566.25 1830.46,-547.96 1952.63,-496 2028.18,-463.87 2058.16,-460.26 2106.63,-394 2133.86,-356.77 2144.21,-302.66 2148.06,-271.23\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2148.87,-264.12 2151.21,-271.44 2148.47,-267.6 2148.08,-271.08 2148.08,-271.08 2148.08,-271.08 2148.47,-267.6 2144.95,-270.72 2148.87,-264.12 2148.87,-264.12\"/>\n",
"<text text-anchor=\"start\" x=\"1822.64\" y=\"-564.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1841.14\" y=\"-549.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;10 -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>11&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1565.46,-450.23C1586.2,-448.09 1615.98,-447.21 1640.65,-455 1650.15,-458 1659.46,-463.51 1667.4,-469.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1673.18,-473.6 1665.7,-471.88 1670.39,-471.49 1667.6,-469.37 1667.6,-469.37 1667.6,-469.37 1670.39,-471.49 1669.5,-466.86 1673.18,-473.6 1673.18,-473.6\"/>\n",
"<text text-anchor=\"start\" x=\"1585.65\" y=\"-473.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1604.15\" y=\"-458.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;11 -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>11&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1526.45,-470.29C1523.43,-480.39 1527.61,-490 1539,-490 1547.54,-490 1552.03,-484.59 1552.46,-477.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1551.55,-470.29 1555.54,-476.85 1551.98,-473.76 1552.41,-477.24 1552.41,-477.24 1552.41,-477.24 1551.98,-473.76 1549.29,-477.63 1551.55,-470.29 1551.55,-470.29\"/>\n",
"<text text-anchor=\"start\" x=\"1510.5\" y=\"-508.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1531\" y=\"-493.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;12 -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>11&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1552.43,-438.39C1560.36,-429.62 1571.42,-419.39 1583.65,-414 1734.29,-347.54 1794.69,-427.52 1952.63,-381 1960.19,-378.77 1967.93,-375.35 1974.98,-371.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1981.23,-368.32 1976.57,-374.42 1978.15,-369.99 1975.07,-371.65 1975.07,-371.65 1975.07,-371.65 1978.15,-369.99 1973.57,-368.88 1981.23,-368.32 1981.23,-368.32\"/>\n",
"<text text-anchor=\"start\" x=\"1745.64\" y=\"-411.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1762.14\" y=\"-396.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;6 -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>12&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2024.55,-341.46C2045.53,-327.36 2078.92,-304.4 2106.63,-283 2114,-277.31 2121.82,-270.82 2128.78,-264.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2134.4,-260.06 2131.14,-267.01 2131.74,-262.34 2129.09,-264.63 2129.09,-264.63 2129.09,-264.63 2131.74,-262.34 2127.03,-262.24 2134.4,-260.06 2134.4,-260.06\"/>\n",
"<text text-anchor=\"start\" x=\"2053.63\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"2072.13\" y=\"-324.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;7 -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>12&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1992.48,-337.72C1983.95,-324.38 1970.14,-306.89 1952.63,-299 1931.87,-289.64 1906.27,-290.39 1885.84,-293.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1878.85,-294.65 1885.23,-290.38 1882.3,-294.07 1885.76,-293.49 1885.76,-293.49 1885.76,-293.49 1882.3,-294.07 1886.28,-296.59 1878.85,-294.65 1878.85,-294.65\"/>\n",
"<text text-anchor=\"start\" x=\"1901.63\" y=\"-317.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1918.13\" y=\"-302.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;11 -->\n",
"<g id=\"edge53\" class=\"edge\">\n",
"<title>12&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1988.64,-371.25C1979.52,-381.14 1966.61,-393.15 1952.63,-400 1804.33,-472.68 1746.9,-418.98 1583.65,-444 1579.61,-444.62 1575.39,-445.4 1571.24,-446.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1564.35,-447.76 1570.52,-443.2 1567.77,-447.02 1571.19,-446.27 1571.19,-446.27 1571.19,-446.27 1567.77,-447.02 1571.86,-449.35 1564.35,-447.76 1564.35,-447.76\"/>\n",
"<text text-anchor=\"start\" x=\"1741.64\" y=\"-458.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1762.14\" y=\"-443.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;12 -->\n",
"<g id=\"edge52\" class=\"edge\">\n",
"<title>12&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1989.77,-371.66C1986.8,-381.62 1991.26,-391 2003.13,-391 2012.04,-391 2016.77,-385.73 2017.33,-378.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2016.49,-371.66 2020.42,-378.26 2016.89,-375.14 2017.29,-378.62 2017.29,-378.62 2017.29,-378.62 2016.89,-375.14 2014.17,-378.98 2016.49,-371.66 2016.49,-371.66\"/>\n",
"<text text-anchor=\"start\" x=\"1976.63\" y=\"-394.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;5 -->\n",
"<g id=\"edge56\" class=\"edge\">\n",
"<title>13&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1268.19,-448.75C1298.67,-459.98 1344.85,-477.25 1348.06,-480 1364.13,-493.77 1375.62,-515.02 1382.77,-531.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1385.56,-538.32 1379.98,-533.05 1384.23,-535.08 1382.89,-531.85 1382.89,-531.85 1382.89,-531.85 1384.23,-535.08 1385.8,-530.64 1385.56,-538.32 1385.56,-538.32\"/>\n",
"<text text-anchor=\"start\" x=\"1295.06\" y=\"-498.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1311.56\" y=\"-483.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;6 -->\n",
"<g id=\"edge54\" class=\"edge\">\n",
"<title>13&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1273.46,-438.59C1334.31,-438.5 1463.67,-441.97 1494.35,-472 1532.27,-509.11 1476.5,-550.89 1512.35,-590 1542.88,-623.31 1565.96,-614 1611.15,-614 1611.15,-614 1611.15,-614 2004.13,-614 2078.12,-614 2131.01,-353.82 2145.97,-271\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2147.22,-264 2149.09,-271.44 2146.61,-267.44 2145.99,-270.89 2145.99,-270.89 2145.99,-270.89 2146.61,-267.44 2142.89,-270.34 2147.22,-264 2147.22,-264\"/>\n",
"<text text-anchor=\"start\" x=\"1664.64\" y=\"-632.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1683.14\" y=\"-617.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;8 -->\n",
"<g id=\"edge57\" class=\"edge\">\n",
"<title>13&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1208.5,-442.44C1186.02,-443.42 1155.73,-441.52 1133.06,-428 1117.77,-418.89 1106.63,-402.09 1099.43,-387.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1096.21,-381.33 1102.09,-386.26 1097.73,-384.48 1099.25,-387.64 1099.25,-387.64 1099.25,-387.64 1097.73,-384.48 1096.42,-389.01 1096.21,-381.33 1096.21,-381.33\"/>\n",
"<text text-anchor=\"start\" x=\"1133.06\" y=\"-460.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1153.56\" y=\"-445.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;13 -->\n",
"<g id=\"edge55\" class=\"edge\">\n",
"<title>13&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1226.85,-455.66C1223.8,-465.62 1228.37,-475 1240.56,-475 1249.7,-475 1254.55,-469.73 1255.13,-462.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1254.27,-455.66 1258.22,-462.24 1254.68,-459.14 1255.09,-462.62 1255.09,-462.62 1255.09,-462.62 1254.68,-459.14 1251.97,-462.99 1254.27,-455.66 1254.27,-455.66\"/>\n",
"<text text-anchor=\"start\" x=\"1214.06\" y=\"-478.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;2 -->\n",
"<g id=\"edge58\" class=\"edge\">\n",
"<title>14&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M682.27,-440.3C703.08,-433.58 733.33,-421.67 755.18,-404 767.71,-393.86 778.42,-379.29 786.1,-367.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"789.83,-360.89 788.89,-368.51 788.01,-363.88 786.2,-366.88 786.2,-366.88 786.2,-366.88 788.01,-363.88 783.51,-365.25 789.83,-360.89 789.83,-360.89\"/>\n",
"<text text-anchor=\"start\" x=\"702.18\" y=\"-435.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;3 -->\n",
"<g id=\"edge59\" class=\"edge\">\n",
"<title>14&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M683.76,-451C703.38,-453.4 731.2,-455.24 755.18,-451 821.48,-439.26 838.81,-432.05 897.47,-399 905.4,-394.53 913.38,-388.64 920.3,-382.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"925.85,-378.29 922.53,-385.21 923.17,-380.55 920.5,-382.81 920.5,-382.81 920.5,-382.81 923.17,-380.55 918.47,-380.4 925.85,-378.29 925.85,-378.29\"/>\n",
"<text text-anchor=\"start\" x=\"775.32\" y=\"-450.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;9 -->\n",
"<g id=\"edge60\" class=\"edge\">\n",
"<title>14&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M631.81,-452.69C611.25,-456.48 581.33,-459.8 555.88,-454 549.99,-452.66 543.96,-450.41 538.35,-447.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"531.97,-444.81 539.64,-445.01 535.12,-446.33 538.28,-447.84 538.28,-447.84 538.28,-447.84 535.12,-446.33 536.91,-450.68 531.97,-444.81 531.97,-444.81\"/>\n",
"<text text-anchor=\"start\" x=\"555.88\" y=\"-475.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"576.38\" y=\"-460.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;14 -->\n",
"<g id=\"edge61\" class=\"edge\">\n",
"<title>14&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M645.33,-463.29C642.39,-473.39 646.45,-483 657.53,-483 665.83,-483 670.2,-477.59 670.62,-470.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"669.73,-463.29 673.7,-469.86 670.15,-466.76 670.57,-470.24 670.57,-470.24 670.57,-470.24 670.15,-466.76 667.44,-470.62 669.73,-463.29 669.73,-463.29\"/>\n",
"<text text-anchor=\"start\" x=\"631.03\" y=\"-486.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c49328e70> >"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p3 = spot.acd_transform(a3) # second argument defaults to False\n",
"p3.copy_state_names_from(a3)\n",
"assert a3.equivalent_to(p3)\n",
"p3\n"
]
},
{
"cell_type": "markdown",
"id": "f14ee428",
"metadata": {},
"source": [
"This transformation can have substantiually fewer states than the one based on Zielonka tree, because the branches are actually restricted to only those that matter for a given state."
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "4f62e612",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p3.num_states()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "20f2a45c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"27"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.zielonka_tree_transform(a3).num_states()"
]
},
{
"cell_type": "markdown",
"id": "ce62b966",
"metadata": {},
"source": [
"## Typeness checks"
]
},
{
"cell_type": "markdown",
"id": "e3d0ff64",
"metadata": {},
"source": [
"The ACD can be used to decide Rabin, Streett, and parity-typeness. Testing Rabin-typeness requires making sure that round nodes have no children sharing a common state, and testing Streett-typeness needs a similar test for square node. These additional tests have a cost, so they need to be enabled by passing `spot.acd_options_CHECK_RABIN`, `spot.acd_options_CHECK_STREETT`, or `spot.acd_options_CHECK_PARTIY` to the ACD constructor. The latter option implies the former two.\n",
"\n",
"As an example, automaton `a3` is Rabin-type because nodes 12 and 13, which are the children of the only round node with more than one child, do not share any state. It it not Street-type, because for instance state 2 appears in both nodes 4 and 8, two children of a square node."
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "7727735d",
"metadata": {},
"outputs": [],
"source": [
"theacd = spot.acd(a3, spot.acd_options_CHECK_PARITY)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "2d0bbc0b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True False False\n"
]
}
],
"source": [
"print(theacd.has_rabin_shape(), theacd.has_streett_shape(), theacd.has_parity_shape())"
]
},
{
"cell_type": "markdown",
"id": "09ec9887",
"metadata": {},
"source": [
"Calling the above methods withtout passing the relevant option will raise an exception."
]
},
{
"cell_type": "markdown",
"id": "816ee0eb",
"metadata": {},
"source": [
"Additonally, when the goal is only to check some typeness, the construction of the ACD can be aborted as soon as the typeness is found to be wrong. This can be enabled by passing the additional option `spot.acd_options_ABORT_WRONG_SHAPE`. In case the construction is aborted the ACD forest will be erased (to make sure it is not used), and `node_count()` will return 0."
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "78643aae",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"15\n"
]
}
],
"source": [
"print(theacd.node_count())"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "13a7796b",
"metadata": {},
"outputs": [],
"source": [
"theacd = spot.acd(a3, spot.acd_options_CHECK_STREETT | spot.acd_options_ABORT_WRONG_SHAPE)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "3ee900b7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"False 0\n"
]
}
],
"source": [
"print(theacd.has_streett_shape(), theacd.node_count())"
]
},
{
"cell_type": "markdown",
"id": "f380ca5f",
"metadata": {},
"source": [
"## State-based transformation\n",
"\n",
"The ACD usage can be modified slightly in order to produce a state-based automaton. The rules for stepping through the ACD are similar, except that when we detect that a cycle through all children of a node has been done, we return the current node without going to the leftmost leave of the next children. When stepping a transition from a node a child, we should act as if we were in the leftmost child of that node containing the source of tha transition. Stepping through a transition this way do not emit any color, instead the color of a state will be the level of its associated node.\n",
"(This modified transformation do not claim to be optimal, unlike the transition-based version.)\n",
"\n",
"The `ORDER_HEURISTIC` used below will be explained in the next section, it justs alters ordering of children of the ACD in a way that the state-based transformation prefers."
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "e12bb020",
"metadata": {},
"outputs": [],
"source": [
"theacd = spot.acd(a3, spot.acd_options_ORDER_HEURISTIC)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "813d15ed",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"1356pt\" height=\"458pt\"\n",
" viewBox=\"0.00 0.00 1355.97 457.97\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 453.97)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-453.97 1351.97,-453.97 1351.97,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"673.98\" y=\"-418.77\" font-family=\"Times,serif\" font-size=\"14.00\">min odd</text>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"602.67,-383.18 446.67,-383.18 446.67,-300.18 602.67,-300.18 602.67,-383.18\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 9&#45;16,21&#45;28,33&#45;36</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4,5}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2,3,5,6,8</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"116.67\" cy=\"-177.69\" rx=\"116.85\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 10,12,13,15,21,22</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{2,4,5}</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2,3,5</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;4&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M446.56,-313.57C389.61,-293.37 310.82,-264.53 242.67,-236.38 232.18,-232.05 221.28,-227.35 210.47,-222.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.57,-219.23 201.01,-218.36 208.72,-225.62 211.57,-219.23\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"336.67\" cy=\"-177.69\" rx=\"84.71\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14,15,22,23</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4}</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3,5</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M477.23,-299.8C450.9,-277.11 418.04,-248.8 390.72,-225.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"392.66,-222.31 382.8,-218.43 388.09,-227.61 392.66,-222.31\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"524.67\" cy=\"-177.69\" rx=\"84.71\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23,24,34,36</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5,8</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M524.67,-299.8C524.67,-280.47 524.67,-257.06 524.67,-235.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"528.17,-235.87 524.67,-225.87 521.17,-235.87 528.17,-235.87\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"696.67\" cy=\"-177.69\" rx=\"69.09\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14,16,26</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3,6</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M568.08,-299.8C592.71,-276.6 623.59,-247.52 648.91,-223.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"651.36,-226.17 656.24,-216.77 646.56,-221.08 651.36,-226.17\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"843.67\" cy=\"-177.69\" rx=\"59.29\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 9</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;8&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M602.78,-314.99C653.61,-296.64 720.31,-269.4 774.67,-236.38 780.5,-232.84 786.35,-228.83 792.04,-224.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"794.44,-227.18 800.25,-218.31 790.18,-221.62 794.44,-227.18\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>11</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"328.17,-83 269.17,-83 269.17,0 328.17,0 328.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14</text>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;11&gt;</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;11 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>5&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M323.49,-130.13C320.11,-118.19 316.45,-105.28 313.01,-93.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"316.28,-91.83 310.19,-83.16 309.54,-93.73 316.28,-91.83\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>12</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"405.17,-83 346.17,-83 346.17,0 405.17,0 405.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23</text>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5</text>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;12&gt;</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;12 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>5&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.2,-130.13C353.71,-118.07 357.5,-105.02 361.06,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.43,-93.74 363.86,-83.16 357.7,-91.78 364.43,-93.74\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>13</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.17,-83 495.17,-83 495.17,0 554.17,0 554.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;13&gt;</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;13 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>6&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M524.67,-129.38C524.67,-117.71 524.67,-105.16 524.67,-93.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"528.17,-93.15 524.67,-83.15 521.17,-93.15 528.17,-93.15\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>14</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"726.17,-83 667.17,-83 667.17,0 726.17,0 726.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;14&gt;</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;14 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>7&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M696.67,-129.38C696.67,-117.71 696.67,-105.16 696.67,-93.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"700.17,-93.15 696.67,-83.15 693.17,-93.15 700.17,-93.15\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"949.67\" cy=\"-341.68\" rx=\"84.71\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #1</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 31,32,39,40</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 7,9</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>9</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"978.17,-219.19 921.17,-219.19 921.17,-136.19 978.17,-136.19 978.17,-219.19\"/>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 40</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 9</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;9&gt;</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;9 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M949.67,-282.65C949.67,-265.36 949.67,-246.55 949.67,-229.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"953.17,-229.56 949.67,-219.56 946.17,-229.56 953.17,-229.56\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"1121.67\" cy=\"-341.68\" rx=\"69.09\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #2</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 5,7,17</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1,4</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>10</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"1151.17,-219.19 1092.17,-219.19 1092.17,-136.19 1151.17,-136.19 1151.17,-219.19\"/>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 5</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;10&gt;</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;10 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1121.67,-282.65C1121.67,-265.36 1121.67,-246.55 1121.67,-229.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1125.17,-229.56 1121.67,-219.56 1118.17,-229.56 1125.17,-229.56\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"1278.67\" cy=\"-341.68\" rx=\"69.09\" ry=\"69.09\"/>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-375.48\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #3</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-360.48\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-345.48\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-330.48\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-315.48\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-300.48\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;3&gt;</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<style>\n",
".acdhigh ellipse,.acdacc ellipse,.acdacc path,.acdacc polygon{stroke:green;}\n",
".acdhigh polygon,.acdrej ellipse,.acdrej path,.acdrej polygon{stroke:red;}\n",
".acdbold ellipse,.acdbold polygon,.acdbold path{stroke-width:2;}\n",
".acdrej polygon{fill:red;}\n",
".acdacc polygon{fill:green;}\n",
"</style><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: (FGp0 &amp; ((XFp0 &amp; F!p1) | F(Gp1 &amp;\\nXG!p0))) | G(F!p0 &amp;\\n(XFp0 | F!p1) &amp; F(Gp1 | G!p0)) Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"253pt\"\n",
" viewBox=\"0.00 0.00 729.00 252.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acdaut1\" class=\"graph\" transform=\"scale(0.5376344086021505 0.5376344086021505) rotate(0) translate(4 467)\">\n",
"<title>(FGp0 &amp; ((XFp0 &amp; F!p1) | F(Gp1 &amp;\\nXG!p0))) | G(F!p0 &amp;\\n(XFp0 | F!p1) &amp; F(Gp1 | G!p0))</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-467 1353.5,-467 1353.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"503.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"530.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"546.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Fin(</text>\n",
"<text text-anchor=\"start\" x=\"590.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"606.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)) | ((Fin(</text>\n",
"<text text-anchor=\"start\" x=\"655.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"671.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)|Fin(</text>\n",
"<text text-anchor=\"start\" x=\"702.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"<text text-anchor=\"start\" x=\"718.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"767.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"783.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"817.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"833.75\" y=\"-448.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"S0\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-134\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-130.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"acdaut1_edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-134C2.79,-134 17.15,-134 30.63,-134\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-134 30.94,-137.15 34.44,-134 30.94,-134 30.94,-134 30.94,-134 34.44,-134 30.94,-130.85 37.94,-134 37.94,-134\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"E1\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<g id=\"a_E1\"><a xlink:title=\"0&#45;&gt;0&#10;#1\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-151.04C48.32,-160.86 50.45,-170 56,-170 60.17,-170 62.4,-164.86 62.71,-158.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-151.04 65.85,-157.88 62.54,-154.53 62.71,-158.03 62.71,-158.03 62.71,-158.03 62.54,-154.53 59.56,-158.18 62.38,-151.04 62.38,-151.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"27.5\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"16\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"32\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"64\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"80\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"S1\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"181\" cy=\"-134\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"181\" y=\"-130.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"E2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<g id=\"a_E2\"><a xlink:title=\"0&#45;&gt;1&#10;#2\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.1,-134C95.28,-134 131.49,-134 155.59,-134\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"162.65,-134 155.65,-137.15 159.15,-134 155.65,-134 155.65,-134 155.65,-134 159.15,-134 155.65,-130.85 162.65,-134 162.65,-134\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"S2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"763.5\" cy=\"-277\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"763.5\" y=\"-273.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"E3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<g id=\"a_E3\"><a xlink:title=\"0&#45;&gt;2&#10;#3\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M57.04,-152.28C58.2,-212.38 70.61,-400 180,-400 180,-400 180,-400 624.5,-400 684.47,-400 730.42,-334.46 750.87,-299.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"754.38,-292.83 753.69,-300.47 752.66,-295.88 750.94,-298.93 750.94,-298.93 750.94,-298.93 752.66,-295.88 748.2,-297.38 754.38,-292.83 754.38,-292.83\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"371\" y=\"-403.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"S3\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"903.5\" cy=\"-175\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"903.5\" y=\"-171.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"E4\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<g id=\"a_E4\"><a xlink:title=\"0&#45;&gt;3&#10;#4\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.12,-117.3C77.49,-81.38 117,0 180,0 180,0 180,0 695.5,0 779.99,0 808.53,-29.23 859,-97 872.05,-114.52 883.91,-136.38 891.94,-152.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"895.13,-159.02 889.23,-154.12 893.59,-155.88 892.05,-152.73 892.05,-152.73 892.05,-152.73 893.59,-155.88 894.88,-151.35 895.13,-159.02 895.13,-159.02\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"E5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<g id=\"a_E5\"><a xlink:title=\"1&#45;&gt;1&#10;#5\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.63,-148.79C167.25,-159.42 170.71,-170 181,-170 188.88,-170 192.75,-163.8 192.62,-156.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"191.37,-148.79 195.65,-155.16 191.96,-152.24 192.55,-155.69 192.55,-155.69 192.55,-155.69 191.96,-152.24 189.44,-156.22 191.37,-148.79 191.37,-148.79\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"154.5\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"E6\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<g id=\"a_E6\"><a xlink:title=\"1&#45;&gt;2&#10;#6\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M192.8,-147.6C199.31,-155.3 208.06,-164.8 217,-172 308.05,-245.36 331.15,-274.38 444,-305 562.89,-337.26 601.33,-324.26 721,-295 727.61,-293.38 734.5,-290.8 740.72,-288.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"747.17,-285.13 742.12,-290.91 743.99,-286.59 740.81,-288.05 740.81,-288.05 740.81,-288.05 743.99,-286.59 739.49,-285.19 747.17,-285.13 747.17,-285.13\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"444\" y=\"-321.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"S4\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"333\" cy=\"-135\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"333\" y=\"-131.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"E7\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<g id=\"a_E7\"><a xlink:title=\"1&#45;&gt;4&#10;#7\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M194.95,-122.33C201.16,-117.52 208.98,-112.49 217,-110 250.96,-99.47 263.14,-99.15 297,-110 302.93,-111.9 308.71,-115.21 313.81,-118.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"319.45,-123.12 311.97,-121.38 316.66,-121 313.88,-118.88 313.88,-118.88 313.88,-118.88 316.66,-121 315.79,-116.37 319.45,-123.12 319.45,-123.12\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"228.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"217\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"233\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"265\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"281\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"S5\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1323\" cy=\"-229\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1323\" y=\"-225.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"E8\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<g id=\"a_E8\"><a xlink:title=\"1&#45;&gt;5&#10;#8\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M192.96,-120.46C199.39,-113.13 208.01,-104.31 217,-98 262.91,-65.77 275.91,-46 332,-46 332,-46 332,-46 695.5,-46 787.52,-46 810.48,-42 902.5,-42 902.5,-42 902.5,-42 1195,-42 1272.62,-42 1306.11,-153.61 1317.32,-204.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1318.82,-211.41 1314.28,-205.22 1318.09,-207.98 1317.36,-204.56 1317.36,-204.56 1317.36,-204.56 1318.09,-207.98 1320.44,-203.9 1318.82,-211.41 1318.82,-211.41\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"739\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"E9\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<g id=\"a_E9\"><a xlink:title=\"2&#45;&gt;2&#10;#9\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M757.48,-294.04C756.25,-303.86 758.25,-313 763.5,-313 767.43,-313 769.55,-307.86 769.84,-301.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"769.52,-294.04 772.98,-300.89 769.68,-297.53 769.83,-301.03 769.83,-301.03 769.83,-301.03 769.68,-297.53 766.69,-301.17 769.52,-294.04 769.52,-294.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"735\" y=\"-330.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"731.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"747.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"763.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"779.5\" y=\"-316.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"E10\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<g id=\"a_E10\"><a xlink:title=\"2&#45;&gt;2&#10;#10\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M754.56,-292.69C747.37,-313.48 750.35,-341 763.5,-341 775.26,-341 778.89,-318.98 774.37,-299.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"772.44,-292.69 777.39,-298.55 773.4,-296.05 774.36,-299.42 774.36,-299.42 774.36,-299.42 773.4,-296.05 771.33,-300.28 772.44,-292.69 772.44,-292.69\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"737\" y=\"-358.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"739.5\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"755.5\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"771.5\" y=\"-344.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"E11\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<g id=\"a_E11\"><a xlink:title=\"2&#45;&gt;3&#10;#11\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M766.03,-259.06C769.12,-235.44 778.38,-194.72 806,-176 827.34,-161.54 857.89,-164.1 878.86,-168.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"885.85,-170.03 878.33,-171.55 882.44,-169.26 879.03,-168.48 879.03,-168.48 879.03,-168.48 882.44,-169.26 879.72,-165.41 885.85,-170.03 885.85,-170.03\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"806\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"816.5\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"832.5\" y=\"-179.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"E12\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<g id=\"a_E12\"><a xlink:title=\"2&#45;&gt;3&#10;#12\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M781.61,-277.09C802.02,-276.36 836.22,-272.35 859,-255 877.32,-241.05 888.88,-217.07 895.43,-199\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"897.79,-192.15 898.49,-199.79 896.65,-195.46 895.51,-198.77 895.51,-198.77 895.51,-198.77 896.65,-195.46 892.53,-197.75 897.79,-192.15 897.79,-192.15\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"808\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"824.5\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"E13\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<g id=\"a_E13\"><a xlink:title=\"3&#45;&gt;2&#10;#13\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M888.53,-185.58C880.25,-191.53 869.38,-198.78 859,-204 836.65,-215.25 826.22,-208.26 806,-223 794.34,-231.5 784.36,-244.17 777.12,-255.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"773.18,-261.29 774.28,-253.69 775.06,-258.34 776.94,-255.39 776.94,-255.39 776.94,-255.39 775.06,-258.34 779.59,-257.08 773.18,-261.29 773.18,-261.29\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"806\" y=\"-240.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"808.5\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"824.5\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"840.5\" y=\"-226.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"E14\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<g id=\"a_E14\"><a xlink:title=\"3&#45;&gt;3&#10;#14\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M892.07,-189.04C887.8,-199.91 891.61,-211 903.5,-211 912.79,-211 917.15,-204.23 916.57,-196.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"914.93,-189.04 919.59,-195.14 915.73,-192.45 916.52,-195.86 916.52,-195.86 916.52,-195.86 915.73,-192.45 913.45,-196.57 914.93,-189.04 914.93,-189.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"877\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"887.5\" y=\"-214.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"903.5\" y=\"-214.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"E15\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<g id=\"a_E15\"><a xlink:title=\"3&#45;&gt;5&#10;#15\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M920.19,-167.23C928.28,-163.65 938.44,-159.8 948,-158 975.95,-152.73 983.62,-156.15 1012,-158 1135,-166.02 1176.43,-139.52 1287,-194 1294.44,-197.66 1301.24,-203.54 1306.83,-209.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1311.6,-214.79 1304.59,-211.66 1309.28,-212.18 1306.95,-209.57 1306.95,-209.57 1306.95,-209.57 1309.28,-212.18 1309.3,-207.47 1311.6,-214.79 1311.6,-214.79\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1105\" y=\"-177.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1113.5\" y=\"-163.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1129.5\" y=\"-163.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"S6\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1056.5\" cy=\"-256\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1056.5\" y=\"-252.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"E16\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<g id=\"a_E16\"><a xlink:title=\"3&#45;&gt;6&#10;#16\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M918.47,-185.58C926.75,-191.52 937.62,-198.77 948,-204 975,-217.59 985,-213.41 1012,-227 1020.11,-231.08 1028.52,-236.4 1035.76,-241.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1041.53,-245.42 1033.99,-243.98 1038.67,-243.41 1035.8,-241.4 1035.8,-241.4 1035.8,-241.4 1038.67,-243.41 1037.61,-238.82 1041.53,-245.42 1041.53,-245.42\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"951.5\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"948\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"964\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"980\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"996\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"E17\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<g id=\"a_E17\"><a xlink:title=\"4&#45;&gt;1&#10;#17\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M314.93,-136.76C309.23,-137.27 302.85,-137.75 297,-138 261.48,-139.52 252.5,-140.02 217,-138 213.52,-137.8 209.85,-137.49 206.26,-137.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"199.06,-136.34 206.36,-133.98 202.54,-136.73 206.01,-137.11 206.01,-137.11 206.01,-137.11 202.54,-136.73 205.67,-140.24 199.06,-136.34 199.06,-136.34\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"230.5\" y=\"-157.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"257\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"E18\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<g id=\"a_E18\"><a xlink:title=\"4&#45;&gt;2&#10;#18\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M351.17,-132.6C399.9,-126.49 542.48,-113.58 650,-154 687.36,-168.05 694.39,-179.25 721,-209 733.28,-222.73 744.02,-240.58 751.49,-254.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"754.89,-261.06 748.86,-256.31 753.27,-257.96 751.65,-254.85 751.65,-254.85 751.65,-254.85 753.27,-257.96 754.44,-253.4 754.89,-261.06 754.89,-261.06\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"520.5\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"E19\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<g id=\"a_E19\"><a xlink:title=\"4&#45;&gt;3&#10;#19\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.35,-126.71C373.96,-114.21 424.09,-92 469.5,-92 469.5,-92 469.5,-92 764.5,-92 814.4,-92 861.81,-132.35 885.94,-156.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"891,-162.03 883.87,-159.18 888.57,-159.51 886.14,-157 886.14,-157 886.14,-157 888.57,-159.51 888.41,-154.81 891,-162.03 891,-162.03\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"599\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"S7\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"470.5\" cy=\"-232\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"470.5\" y=\"-228.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g id=\"E20\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n",
"<g id=\"a_E20\"><a xlink:title=\"4&#45;&gt;7&#10;#20\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M347.99,-145.02C372.13,-162.3 421.68,-197.77 449.47,-217.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.38,-221.89 447.86,-220.38 452.54,-219.86 449.69,-217.82 449.69,-217.82 449.69,-217.82 452.54,-219.86 451.52,-215.26 455.38,-221.89 455.38,-221.89\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"369\" y=\"-204.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"E21\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<g id=\"a_E21\"><a xlink:title=\"5&#45;&gt;2&#10;#21\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1316.73,-212.05C1311.47,-198.03 1301.99,-178.74 1287,-168 1193.04,-100.67 1145.35,-120.49 1030,-128 958.55,-132.65 823.81,-146.71 806,-162 779.65,-184.63 770.03,-225.31 766.52,-251.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"765.68,-258.76 763.38,-251.44 766.1,-255.29 766.51,-251.81 766.51,-251.81 766.51,-251.81 766.1,-255.29 769.64,-252.19 765.68,-258.76 765.68,-258.76\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1030\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1032.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1048.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"1064.5\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"E22\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<g id=\"a_E22\"><a xlink:title=\"5&#45;&gt;3&#10;#22\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1320.99,-247.12C1318.69,-269.23 1311.21,-305.89 1287,-324 1226.54,-369.22 1006.7,-348.49 948,-301 917.48,-276.31 908.31,-229.02 905.59,-199.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"905.03,-192.94 908.73,-199.66 905.31,-196.43 905.59,-199.92 905.59,-199.92 905.59,-199.92 905.31,-196.43 902.45,-200.17 905.03,-192.94 905.03,-192.94\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1105\" y=\"-367.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1121.5\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;5 -->\n",
"<g id=\"E23\" class=\"edge\">\n",
"<title>5&#45;&gt;5</title>\n",
"<g id=\"a_E23\"><a xlink:title=\"5&#45;&gt;5&#10;#23\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1312.29,-243.79C1308.81,-254.42 1312.38,-265 1323,-265 1331.13,-265 1335.13,-258.8 1335,-251.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1333.71,-243.79 1338.02,-250.14 1334.31,-247.24 1334.92,-250.69 1334.92,-250.69 1334.92,-250.69 1334.31,-247.24 1331.82,-251.23 1333.71,-243.79 1333.71,-243.79\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1296.5\" y=\"-282.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1307\" y=\"-268.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1323\" y=\"-268.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"S8\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1194\" cy=\"-256\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"1194\" y=\"-252.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;8 -->\n",
"<g id=\"E24\" class=\"edge\">\n",
"<title>5&#45;&gt;8</title>\n",
"<g id=\"a_E24\"><a xlink:title=\"5&#45;&gt;8&#10;#24\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1316.41,-245.8C1311.09,-258.82 1301.68,-275.94 1287,-284 1264.79,-296.19 1253.91,-292.39 1230,-284 1223.64,-281.77 1217.57,-277.84 1212.33,-273.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1206.99,-268.99 1214.35,-271.19 1209.64,-271.28 1212.28,-273.57 1212.28,-273.57 1212.28,-273.57 1209.64,-271.28 1210.22,-275.95 1206.99,-268.99 1206.99,-268.99\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1230\" y=\"-309.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1234.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1250.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"1266.5\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;2 -->\n",
"<g id=\"E25\" class=\"edge\">\n",
"<title>6&#45;&gt;2</title>\n",
"<g id=\"a_E25\"><a xlink:title=\"6&#45;&gt;2&#10;#25\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1045.67,-271.05C1037.91,-281.5 1026.06,-294.65 1012,-301 951.77,-328.19 845.16,-321.01 806,-308 797.33,-305.12 789.01,-299.65 782.12,-294.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"776.7,-289.46 784.07,-291.61 779.36,-291.73 782.02,-294 782.02,-294 782.02,-294 779.36,-291.73 779.98,-296.4 776.7,-289.46 776.7,-289.46\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"877\" y=\"-337.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"879.5\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"895.5\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"911.5\" y=\"-323.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"E26\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<g id=\"a_E26\"><a xlink:title=\"6&#45;&gt;3&#10;#26\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1052.06,-238.49C1047.07,-218.41 1035.71,-186.42 1012,-172 986.52,-156.5 950.99,-161.51 927.87,-167.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"920.83,-169.41 926.74,-164.51 924.2,-168.48 927.58,-167.55 927.58,-167.55 927.58,-167.55 924.2,-168.48 928.41,-170.59 920.83,-169.41 920.83,-169.41\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"953.5\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"964\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"980\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;3 -->\n",
"<g id=\"E27\" class=\"edge\">\n",
"<title>6&#45;&gt;3</title>\n",
"<g id=\"a_E27\"><a xlink:title=\"6&#45;&gt;3&#10;#27\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1038.82,-260.72C1016.41,-266.05 976.16,-271.92 948,-255 928.02,-243 916.63,-218.29 910.56,-199.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"908.41,-192.35 913.44,-198.15 909.42,-195.71 910.43,-199.06 910.43,-199.06 910.43,-199.06 909.42,-195.71 907.41,-199.96 908.41,-192.35 908.41,-192.35\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"955.5\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"972\" y=\"-270.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g id=\"E28\" class=\"edge\">\n",
"<title>6&#45;&gt;8</title>\n",
"<g id=\"a_E28\"><a xlink:title=\"6&#45;&gt;8&#10;#28\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1074.66,-256C1098.49,-256 1141.7,-256 1168.79,-256\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1175.98,-256 1168.98,-259.15 1172.48,-256 1168.98,-256 1168.98,-256 1168.98,-256 1172.48,-256 1168.98,-252.85 1175.98,-256 1175.98,-256\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1101\" y=\"-273.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1105.5\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1121.5\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"1137.5\" y=\"-259.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;2 -->\n",
"<g id=\"E29\" class=\"edge\">\n",
"<title>7&#45;&gt;2</title>\n",
"<g id=\"a_E29\"><a xlink:title=\"7&#45;&gt;2&#10;#29\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M485.13,-242.86C493.3,-248.74 504.18,-255.49 515,-259 593.6,-284.53 693.37,-281.91 738.45,-278.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"745.46,-278.5 738.7,-282.13 741.97,-278.74 738.48,-278.99 738.48,-278.99 738.48,-278.99 741.97,-278.74 738.26,-275.84 745.46,-278.5 745.46,-278.5\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"597\" y=\"-284.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;5 -->\n",
"<g id=\"E30\" class=\"edge\">\n",
"<title>7&#45;&gt;5</title>\n",
"<g id=\"a_E30\"><a xlink:title=\"7&#45;&gt;5&#10;#30\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M482.2,-246.19C517.13,-290.76 633.07,-425 762.5,-425 762.5,-425 762.5,-425 1195,-425 1275.74,-425 1307.72,-306.41 1317.94,-253.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1319.24,-246.74 1321.05,-254.2 1318.6,-250.18 1317.95,-253.62 1317.95,-253.62 1317.95,-253.62 1318.6,-250.18 1314.86,-253.04 1319.24,-246.74 1319.24,-246.74\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"879\" y=\"-428.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"E31\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<g id=\"a_E31\"><a xlink:title=\"7&#45;&gt;7&#10;#31\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M458.74,-246.04C454.35,-256.91 458.27,-268 470.5,-268 480.06,-268 484.54,-261.23 483.95,-253.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"482.26,-246.04 486.95,-252.11 483.07,-249.45 483.89,-252.85 483.89,-252.85 483.89,-252.85 483.07,-249.45 480.83,-253.58 482.26,-246.04 482.26,-246.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"442\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"430.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"446.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"462.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"478.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"494.5\" y=\"-271.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"S9\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"623.5\" cy=\"-181\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"623.5\" y=\"-177.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;9 -->\n",
"<g id=\"E32\" class=\"edge\">\n",
"<title>7&#45;&gt;9</title>\n",
"<g id=\"a_E32\"><a xlink:title=\"7&#45;&gt;9&#10;#32\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M488.48,-230.56C510.18,-228.27 548.58,-222.68 579,-210 587.38,-206.51 595.85,-201.32 603.06,-196.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"608.79,-192.15 604.97,-198.8 605.96,-194.2 603.12,-196.25 603.12,-196.25 603.12,-196.25 605.96,-194.2 601.27,-193.7 608.79,-192.15 608.79,-192.15\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"520.5\" y=\"-244.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"523\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"539\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"555\" y=\"-230.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;2 -->\n",
"<g id=\"E33\" class=\"edge\">\n",
"<title>8&#45;&gt;2</title>\n",
"<g id=\"a_E33\"><a xlink:title=\"8&#45;&gt;2&#10;#33\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1181.49,-269.11C1175.14,-275.63 1166.78,-283.12 1158,-288 1066,-339.12 1034.27,-337.64 930,-352 874.31,-359.67 852.14,-359.13 806,-327 794.96,-319.31 785.2,-307.94 777.92,-297.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"773.72,-292.01 780.33,-295.92 775.74,-294.87 777.75,-297.73 777.75,-297.73 777.75,-297.73 775.74,-294.87 775.17,-299.54 773.72,-292.01 773.72,-292.01\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"953.5\" y=\"-366.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"956\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"972\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"988\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;5 -->\n",
"<g id=\"E34\" class=\"edge\">\n",
"<title>8&#45;&gt;5</title>\n",
"<g id=\"a_E34\"><a xlink:title=\"8&#45;&gt;5&#10;#34\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1201.38,-239.39C1206.95,-227.44 1216.32,-212.2 1230,-205 1252.42,-193.2 1262.8,-197.5 1287,-205 1292.64,-206.75 1298.18,-209.75 1303.13,-213.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1309.05,-217.33 1301.53,-215.79 1306.21,-215.28 1303.37,-213.23 1303.37,-213.23 1303.37,-213.23 1306.21,-215.28 1305.22,-210.68 1309.05,-217.33 1309.05,-217.33\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1232\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1234.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1250.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1266.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;5 -->\n",
"<g id=\"E35\" class=\"edge\">\n",
"<title>8&#45;&gt;5</title>\n",
"<g id=\"a_E35\"><a xlink:title=\"8&#45;&gt;5&#10;#35\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1211.86,-252.41C1233.97,-247.71 1272.89,-239.44 1298.05,-234.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1305.07,-232.6 1298.87,-237.14 1301.64,-233.33 1298.22,-234.06 1298.22,-234.06 1298.22,-234.06 1301.64,-233.33 1297.56,-230.97 1305.07,-232.6 1305.07,-232.6\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1234\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"1242.5\" y=\"-252.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1258.5\" y=\"-252.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;8 -->\n",
"<g id=\"E36\" class=\"edge\">\n",
"<title>8&#45;&gt;8</title>\n",
"<g id=\"a_E36\"><a xlink:title=\"8&#45;&gt;8&#10;#36\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1183.29,-270.79C1179.81,-281.42 1183.38,-292 1194,-292 1202.13,-292 1206.13,-285.8 1206,-278.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1204.71,-270.79 1209.02,-277.14 1205.31,-274.24 1205.92,-277.69 1205.92,-277.69 1205.92,-277.69 1205.31,-274.24 1202.82,-278.23 1204.71,-270.79 1204.71,-270.79\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"1165.5\" y=\"-309.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"1162\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1178\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"1194\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"1210\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;2 -->\n",
"<g id=\"E37\" class=\"edge\">\n",
"<title>9&#45;&gt;2</title>\n",
"<g id=\"a_E37\"><a xlink:title=\"9&#45;&gt;2&#10;#37\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M638.75,-190.91C663.33,-208.01 713.8,-243.12 742.1,-262.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"748.12,-267 740.58,-265.59 745.25,-265 742.38,-263 742.38,-263 742.38,-263 745.25,-265 744.17,-260.41 748.12,-267 748.12,-267\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"668\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;3 -->\n",
"<g id=\"E38\" class=\"edge\">\n",
"<title>9&#45;&gt;3</title>\n",
"<g id=\"a_E38\"><a xlink:title=\"9&#45;&gt;3&#10;#38\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M641.36,-177.04C680.02,-168.52 777.97,-150.15 859,-162 865.76,-162.99 872.93,-164.8 879.45,-166.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"886.23,-168.91 878.6,-169.79 882.89,-167.85 879.56,-166.79 879.56,-166.79 879.56,-166.79 882.89,-167.85 880.51,-163.79 886.23,-168.91 886.23,-168.91\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"739\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;7 -->\n",
"<g id=\"E39\" class=\"edge\">\n",
"<title>9&#45;&gt;7</title>\n",
"<g id=\"a_E39\"><a xlink:title=\"9&#45;&gt;7&#10;#39\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M605.88,-176.05C583.89,-170.48 544.47,-163.9 515,-178 501.16,-184.62 490.33,-198.03 482.93,-209.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"479.18,-216.16 480.03,-208.53 480.96,-213.15 482.74,-210.14 482.74,-210.14 482.74,-210.14 480.96,-213.15 485.45,-211.74 479.18,-216.16 479.18,-216.16\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"518.5\" y=\"-195.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"515\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"531\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"547\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"563\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;9 -->\n",
"<g id=\"E40\" class=\"edge\">\n",
"<title>9&#45;&gt;9</title>\n",
"<g id=\"a_E40\"><a xlink:title=\"9&#45;&gt;9&#10;#40\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M612.07,-195.04C607.8,-205.91 611.61,-217 623.5,-217 632.79,-217 637.15,-210.23 636.57,-202.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"634.93,-195.04 639.59,-201.14 635.73,-198.45 636.52,-201.86 636.52,-201.86 636.52,-201.86 635.73,-198.45 633.45,-202.57 634.93,-195.04 634.93,-195.04\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"597\" y=\"-234.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"607.5\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"623.5\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"1356pt\" height=\"458pt\"\n",
" viewBox=\"0.00 0.00 1355.97 457.97\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acd1\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 453.97)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-453.97 1351.97,-453.97 1351.97,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"673.98\" y=\"-418.77\" font-family=\"Times,serif\" font-size=\"14.00\">min odd</text>\n",
"<!-- 0 -->\n",
"<g id=\"N0\" class=\"node acdS2\n",
" acdS3\n",
" acdS5\n",
" acdS6\n",
" acdS8\n",
"\">\n",
"<title>0</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"602.67,-383.18 446.67,-383.18 446.67,-300.18 602.67,-300.18 602.67,-383.18\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 9&#45;16,21&#45;28,33&#45;36</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4,5}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2,3,5,6,8</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"N4\" class=\"node acdS2\n",
" acdS3\n",
" acdS5\n",
"\">\n",
"<title>4</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"116.67\" cy=\"-177.69\" rx=\"116.85\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 10,12,13,15,21,22</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{2,4,5}</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2,3,5</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"116.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;4&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;4 -->\n",
"<g id=\"acd1_edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M446.56,-313.57C389.61,-293.37 310.82,-264.53 242.67,-236.38 232.18,-232.05 221.28,-227.35 210.47,-222.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"211.57,-219.23 201.01,-218.36 208.72,-225.62 211.57,-219.23\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"N5\" class=\"node acdS3\n",
" acdS5\n",
"\">\n",
"<title>5</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"336.67\" cy=\"-177.69\" rx=\"84.71\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14,15,22,23</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,4}</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3,5</text>\n",
"<text text-anchor=\"middle\" x=\"336.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;5 -->\n",
"<g id=\"acd1_edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M477.23,-299.8C450.9,-277.11 418.04,-248.8 390.72,-225.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"392.66,-222.31 382.8,-218.43 388.09,-227.61 392.66,-222.31\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"N6\" class=\"node acdS5\n",
" acdS8\n",
"\">\n",
"<title>6</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"524.67\" cy=\"-177.69\" rx=\"84.71\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23,24,34,36</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5,8</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;6 -->\n",
"<g id=\"acd1_edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M524.67,-299.8C524.67,-280.47 524.67,-257.06 524.67,-235.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"528.17,-235.87 524.67,-225.87 521.17,-235.87 528.17,-235.87\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"N7\" class=\"node acdS3\n",
" acdS6\n",
"\">\n",
"<title>7</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"696.67\" cy=\"-177.69\" rx=\"69.09\" ry=\"48.17\"/>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-196.49\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14,16,26</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-181.49\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-166.49\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3,6</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-151.49\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;7 -->\n",
"<g id=\"acd1_edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M568.08,-299.8C592.71,-276.6 623.59,-247.52 648.91,-223.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"651.36,-226.17 656.24,-216.77 646.56,-221.08 651.36,-226.17\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"N8\" class=\"node acdS2\n",
"\">\n",
"<title>8</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"843.67\" cy=\"-177.69\" rx=\"59.29\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 9</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 2</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"843.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;8&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;8 -->\n",
"<g id=\"acd1_edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M602.78,-314.99C653.61,-296.64 720.31,-269.4 774.67,-236.38 780.5,-232.84 786.35,-228.83 792.04,-224.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"794.44,-227.18 800.25,-218.31 790.18,-221.62 794.44,-227.18\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"N11\" class=\"node acdS3\n",
"\">\n",
"<title>11</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"328.17,-83 269.17,-83 269.17,0 328.17,0 328.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14</text>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"298.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;11&gt;</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;11 -->\n",
"<g id=\"acd1_edge8\" class=\"edge\">\n",
"<title>5&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M323.49,-130.13C320.11,-118.19 316.45,-105.28 313.01,-93.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"316.28,-91.83 310.19,-83.16 309.54,-93.73 316.28,-91.83\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"N12\" class=\"node acdS5\n",
"\">\n",
"<title>12</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"405.17,-83 346.17,-83 346.17,0 405.17,0 405.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23</text>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5</text>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"375.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;12&gt;</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;12 -->\n",
"<g id=\"acd1_edge9\" class=\"edge\">\n",
"<title>5&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M350.2,-130.13C353.71,-118.07 357.5,-105.02 361.06,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"364.43,-93.74 363.86,-83.16 357.7,-91.78 364.43,-93.74\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"N13\" class=\"node acdS5\n",
"\">\n",
"<title>13</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"554.17,-83 495.17,-83 495.17,0 554.17,0 554.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 23</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 5</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"524.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;13&gt;</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;13 -->\n",
"<g id=\"acd1_edge10\" class=\"edge\">\n",
"<title>6&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M524.67,-129.38C524.67,-117.71 524.67,-105.16 524.67,-93.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"528.17,-93.15 524.67,-83.15 521.17,-93.15 528.17,-93.15\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"N14\" class=\"node acdS3\n",
"\">\n",
"<title>14</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"726.17,-83 667.17,-83 667.17,0 726.17,0 726.17,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 14</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"696.67\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;14&gt;</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;14 -->\n",
"<g id=\"acd1_edge11\" class=\"edge\">\n",
"<title>7&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M696.67,-129.38C696.67,-117.71 696.67,-105.16 696.67,-93.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"700.17,-93.15 696.67,-83.15 693.17,-93.15 700.17,-93.15\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"N1\" class=\"node acdS7\n",
" acdS9\n",
"\">\n",
"<title>1</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"949.67\" cy=\"-341.68\" rx=\"84.71\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #1</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 31,32,39,40</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 7,9</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"N9\" class=\"node acdS9\n",
"\">\n",
"<title>9</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"978.17,-219.19 921.17,-219.19 921.17,-136.19 978.17,-136.19 978.17,-219.19\"/>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 40</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 9</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"949.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;9&gt;</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;9 -->\n",
"<g id=\"acd1_edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M949.67,-282.65C949.67,-265.36 949.67,-246.55 949.67,-229.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"953.17,-229.56 949.67,-219.56 946.17,-229.56 953.17,-229.56\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"N2\" class=\"node acdS1\n",
" acdS4\n",
"\">\n",
"<title>2</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"1121.67\" cy=\"-341.68\" rx=\"69.09\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-367.98\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #2</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-352.98\" font-family=\"Times,serif\" font-size=\"14.00\">T: 5,7,17</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-337.98\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-322.98\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1,4</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-307.98\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"N10\" class=\"node acdS1\n",
"\">\n",
"<title>10</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"1151.17,-219.19 1092.17,-219.19 1092.17,-136.19 1151.17,-136.19 1151.17,-219.19\"/>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 5</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 2</text>\n",
"<text text-anchor=\"middle\" x=\"1121.67\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;10&gt;</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;10 -->\n",
"<g id=\"acd1_edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1121.67,-282.65C1121.67,-265.36 1121.67,-246.55 1121.67,-229.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1125.17,-229.56 1121.67,-219.56 1118.17,-229.56 1125.17,-229.56\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"N3\" class=\"node acdS0\n",
"\">\n",
"<title>3</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"1278.67\" cy=\"-341.68\" rx=\"69.09\" ry=\"69.09\"/>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-375.48\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #3</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-360.48\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-345.48\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,5}</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-330.48\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-315.48\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"1278.67\" y=\"-300.48\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;3&gt;</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><script>\n",
"function acd1_clear(){\n",
" $(\"#acd1 .node,#acdaut1 .node,#acdaut1 .edge\")\n",
" .removeClass(\"acdhigh acdbold acdacc acdrej\");\n",
"};\n",
"function acd1_state(state){\n",
" acd1_clear();\n",
" $(\"#acd1 .acdS\" + state).addClass(\"acdhigh acdbold\");\n",
" $(\"#acdaut1 #S\" + state).addClass(\"acdbold\");\n",
"};\n",
"function acd1_edge(edge){\n",
" acd1_clear();\n",
" var theedge = $('#acdaut1 #E' + edge)\n",
" var classList = theedge.attr('class').split(/\\s+/);\n",
" $.each(classList, function(index, item) {\n",
" if (item.startsWith('acdN')) {\n",
" $(\"#acd1 #\" + item.substring(3)).addClass(\"acdhigh acdbold\");\n",
" }\n",
" });\n",
" theedge.addClass(\"acdbold\");\n",
"};\n",
"function acd1_node(node, acc){\n",
" acd1_clear();\n",
" $(\"#acdaut1 .acdN\" + node).addClass(acc\n",
" ? \"acdacc acdbold\"\n",
" : \"acdrej acdbold\");\n",
" $(\"#acd1 #N\" + node).addClass(\"acdbold acdhigh\");\n",
"};$(\"#acdaut1 #E9\").addClass(\"acdN0\");$(\"#acdaut1 #E10\").addClass(\"acdN0\");$(\"#acdaut1 #E11\").addClass(\"acdN0\");$(\"#acdaut1 #E12\").addClass(\"acdN0\");$(\"#acdaut1 #E13\").addClass(\"acdN0\");$(\"#acdaut1 #E14\").addClass(\"acdN0\");$(\"#acdaut1 #E15\").addClass(\"acdN0\");$(\"#acdaut1 #E16\").addClass(\"acdN0\");$(\"#acdaut1 #E21\").addClass(\"acdN0\");$(\"#acdaut1 #E22\").addClass(\"acdN0\");$(\"#acdaut1 #E23\").addClass(\"acdN0\");$(\"#acdaut1 #E24\").addClass(\"acdN0\");$(\"#acdaut1 #E25\").addClass(\"acdN0\");$(\"#acdaut1 #E26\").addClass(\"acdN0\");$(\"#acdaut1 #E27\").addClass(\"acdN0\");$(\"#acdaut1 #E28\").addClass(\"acdN0\");$(\"#acdaut1 #E33\").addClass(\"acdN0\");$(\"#acdaut1 #E34\").addClass(\"acdN0\");$(\"#acdaut1 #E35\").addClass(\"acdN0\");$(\"#acdaut1 #E36\").addClass(\"acdN0\");$(\"#acdaut1 #E31\").addClass(\"acdN1\");$(\"#acdaut1 #E32\").addClass(\"acdN1\");$(\"#acdaut1 #E39\").addClass(\"acdN1\");$(\"#acdaut1 #E40\").addClass(\"acdN1\");$(\"#acdaut1 #E5\").addClass(\"acdN2\");$(\"#acdaut1 #E7\").addClass(\"acdN2\");$(\"#acdaut1 #E17\").addClass(\"acdN2\");$(\"#acdaut1 #E1\").addClass(\"acdN3\");$(\"#acdaut1 #E10\").addClass(\"acdN4\");$(\"#acdaut1 #E12\").addClass(\"acdN4\");$(\"#acdaut1 #E13\").addClass(\"acdN4\");$(\"#acdaut1 #E15\").addClass(\"acdN4\");$(\"#acdaut1 #E21\").addClass(\"acdN4\");$(\"#acdaut1 #E22\").addClass(\"acdN4\");$(\"#acdaut1 #E14\").addClass(\"acdN5\");$(\"#acdaut1 #E15\").addClass(\"acdN5\");$(\"#acdaut1 #E22\").addClass(\"acdN5\");$(\"#acdaut1 #E23\").addClass(\"acdN5\");$(\"#acdaut1 #E23\").addClass(\"acdN6\");$(\"#acdaut1 #E24\").addClass(\"acdN6\");$(\"#acdaut1 #E34\").addClass(\"acdN6\");$(\"#acdaut1 #E36\").addClass(\"acdN6\");$(\"#acdaut1 #E14\").addClass(\"acdN7\");$(\"#acdaut1 #E16\").addClass(\"acdN7\");$(\"#acdaut1 #E26\").addClass(\"acdN7\");$(\"#acdaut1 #E9\").addClass(\"acdN8\");$(\"#acdaut1 #E40\").addClass(\"acdN9\");$(\"#acdaut1 #E5\").addClass(\"acdN10\");$(\"#acdaut1 #E14\").addClass(\"acdN11\");$(\"#acdaut1 #E23\").addClass(\"acdN12\");$(\"#acdaut1 #E23\").addClass(\"acdN13\");$(\"#acdaut1 #E14\").addClass(\"acdN14\");$(\"#acdaut1 #E1\").click(function(){acd1_edge(1);});$(\"#acdaut1 #E2\").click(function(){acd1_edge(2);});$(\"#acdaut1 #E3\").click(function(){acd1_edge(3);});$(\"#acdaut1 #E4\").click(function(){acd1_edge(4);});$(\"#acdaut1 #E5\").click(function(){acd1_edge(5);});$(\"#acdaut1 #E6\").click(function(){acd1_edge(6);});$(\"#acdaut1 #E7\").click(function(){acd1_edge(7);});$(\"#acdaut1 #E8\").click(function(){acd1_edge(8);});$(\"#acdaut1 #E9\").click(function(){acd1_edge(9);});$(\"#acdaut1 #E10\").click(function(){acd1_edge(10);});$(\"#acdaut1 #E11\").click(function(){acd1_edge(11);});$(\"#acdaut1 #E12\").click(function(){acd1_edge(12);});$(\"#acdaut1 #E13\").click(function(){acd1_edge(13);});$(\"#acdaut1 #E14\").click(function(){acd1_edge(14);});$(\"#acdaut1 #E15\").click(function(){acd1_edge(15);});$(\"#acdaut1 #E16\").click(function(){acd1_edge(16);});$(\"#acdaut1 #E17\").click(function(){acd1_edge(17);});$(\"#acdaut1 #E18\").click(function(){acd1_edge(18);});$(\"#acdaut1 #E19\").click(function(){acd1_edge(19);});$(\"#acdaut1 #E20\").click(function(){acd1_edge(20);});$(\"#acdaut1 #E21\").click(function(){acd1_edge(21);});$(\"#acdaut1 #E22\").click(function(){acd1_edge(22);});$(\"#acdaut1 #E23\").click(function(){acd1_edge(23);});$(\"#acdaut1 #E24\").click(function(){acd1_edge(24);});$(\"#acdaut1 #E25\").click(function(){acd1_edge(25);});$(\"#acdaut1 #E26\").click(function(){acd1_edge(26);});$(\"#acdaut1 #E27\").click(function(){acd1_edge(27);});$(\"#acdaut1 #E28\").click(function(){acd1_edge(28);});$(\"#acdaut1 #E29\").click(function(){acd1_edge(29);});$(\"#acdaut1 #E30\").click(function(){acd1_edge(30);});$(\"#acdaut1 #E31\").click(function(){acd1_edge(31);});$(\"#acdaut1 #E32\").click(function(){acd1_edge(32);});$(\"#acdaut1 #E33\").click(function(){acd1_edge(33);});$(\"#acdaut1 #E34\").click(function(){acd1_edge(34);});$(\"#acdaut1 #E35\").click(function(){acd1_edge(35);});$(\"#acdaut1 #E36\").click(function(){acd1_edge(36);});$(\"#acdaut1 #E37\").click(function(){acd1_edge(37);});$(\"#acdaut1 #E38\").click(function(){acd1_edge(38);});$(\"#acdaut1 #E39\").click(function(){acd1_edge(39);});$(\"#acdaut1 #E40\").click(function(){acd1_edge(40);});$(\"#acdaut1 #S0\").click(function(){acd1_state(0);});$(\"#acdaut1 #S1\").click(function(){acd1_state(1);});$(\"#acdaut1 #S2\").click(function(){acd1_state(2);});$(\"#acdaut1 #S3\").click(function(){acd1_state(3);});$(\"#acdaut1 #S4\").click(function(){acd1_state(4);});$(\"#acdaut1 #S5\").click(function(){acd1_state(5);});$(\"#acdaut1 #S6\").click(function(){acd1_state(6);});$(\"#acdaut1 #S7\").click(function(){acd1_state(7);});$(\"#acdaut1 #S8\").click(function(){acd1_state(8);});$(\"#acdaut1 #S9\").click(function(){acd1_state(9);});$(\"#acd1 #N0\").click(function(){acd1_node(0, 0);});$(\"#acd1 #N1\").click(function(){acd1_node(1, 1);});$(\"#acd1 #N2\").click(function(){acd1_node(2, 1);});$(\"#acd1 #N3\").click(function(){acd1_node(3, 1);});$(\"#acd1 #N4\").click(function(){acd1_node(4, 1);});$(\"#acd1 #N5\").click(function(){acd1_node(5, 1);});$(\"#acd1 #N6\").click(function(){acd1_node(6, 1);});$(\"#acd1 #N7\").click(function(){acd1_node(7, 1);});$(\"#acd1 #N8\").click(function(){acd1_node(8, 1);});$(\"#acd1 #N9\").click(function(){acd1_node(9, 0);});$(\"#acd1 #N10\").click(function(){acd1_node(10, 0);});$(\"#acd1 #N11\").click(function(){acd1_node(11, 0);});$(\"#acd1 #N12\").click(function(){acd1_node(12, 0);});$(\"#acd1 #N13\").click(function(){acd1_node(13, 0);});$(\"#acd1 #N14\").click(function(){acd1_node(14, 0);});</script>"
],
"text/plain": [
"<spot.acd; proxy of <Swig Object of type 'spot::acd *' at 0x7f0c493420f0> >"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd"
]
},
{
"cell_type": "markdown",
"id": "98a1474c",
"metadata": {},
"source": [
"Let set what happens when we step through the two self-loops of state 2 (edges 9 and 10)."
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "00acde97",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.first_branch(2)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "23c5f4df",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.state_step(4, 9)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "da0bbcbe",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theacd.state_step(8, 10)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "da0dc5bc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# since 0 is not a leaf of the tree associated to state 2, the following acts like state_step(first_branch(2), 9)\n",
"theacd.state_step(0, 9) "
]
},
{
"cell_type": "markdown",
"id": "c9725681",
"metadata": {},
"source": [
"The state-based version of the ACD transformation is `acd_transform_sbacc()`. In the output, the cycle between `2#8` and `2#0` corresponds to the repeatitions of edges 9 and 10 we stepped through above."
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "94999c2e",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"312pt\"\n",
" viewBox=\"0.00 0.00 729.00 311.94\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.2610966057441253 0.2610966057441253) rotate(0) translate(4 1192)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-1192 2791,-1192 2791,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"1343\" y=\"-1173.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"1366\" y=\"-1173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"1382\" y=\"-1173.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"1424\" y=\"-1173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1440\" y=\"-1173.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"1366\" y=\"-1159.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M67,-1049C67,-1049 50,-1049 50,-1049 44,-1049 38,-1043 38,-1037 38,-1037 38,-1023 38,-1023 38,-1017 44,-1011 50,-1011 50,-1011 67,-1011 67,-1011 73,-1011 79,-1017 79,-1023 79,-1023 79,-1037 79,-1037 79,-1043 73,-1049 67,-1049\"/>\n",
"<text text-anchor=\"start\" x=\"46\" y=\"-1033.8\" font-family=\"Lato\" font-size=\"14.00\">0#3</text>\n",
"<text text-anchor=\"start\" x=\"50.5\" y=\"-1018.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.16,-1030C2.83,-1030 17.03,-1030 30.76,-1030\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.83,-1030 30.83,-1033.15 34.33,-1030 30.83,-1030 30.83,-1030 30.83,-1030 34.33,-1030 30.83,-1026.85 37.83,-1030 37.83,-1030\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M51.59,-1049.04C50.63,-1058.53 52.93,-1067 58.5,-1067 62.59,-1067 64.92,-1062.43 65.49,-1056.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"65.41,-1049.04 68.63,-1056.01 65.45,-1052.54 65.48,-1056.04 65.48,-1056.04 65.48,-1056.04 65.45,-1052.54 62.33,-1056.07 65.41,-1049.04 65.41,-1049.04\"/>\n",
"<text text-anchor=\"start\" x=\"30\" y=\"-1070.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M206,-1048C206,-1048 180,-1048 180,-1048 174,-1048 168,-1042 168,-1036 168,-1036 168,-1024 168,-1024 168,-1018 174,-1012 180,-1012 180,-1012 206,-1012 206,-1012 212,-1012 218,-1018 218,-1024 218,-1024 218,-1036 218,-1036 218,-1042 212,-1048 206,-1048\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-1026.3\" font-family=\"Lato\" font-size=\"14.00\">1#10</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M79.05,-1030C100.54,-1030 135.37,-1030 160.68,-1030\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"167.87,-1030 160.87,-1033.15 164.37,-1030 160.87,-1030 160.87,-1030 160.87,-1030 164.37,-1030 160.87,-1026.85 167.87,-1030 167.87,-1030\"/>\n",
"<text text-anchor=\"start\" x=\"97\" y=\"-1033.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M766,-801C766,-801 749,-801 749,-801 743,-801 737,-795 737,-789 737,-789 737,-775 737,-775 737,-769 743,-763 749,-763 749,-763 766,-763 766,-763 772,-763 778,-769 778,-775 778,-775 778,-789 778,-789 778,-795 772,-801 766,-801\"/>\n",
"<text text-anchor=\"start\" x=\"745\" y=\"-785.8\" font-family=\"Lato\" font-size=\"14.00\">2#4</text>\n",
"<text text-anchor=\"start\" x=\"749.5\" y=\"-770.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M59.54,-1010.79C60.79,-946.67 74.07,-744 192,-744 192,-744 192,-744 618.5,-744 658.59,-744 702.96,-759.09 730.29,-770.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"736.86,-772.99 729.18,-773.21 733.63,-771.65 730.4,-770.3 730.4,-770.3 730.4,-770.3 733.63,-771.65 731.61,-767.39 736.86,-772.99 736.86,-772.99\"/>\n",
"<text text-anchor=\"start\" x=\"372\" y=\"-747.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M904,-871C904,-871 887,-871 887,-871 881,-871 875,-865 875,-859 875,-859 875,-845 875,-845 875,-839 881,-833 887,-833 887,-833 904,-833 904,-833 910,-833 916,-839 916,-845 916,-845 916,-859 916,-859 916,-865 910,-871 904,-871\"/>\n",
"<text text-anchor=\"start\" x=\"883\" y=\"-855.8\" font-family=\"Lato\" font-size=\"14.00\">3#4</text>\n",
"<text text-anchor=\"start\" x=\"887.5\" y=\"-840.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.51,-1049.44C92.09,-1080.04 137.21,-1136 192,-1136 192,-1136 192,-1136 399.5,-1136 509.04,-1136 542.49,-1146.16 644,-1105 751.67,-1061.35 781.1,-1039.26 853,-948 869.48,-927.08 880.7,-898.61 887.28,-878.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"889.41,-871.22 890.35,-878.84 888.38,-874.56 887.34,-877.91 887.34,-877.91 887.34,-877.91 888.38,-874.56 884.33,-876.98 889.41,-871.22 889.41,-871.22\"/>\n",
"<text text-anchor=\"start\" x=\"447\" y=\"-1140.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M180.7,-1048.15C178.81,-1057.54 182.91,-1066 193,-1066 200.41,-1066 204.59,-1061.44 205.54,-1055.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"205.3,-1048.15 208.68,-1055.04 205.42,-1051.65 205.54,-1055.15 205.54,-1055.15 205.54,-1055.15 205.42,-1051.65 202.39,-1055.25 205.3,-1048.15 205.3,-1048.15\"/>\n",
"<text text-anchor=\"start\" x=\"166.5\" y=\"-1069.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M218.05,-1034.83C245.23,-1039.85 290.86,-1047 330.5,-1047 330.5,-1047 330.5,-1047 545.5,-1047 666.93,-1047 729.74,-874.61 749.5,-807.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"751.49,-801.06 752.56,-808.66 750.51,-804.42 749.54,-807.78 749.54,-807.78 749.54,-807.78 750.51,-804.42 746.51,-806.9 751.49,-801.06 751.49,-801.06\"/>\n",
"<text text-anchor=\"start\" x=\"445\" y=\"-1050.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M340,-985C340,-985 323,-985 323,-985 317,-985 311,-979 311,-973 311,-973 311,-959 311,-959 311,-953 317,-947 323,-947 323,-947 340,-947 340,-947 346,-947 352,-953 352,-959 352,-959 352,-973 352,-973 352,-979 346,-985 340,-985\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-969.8\" font-family=\"Lato\" font-size=\"14.00\">4#2</text>\n",
"<text text-anchor=\"start\" x=\"323.5\" y=\"-954.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M203.37,-1011.88C210.59,-999.88 221.74,-984.94 236,-977 256.6,-965.52 283.61,-963.43 303.48,-963.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"310.71,-964.07 303.61,-966.97 307.22,-963.95 303.72,-963.83 303.72,-963.83 303.72,-963.83 307.22,-963.95 303.83,-960.68 310.71,-964.07 310.71,-964.07\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-980.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1638,-935C1638,-935 1621,-935 1621,-935 1615,-935 1609,-929 1609,-923 1609,-923 1609,-909 1609,-909 1609,-903 1615,-897 1621,-897 1621,-897 1638,-897 1638,-897 1644,-897 1650,-903 1650,-909 1650,-909 1650,-923 1650,-923 1650,-929 1644,-935 1638,-935\"/>\n",
"<text text-anchor=\"start\" x=\"1617\" y=\"-919.8\" font-family=\"Lato\" font-size=\"14.00\">5#4</text>\n",
"<text text-anchor=\"start\" x=\"1621.5\" y=\"-904.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;5 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M218,-1046.72C223.68,-1049.98 229.87,-1052.99 236,-1055 305.86,-1077.85 821,-1118 894.5,-1118 894.5,-1118 894.5,-1118 1486.5,-1118 1571.63,-1118 1610.13,-996.45 1623.12,-941.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1624.72,-935 1626.21,-942.53 1623.93,-938.41 1623.14,-941.82 1623.14,-941.82 1623.14,-941.82 1623.93,-938.41 1620.08,-941.12 1624.72,-935 1624.72,-935\"/>\n",
"<text text-anchor=\"start\" x=\"871\" y=\"-1121.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M745.13,-801.04C743.41,-810.53 747.54,-819 757.5,-819 764.82,-819 768.98,-814.43 770,-808.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"769.87,-801.04 773.15,-807.98 769.94,-804.54 770,-808.04 770,-808.04 770,-808.04 769.94,-804.54 766.85,-808.09 769.87,-801.04 769.87,-801.04\"/>\n",
"<text text-anchor=\"start\" x=\"731\" y=\"-822.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M778.18,-793.77C785.03,-797.76 792.8,-802.17 800,-806 822.77,-818.11 849.2,-830.87 868.31,-839.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"874.75,-842.89 867.07,-842.77 871.58,-841.4 868.41,-839.91 868.41,-839.91 868.41,-839.91 871.58,-841.4 869.75,-837.06 874.75,-842.89 874.75,-842.89\"/>\n",
"<text text-anchor=\"start\" x=\"802\" y=\"-834.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1346,-515C1346,-515 1329,-515 1329,-515 1323,-515 1317,-509 1317,-503 1317,-503 1317,-489 1317,-489 1317,-483 1323,-477 1329,-477 1329,-477 1346,-477 1346,-477 1352,-477 1358,-483 1358,-489 1358,-489 1358,-503 1358,-503 1358,-509 1352,-515 1346,-515\"/>\n",
"<text text-anchor=\"start\" x=\"1325\" y=\"-499.8\" font-family=\"Lato\" font-size=\"14.00\">2#8</text>\n",
"<text text-anchor=\"start\" x=\"1329.5\" y=\"-484.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;6 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M758.25,-762.92C758.45,-696.15 768.69,-477 894.5,-477 894.5,-477 894.5,-477 1190.5,-477 1232.44,-477 1280.6,-484.81 1309.78,-490.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1316.77,-491.78 1309.29,-493.53 1313.33,-491.11 1309.9,-490.44 1309.9,-490.44 1309.9,-490.44 1313.33,-491.11 1310.51,-487.34 1316.77,-491.78 1316.77,-491.78\"/>\n",
"<text text-anchor=\"start\" x=\"1013\" y=\"-480.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1638,-709C1638,-709 1621,-709 1621,-709 1615,-709 1609,-703 1609,-697 1609,-697 1609,-683 1609,-683 1609,-677 1615,-671 1621,-671 1621,-671 1638,-671 1638,-671 1644,-671 1650,-677 1650,-683 1650,-683 1650,-697 1650,-697 1650,-703 1644,-709 1638,-709\"/>\n",
"<text text-anchor=\"start\" x=\"1617\" y=\"-693.8\" font-family=\"Lato\" font-size=\"14.00\">3#5</text>\n",
"<text text-anchor=\"start\" x=\"1621.5\" y=\"-678.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;7 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M758.43,-762.64C758.57,-697.5 762,-487.43 800,-434 827.07,-395.93 847.79,-388 894.5,-388 894.5,-388 894.5,-388 1338.5,-388 1463.94,-388 1505.94,-430.02 1583,-529 1591.35,-539.72 1611.81,-620.83 1622.21,-663.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1623.91,-670.7 1619.2,-664.64 1623.09,-667.3 1622.27,-663.9 1622.27,-663.9 1622.27,-663.9 1623.09,-667.3 1625.33,-663.15 1623.91,-670.7 1623.91,-670.7\"/>\n",
"<text text-anchor=\"start\" x=\"1163\" y=\"-391.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M887.97,-833C881.62,-817.69 870.35,-797.11 853,-787 832.52,-775.06 805.11,-774.99 785.08,-777.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"778.07,-778.11 784.61,-774.09 781.54,-777.66 785.01,-777.22 785.01,-777.22 785.01,-777.22 781.54,-777.66 785.41,-780.34 778.07,-778.11 778.07,-778.11\"/>\n",
"<text text-anchor=\"start\" x=\"800\" y=\"-790.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M916.06,-852C943.76,-852 996,-852 1040.5,-852 1040.5,-852 1040.5,-852 1486.5,-852 1530.7,-852 1543.85,-855.5 1583,-876 1590.86,-880.12 1598.48,-885.87 1605.17,-891.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1610.55,-896.64 1603.26,-894.24 1607.97,-894.28 1605.38,-891.92 1605.38,-891.92 1605.38,-891.92 1607.97,-894.28 1607.5,-889.59 1610.55,-896.64 1610.55,-896.64\"/>\n",
"<text text-anchor=\"start\" x=\"1238\" y=\"-855.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;7 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M916.1,-843.38C943.42,-832.17 994.74,-814 1040.5,-814 1040.5,-814 1040.5,-814 1263.5,-814 1336.86,-814 1520.17,-768.86 1583,-731 1590.68,-726.37 1598.25,-720.34 1604.93,-714.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1610.32,-709.32 1607.34,-716.4 1607.76,-711.71 1605.2,-714.09 1605.2,-714.09 1605.2,-714.09 1607.76,-711.71 1603.05,-711.78 1610.32,-709.32 1610.32,-709.32\"/>\n",
"<text text-anchor=\"start\" x=\"1236\" y=\"-817.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>8</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1050,-607C1050,-607 1033,-607 1033,-607 1027,-607 1021,-601 1021,-595 1021,-595 1021,-581 1021,-581 1021,-575 1027,-569 1033,-569 1033,-569 1050,-569 1050,-569 1056,-569 1062,-575 1062,-581 1062,-581 1062,-595 1062,-595 1062,-601 1056,-607 1050,-607\"/>\n",
"<text text-anchor=\"start\" x=\"1029\" y=\"-591.8\" font-family=\"Lato\" font-size=\"14.00\">6#7</text>\n",
"<text text-anchor=\"start\" x=\"1033.5\" y=\"-576.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;8 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>3&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M902.29,-832.76C909.37,-810.35 922.35,-772.51 938,-742 962.74,-693.78 999.4,-642.21 1021.52,-612.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1025.74,-607.06 1024.05,-614.55 1023.63,-609.86 1021.53,-612.65 1021.53,-612.65 1021.53,-612.65 1023.63,-609.86 1019.01,-610.76 1025.74,-607.06 1025.74,-607.06\"/>\n",
"<text text-anchor=\"start\" x=\"938\" y=\"-745.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;1 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M310.82,-980.96C305.23,-984.84 299.02,-988.82 293,-992 271.16,-1003.55 245.02,-1013.43 225.08,-1020.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"218.31,-1022.49 223.94,-1017.28 221.63,-1021.38 224.94,-1020.26 224.94,-1020.26 224.94,-1020.26 221.63,-1021.38 225.95,-1023.25 218.31,-1022.49 218.31,-1022.49\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-1018.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;2 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>4&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M340.5,-946.92C346.95,-933.21 357.07,-914.93 370,-902 423.08,-848.89 445.07,-841.62 516,-817 590.57,-791.11 684.59,-784.37 729.81,-782.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"736.9,-782.37 730.01,-785.76 733.4,-782.49 729.9,-782.61 729.9,-782.61 729.9,-782.61 733.4,-782.49 729.79,-779.46 736.9,-782.37 736.9,-782.37\"/>\n",
"<text text-anchor=\"start\" x=\"518\" y=\"-820.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M352.15,-966C378.92,-966 428.33,-966 470.5,-966 470.5,-966 470.5,-966 758.5,-966 813.46,-966 857.87,-910.64 879.74,-877.08\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"883.56,-871.08 882.45,-878.68 881.67,-874.03 879.79,-876.98 879.79,-876.98 879.79,-876.98 881.67,-874.03 877.14,-875.29 883.56,-871.08 883.56,-871.08\"/>\n",
"<text text-anchor=\"start\" x=\"593\" y=\"-969.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>9</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M480,-905C480,-905 463,-905 463,-905 457,-905 451,-899 451,-893 451,-893 451,-879 451,-879 451,-873 457,-867 463,-867 463,-867 480,-867 480,-867 486,-867 492,-873 492,-879 492,-879 492,-893 492,-893 492,-899 486,-905 480,-905\"/>\n",
"<text text-anchor=\"start\" x=\"459\" y=\"-889.8\" font-family=\"Lato\" font-size=\"14.00\">7#1</text>\n",
"<text text-anchor=\"start\" x=\"463.5\" y=\"-874.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;9 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>4&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M352.23,-949.62C357.82,-945.3 364.02,-940.78 370,-937 394.17,-921.71 423.51,-907.25 444.23,-897.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"450.64,-894.73 445.59,-900.51 447.45,-896.18 444.27,-897.64 444.27,-897.64 444.27,-897.64 447.45,-896.18 442.96,-894.78 450.64,-894.73 450.64,-894.73\"/>\n",
"<text text-anchor=\"start\" x=\"370\" y=\"-940.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge22\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1608.54,-917.34C1540.14,-921.83 1308.83,-936 1117.5,-936 894.5,-936 894.5,-936 894.5,-936 826.95,-936 784.92,-851.73 767.62,-807.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"765.05,-801.19 770.5,-806.6 766.31,-804.46 767.56,-807.73 767.56,-807.73 767.56,-807.73 766.31,-804.46 764.62,-808.86 765.05,-801.19 765.05,-801.19\"/>\n",
"<text text-anchor=\"start\" x=\"1163\" y=\"-938.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge23\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1608.95,-910.1C1581.76,-902.43 1530.86,-890 1486.5,-890 1040.5,-890 1040.5,-890 1040.5,-890 998.31,-890 951.4,-874.56 922.93,-863.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"916.1,-860.62 923.77,-860.31 919.35,-861.93 922.6,-863.23 922.6,-863.23 922.6,-863.23 919.35,-861.93 921.42,-866.16 916.1,-860.62 916.1,-860.62\"/>\n",
"<text text-anchor=\"start\" x=\"1238\" y=\"-893.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>10</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M2775,-799C2775,-799 2758,-799 2758,-799 2752,-799 2746,-793 2746,-787 2746,-787 2746,-773 2746,-773 2746,-767 2752,-761 2758,-761 2758,-761 2775,-761 2775,-761 2781,-761 2787,-767 2787,-773 2787,-773 2787,-787 2787,-787 2787,-793 2781,-799 2775,-799\"/>\n",
"<text text-anchor=\"start\" x=\"2754\" y=\"-783.8\" font-family=\"Lato\" font-size=\"14.00\">5#5</text>\n",
"<text text-anchor=\"start\" x=\"2758.5\" y=\"-768.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;10 -->\n",
"<g id=\"edge24\" class=\"edge\">\n",
"<title>5&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1650.35,-927.23C1658.13,-931.19 1667.28,-935.32 1676,-938 1720.01,-951.51 1732.46,-953 1778.5,-953 1778.5,-953 1778.5,-953 2637.5,-953 2709.64,-953 2745.78,-854.58 2759.18,-806.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2761.07,-799.18 2762.29,-806.75 2760.16,-802.56 2759.25,-805.94 2759.25,-805.94 2759.25,-805.94 2760.16,-802.56 2756.21,-805.12 2761.07,-799.18 2761.07,-799.18\"/>\n",
"<text text-anchor=\"start\" x=\"2193\" y=\"-956.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>11</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M2082,-509C2082,-509 2065,-509 2065,-509 2059,-509 2053,-503 2053,-497 2053,-497 2053,-483 2053,-483 2053,-477 2059,-471 2065,-471 2065,-471 2082,-471 2082,-471 2088,-471 2094,-477 2094,-483 2094,-483 2094,-497 2094,-497 2094,-503 2088,-509 2082,-509\"/>\n",
"<text text-anchor=\"start\" x=\"2061\" y=\"-493.8\" font-family=\"Lato\" font-size=\"14.00\">8#6</text>\n",
"<text text-anchor=\"start\" x=\"2065.5\" y=\"-478.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;11 -->\n",
"<g id=\"edge25\" class=\"edge\">\n",
"<title>5&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1650.15,-919.67C1695.36,-927.01 1808.56,-938.94 1883,-891 2018.5,-803.73 2059.11,-591.1 2069.41,-516.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2070.37,-509.25 2072.57,-516.6 2069.91,-512.72 2069.44,-516.19 2069.44,-516.19 2069.44,-516.19 2069.91,-512.72 2066.32,-515.77 2070.37,-509.25 2070.37,-509.25\"/>\n",
"<text text-anchor=\"start\" x=\"1826\" y=\"-918.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;6 -->\n",
"<g id=\"edge26\" class=\"edge\">\n",
"<title>6&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1324.03,-515.04C1322.17,-524.53 1326.66,-533 1337.5,-533 1345.46,-533 1350,-528.43 1351.11,-522.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1350.97,-515.04 1354.25,-521.97 1351.03,-518.54 1351.1,-522.04 1351.1,-522.04 1351.1,-522.04 1351.03,-518.54 1347.95,-522.1 1350.97,-515.04 1350.97,-515.04\"/>\n",
"<text text-anchor=\"start\" x=\"1309\" y=\"-536.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g id=\"node14\" class=\"node\">\n",
"<title>12</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1494,-548C1494,-548 1477,-548 1477,-548 1471,-548 1465,-542 1465,-536 1465,-536 1465,-522 1465,-522 1465,-516 1471,-510 1477,-510 1477,-510 1494,-510 1494,-510 1500,-510 1506,-516 1506,-522 1506,-522 1506,-536 1506,-536 1506,-542 1500,-548 1494,-548\"/>\n",
"<text text-anchor=\"start\" x=\"1473\" y=\"-532.8\" font-family=\"Lato\" font-size=\"14.00\">2#0</text>\n",
"<text text-anchor=\"start\" x=\"1477.5\" y=\"-517.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;12 -->\n",
"<g id=\"edge27\" class=\"edge\">\n",
"<title>6&#45;&gt;12</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1358.21,-503.76C1366.13,-506.65 1375.41,-509.78 1384,-512 1408.57,-518.35 1437.14,-522.92 1457.53,-525.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1464.65,-526.66 1457.29,-528.86 1461.18,-526.2 1457.71,-525.73 1457.71,-525.73 1457.71,-525.73 1461.18,-526.2 1458.13,-522.61 1464.65,-526.66 1464.65,-526.66\"/>\n",
"<text text-anchor=\"start\" x=\"1386\" y=\"-527.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g id=\"node15\" class=\"node\">\n",
"<title>13</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1494,-748C1494,-748 1477,-748 1477,-748 1471,-748 1465,-742 1465,-736 1465,-736 1465,-722 1465,-722 1465,-716 1471,-710 1477,-710 1477,-710 1494,-710 1494,-710 1500,-710 1506,-716 1506,-722 1506,-722 1506,-736 1506,-736 1506,-742 1500,-748 1494,-748\"/>\n",
"<text text-anchor=\"start\" x=\"1473\" y=\"-732.8\" font-family=\"Lato\" font-size=\"14.00\">3#0</text>\n",
"<text text-anchor=\"start\" x=\"1477.5\" y=\"-717.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;13 -->\n",
"<g id=\"edge28\" class=\"edge\">\n",
"<title>6&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1343.98,-515.12C1354.48,-551.4 1377.01,-627.57 1384,-638 1402.44,-665.51 1416.54,-663.67 1441,-686 1447.5,-691.93 1454.34,-698.52 1460.63,-704.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1465.76,-709.83 1458.58,-707.13 1463.28,-707.36 1460.8,-704.89 1460.8,-704.89 1460.8,-704.89 1463.28,-707.36 1463.02,-702.66 1465.76,-709.83 1465.76,-709.83\"/>\n",
"<text text-anchor=\"start\" x=\"1386\" y=\"-689.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;13 -->\n",
"<g id=\"edge29\" class=\"edge\">\n",
"<title>6&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1346.18,-515.07C1353.92,-532.72 1367.12,-559.02 1384,-578 1404.74,-601.32 1421.82,-594.38 1441,-619 1460.56,-644.1 1472.38,-679.12 1478.66,-702.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1480.44,-709.83 1475.66,-703.83 1479.57,-706.44 1478.71,-703.05 1478.71,-703.05 1478.71,-703.05 1479.57,-706.44 1481.76,-702.27 1480.44,-709.83 1480.44,-709.83\"/>\n",
"<text text-anchor=\"start\" x=\"1388\" y=\"-622.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;6 -->\n",
"<g id=\"edge30\" class=\"edge\">\n",
"<title>7&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1608.97,-678.35C1551.9,-644.29 1389.11,-547.06 1384,-543 1375.62,-536.34 1367.24,-528.21 1360,-520.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1355.19,-515.44 1362.26,-518.41 1357.57,-518 1359.96,-520.56 1359.96,-520.56 1359.96,-520.56 1357.57,-518 1357.66,-522.71 1355.19,-515.44 1355.19,-515.44\"/>\n",
"<text text-anchor=\"start\" x=\"1459\" y=\"-622.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;8 -->\n",
"<g id=\"edge33\" class=\"edge\">\n",
"<title>7&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1608.82,-691.18C1557.62,-693.89 1421.57,-698.71 1384,-676 1370.69,-667.96 1378.8,-654.83 1366,-646 1272.32,-581.37 1128.22,-582.24 1069.15,-585.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1062.05,-586.24 1068.83,-582.65 1065.54,-586.02 1069.04,-585.79 1069.04,-585.79 1069.04,-585.79 1065.54,-586.02 1069.24,-588.93 1062.05,-586.24 1062.05,-586.24\"/>\n",
"<text text-anchor=\"start\" x=\"1309\" y=\"-649.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g id=\"node16\" class=\"node\">\n",
"<title>14</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1792.5,-807C1792.5,-807 1766.5,-807 1766.5,-807 1760.5,-807 1754.5,-801 1754.5,-795 1754.5,-795 1754.5,-783 1754.5,-783 1754.5,-777 1760.5,-771 1766.5,-771 1766.5,-771 1792.5,-771 1792.5,-771 1798.5,-771 1804.5,-777 1804.5,-783 1804.5,-783 1804.5,-795 1804.5,-795 1804.5,-801 1798.5,-807 1792.5,-807\"/>\n",
"<text text-anchor=\"start\" x=\"1762.5\" y=\"-785.3\" font-family=\"Lato\" font-size=\"14.00\">3#11</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;14 -->\n",
"<g id=\"edge31\" class=\"edge\">\n",
"<title>7&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1650.15,-703.15C1675.26,-719.94 1718.97,-749.18 1748.31,-768.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1754.34,-772.84 1746.77,-771.57 1751.43,-770.89 1748.52,-768.95 1748.52,-768.95 1748.52,-768.95 1751.43,-770.89 1750.27,-766.33 1754.34,-772.84 1754.34,-772.84\"/>\n",
"<text text-anchor=\"start\" x=\"1678\" y=\"-759.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 15 -->\n",
"<g id=\"node17\" class=\"node\">\n",
"<title>15</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1940.5,-699C1940.5,-699 1914.5,-699 1914.5,-699 1908.5,-699 1902.5,-693 1902.5,-687 1902.5,-687 1902.5,-675 1902.5,-675 1902.5,-669 1908.5,-663 1914.5,-663 1914.5,-663 1940.5,-663 1940.5,-663 1946.5,-663 1952.5,-669 1952.5,-675 1952.5,-675 1952.5,-687 1952.5,-687 1952.5,-693 1946.5,-699 1940.5,-699\"/>\n",
"<text text-anchor=\"start\" x=\"1910.5\" y=\"-677.3\" font-family=\"Lato\" font-size=\"14.00\">5#12</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;15 -->\n",
"<g id=\"edge32\" class=\"edge\">\n",
"<title>7&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1650.38,-689.4C1700.83,-687.86 1834.12,-683.81 1895.16,-681.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1902.24,-681.74 1895.34,-685.1 1898.74,-681.84 1895.24,-681.95 1895.24,-681.95 1895.24,-681.95 1898.74,-681.84 1895.15,-678.8 1902.24,-681.74 1902.24,-681.74\"/>\n",
"<text text-anchor=\"start\" x=\"1755\" y=\"-690.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;6 -->\n",
"<g id=\"edge34\" class=\"edge\">\n",
"<title>8&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1062.25,-581.82C1113.71,-565.72 1252,-522.44 1310.16,-504.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1316.84,-502.15 1311.1,-507.25 1313.5,-503.2 1310.16,-504.24 1310.16,-504.24 1310.16,-504.24 1313.5,-503.2 1309.22,-501.24 1316.84,-502.15 1316.84,-502.15\"/>\n",
"<text text-anchor=\"start\" x=\"1163\" y=\"-553.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;13 -->\n",
"<g id=\"edge36\" class=\"edge\">\n",
"<title>8&#45;&gt;13</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1044.15,-607.33C1047.51,-633.94 1057.65,-681.37 1088,-706 1139.74,-747.99 1317.58,-748.65 1384,-754 1409.25,-756.03 1416.52,-760.53 1441,-754 1446.93,-752.42 1452.89,-749.81 1458.41,-746.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1464.67,-743.3 1460.15,-749.5 1461.63,-745.03 1458.59,-746.77 1458.59,-746.77 1458.59,-746.77 1461.63,-745.03 1457.03,-744.03 1464.67,-743.3 1464.67,-743.3\"/>\n",
"<text text-anchor=\"start\" x=\"1238\" y=\"-751.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 16 -->\n",
"<g id=\"node18\" class=\"node\">\n",
"<title>16</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M2519,-162C2519,-162 2493,-162 2493,-162 2487,-162 2481,-156 2481,-150 2481,-150 2481,-138 2481,-138 2481,-132 2487,-126 2493,-126 2493,-126 2519,-126 2519,-126 2525,-126 2531,-132 2531,-138 2531,-138 2531,-150 2531,-150 2531,-156 2525,-162 2519,-162\"/>\n",
"<text text-anchor=\"start\" x=\"2489\" y=\"-140.3\" font-family=\"Lato\" font-size=\"14.00\">3#14</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;16 -->\n",
"<g id=\"edge35\" class=\"edge\">\n",
"<title>8&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1048.78,-568.75C1054.7,-550.23 1063.59,-521.38 1070,-496 1115.27,-316.64 1003.51,-97 1188.5,-97 1188.5,-97 1188.5,-97 1705.5,-97 1836.22,-97 1868.78,-89 1999.5,-89 1999.5,-89 1999.5,-89 2360.5,-89 2402.05,-89 2446.18,-109.11 2474.59,-125.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2480.75,-128.53 2473.11,-127.79 2477.71,-126.8 2474.67,-125.06 2474.67,-125.06 2474.67,-125.06 2477.71,-126.8 2476.24,-122.32 2480.75,-128.53 2480.75,-128.53\"/>\n",
"<text text-anchor=\"start\" x=\"1753\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 17 -->\n",
"<g id=\"node19\" class=\"node\">\n",
"<title>17</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1198,-311C1198,-311 1181,-311 1181,-311 1175,-311 1169,-305 1169,-299 1169,-299 1169,-285 1169,-285 1169,-279 1175,-273 1181,-273 1181,-273 1198,-273 1198,-273 1204,-273 1210,-279 1210,-285 1210,-285 1210,-299 1210,-299 1210,-305 1204,-311 1198,-311\"/>\n",
"<text text-anchor=\"start\" x=\"1177\" y=\"-295.8\" font-family=\"Lato\" font-size=\"14.00\">8#0</text>\n",
"<text text-anchor=\"start\" x=\"1181.5\" y=\"-280.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;17 -->\n",
"<g id=\"edge37\" class=\"edge\">\n",
"<title>8&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1056.32,-568.56C1064.56,-558.09 1075.77,-545.6 1088,-537 1110.35,-521.28 1128.38,-535.68 1145,-514 1165.16,-487.71 1155.56,-398.29 1163,-366 1166.78,-349.61 1172.86,-331.78 1178.14,-317.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1180.65,-311.15 1181.09,-318.81 1179.4,-314.42 1178.15,-317.69 1178.15,-317.69 1178.15,-317.69 1179.4,-314.42 1175.21,-316.56 1180.65,-311.15 1180.65,-311.15\"/>\n",
"<text text-anchor=\"start\" x=\"1088\" y=\"-540.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;2 -->\n",
"<g id=\"edge38\" class=\"edge\">\n",
"<title>9&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M492.28,-872.28C499.52,-867.65 507.92,-862.71 516,-859 600.28,-820.24 626.82,-824.83 715,-796 719.87,-794.41 725.05,-792.68 730.04,-791.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"736.68,-788.77 731.06,-793.99 733.37,-789.89 730.05,-791.01 730.05,-791.01 730.05,-791.01 733.37,-789.89 729.04,-788.02 736.68,-788.77 736.68,-788.77\"/>\n",
"<text text-anchor=\"start\" x=\"591\" y=\"-833.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;5 -->\n",
"<g id=\"edge39\" class=\"edge\">\n",
"<title>9&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M489.14,-905.4C510.26,-928.59 549.03,-966.56 591,-985 914.98,-1127.31 1030.28,-1046.09 1384,-1056 1409.32,-1056.71 1416.96,-1063.99 1441,-1056 1509.98,-1033.09 1574.13,-973.81 1606.51,-940.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1611.43,-935.03 1608.88,-942.27 1609.01,-937.57 1606.6,-940.1 1606.6,-940.1 1606.6,-940.1 1609.01,-937.57 1604.32,-937.93 1611.43,-935.03 1611.43,-935.03\"/>\n",
"<text text-anchor=\"start\" x=\"1017\" y=\"-1072.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;9 -->\n",
"<g id=\"edge40\" class=\"edge\">\n",
"<title>9&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M458.4,-905.04C456.59,-914.53 460.95,-923 471.5,-923 479.25,-923 483.66,-918.43 484.74,-912.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"484.6,-905.04 487.88,-911.98 484.67,-908.54 484.73,-912.04 484.73,-912.04 484.73,-912.04 484.67,-908.54 481.58,-912.1 484.6,-905.04 484.6,-905.04\"/>\n",
"<text text-anchor=\"start\" x=\"443\" y=\"-926.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 18 -->\n",
"<g id=\"node20\" class=\"node\">\n",
"<title>18</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M626,-897C626,-897 609,-897 609,-897 603,-897 597,-891 597,-885 597,-885 597,-873 597,-873 597,-867 603,-861 609,-861 609,-861 626,-861 626,-861 632,-861 638,-867 638,-873 638,-873 638,-885 638,-885 638,-891 632,-897 626,-897\"/>\n",
"<text text-anchor=\"start\" x=\"605\" y=\"-875.3\" font-family=\"Lato\" font-size=\"14.00\">9#9</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;18 -->\n",
"<g id=\"edge41\" class=\"edge\">\n",
"<title>9&#45;&gt;18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M492.18,-886.92C512.47,-887.66 545,-888.24 573,-886 578.35,-885.57 584.03,-884.85 589.46,-884.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"596.66,-882.88 590.25,-887.1 593.2,-883.43 589.75,-883.99 589.75,-883.99 589.75,-883.99 593.2,-883.43 589.25,-880.88 596.66,-882.88 596.66,-882.88\"/>\n",
"<text text-anchor=\"start\" x=\"518\" y=\"-890.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;6 -->\n",
"<g id=\"edge42\" class=\"edge\">\n",
"<title>10&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2765.02,-799.27C2762.41,-859.77 2745.58,-1042 2637.5,-1042 1484.5,-1042 1484.5,-1042 1484.5,-1042 1435,-1042 1411.38,-1035.24 1384,-994 1360.55,-958.7 1371.87,-654.97 1366,-613 1361.57,-581.35 1352.6,-545.69 1346.1,-522.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1344.18,-515.25 1349.09,-521.15 1345.12,-518.62 1346.06,-522 1346.06,-522 1346.06,-522 1345.12,-518.62 1343.03,-522.84 1344.18,-515.25 1344.18,-515.25\"/>\n",
"<text text-anchor=\"start\" x=\"2047\" y=\"-1045.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;7 -->\n",
"<g id=\"edge43\" class=\"edge\">\n",
"<title>10&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2752.66,-799.16C2732.01,-827.43 2688.52,-877 2637.5,-877 1778.5,-877 1778.5,-877 1778.5,-877 1697.44,-877 1653.8,-767.62 1637.76,-716.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1635.68,-709.31 1640.72,-715.09 1636.69,-712.66 1637.71,-716.01 1637.71,-716.01 1637.71,-716.01 1636.69,-712.66 1634.69,-716.92 1635.68,-709.31 1635.68,-709.31\"/>\n",
"<text text-anchor=\"start\" x=\"2195\" y=\"-880.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;11 -->\n",
"<g id=\"edge45\" class=\"edge\">\n",
"<title>10&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2758.26,-760.81C2742.55,-722.89 2701.55,-642 2637.5,-642 2218.5,-642 2218.5,-642 2218.5,-642 2149.84,-642 2104.1,-559.24 2084.84,-515.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2081.98,-509.25 2087.65,-514.42 2083.37,-512.46 2084.76,-515.67 2084.76,-515.67 2084.76,-515.67 2083.37,-512.46 2081.87,-516.93 2081.98,-509.25 2081.98,-509.25\"/>\n",
"<text text-anchor=\"start\" x=\"2406\" y=\"-645.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;15 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>10&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2745.78,-773.69C2720.84,-766.29 2676.44,-755 2637.5,-755 2072.5,-755 2072.5,-755 2072.5,-755 2027.1,-755 1981.67,-725.54 1954.32,-703.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1948.76,-699.29 1956.18,-701.26 1951.48,-701.5 1954.2,-703.7 1954.2,-703.7 1954.2,-703.7 1951.48,-701.5 1952.21,-706.15 1948.76,-699.29 1948.76,-699.29\"/>\n",
"<text text-anchor=\"start\" x=\"2333\" y=\"-758.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;6 -->\n",
"<g id=\"edge46\" class=\"edge\">\n",
"<title>11&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2052.63,-479.33C2025.43,-465.74 1974.69,-444 1928.5,-444 1555.5,-444 1555.5,-444 1555.5,-444 1477.96,-444 1458.09,-453.14 1384,-476 1377.58,-477.98 1370.86,-480.61 1364.61,-483.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1358.06,-486.22 1363.17,-480.5 1361.25,-484.8 1364.45,-483.37 1364.45,-483.37 1364.45,-483.37 1361.25,-484.8 1365.73,-486.25 1358.06,-486.22 1358.06,-486.22\"/>\n",
"<text text-anchor=\"start\" x=\"1678\" y=\"-447.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;11 -->\n",
"<g id=\"edge49\" class=\"edge\">\n",
"<title>11&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2060.4,-509.04C2058.59,-518.53 2062.95,-527 2073.5,-527 2081.25,-527 2085.66,-522.43 2086.74,-516.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2086.6,-509.04 2089.88,-515.98 2086.67,-512.54 2086.73,-516.04 2086.73,-516.04 2086.73,-516.04 2086.67,-512.54 2083.58,-516.1 2086.6,-509.04 2086.6,-509.04\"/>\n",
"<text text-anchor=\"start\" x=\"2045\" y=\"-530.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 19 -->\n",
"<g id=\"node21\" class=\"node\">\n",
"<title>19</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M2232.5,-407C2232.5,-407 2206.5,-407 2206.5,-407 2200.5,-407 2194.5,-401 2194.5,-395 2194.5,-395 2194.5,-383 2194.5,-383 2194.5,-377 2200.5,-371 2206.5,-371 2206.5,-371 2232.5,-371 2232.5,-371 2238.5,-371 2244.5,-377 2244.5,-383 2244.5,-383 2244.5,-395 2244.5,-395 2244.5,-401 2238.5,-407 2232.5,-407\"/>\n",
"<text text-anchor=\"start\" x=\"2202.5\" y=\"-385.3\" font-family=\"Lato\" font-size=\"14.00\">5#13</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;19 -->\n",
"<g id=\"edge47\" class=\"edge\">\n",
"<title>11&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2082.69,-470.71C2089.95,-455.74 2101.9,-435.51 2118,-423 2129.03,-414.43 2162.29,-404.07 2187.56,-397.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2194.45,-395.17 2188.53,-400.06 2191.07,-396.1 2187.69,-397.02 2187.69,-397.02 2187.69,-397.02 2191.07,-396.1 2186.86,-393.98 2194.45,-395.17 2194.45,-395.17\"/>\n",
"<text text-anchor=\"start\" x=\"2120\" y=\"-426.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 20 -->\n",
"<g id=\"node22\" class=\"node\">\n",
"<title>20</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M2645,-436C2645,-436 2628,-436 2628,-436 2622,-436 2616,-430 2616,-424 2616,-424 2616,-410 2616,-410 2616,-404 2622,-398 2628,-398 2628,-398 2645,-398 2645,-398 2651,-398 2657,-404 2657,-410 2657,-410 2657,-424 2657,-424 2657,-430 2651,-436 2645,-436\"/>\n",
"<text text-anchor=\"start\" x=\"2624\" y=\"-420.8\" font-family=\"Lato\" font-size=\"14.00\">5#0</text>\n",
"<text text-anchor=\"start\" x=\"2628.5\" y=\"-405.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;20 -->\n",
"<g id=\"edge48\" class=\"edge\">\n",
"<title>11&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2094.22,-501.83C2121.26,-516.89 2171.82,-541 2218.5,-541 2218.5,-541 2218.5,-541 2507,-541 2550.66,-541 2566.81,-534.55 2598,-504 2614.88,-487.47 2624.62,-462.1 2629.92,-443.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2631.74,-436.03 2633.03,-443.6 2630.86,-439.42 2629.98,-442.81 2629.98,-442.81 2629.98,-442.81 2630.86,-439.42 2626.93,-442.01 2631.74,-436.03 2631.74,-436.03\"/>\n",
"<text text-anchor=\"start\" x=\"2335\" y=\"-544.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;2 -->\n",
"<g id=\"edge51\" class=\"edge\">\n",
"<title>12&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1470.87,-509.72C1463.16,-500.24 1452.73,-489.49 1441,-483 1313.58,-412.5 1263.12,-431 1117.5,-431 894.5,-431 894.5,-431 894.5,-431 845.9,-431 827.1,-445.66 800,-486 770.53,-529.88 761.68,-691.37 759.3,-755.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"759.04,-762.82 756.14,-755.71 759.16,-759.32 759.29,-755.82 759.29,-755.82 759.29,-755.82 759.16,-759.32 762.43,-755.94 759.04,-762.82 759.04,-762.82\"/>\n",
"<text text-anchor=\"start\" x=\"1090\" y=\"-434.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;3 -->\n",
"<g id=\"edge53\" class=\"edge\">\n",
"<title>12&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1464.83,-538.43C1442.04,-550.34 1404.96,-572.97 1384,-603 1367.58,-626.53 1379.4,-639.63 1366,-665 1341.52,-711.34 1336.93,-730.75 1291,-756 1152.46,-832.18 1075.94,-722.73 938,-800 926.82,-806.26 917.53,-816.87 910.6,-826.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"906.59,-832.98 907.8,-825.4 908.51,-830.05 910.43,-827.13 910.43,-827.13 910.43,-827.13 908.51,-830.05 913.07,-828.86 906.59,-832.98 906.59,-832.98\"/>\n",
"<text text-anchor=\"start\" x=\"1165\" y=\"-787.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;6 -->\n",
"<g id=\"edge50\" class=\"edge\">\n",
"<title>12&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1466.85,-509.65C1459.57,-503.04 1450.59,-496.45 1441,-493 1416.43,-484.15 1386.36,-486.43 1365.16,-489.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1358.06,-491.28 1364.38,-486.93 1361.5,-490.66 1364.94,-490.03 1364.94,-490.03 1364.94,-490.03 1361.5,-490.66 1365.51,-493.13 1358.06,-491.28 1358.06,-491.28\"/>\n",
"<text text-anchor=\"start\" x=\"1384\" y=\"-496.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 12&#45;&gt;7 -->\n",
"<g id=\"edge52\" class=\"edge\">\n",
"<title>12&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1506.11,-529.07C1527.67,-530.2 1562.01,-535.27 1583,-555 1613.4,-583.58 1623.49,-633.12 1626.84,-663.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1627.56,-670.89 1623.74,-664.23 1627.22,-667.41 1626.88,-663.92 1626.88,-663.92 1626.88,-663.92 1627.22,-667.41 1630.01,-663.62 1627.56,-670.89 1627.56,-670.89\"/>\n",
"<text text-anchor=\"start\" x=\"1530\" y=\"-558.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;2 -->\n",
"<g id=\"edge54\" class=\"edge\">\n",
"<title>13&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1464.82,-729.08C1444.53,-729.01 1412,-728.46 1384,-726 1264.75,-715.53 1237.21,-687 1117.5,-687 894.5,-687 894.5,-687 894.5,-687 845.36,-687 801.31,-729.2 777.39,-757.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"772.88,-762.78 774.93,-755.38 775.12,-760.08 777.36,-757.39 777.36,-757.39 777.36,-757.39 775.12,-760.08 779.78,-759.41 772.88,-762.78 772.88,-762.78\"/>\n",
"<text text-anchor=\"start\" x=\"1090\" y=\"-690.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;5 -->\n",
"<g id=\"edge56\" class=\"edge\">\n",
"<title>13&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1506.35,-734.36C1528.12,-741.23 1562.66,-755.18 1583,-779 1610.3,-810.98 1621.36,-859.89 1625.74,-889.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1626.72,-896.97 1622.65,-890.46 1626.25,-893.5 1625.77,-890.04 1625.77,-890.04 1625.77,-890.04 1626.25,-893.5 1628.89,-889.61 1626.72,-896.97 1626.72,-896.97\"/>\n",
"<text text-anchor=\"start\" x=\"1532\" y=\"-782.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;7 -->\n",
"<g id=\"edge55\" class=\"edge\">\n",
"<title>13&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1506.38,-722.91C1513.78,-720.68 1522.26,-718.18 1530,-716 1554.26,-709.17 1582.03,-701.89 1601.89,-696.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1608.83,-694.99 1602.83,-699.79 1605.44,-695.86 1602.05,-696.74 1602.05,-696.74 1602.05,-696.74 1605.44,-695.86 1601.26,-693.68 1608.83,-694.99 1608.83,-694.99\"/>\n",
"<text text-anchor=\"start\" x=\"1530\" y=\"-719.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;8 -->\n",
"<g id=\"edge57\" class=\"edge\">\n",
"<title>13&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1464.99,-726.99C1443.67,-724.04 1409.21,-717.05 1384,-701 1373.63,-694.4 1376.45,-686.48 1366,-680 1336.78,-661.88 1324.62,-668.23 1291,-661 1201.42,-641.74 1171.32,-663.12 1088,-625 1080.77,-621.69 1073.72,-616.96 1067.41,-611.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1061.83,-607.37 1069.24,-609.4 1064.53,-609.6 1067.23,-611.83 1067.23,-611.83 1067.23,-611.83 1064.53,-609.6 1065.22,-614.26 1061.83,-607.37 1061.83,-607.37\"/>\n",
"<text text-anchor=\"start\" x=\"1234\" y=\"-664.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;6 -->\n",
"<g id=\"edge58\" class=\"edge\">\n",
"<title>14&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1754.41,-793.54C1709.5,-801.11 1610.26,-813.66 1530,-794 1495.44,-785.53 1489.46,-775.4 1459,-757 1424.28,-736.03 1405.52,-739.38 1384,-705 1356.32,-660.78 1377.42,-639.91 1366,-589 1360.86,-566.08 1353.16,-540.53 1347.21,-522.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1344.94,-515.04 1350.1,-520.73 1346.02,-518.37 1347.11,-521.7 1347.11,-521.7 1347.11,-521.7 1346.02,-518.37 1344.11,-522.67 1344.94,-515.04 1344.94,-515.04\"/>\n",
"<text text-anchor=\"start\" x=\"1530\" y=\"-805.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;8 -->\n",
"<g id=\"edge61\" class=\"edge\">\n",
"<title>14&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1770.87,-807.16C1755.39,-841.31 1716.73,-914.36 1658,-944 1540.9,-1003.1 1173.18,-962.31 1163,-955 1050.3,-874 1041.07,-684.11 1041.66,-614.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1041.76,-607.19 1044.82,-614.23 1041.72,-610.69 1041.67,-614.19 1041.67,-614.19 1041.67,-614.19 1041.72,-610.69 1038.52,-614.14 1041.76,-607.19 1041.76,-607.19\"/>\n",
"<text text-anchor=\"start\" x=\"1384\" y=\"-978.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;14 -->\n",
"<g id=\"edge59\" class=\"edge\">\n",
"<title>14&#45;&gt;14</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1766.11,-807.15C1764.05,-816.54 1768.52,-825 1779.5,-825 1787.57,-825 1792.12,-820.44 1793.15,-814.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1792.89,-807.15 1796.29,-814.03 1793.01,-810.65 1793.14,-814.15 1793.14,-814.15 1793.14,-814.15 1793.01,-810.65 1789.99,-814.26 1792.89,-807.15 1792.89,-807.15\"/>\n",
"<text text-anchor=\"start\" x=\"1753\" y=\"-828.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 14&#45;&gt;15 -->\n",
"<g id=\"edge60\" class=\"edge\">\n",
"<title>14&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1804.77,-774.01C1825.96,-760.6 1857.28,-740.04 1883,-720 1889.37,-715.04 1895.99,-709.39 1902.08,-703.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1907.51,-699.06 1904.42,-706.09 1904.91,-701.41 1902.31,-703.75 1902.31,-703.75 1902.31,-703.75 1904.91,-701.41 1900.2,-701.42 1907.51,-699.06 1907.51,-699.06\"/>\n",
"<text text-anchor=\"start\" x=\"1830\" y=\"-761.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;6 -->\n",
"<g id=\"edge62\" class=\"edge\">\n",
"<title>15&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1902.39,-668.53C1839.63,-636.51 1665.44,-550.48 1512,-501 1457.32,-483.37 1440.89,-475.03 1384,-483 1377.8,-483.87 1371.26,-485.37 1365.13,-487.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1358.17,-489.08 1364.01,-484.1 1361.53,-488.1 1364.89,-487.12 1364.89,-487.12 1364.89,-487.12 1361.53,-488.1 1365.78,-490.15 1358.17,-489.08 1358.17,-489.08\"/>\n",
"<text text-anchor=\"start\" x=\"1603\" y=\"-558.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;7 -->\n",
"<g id=\"edge63\" class=\"edge\">\n",
"<title>15&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1902.35,-676.13C1868.5,-669.94 1805.02,-660.67 1751,-666 1718.35,-669.22 1681.43,-677.23 1657.16,-683.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1650.36,-684.79 1656.41,-680.06 1653.76,-683.96 1657.16,-683.12 1657.16,-683.12 1657.16,-683.12 1653.76,-683.96 1657.91,-686.18 1650.36,-684.79 1650.36,-684.79\"/>\n",
"<text text-anchor=\"start\" x=\"1755\" y=\"-669.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;11 -->\n",
"<g id=\"edge65\" class=\"edge\">\n",
"<title>15&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1942.31,-662.69C1968.23,-628.3 2024.23,-554.03 2053.62,-515.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2058.1,-509.11 2056.4,-516.59 2055.99,-511.9 2053.88,-514.7 2053.88,-514.7 2053.88,-514.7 2055.99,-511.9 2051.37,-512.8 2058.1,-509.11 2058.1,-509.11\"/>\n",
"<text text-anchor=\"start\" x=\"1972\" y=\"-623.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;15 -->\n",
"<g id=\"edge64\" class=\"edge\">\n",
"<title>15&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1914.47,-699.15C1912.47,-708.54 1916.81,-717 1927.5,-717 1935.35,-717 1939.77,-712.44 1940.78,-706.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1940.53,-699.15 1943.92,-706.04 1940.65,-702.65 1940.77,-706.15 1940.77,-706.15 1940.77,-706.15 1940.65,-702.65 1937.63,-706.26 1940.53,-699.15 1940.53,-699.15\"/>\n",
"<text text-anchor=\"start\" x=\"1901\" y=\"-720.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;6 -->\n",
"<g id=\"edge66\" class=\"edge\">\n",
"<title>16&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2480.83,-149.03C2411.06,-163.4 2203.18,-205.23 2029,-230 1808.24,-261.4 1735.73,-196.01 1530,-282 1452.5,-314.39 1435.95,-336 1384,-402 1367.65,-422.77 1355.16,-450.38 1347.44,-470.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1344.91,-476.99 1344.44,-469.33 1346.15,-473.72 1347.39,-470.44 1347.39,-470.44 1347.39,-470.44 1346.15,-473.72 1350.33,-471.56 1344.91,-476.99 1344.91,-476.99\"/>\n",
"<text text-anchor=\"start\" x=\"1901\" y=\"-243.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;8 -->\n",
"<g id=\"edge69\" class=\"edge\">\n",
"<title>16&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2493.08,-125.71C2485.46,-115.1 2474.82,-102.09 2463,-93 2423.28,-62.44 2410.62,-46 2360.5,-46 1188.5,-46 1188.5,-46 1188.5,-46 1137.79,-46 1115,-57.08 1088,-100 1064.54,-137.28 1077.36,-452.57 1070,-496 1066.14,-518.78 1058.4,-543.86 1052.11,-562.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1049.69,-568.94 1049.04,-561.29 1050.86,-565.64 1052.02,-562.34 1052.02,-562.34 1052.02,-562.34 1050.86,-565.64 1054.99,-563.38 1049.69,-568.94 1049.69,-568.94\"/>\n",
"<text text-anchor=\"start\" x=\"1751\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;16 -->\n",
"<g id=\"edge67\" class=\"edge\">\n",
"<title>16&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2494.06,-162.15C2492.22,-171.54 2496.2,-180 2506,-180 2513.19,-180 2517.25,-175.44 2518.17,-169.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2517.94,-162.15 2521.32,-169.05 2518.05,-165.65 2518.17,-169.15 2518.17,-169.15 2518.17,-169.15 2518.05,-165.65 2515.02,-169.25 2517.94,-162.15 2517.94,-162.15\"/>\n",
"<text text-anchor=\"start\" x=\"2479.5\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;20 -->\n",
"<g id=\"edge68\" class=\"edge\">\n",
"<title>16&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2531.17,-150.71C2552.26,-157.87 2581.93,-171.37 2598,-194 2620.21,-225.27 2630.36,-338.71 2633.92,-390.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2634.4,-397.88 2630.79,-391.11 2634.17,-394.39 2633.94,-390.9 2633.94,-390.9 2633.94,-390.9 2634.17,-394.39 2637.08,-390.69 2634.4,-397.88 2634.4,-397.88\"/>\n",
"<text text-anchor=\"start\" x=\"2549\" y=\"-197.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 17&#45;&gt;6 -->\n",
"<g id=\"edge70\" class=\"edge\">\n",
"<title>17&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1204.24,-311.19C1230.76,-348.25 1289,-429.64 1318.55,-470.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1322.69,-476.71 1316.06,-472.85 1320.66,-473.86 1318.62,-471.02 1318.62,-471.02 1318.62,-471.02 1320.66,-473.86 1321.18,-469.18 1322.69,-476.71 1322.69,-476.71\"/>\n",
"<text text-anchor=\"start\" x=\"1236\" y=\"-434.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 17&#45;&gt;11 -->\n",
"<g id=\"edge73\" class=\"edge\">\n",
"<title>17&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1210.25,-291.11C1309.71,-286.87 1755.91,-270.98 1883,-321 1958.73,-350.81 2023.79,-425.52 2054.18,-464.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2058.76,-470.86 2052.01,-467.21 2056.64,-468.08 2054.51,-465.3 2054.51,-465.3 2054.51,-465.3 2056.64,-468.08 2057.02,-463.39 2058.76,-470.86 2058.76,-470.86\"/>\n",
"<text text-anchor=\"start\" x=\"1601\" y=\"-293.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 17&#45;&gt;19 -->\n",
"<g id=\"edge71\" class=\"edge\">\n",
"<title>17&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1210.38,-284.85C1264.81,-265.93 1421.19,-216 1555.5,-216 1555.5,-216 1555.5,-216 2074.5,-216 2150.67,-216 2194.33,-316.29 2210.83,-364.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2213.06,-370.81 2207.85,-365.18 2211.95,-367.5 2210.84,-364.18 2210.84,-364.18 2210.84,-364.18 2211.95,-367.5 2213.82,-363.17 2213.06,-370.81 2213.06,-370.81\"/>\n",
"<text text-anchor=\"start\" x=\"1678\" y=\"-219.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 17&#45;&gt;20 -->\n",
"<g id=\"edge72\" class=\"edge\">\n",
"<title>17&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1204.71,-272.75C1236.69,-231.85 1318.83,-140 1411.5,-140 1411.5,-140 1411.5,-140 1705.5,-140 1836.19,-140 1868.81,-135 1999.5,-135 1999.5,-135 1999.5,-135 2220.5,-135 2312.4,-135 2534.74,-326.58 2610.06,-393.93\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2615.64,-398.93 2608.33,-396.6 2613.04,-396.59 2610.43,-394.26 2610.43,-394.26 2610.43,-394.26 2613.04,-396.59 2612.53,-391.91 2615.64,-398.93 2615.64,-398.93\"/>\n",
"<text text-anchor=\"start\" x=\"1903\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;2 -->\n",
"<g id=\"edge74\" class=\"edge\">\n",
"<title>18&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M638.12,-871.18C665.39,-860.27 711.79,-841.53 715,-839 725.93,-830.39 735.34,-818.18 742.42,-807.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"746.31,-801.04 745.28,-808.65 744.46,-804.01 742.61,-806.98 742.61,-806.98 742.61,-806.98 744.46,-804.01 739.93,-805.31 746.31,-801.04 746.31,-801.04\"/>\n",
"<text text-anchor=\"start\" x=\"662\" y=\"-864.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;3 -->\n",
"<g id=\"edge75\" class=\"edge\">\n",
"<title>18&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M638.12,-879.27C657.65,-879.38 688.44,-879.12 715,-877 769.61,-872.65 832.97,-862.65 867.92,-856.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"874.93,-855.5 868.56,-859.79 871.48,-856.09 868.03,-856.68 868.03,-856.68 868.03,-856.68 871.48,-856.09 867.5,-853.58 874.93,-855.5 874.93,-855.5\"/>\n",
"<text text-anchor=\"start\" x=\"733\" y=\"-878.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;9 -->\n",
"<g id=\"edge76\" class=\"edge\">\n",
"<title>18&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M596.81,-872.36C589.43,-870.2 580.92,-868.07 573,-867 547.9,-863.6 540.8,-861.82 516,-867 510.33,-868.18 504.49,-870.15 499.01,-872.38\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"492.29,-875.31 497.45,-869.63 495.49,-873.91 498.7,-872.51 498.7,-872.51 498.7,-872.51 495.49,-873.91 499.96,-875.4 492.29,-875.31 492.29,-875.31\"/>\n",
"<text text-anchor=\"start\" x=\"516\" y=\"-870.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;18 -->\n",
"<g id=\"edge77\" class=\"edge\">\n",
"<title>18&#45;&gt;18</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M604.84,-897.15C602.89,-906.54 607.11,-915 617.5,-915 625.13,-915 629.43,-910.44 630.41,-904.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"630.16,-897.15 633.55,-904.04 630.28,-900.65 630.41,-904.15 630.41,-904.15 630.41,-904.15 630.28,-900.65 627.26,-904.26 630.16,-897.15 630.16,-897.15\"/>\n",
"<text text-anchor=\"start\" x=\"591\" y=\"-918.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 19&#45;&gt;6 -->\n",
"<g id=\"edge78\" class=\"edge\">\n",
"<title>19&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2194.3,-389C2165.68,-389 2116.62,-389 2074.5,-389 1853.5,-389 1853.5,-389 1853.5,-389 1676.59,-389 1633.68,-413.98 1459,-442 1425.52,-447.37 1414.49,-441.16 1384,-456 1375.87,-459.95 1368.07,-465.76 1361.3,-471.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1355.87,-476.75 1358.87,-469.69 1358.44,-474.37 1361.01,-472 1361.01,-472 1361.01,-472 1358.44,-474.37 1363.15,-474.31 1355.87,-476.75 1355.87,-476.75\"/>\n",
"<text text-anchor=\"start\" x=\"1753\" y=\"-396.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 19&#45;&gt;11 -->\n",
"<g id=\"edge81\" class=\"edge\">\n",
"<title>19&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2205.67,-407.21C2197.77,-417.36 2186.9,-429.61 2175,-438 2152.67,-453.74 2142.16,-448.25 2118,-461 2112.11,-464.11 2106.01,-467.83 2100.32,-471.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2094.33,-475.54 2098.4,-469.03 2097.24,-473.6 2100.15,-471.65 2100.15,-471.65 2100.15,-471.65 2097.24,-473.6 2101.9,-474.27 2094.33,-475.54 2094.33,-475.54\"/>\n",
"<text text-anchor=\"start\" x=\"2118\" y=\"-464.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 19&#45;&gt;19 -->\n",
"<g id=\"edge80\" class=\"edge\">\n",
"<title>19&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2207.2,-407.15C2205.31,-416.54 2209.41,-425 2219.5,-425 2226.91,-425 2231.09,-420.44 2232.04,-414.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2231.8,-407.15 2235.18,-414.04 2231.92,-410.65 2232.04,-414.15 2232.04,-414.15 2232.04,-414.15 2231.92,-410.65 2228.89,-414.25 2231.8,-407.15 2231.8,-407.15\"/>\n",
"<text text-anchor=\"start\" x=\"2193\" y=\"-428.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 21 -->\n",
"<g id=\"node23\" class=\"node\">\n",
"<title>21</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M2368,-362C2368,-362 2351,-362 2351,-362 2345,-362 2339,-356 2339,-350 2339,-350 2339,-336 2339,-336 2339,-330 2345,-324 2351,-324 2351,-324 2368,-324 2368,-324 2374,-324 2380,-330 2380,-336 2380,-336 2380,-350 2380,-350 2380,-356 2374,-362 2368,-362\"/>\n",
"<text text-anchor=\"start\" x=\"2347\" y=\"-346.8\" font-family=\"Lato\" font-size=\"14.00\">3#7</text>\n",
"<text text-anchor=\"start\" x=\"2351.5\" y=\"-331.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 19&#45;&gt;21 -->\n",
"<g id=\"edge79\" class=\"edge\">\n",
"<title>19&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2244.54,-380.99C2268.96,-372.85 2306.69,-360.27 2331.98,-351.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2338.76,-349.58 2333.11,-354.78 2335.44,-350.69 2332.11,-351.8 2332.11,-351.8 2332.11,-351.8 2335.44,-350.69 2331.12,-348.81 2338.76,-349.58 2338.76,-349.58\"/>\n",
"<text text-anchor=\"start\" x=\"2264\" y=\"-378.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;2 -->\n",
"<g id=\"edge82\" class=\"edge\">\n",
"<title>20&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2635.3,-397.91C2634.31,-353.72 2628.71,-241.47 2598,-154 2571.66,-78.99 2586.5,0 2507,0 894.5,0 894.5,0 894.5,0 816.06,0 769.57,-618.64 760.24,-755.43\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"759.75,-762.67 757.08,-755.47 759.99,-759.18 760.23,-755.69 760.23,-755.69 760.23,-755.69 759.99,-759.18 763.37,-755.9 759.75,-762.67 759.75,-762.67\"/>\n",
"<text text-anchor=\"start\" x=\"1678\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;3 -->\n",
"<g id=\"edge83\" class=\"edge\">\n",
"<title>20&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2633.93,-436.26C2626.07,-518.28 2583.29,-839.96 2388,-967 2299.77,-1024.4 1546.25,-991.63 1441,-993 1415.67,-993.33 1409.31,-994.01 1384,-993 1317.17,-990.33 1300.57,-987.41 1234,-981 1097.13,-967.82 1055.09,-963.1 938,-891 931.3,-886.87 924.75,-881.54 918.91,-876.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"913.76,-871.22 920.99,-873.78 916.28,-873.64 918.81,-876.06 918.81,-876.06 918.81,-876.06 916.28,-873.64 916.63,-878.33 913.76,-871.22 913.76,-871.22\"/>\n",
"<text text-anchor=\"start\" x=\"1755\" y=\"-1002.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;10 -->\n",
"<g id=\"edge84\" class=\"edge\">\n",
"<title>20&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2648.03,-436.19C2666.57,-470.65 2705.2,-545.73 2728,-613 2744.45,-661.53 2755.75,-720.47 2761.38,-753.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2762.56,-760.86 2758.3,-754.47 2761.99,-757.41 2761.41,-753.95 2761.41,-753.95 2761.41,-753.95 2761.99,-757.41 2764.52,-753.44 2762.56,-760.86 2762.56,-760.86\"/>\n",
"<text text-anchor=\"start\" x=\"2675\" y=\"-616.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;11 -->\n",
"<g id=\"edge85\" class=\"edge\">\n",
"<title>20&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2616.51,-436.18C2592.97,-457.81 2550.62,-490 2507,-490 2218.5,-490 2218.5,-490 2218.5,-490 2177.65,-490 2130.28,-490 2101.36,-490\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2094.06,-490 2101.06,-486.85 2097.56,-490 2101.06,-490 2101.06,-490 2101.06,-490 2097.56,-490 2101.06,-493.15 2094.06,-490 2094.06,-490\"/>\n",
"<text text-anchor=\"start\" x=\"2331\" y=\"-493.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;6 -->\n",
"<g id=\"edge86\" class=\"edge\">\n",
"<title>21&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2338.85,-343C2312.08,-343 2262.67,-343 2220.5,-343 1703.5,-343 1703.5,-343 1703.5,-343 1554.97,-343 1507.53,-358.53 1384,-441 1372.26,-448.84 1361.96,-460.59 1354.14,-471.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1350.06,-476.98 1351.54,-469.45 1352.08,-474.12 1354.11,-471.27 1354.11,-471.27 1354.11,-471.27 1352.08,-474.12 1356.68,-473.09 1350.06,-476.98 1350.06,-476.98\"/>\n",
"<text text-anchor=\"start\" x=\"1828\" y=\"-346.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;8 -->\n",
"<g id=\"edge89\" class=\"edge\">\n",
"<title>21&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2338.68,-326.27C2286.9,-284.32 2141.81,-178 2001.5,-178 1336.5,-178 1336.5,-178 1336.5,-178 1250.44,-178 1211.85,-193.14 1163,-264 1139.43,-298.19 1161.34,-411.82 1145,-450 1129.75,-485.63 1111.08,-484.86 1088,-516 1076.93,-530.94 1065.75,-548.57 1057.25,-562.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1053.54,-568.84 1054.44,-561.22 1055.34,-565.84 1057.14,-562.84 1057.14,-562.84 1057.14,-562.84 1055.34,-565.84 1059.84,-564.46 1053.54,-568.84 1053.54,-568.84\"/>\n",
"<text text-anchor=\"start\" x=\"1676\" y=\"-181.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;16 -->\n",
"<g id=\"edge87\" class=\"edge\">\n",
"<title>21&#45;&gt;16</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2374.36,-323.92C2400.77,-287.54 2458.3,-208.31 2487.4,-168.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2491.82,-162.16 2490.25,-169.67 2489.76,-164.99 2487.7,-167.82 2487.7,-167.82 2487.7,-167.82 2489.76,-164.99 2485.15,-165.97 2491.82,-162.16 2491.82,-162.16\"/>\n",
"<text text-anchor=\"start\" x=\"2408\" y=\"-282.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;20 -->\n",
"<g id=\"edge88\" class=\"edge\">\n",
"<title>21&#45;&gt;20</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2380.28,-348.32C2428.84,-361.39 2553.97,-395.06 2608.94,-409.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2615.9,-411.73 2608.32,-412.95 2612.52,-410.82 2609.14,-409.91 2609.14,-409.91 2609.14,-409.91 2612.52,-410.82 2609.96,-406.87 2615.9,-411.73 2615.9,-411.73\"/>\n",
"<text text-anchor=\"start\" x=\"2481.5\" y=\"-392.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c49342570> >"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s3 = spot.acd_transform_sbacc(a3);\n",
"assert s3.equivalent_to(a3)\n",
"s3.copy_state_names_from(a3)\n",
"s3"
]
},
{
"cell_type": "markdown",
"id": "5b770f23",
"metadata": {},
"source": [
"In this case, the number of states we obtain with `acd_transform_sbacc()` is smaller than what we would obtain by calling `sbacc()` on the result of `acd_transform()`."
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "b57476cf",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"22 28\n"
]
}
],
"source": [
"print(s3.num_states(), \n",
" spot.sbacc(spot.acd_transform(a3)).num_states())"
]
},
{
"cell_type": "markdown",
"id": "9f39b61d",
"metadata": {},
"source": [
"## An ordering heuristic for state-based transformation\n",
"\n",
"We now explain the `ORDER_HEURISTIC` option, by first looking at an example without it."
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "f082b433",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"283pt\"\n",
" viewBox=\"0.00 0.00 169.50 283.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 279.38)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-279.38 165.5,-279.38 165.5,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"80.75\" y=\"-244.18\" font-family=\"Times,serif\" font-size=\"14.00\">min even</text>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"74.5\" cy=\"-177.69\" rx=\"51.74\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1&#45;6</text>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"59,-83 0,-83 0,0 59,0 59,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 2&#45;6</text>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;1&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.33,-122.5C53.03,-112.68 49.61,-102.47 46.36,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"49.67,-91.64 43.17,-83.27 43.03,-93.86 49.67,-91.64\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"161.5,-83 77.5,-83 77.5,0 161.5,0 161.5,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1,2,4,6</text>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;2&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M92.67,-122.5C95.97,-112.68 99.39,-102.47 102.64,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"105.97,-93.86 105.83,-83.27 99.33,-91.64 105.97,-93.86\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<style>\n",
".acdhigh ellipse,.acdacc ellipse,.acdacc path,.acdacc polygon{stroke:green;}\n",
".acdhigh polygon,.acdrej ellipse,.acdrej path,.acdrej polygon{stroke:red;}\n",
".acdbold ellipse,.acdbold polygon,.acdbold path{stroke-width:2;}\n",
".acdrej polygon{fill:red;}\n",
".acdacc polygon{fill:green;}\n",
"</style><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"242pt\" height=\"163pt\"\n",
" viewBox=\"0.00 0.00 242.00 163.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acdaut2\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 159)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-159 238,-159 238,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"71.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"92.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"108.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"142.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"158.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"74.5\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\">[gen. Büchi 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"S0\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"acdaut2_edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
"<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\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"E1\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<g id=\"a_E1\"><a xlink:title=\"0&#45;&gt;0&#10;#1\">\n",
"<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\"/>\n",
"<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\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"50\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"S1\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"136\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"136\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"E2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<g id=\"a_E2\"><a xlink:title=\"0&#45;&gt;1&#10;#2\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.78,-25.08C84.2,-30.21 99.8,-37.2 112.51,-42.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119.24,-45.93 111.56,-45.94 116.05,-44.49 112.85,-43.06 112.85,-43.06 112.85,-43.06 116.05,-44.49 114.14,-40.19 119.24,-45.93 119.24,-45.93\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"E3\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<g id=\"a_E3\"><a xlink:title=\"1&#45;&gt;1&#10;#3\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M128.97,-69.66C127.41,-79.62 129.75,-89 136,-89 140.69,-89 143.18,-83.73 143.47,-76.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"143.03,-69.66 146.6,-76.46 143.24,-73.16 143.46,-76.65 143.46,-76.65 143.46,-76.65 143.24,-73.16 140.31,-76.84 143.03,-69.66 143.03,-69.66\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"130\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"S2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"216\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"216\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"E4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<g id=\"a_E4\"><a xlink:title=\"1&#45;&gt;2&#10;#4\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M152.78,-45.92C164.2,-40.79 179.8,-33.8 192.51,-28.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"199.24,-25.07 194.14,-30.81 196.05,-26.51 192.85,-27.94 192.85,-27.94 192.85,-27.94 196.05,-26.51 191.56,-25.06 199.24,-25.07 199.24,-25.07\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"172\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"E6\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<g id=\"a_E6\"><a xlink:title=\"2&#45;&gt;0&#10;#6\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M197.95,-15.52C185.75,-13.87 168.9,-11.85 154,-11 138.03,-10.09 133.97,-10.09 118,-11 105.78,-11.7 92.25,-13.18 81.04,-14.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.05,-15.52 80.58,-11.48 77.52,-15.06 80.99,-14.61 80.99,-14.61 80.99,-14.61 77.52,-15.06 81.4,-17.73 74.05,-15.52 74.05,-15.52\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"132\" y=\"-14.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"E5\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<g id=\"a_E5\"><a xlink:title=\"2&#45;&gt;2&#10;#5\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M208.97,-34.66C207.41,-44.62 209.75,-54 216,-54 220.69,-54 223.18,-48.73 223.47,-41.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"223.03,-34.66 226.6,-41.46 223.24,-38.16 223.46,-41.65 223.46,-41.65 223.46,-41.65 223.24,-38.16 220.31,-41.84 223.03,-34.66 223.03,-34.66\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"210\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"<text text-anchor=\"start\" x=\"208\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"283pt\"\n",
" viewBox=\"0.00 0.00 169.50 283.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acd2\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 279.38)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-279.38 165.5,-279.38 165.5,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"80.75\" y=\"-244.18\" font-family=\"Times,serif\" font-size=\"14.00\">min even</text>\n",
"<!-- 0 -->\n",
"<g id=\"N0\" class=\"node acdS0\n",
" acdS1\n",
" acdS2\n",
"\">\n",
"<title>0</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"74.5\" cy=\"-177.69\" rx=\"51.74\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1&#45;6</text>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"74.5\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"N1\" class=\"node acdS0\n",
" acdS1\n",
" acdS2\n",
"\">\n",
"<title>1</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"59,-83 0,-83 0,0 59,0 59,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 2&#45;6</text>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"29.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;1&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"acd2_edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.33,-122.5C53.03,-112.68 49.61,-102.47 46.36,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"49.67,-91.64 43.17,-83.27 43.03,-93.86 49.67,-91.64\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"N2\" class=\"node acdS0\n",
" acdS1\n",
" acdS2\n",
"\">\n",
"<title>2</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"161.5,-83 77.5,-83 77.5,0 161.5,0 161.5,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1,2,4,6</text>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"119.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;2&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"acd2_edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M92.67,-122.5C95.97,-112.68 99.39,-102.47 102.64,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"105.97,-93.86 105.83,-83.27 99.33,-91.64 105.97,-93.86\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><script>\n",
"function acd2_clear(){\n",
" $(\"#acd2 .node,#acdaut2 .node,#acdaut2 .edge\")\n",
" .removeClass(\"acdhigh acdbold acdacc acdrej\");\n",
"};\n",
"function acd2_state(state){\n",
" acd2_clear();\n",
" $(\"#acd2 .acdS\" + state).addClass(\"acdhigh acdbold\");\n",
" $(\"#acdaut2 #S\" + state).addClass(\"acdbold\");\n",
"};\n",
"function acd2_edge(edge){\n",
" acd2_clear();\n",
" var theedge = $('#acdaut2 #E' + edge)\n",
" var classList = theedge.attr('class').split(/\\s+/);\n",
" $.each(classList, function(index, item) {\n",
" if (item.startsWith('acdN')) {\n",
" $(\"#acd2 #\" + item.substring(3)).addClass(\"acdhigh acdbold\");\n",
" }\n",
" });\n",
" theedge.addClass(\"acdbold\");\n",
"};\n",
"function acd2_node(node, acc){\n",
" acd2_clear();\n",
" $(\"#acdaut2 .acdN\" + node).addClass(acc\n",
" ? \"acdacc acdbold\"\n",
" : \"acdrej acdbold\");\n",
" $(\"#acd2 #N\" + node).addClass(\"acdbold acdhigh\");\n",
"};$(\"#acdaut2 #E1\").addClass(\"acdN0\");$(\"#acdaut2 #E2\").addClass(\"acdN0\");$(\"#acdaut2 #E3\").addClass(\"acdN0\");$(\"#acdaut2 #E4\").addClass(\"acdN0\");$(\"#acdaut2 #E5\").addClass(\"acdN0\");$(\"#acdaut2 #E6\").addClass(\"acdN0\");$(\"#acdaut2 #E2\").addClass(\"acdN1\");$(\"#acdaut2 #E3\").addClass(\"acdN1\");$(\"#acdaut2 #E4\").addClass(\"acdN1\");$(\"#acdaut2 #E5\").addClass(\"acdN1\");$(\"#acdaut2 #E6\").addClass(\"acdN1\");$(\"#acdaut2 #E1\").addClass(\"acdN2\");$(\"#acdaut2 #E2\").addClass(\"acdN2\");$(\"#acdaut2 #E4\").addClass(\"acdN2\");$(\"#acdaut2 #E6\").addClass(\"acdN2\");$(\"#acdaut2 #E1\").click(function(){acd2_edge(1);});$(\"#acdaut2 #E2\").click(function(){acd2_edge(2);});$(\"#acdaut2 #E3\").click(function(){acd2_edge(3);});$(\"#acdaut2 #E4\").click(function(){acd2_edge(4);});$(\"#acdaut2 #E5\").click(function(){acd2_edge(5);});$(\"#acdaut2 #E6\").click(function(){acd2_edge(6);});$(\"#acdaut2 #S0\").click(function(){acd2_state(0);});$(\"#acdaut2 #S1\").click(function(){acd2_state(1);});$(\"#acdaut2 #S2\").click(function(){acd2_state(2);});$(\"#acd2 #N0\").click(function(){acd2_node(0, 1);});$(\"#acd2 #N1\").click(function(){acd2_node(1, 0);});$(\"#acd2 #N2\").click(function(){acd2_node(2, 0);});</script>"
],
"text/plain": [
"<spot.acd; proxy of <Swig Object of type 'spot::acd *' at 0x7f0c49342ea0> >"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a4 = spot.automaton(\"\"\"HOA: v1 States: 3 Start: \n",
"0 AP: 1 \"p\" acc-name: generalized-Buchi 2 Acceptance: \n",
"2 Inf(1)&Inf(0) properties: trans-labels implicit-labels \n",
"trans-acc complete deterministic --BODY-- State: 0 0 {0}\n",
"1 State: 1 1 {1} 2 State: 2 2 {1} 0 --END--\"\"\")\n",
"spot.acd(a4)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "597185c0",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"618pt\" height=\"267pt\"\n",
" viewBox=\"0.00 0.00 617.77 266.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 262.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-262.8 613.77,-262.8 613.77,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"283.39\" y=\"-228.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"64.65\" cy=\"-71\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"52.15\" y=\"-67.3\" font-family=\"Lato\" font-size=\"14.00\">0#1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.05,-71C1.94,-71 16.02,-71 30.59,-71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.73,-71 30.73,-74.15 34.23,-71 30.73,-71 30.73,-71 30.73,-71 34.23,-71 30.73,-67.85 37.73,-71 37.73,-71\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"165.94\" cy=\"-98\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"153.44\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">0#2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M89.68,-77.54C103,-81.16 119.71,-85.7 133.99,-89.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.78,-91.43 133.2,-92.63 137.41,-90.51 134.03,-89.59 134.03,-89.59 134.03,-89.59 137.41,-90.51 134.86,-86.55 140.78,-91.43 140.78,-91.43\"/>\n",
"<text text-anchor=\"start\" x=\"109.3\" y=\"-89.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"477.83\" cy=\"-46\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"465.33\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\">1#1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M88.12,-61.97C107.98,-54.81 137.92,-46 164.94,-46 164.94,-46 164.94,-46 369.53,-46 394.36,-46 422.42,-46 443.62,-46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"450.81,-46 443.81,-49.15 447.31,-46 443.81,-46 443.81,-46 443.81,-46 447.31,-46 443.81,-42.85 450.81,-46 450.81,-46\"/>\n",
"<text text-anchor=\"start\" x=\"259.24\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M157.37,-115.41C155.77,-125.09 158.63,-134 165.94,-134 171.31,-134 174.28,-129.19 174.84,-122.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"174.51,-115.41 177.97,-122.26 174.67,-118.91 174.83,-122.4 174.83,-122.4 174.83,-122.4 174.67,-118.91 171.68,-122.54 174.51,-115.41 174.51,-115.41\"/>\n",
"<text text-anchor=\"start\" x=\"159.94\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"263.24\" cy=\"-98\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"250.74\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">1#2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M192.98,-98C204.21,-98 217.47,-98 229.36,-98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.56,-98 229.56,-101.15 233.06,-98 229.56,-98 229.56,-98 229.56,-98 233.06,-98 229.56,-94.85 236.56,-98 236.56,-98\"/>\n",
"<text text-anchor=\"start\" x=\"210.59\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M468.26,-63.04C466.31,-72.86 469.5,-82 477.83,-82 484.08,-82 487.43,-76.86 487.9,-70.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"487.4,-63.04 491.03,-69.8 487.64,-66.53 487.89,-70.02 487.89,-70.02 487.89,-70.02 487.64,-66.53 484.75,-70.24 487.4,-63.04 487.4,-63.04\"/>\n",
"<text text-anchor=\"start\" x=\"471.83\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"583.12\" cy=\"-111\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"570.62\" y=\"-107.3\" font-family=\"Lato\" font-size=\"14.00\">2#1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M498.26,-58.23C514.81,-68.64 538.71,-83.68 556.77,-95.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"563.13,-99.05 555.53,-97.99 560.17,-97.18 557.21,-95.32 557.21,-95.32 557.21,-95.32 560.17,-97.18 558.88,-92.65 563.13,-99.05 563.13,-99.05\"/>\n",
"<text text-anchor=\"start\" x=\"528.48\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"368.53\" cy=\"-96\" rx=\"26.78\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"368.53\" cy=\"-96\" rx=\"30.8\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"356.03\" y=\"-92.3\" font-family=\"Lato\" font-size=\"14.00\">1#0</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M287.56,-90.35C294.06,-88.55 301.19,-86.9 307.89,-86 315.93,-84.91 324.56,-85.4 332.68,-86.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"339.97,-87.88 332.53,-89.77 336.52,-87.27 333.08,-86.67 333.08,-86.67 333.08,-86.67 336.52,-87.27 333.62,-83.57 339.97,-87.88 339.97,-87.88\"/>\n",
"<text text-anchor=\"start\" x=\"307.89\" y=\"-89.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"368.53\" cy=\"-154\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"356.03\" y=\"-150.3\" font-family=\"Lato\" font-size=\"14.00\">2#2</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;6 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M286.22,-107.51C296.58,-112.18 309.03,-118.08 319.89,-124 327.53,-128.17 335.62,-133.07 342.92,-137.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"348.85,-141.48 341.25,-140.36 345.9,-139.59 342.95,-137.7 342.95,-137.7 342.95,-137.7 345.9,-139.59 344.65,-135.05 348.85,-141.48 348.85,-141.48\"/>\n",
"<text text-anchor=\"start\" x=\"309.89\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M575.46,-93.66C562.2,-62.44 529.37,0 478.83,0 164.94,0 164.94,0 164.94,0 130.51,0 99.79,-28.6 81.93,-49.5\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"77.46,-54.89 79.51,-47.49 79.7,-52.19 81.93,-49.5 81.93,-49.5 81.93,-49.5 79.7,-52.19 84.36,-51.51 77.46,-54.89 77.46,-54.89\"/>\n",
"<text text-anchor=\"start\" x=\"309.89\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M574.26,-128.04C572.46,-137.86 575.41,-147 583.12,-147 588.91,-147 592.02,-141.86 592.45,-135.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"591.98,-128.04 595.58,-134.82 592.21,-131.53 592.44,-135.02 592.44,-135.02 592.44,-135.02 592.21,-131.53 589.3,-135.23 591.98,-128.04 591.98,-128.04\"/>\n",
"<text text-anchor=\"start\" x=\"577.12\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M394.69,-84.28C410.98,-76.68 432.22,-66.79 449.02,-58.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.45,-55.96 450.43,-61.77 452.28,-57.44 449.1,-58.92 449.1,-58.92 449.1,-58.92 452.28,-57.44 447.77,-56.06 455.45,-55.96 455.45,-55.96\"/>\n",
"<text text-anchor=\"start\" x=\"417.18\" y=\"-75.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;4 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>5&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M398.6,-100.38C413.15,-102.41 431.06,-104.67 447.18,-106 482.03,-108.88 522.09,-110.1 549.45,-110.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"556.46,-110.74 549.41,-113.77 552.96,-110.68 549.47,-110.62 549.47,-110.62 549.47,-110.62 552.96,-110.68 549.52,-107.47 556.46,-110.74 556.46,-110.74\"/>\n",
"<text text-anchor=\"start\" x=\"473.83\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;1 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>6&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M342.52,-150.06C311.07,-144.67 255.75,-133.72 210.59,-117 205.58,-115.15 200.32,-113.02 195.25,-110.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.51,-107.96 196.18,-107.84 191.72,-109.34 194.93,-110.73 194.93,-110.73 194.93,-110.73 191.72,-109.34 193.68,-113.62 188.51,-107.96 188.51,-107.96\"/>\n",
"<text text-anchor=\"start\" x=\"259.24\" y=\"-142.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"477.83\" cy=\"-188\" rx=\"26.78\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"477.83\" cy=\"-188\" rx=\"30.8\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"465.33\" y=\"-184.3\" font-family=\"Lato\" font-size=\"14.00\">2#0</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>6&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M393.08,-161.46C407.65,-166.08 426.61,-172.09 442.8,-177.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"449.55,-179.36 441.92,-180.24 446.21,-178.3 442.88,-177.24 442.88,-177.24 442.88,-177.24 446.21,-178.3 443.83,-174.24 449.55,-179.36 449.55,-179.36\"/>\n",
"<text text-anchor=\"start\" x=\"417.18\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M448.31,-194.6C426.79,-199.01 396.47,-204 369.53,-204 164.94,-204 164.94,-204 164.94,-204 111.37,-204 83.24,-133.84 71.85,-95.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.92,-88.66 74.87,-94.53 70.88,-92.03 71.84,-95.39 71.84,-95.39 71.84,-95.39 70.88,-92.03 68.81,-96.26 69.92,-88.66 69.92,-88.66\"/>\n",
"<text text-anchor=\"start\" x=\"259.24\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;4 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>7&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M500.97,-173.46C512.35,-165.81 526.33,-156.15 538.48,-147 545.71,-141.55 553.39,-135.36 560.26,-129.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"565.82,-125.02 562.46,-131.93 563.13,-127.27 560.44,-129.51 560.44,-129.51 560.44,-129.51 563.13,-127.27 558.42,-127.09 565.82,-125.02 565.82,-125.02\"/>\n",
"<text text-anchor=\"start\" x=\"526.48\" y=\"-158.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480e0690> >"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s4 = spot.acd_transform_sbacc(a4, False, False) # The third argument disables the heuristic\n",
"s4.copy_state_names_from(a4)\n",
"s4"
]
},
{
"cell_type": "markdown",
"id": "03f0eda7",
"metadata": {},
"source": [
"One this example, we can see that whenever an edge leaves not 2, it creates a copy of the target state."
]
},
{
"cell_type": "markdown",
"id": "45596824",
"metadata": {},
"source": [
"The `ORDER_HEURISTIC` option of the ACD construction, attemps to order the children of a node by decreasing number of number of successors that are out of the node. It is activated by default inside `spot.acd_transform_sbacc()`."
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "a4fd4105",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"283pt\"\n",
" viewBox=\"0.00 0.00 169.50 283.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 279.38)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-279.38 165.5,-279.38 165.5,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"80.75\" y=\"-244.18\" font-family=\"Times,serif\" font-size=\"14.00\">min even</text>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"87\" cy=\"-177.69\" rx=\"51.74\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1&#45;6</text>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"84,-83 0,-83 0,0 84,0 84,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1,2,4,6</text>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;1&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.83,-122.5C65.53,-112.68 62.11,-102.47 58.86,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.17,-91.64 55.67,-83.27 55.53,-93.86 62.17,-91.64\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"161.5,-83 102.5,-83 102.5,0 161.5,0 161.5,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 2&#45;6</text>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;2&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M105.17,-122.5C108.47,-112.68 111.89,-102.47 115.14,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.47,-93.86 118.33,-83.27 111.83,-91.64 118.47,-93.86\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<style>\n",
".acdhigh ellipse,.acdacc ellipse,.acdacc path,.acdacc polygon{stroke:green;}\n",
".acdhigh polygon,.acdrej ellipse,.acdrej path,.acdrej polygon{stroke:red;}\n",
".acdbold ellipse,.acdbold polygon,.acdbold path{stroke-width:2;}\n",
".acdrej polygon{fill:red;}\n",
".acdacc polygon{fill:green;}\n",
"</style><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"242pt\" height=\"163pt\"\n",
" viewBox=\"0.00 0.00 242.00 163.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acdaut3\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 159)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-159 238,-159 238,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"71.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"92.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"108.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"142.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"158.5\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"74.5\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\">[gen. Büchi 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"S0\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"acdaut3_edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-18C2.79,-18 17.15,-18 30.63,-18\"/>\n",
"<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\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"E1\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<g id=\"a_E1\"><a xlink:title=\"0&#45;&gt;0&#10;#1\">\n",
"<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\"/>\n",
"<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\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"50\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"S1\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"136\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"136\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"E2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<g id=\"a_E2\"><a xlink:title=\"0&#45;&gt;1&#10;#2\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M72.78,-25.08C84.2,-30.21 99.8,-37.2 112.51,-42.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"119.24,-45.93 111.56,-45.94 116.05,-44.49 112.85,-43.06 112.85,-43.06 112.85,-43.06 116.05,-44.49 114.14,-40.19 119.24,-45.93 119.24,-45.93\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"E3\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<g id=\"a_E3\"><a xlink:title=\"1&#45;&gt;1&#10;#3\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M128.97,-69.66C127.41,-79.62 129.75,-89 136,-89 140.69,-89 143.18,-83.73 143.47,-76.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"143.03,-69.66 146.6,-76.46 143.24,-73.16 143.46,-76.65 143.46,-76.65 143.46,-76.65 143.24,-73.16 140.31,-76.84 143.03,-69.66 143.03,-69.66\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"130\" y=\"-107.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-92.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"S2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"216\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"216\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"E4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<g id=\"a_E4\"><a xlink:title=\"1&#45;&gt;2&#10;#4\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M152.78,-45.92C164.2,-40.79 179.8,-33.8 192.51,-28.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"199.24,-25.07 194.14,-30.81 196.05,-26.51 192.85,-27.94 192.85,-27.94 192.85,-27.94 196.05,-26.51 191.56,-25.06 199.24,-25.07 199.24,-25.07\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"172\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"E6\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<g id=\"a_E6\"><a xlink:title=\"2&#45;&gt;0&#10;#6\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M197.95,-15.52C185.75,-13.87 168.9,-11.85 154,-11 138.03,-10.09 133.97,-10.09 118,-11 105.78,-11.7 92.25,-13.18 81.04,-14.6\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"74.05,-15.52 80.58,-11.48 77.52,-15.06 80.99,-14.61 80.99,-14.61 80.99,-14.61 77.52,-15.06 81.4,-17.73 74.05,-15.52 74.05,-15.52\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"132\" y=\"-14.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"E5\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<g id=\"a_E5\"><a xlink:title=\"2&#45;&gt;2&#10;#5\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M208.97,-34.66C207.41,-44.62 209.75,-54 216,-54 220.69,-54 223.18,-48.73 223.47,-41.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"223.03,-34.66 226.6,-41.46 223.24,-38.16 223.46,-41.65 223.46,-41.65 223.46,-41.65 223.24,-38.16 220.31,-41.84 223.03,-34.66 223.03,-34.66\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"210\" y=\"-72.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"<text text-anchor=\"start\" x=\"208\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"283pt\"\n",
" viewBox=\"0.00 0.00 169.50 283.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acd3\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 279.38)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-279.38 165.5,-279.38 165.5,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"80.75\" y=\"-244.18\" font-family=\"Times,serif\" font-size=\"14.00\">min even</text>\n",
"<!-- 0 -->\n",
"<g id=\"N0\" class=\"node acdS0\n",
" acdS1\n",
" acdS2\n",
"\">\n",
"<title>0</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"87\" cy=\"-177.69\" rx=\"51.74\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1&#45;6</text>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"87\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"N1\" class=\"node acdS0\n",
" acdS1\n",
" acdS2\n",
"\">\n",
"<title>1</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"84,-83 0,-83 0,0 84,0 84,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1,2,4,6</text>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"42\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;1&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"acd3_edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.83,-122.5C65.53,-112.68 62.11,-102.47 58.86,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.17,-91.64 55.67,-83.27 55.53,-93.86 62.17,-91.64\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"N2\" class=\"node acdS0\n",
" acdS1\n",
" acdS2\n",
"\">\n",
"<title>2</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"161.5,-83 102.5,-83 102.5,0 161.5,0 161.5,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 2&#45;6</text>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"132\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;2&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"acd3_edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M105.17,-122.5C108.47,-112.68 111.89,-102.47 115.14,-92.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.47,-93.86 118.33,-83.27 111.83,-91.64 118.47,-93.86\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><script>\n",
"function acd3_clear(){\n",
" $(\"#acd3 .node,#acdaut3 .node,#acdaut3 .edge\")\n",
" .removeClass(\"acdhigh acdbold acdacc acdrej\");\n",
"};\n",
"function acd3_state(state){\n",
" acd3_clear();\n",
" $(\"#acd3 .acdS\" + state).addClass(\"acdhigh acdbold\");\n",
" $(\"#acdaut3 #S\" + state).addClass(\"acdbold\");\n",
"};\n",
"function acd3_edge(edge){\n",
" acd3_clear();\n",
" var theedge = $('#acdaut3 #E' + edge)\n",
" var classList = theedge.attr('class').split(/\\s+/);\n",
" $.each(classList, function(index, item) {\n",
" if (item.startsWith('acdN')) {\n",
" $(\"#acd3 #\" + item.substring(3)).addClass(\"acdhigh acdbold\");\n",
" }\n",
" });\n",
" theedge.addClass(\"acdbold\");\n",
"};\n",
"function acd3_node(node, acc){\n",
" acd3_clear();\n",
" $(\"#acdaut3 .acdN\" + node).addClass(acc\n",
" ? \"acdacc acdbold\"\n",
" : \"acdrej acdbold\");\n",
" $(\"#acd3 #N\" + node).addClass(\"acdbold acdhigh\");\n",
"};$(\"#acdaut3 #E1\").addClass(\"acdN0\");$(\"#acdaut3 #E2\").addClass(\"acdN0\");$(\"#acdaut3 #E3\").addClass(\"acdN0\");$(\"#acdaut3 #E4\").addClass(\"acdN0\");$(\"#acdaut3 #E5\").addClass(\"acdN0\");$(\"#acdaut3 #E6\").addClass(\"acdN0\");$(\"#acdaut3 #E1\").addClass(\"acdN1\");$(\"#acdaut3 #E2\").addClass(\"acdN1\");$(\"#acdaut3 #E4\").addClass(\"acdN1\");$(\"#acdaut3 #E6\").addClass(\"acdN1\");$(\"#acdaut3 #E2\").addClass(\"acdN2\");$(\"#acdaut3 #E3\").addClass(\"acdN2\");$(\"#acdaut3 #E4\").addClass(\"acdN2\");$(\"#acdaut3 #E5\").addClass(\"acdN2\");$(\"#acdaut3 #E6\").addClass(\"acdN2\");$(\"#acdaut3 #E1\").click(function(){acd3_edge(1);});$(\"#acdaut3 #E2\").click(function(){acd3_edge(2);});$(\"#acdaut3 #E3\").click(function(){acd3_edge(3);});$(\"#acdaut3 #E4\").click(function(){acd3_edge(4);});$(\"#acdaut3 #E5\").click(function(){acd3_edge(5);});$(\"#acdaut3 #E6\").click(function(){acd3_edge(6);});$(\"#acdaut3 #S0\").click(function(){acd3_state(0);});$(\"#acdaut3 #S1\").click(function(){acd3_state(1);});$(\"#acdaut3 #S2\").click(function(){acd3_state(2);});$(\"#acd3 #N0\").click(function(){acd3_node(0, 1);});$(\"#acd3 #N1\").click(function(){acd3_node(1, 0);});$(\"#acd3 #N2\").click(function(){acd3_node(2, 0);});</script>"
],
"text/plain": [
"<spot.acd; proxy of <Swig Object of type 'spot::acd *' at 0x7f0c480e05d0> >"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.acd(a4, spot.acd_options_ORDER_HEURISTIC)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "1a68f96a",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"606pt\" height=\"247pt\"\n",
" viewBox=\"0.00 0.00 605.77 246.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 242.8)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-242.8 601.77,-242.8 601.77,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"277.39\" y=\"-208.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"64.65\" cy=\"-92\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"52.15\" y=\"-88.3\" font-family=\"Lato\" font-size=\"14.00\">0#1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.05,-92C1.94,-92 16.02,-92 30.59,-92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.73,-92 30.73,-95.15 34.23,-92 30.73,-92 30.73,-92 30.73,-92 34.23,-92 30.73,-88.85 37.73,-92 37.73,-92\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.79,-109.41C55.33,-119.09 57.94,-128 64.65,-128 69.57,-128 72.29,-123.19 72.81,-116.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.5,-109.41 75.94,-116.27 72.65,-112.91 72.79,-116.4 72.79,-116.4 72.79,-116.4 72.65,-112.91 69.64,-116.53 72.5,-109.41 72.5,-109.41\"/>\n",
"<text text-anchor=\"start\" x=\"58.65\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"161.94\" cy=\"-92\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"149.44\" y=\"-88.3\" font-family=\"Lato\" font-size=\"14.00\">1#1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M91.69,-92C102.91,-92 116.17,-92 128.07,-92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"135.26,-92 128.26,-95.15 131.76,-92 128.26,-92 128.26,-92 128.26,-92 131.76,-92 128.26,-88.85 135.26,-92 135.26,-92\"/>\n",
"<text text-anchor=\"start\" x=\"109.3\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"263.24\" cy=\"-92\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"250.74\" y=\"-88.3\" font-family=\"Lato\" font-size=\"14.00\">1#2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M188.77,-92C201.18,-92 216.2,-92 229.41,-92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"236.54,-92 229.54,-95.15 233.04,-92 229.54,-92 229.54,-92 229.54,-92 233.04,-92 229.54,-88.85 236.54,-92 236.54,-92\"/>\n",
"<text text-anchor=\"start\" x=\"206.59\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"263.24\" cy=\"-179\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"250.74\" y=\"-175.3\" font-family=\"Lato\" font-size=\"14.00\">2#1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.9,-105.98C195.69,-120.69 222.22,-143.94 240.82,-160.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"246.32,-165.06 238.98,-162.81 243.69,-162.75 241.06,-160.44 241.06,-160.44 241.06,-160.44 243.69,-162.75 243.14,-158.07 246.32,-165.06 246.32,-165.06\"/>\n",
"<text text-anchor=\"start\" x=\"208.59\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M254.38,-109.04C252.57,-118.86 255.52,-128 263.24,-128 269.02,-128 272.13,-122.86 272.56,-116.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"272.1,-109.04 275.7,-115.82 272.33,-112.53 272.55,-116.02 272.55,-116.02 272.55,-116.02 272.33,-112.53 269.41,-116.23 272.1,-109.04 272.1,-109.04\"/>\n",
"<text text-anchor=\"start\" x=\"257.24\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"364.53\" cy=\"-148\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"352.03\" y=\"-144.3\" font-family=\"Lato\" font-size=\"14.00\">2#2</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M284.33,-103.33C299.54,-111.91 320.57,-123.77 337.13,-133.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"343.47,-136.68 335.82,-135.99 340.42,-134.97 337.37,-133.25 337.37,-133.25 337.37,-133.25 340.42,-134.97 338.92,-130.5 343.47,-136.68 343.47,-136.68\"/>\n",
"<text text-anchor=\"start\" x=\"309.89\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M239.03,-171.23C228.97,-167.72 217.11,-163.38 206.59,-159 166.3,-142.23 120.91,-120.04 92.79,-105.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"86.37,-102.64 94.04,-102.99 89.49,-104.22 92.62,-105.8 92.62,-105.8 92.62,-105.8 89.49,-104.22 91.2,-108.61 86.37,-102.64 86.37,-102.64\"/>\n",
"<text text-anchor=\"start\" x=\"157.94\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;4 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M287.77,-171.65C301.37,-167.41 318.63,-162.02 333.24,-157.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"340.17,-155.29 334.43,-160.39 336.83,-156.34 333.49,-157.38 333.49,-157.38 333.49,-157.38 336.83,-156.34 332.55,-154.37 340.17,-155.29 340.17,-155.29\"/>\n",
"<text text-anchor=\"start\" x=\"307.89\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;4 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>4&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M355.96,-165.41C354.36,-175.09 357.22,-184 364.53,-184 369.9,-184 372.87,-179.19 373.43,-172.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"373.1,-165.41 376.56,-172.26 373.26,-168.91 373.42,-172.4 373.42,-172.4 373.42,-172.4 373.26,-168.91 370.27,-172.54 373.1,-165.41 373.1,-165.41\"/>\n",
"<text text-anchor=\"start\" x=\"358.53\" y=\"-187.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"461.83\" cy=\"-97\" rx=\"26.8\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"449.33\" y=\"-93.3\" font-family=\"Lato\" font-size=\"14.00\">0#2</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>4&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M386.21,-136.93C400.29,-129.4 419.06,-119.35 434.25,-111.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"440.52,-107.87 435.83,-113.95 437.43,-109.52 434.35,-111.17 434.35,-111.17 434.35,-111.17 437.43,-109.52 432.86,-108.4 440.52,-107.87 440.52,-107.87\"/>\n",
"<text text-anchor=\"start\" x=\"409.18\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>5&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M435.12,-96.35C399.8,-95.45 336.22,-93.83 297.36,-92.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"289.94,-92.65 297.02,-89.68 293.44,-92.74 296.94,-92.83 296.94,-92.83 296.94,-92.83 293.44,-92.74 296.86,-95.98 289.94,-92.65 289.94,-92.65\"/>\n",
"<text text-anchor=\"start\" x=\"360.53\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"567.12\" cy=\"-46\" rx=\"26.78\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"567.12\" cy=\"-46\" rx=\"30.8\" ry=\"22\"/>\n",
"<text text-anchor=\"start\" x=\"554.62\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\">0#0</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;6 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>5&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M483.73,-86.68C498.41,-79.43 518.29,-69.62 534.85,-61.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"541.25,-58.28 536.36,-64.21 538.11,-59.83 534.97,-61.38 534.97,-61.38 534.97,-61.38 538.11,-59.83 533.58,-58.56 541.25,-58.28 541.25,-58.28\"/>\n",
"<text text-anchor=\"start\" x=\"506.48\" y=\"-78.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>6&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M545.17,-30.43C525.11,-17.08 493.45,0 462.83,0 160.94,0 160.94,0 160.94,0 121.56,0 92.22,-41.18 77.11,-68.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.75,-74.7 74.29,-67.04 75.41,-71.61 77.06,-68.53 77.06,-68.53 77.06,-68.53 75.41,-71.61 79.84,-70.02 73.75,-74.7 73.75,-74.7\"/>\n",
"<text text-anchor=\"start\" x=\"307.89\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\">!p</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;1 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>6&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M536.29,-46C515.66,-46 487.58,-46 462.83,-46 262.24,-46 262.24,-46 262.24,-46 234.12,-46 205.33,-61.37 186.04,-74.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"180.13,-78.45 184.08,-71.87 183,-76.45 185.88,-74.46 185.88,-74.46 185.88,-74.46 183,-76.45 187.67,-77.05 180.13,-78.45 180.13,-78.45\"/>\n",
"<text text-anchor=\"start\" x=\"360.53\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">p</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480e0de0> >"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s4b = spot.acd_transform_sbacc(a4)\n",
"s4b.copy_state_names_from(a4)\n",
"s4b"
]
},
{
"cell_type": "markdown",
"id": "15f094c0",
"metadata": {},
"source": [
"# More examples\n",
"\n",
"These additional examples also contribute to our test suite."
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "criminal-northwest",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"356pt\" height=\"233pt\"\n",
" viewBox=\"0.00 0.00 356.00 233.30\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 229.3)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-229.3 352,-229.3 352,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"35\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"51\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"99\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"115\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">)|Fin(</text>\n",
"<text text-anchor=\"start\" x=\"146\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"162\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">)) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"211\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"227\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"277\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">))) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"320\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"336\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"120.75\" cy=\"-44.3\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"120.75\" y=\"-40.6\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.9,-44.3C67.54,-44.3 81.9,-44.3 95.38,-44.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.69,-44.3 95.69,-47.45 99.19,-44.3 95.69,-44.3 95.69,-44.3 95.69,-44.3 99.19,-44.3 95.69,-41.15 102.69,-44.3 102.69,-44.3\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M117.51,-62.08C116.96,-71.62 118.04,-80.3 120.75,-80.3 122.74,-80.3 123.85,-75.62 124.08,-69.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.99,-62.08 127.23,-69.04 124.03,-65.58 124.08,-69.08 124.08,-69.08 124.08,-69.08 124.03,-65.58 120.93,-69.12 123.99,-62.08 123.99,-62.08\"/>\n",
"<text text-anchor=\"start\" x=\"94.25\" y=\"-98.1\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"104.75\" y=\"-84.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"120.75\" y=\"-84.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M115.69,-61.9C112.31,-82.43 114,-108.3 120.75,-108.3 126.74,-108.3 128.74,-87.96 126.76,-69.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"125.81,-61.9 129.86,-68.42 126.28,-65.37 126.74,-68.83 126.74,-68.83 126.74,-68.83 126.28,-65.37 123.62,-69.25 125.81,-61.9 125.81,-61.9\"/>\n",
"<text text-anchor=\"start\" x=\"92.25\" y=\"-126.1\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"96.75\" y=\"-112.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"112.75\" y=\"-112.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"128.75\" y=\"-112.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"256.75\" cy=\"-44.3\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"256.75\" y=\"-40.6\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.35,-57.44C139.59,-63.52 147.84,-70.09 156.75,-73.3 183.51,-82.95 193.99,-82.95 220.75,-73.3 227.29,-70.94 233.48,-66.77 238.78,-62.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"244.15,-57.44 241.08,-64.48 241.56,-59.79 238.97,-62.14 238.97,-62.14 238.97,-62.14 241.56,-59.79 236.85,-59.81 244.15,-57.44 244.15,-57.44\"/>\n",
"<text text-anchor=\"start\" x=\"162.25\" y=\"-84.1\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M138.82,-42.54C144.52,-42.04 150.9,-41.55 156.75,-41.3 185.17,-40.09 192.33,-40.09 220.75,-41.3 224.22,-41.45 227.88,-41.68 231.48,-41.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"238.68,-42.54 231.44,-45.11 235.19,-42.26 231.7,-41.97 231.7,-41.97 231.7,-41.97 235.19,-42.26 231.96,-38.83 238.68,-42.54 238.68,-42.54\"/>\n",
"<text text-anchor=\"start\" x=\"164.25\" y=\"-59.1\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"172.75\" y=\"-45.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"188.75\" y=\"-45.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M245.96,-29.56C239.78,-21.64 231.03,-12.64 220.75,-8.3 194.55,2.77 182.95,2.77 156.75,-8.3 148.88,-11.63 141.91,-17.68 136.3,-23.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"131.54,-29.56 133.63,-22.17 133.79,-26.88 136.04,-24.2 136.04,-24.2 136.04,-24.2 133.79,-26.88 138.45,-26.22 131.54,-29.56 131.54,-29.56\"/>\n",
"<text text-anchor=\"start\" x=\"160.25\" y=\"-26.1\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"156.75\" y=\"-12.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"172.75\" y=\"-12.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"188.75\" y=\"-12.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"204.75\" y=\"-12.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M252.68,-62.08C251.98,-71.62 253.34,-80.3 256.75,-80.3 259.25,-80.3 260.65,-75.62 260.94,-69.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"260.82,-62.08 264.09,-69.03 260.88,-65.58 260.94,-69.08 260.94,-69.08 260.94,-69.08 260.88,-65.58 257.79,-69.13 260.82,-62.08 260.82,-62.08\"/>\n",
"<text text-anchor=\"start\" x=\"230.25\" y=\"-99.1\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"248.75\" y=\"-84.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.58,-61.22C246.06,-82.45 248.12,-110.3 256.75,-110.3 264.47,-110.3 266.93,-88.02 264.13,-68.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"262.92,-61.22 267.23,-67.57 263.53,-64.67 264.13,-68.12 264.13,-68.12 264.13,-68.12 263.53,-64.67 261.03,-68.66 262.92,-61.22 262.92,-61.22\"/>\n",
"<text text-anchor=\"start\" x=\"230.25\" y=\"-128.1\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"240.75\" y=\"-114.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"256.75\" y=\"-114.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M249.23,-61.02C240.3,-91.2 242.8,-138.3 256.75,-138.3 269.66,-138.3 272.77,-97.93 266.07,-68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"264.27,-61.02 269.07,-67.01 265.14,-64.41 266.02,-67.8 266.02,-67.8 266.02,-67.8 265.14,-64.41 262.97,-68.59 264.27,-61.02 264.27,-61.02\"/>\n",
"<text text-anchor=\"start\" x=\"232.25\" y=\"-156.1\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"232.75\" y=\"-142.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"248.75\" y=\"-142.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"264.75\" y=\"-142.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480e21e0> >"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = spot.automaton(\"\"\"\n",
"HOA: v1\n",
"States: 2\n",
"Start: 0\n",
"AP: 2 \"p1\" \"p0\"\n",
"Acceptance: 5 (Fin(0) & (Fin(3)|Fin(4)) & (Inf(1)&Inf(2))) | Inf(3)\n",
"properties: trans-labels explicit-labels trans-acc complete\n",
"properties: deterministic stutter-invariant\n",
"--BODY--\n",
"State: 0\n",
"[0&!1] 0 {2 3}\n",
"[!0&!1] 0 {2 3 4}\n",
"[!0&1] 1\n",
"[0&1] 1 {2 4}\n",
"State: 1\n",
"[!0&!1] 0 {0 2 3 4}\n",
"[!0&1] 1 {1}\n",
"[0&!1] 1 {2 3}\n",
"[0&1] 1 {1 2 4}\n",
"--END--\n",
"\"\"\"); c"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "63c7c062",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: zielonka_tree Pages: 1 -->\n",
"<svg width=\"140pt\" height=\"262pt\"\n",
" viewBox=\"0.00 0.00 140.00 262.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 258)\">\n",
"<title>zielonka_tree</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-258 136,-258 136,4 -4,4\"/>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"65.5\" cy=\"-236\" rx=\"63.89\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"65.5\" y=\"-232.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,4}</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"107.5,-182 23.5,-182 23.5,-146 107.5,-146 107.5,-182\"/>\n",
"<text text-anchor=\"middle\" x=\"65.5\" y=\"-160.3\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,4}</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.5,-217.7C65.5,-209.98 65.5,-200.71 65.5,-192.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69,-192.1 65.5,-182.1 62,-192.1 69,-192.1\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"65.5\" cy=\"-92\" rx=\"46.29\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"65.5\" y=\"-88.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,4}</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.5,-145.7C65.5,-137.98 65.5,-128.71 65.5,-120.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69,-120.1 65.5,-110.1 62,-120.1 69,-120.1\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"57,-38 0,-38 0,0 57,0 57,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"28.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{2,4}</text>\n",
"<text text-anchor=\"middle\" x=\"28.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;3&gt;</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>2&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.73,-74.17C52.54,-66.14 47.43,-56.32 42.71,-47.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"45.71,-45.45 37.98,-38.2 39.5,-48.68 45.71,-45.45\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"132,-38 75,-38 75,0 132,0 132,-38\"/>\n",
"<text text-anchor=\"middle\" x=\"103.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1,4}</text>\n",
"<text text-anchor=\"middle\" x=\"103.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;4&gt;</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.51,-74.17C78.81,-66.14 84.06,-56.32 88.91,-47.26\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"92.13,-48.67 93.76,-38.2 85.96,-45.36 92.13,-48.67\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.zielonka_tree; proxy of <Swig Object of type 'spot::zielonka_tree *' at 0x7f0c480e22a0> >"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.zielonka_tree(c.acc())"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "balanced-investing",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"366pt\" height=\"238pt\"\n",
" viewBox=\"0.00 0.00 365.50 238.16\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 234.16)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-234.16 361.5,-234.16 361.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"67.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"88.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"104.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"146.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"162.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"208.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"224.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"262.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"278.25\" y=\"-215.96\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
"<text text-anchor=\"start\" x=\"121.75\" y=\"-201.96\" font-family=\"Lato\" font-size=\"14.00\">[parity min even 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-44.16\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-40.46\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-44.16C2.79,-44.16 17.15,-44.16 30.63,-44.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-44.16 30.94,-47.31 34.44,-44.16 30.94,-44.16 30.94,-44.16 30.94,-44.16 34.44,-44.16 30.94,-41.01 37.94,-44.16 37.94,-44.16\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-61.94C52.21,-71.47 53.29,-80.16 56,-80.16 57.99,-80.16 59.1,-75.48 59.33,-69.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-61.94 62.48,-68.9 59.28,-65.44 59.33,-68.94 59.33,-68.94 59.33,-68.94 59.28,-65.44 56.18,-68.98 59.24,-61.94 59.24,-61.94\"/>\n",
"<text text-anchor=\"start\" x=\"29.5\" y=\"-98.96\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-83.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.99,-61.74C47.55,-82.88 49.21,-110.16 56,-110.16 62.04,-110.16 64.03,-88.52 61.96,-68.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.01,-61.74 65.06,-68.26 61.47,-65.21 61.93,-68.68 61.93,-68.68 61.93,-68.68 61.47,-65.21 58.81,-69.09 61.01,-61.74 61.01,-61.74\"/>\n",
"<text text-anchor=\"start\" x=\"27.5\" y=\"-128.96\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-113.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-71.16\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"195.5\" y=\"-67.46\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M62.13,-61.3C67.26,-75.07 76.64,-93.49 92,-102.16 114.06,-114.61 124.79,-109.62 149,-102.16 158.75,-99.15 168.29,-93.26 176.09,-87.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"181.69,-83 178.14,-89.81 178.94,-85.17 176.19,-87.33 176.19,-87.33 176.19,-87.33 178.94,-85.17 174.24,-84.86 181.69,-83 181.69,-83\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-127.96\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-112.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M73.86,-47.47C98.09,-52.23 142.86,-61.02 170.52,-66.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"177.5,-67.82 170.03,-69.56 174.07,-67.15 170.63,-66.47 170.63,-66.47 170.63,-66.47 174.07,-67.15 171.24,-63.38 177.5,-67.82 177.5,-67.82\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-79.96\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-64.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M186.44,-55.56C178.77,-42.58 165.9,-25.02 149,-17.16 126.03,-6.48 115.98,-8.99 92,-17.16 85.84,-19.26 79.92,-22.93 74.76,-26.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.07,-31.63 72.44,-24.73 71.77,-29.39 74.46,-27.15 74.46,-27.15 74.46,-27.15 71.77,-29.39 76.47,-29.58 69.07,-31.63 69.07,-31.63\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-35.96\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-20.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M183.74,-85.2C179.35,-96.07 183.27,-107.16 195.5,-107.16 205.06,-107.16 209.54,-100.39 208.95,-92.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"207.26,-85.2 211.95,-91.27 208.07,-88.6 208.89,-92.01 208.89,-92.01 208.89,-92.01 208.07,-88.6 205.83,-92.74 207.26,-85.2 207.26,-85.2\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-125.96\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-110.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"331\" cy=\"-71.16\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"331\" y=\"-67.46\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M200.35,-88.7C205.8,-108.8 217.92,-140.82 242,-155.16 262.24,-167.21 275.4,-168.23 295,-155.16 314.55,-142.13 323.2,-115.88 327.01,-96.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"328.21,-89.25 330.12,-96.69 327.61,-92.7 327.02,-96.15 327.02,-96.15 327.02,-96.15 327.61,-92.7 323.91,-95.61 328.21,-89.25 328.21,-89.25\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-182.96\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"260.5\" y=\"-167.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.31,-83C217.87,-90.07 229.76,-98.39 242,-102.16 264.51,-109.1 272.97,-110.51 295,-102.16 301.94,-99.53 308.4,-94.82 313.82,-89.85\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"318.88,-84.86 316.1,-92.02 316.39,-87.32 313.89,-89.78 313.89,-89.78 313.89,-89.78 316.39,-87.32 311.68,-87.53 318.88,-84.86 318.88,-84.86\"/>\n",
"<text text-anchor=\"start\" x=\"244\" y=\"-125.96\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"260.5\" y=\"-110.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M322.72,-54.68C316.89,-43.56 307.6,-29.6 295,-22.16 238.74,11.05 214.22,-8.94 149,-5.16 123.71,-3.69 115.13,5.16 92,-5.16 83.43,-8.98 76.09,-16.05 70.37,-23.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"65.96,-29.02 67.64,-21.53 68.06,-26.22 70.16,-23.42 70.16,-23.42 70.16,-23.42 68.06,-26.22 72.68,-25.31 65.96,-29.02 65.96,-29.02\"/>\n",
"<text text-anchor=\"start\" x=\"167\" y=\"-23.96\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-8.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M312.93,-69.4C307.23,-68.89 300.85,-68.41 295,-68.16 271.47,-67.15 265.54,-67.38 242,-68.16 235.14,-68.39 227.72,-68.8 220.89,-69.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"213.77,-69.75 220.53,-66.12 217.26,-69.51 220.75,-69.26 220.75,-69.26 220.75,-69.26 217.26,-69.51 220.97,-72.41 213.77,-69.75 213.77,-69.75\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-86.96\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"260.5\" y=\"-71.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M320.67,-56.01C314.54,-47.57 305.68,-37.84 295,-33.16 273.43,-23.7 264.14,-25.13 242,-33.16 230.99,-37.15 220.79,-45.1 212.84,-52.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"207.72,-57.85 210.42,-50.66 210.18,-55.37 212.65,-52.89 212.65,-52.89 212.65,-52.89 210.18,-55.37 214.89,-55.11 207.72,-57.85 207.72,-57.85\"/>\n",
"<text text-anchor=\"start\" x=\"244\" y=\"-51.96\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"260.5\" y=\"-36.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M320.63,-85.95C317.25,-96.58 320.71,-107.16 331,-107.16 338.88,-107.16 342.75,-100.96 342.62,-93.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"341.37,-85.95 345.65,-92.32 341.96,-89.4 342.55,-92.85 342.55,-92.85 342.55,-92.85 341.96,-89.4 339.44,-93.38 341.37,-85.95 341.37,-85.95\"/>\n",
"<text text-anchor=\"start\" x=\"304.5\" y=\"-125.96\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"323\" y=\"-110.96\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480e2360> >"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = spot.zielonka_tree_transform(c); d"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "nutritional-rugby",
"metadata": {},
"outputs": [],
"source": [
"assert c.equivalent_to(d)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "criminal-marking",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"147pt\" height=\"283pt\"\n",
" viewBox=\"0.00 0.00 146.59 283.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 279.38)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-279.38 142.59,-279.38 142.59,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-244.18\" font-family=\"Times,serif\" font-size=\"14.00\">min even</text>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"69.3\" cy=\"-177.69\" rx=\"69.09\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1&#45;8</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,4}</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0,1</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"96.3,-83 42.3,-83 42.3,0 96.3,0 96.3,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 6</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;1&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M69.3,-118.61C69.3,-110.25 69.3,-101.69 69.3,-93.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.8,-93.29 69.3,-83.29 65.8,-93.29 72.8,-93.29\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<style>\n",
".acdhigh ellipse,.acdacc ellipse,.acdacc path,.acdacc polygon{stroke:green;}\n",
".acdhigh polygon,.acdrej ellipse,.acdrej path,.acdrej polygon{stroke:red;}\n",
".acdbold ellipse,.acdbold polygon,.acdbold path{stroke-width:2;}\n",
".acdrej polygon{fill:red;}\n",
".acdacc polygon{fill:green;}\n",
"</style><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"356pt\" height=\"233pt\"\n",
" viewBox=\"0.00 0.00 356.00 233.30\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acdaut4\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 229.3)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-229.3 352,-229.3 352,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"8\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">(Fin(</text>\n",
"<text text-anchor=\"start\" x=\"35\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"51\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"99\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"115\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">)|Fin(</text>\n",
"<text text-anchor=\"start\" x=\"146\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"162\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">)) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"211\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"227\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"277\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">))) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"320\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"336\" y=\"-211.1\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"S0\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"120.75\" cy=\"-44.3\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"120.75\" y=\"-40.6\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"acdaut4_edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M65.9,-44.3C67.54,-44.3 81.9,-44.3 95.38,-44.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"102.69,-44.3 95.69,-47.45 99.19,-44.3 95.69,-44.3 95.69,-44.3 95.69,-44.3 99.19,-44.3 95.69,-41.15 102.69,-44.3 102.69,-44.3\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"E1\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<g id=\"a_E1\"><a xlink:title=\"0&#45;&gt;0&#10;#1\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M117.51,-62.08C116.96,-71.62 118.04,-80.3 120.75,-80.3 122.74,-80.3 123.85,-75.62 124.08,-69.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"123.99,-62.08 127.23,-69.04 124.03,-65.58 124.08,-69.08 124.08,-69.08 124.08,-69.08 124.03,-65.58 120.93,-69.12 123.99,-62.08 123.99,-62.08\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"94.25\" y=\"-98.1\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"104.75\" y=\"-84.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"120.75\" y=\"-84.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"E2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<g id=\"a_E2\"><a xlink:title=\"0&#45;&gt;0&#10;#2\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M115.69,-61.9C112.31,-82.43 114,-108.3 120.75,-108.3 126.74,-108.3 128.74,-87.96 126.76,-69.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"125.81,-61.9 129.86,-68.42 126.28,-65.37 126.74,-68.83 126.74,-68.83 126.74,-68.83 126.28,-65.37 123.62,-69.25 125.81,-61.9 125.81,-61.9\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"92.25\" y=\"-126.1\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"96.75\" y=\"-112.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"112.75\" y=\"-112.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"128.75\" y=\"-112.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"S1\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"256.75\" cy=\"-44.3\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"256.75\" y=\"-40.6\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"E3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<g id=\"a_E3\"><a xlink:title=\"0&#45;&gt;1&#10;#3\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.35,-57.44C139.59,-63.52 147.84,-70.09 156.75,-73.3 183.51,-82.95 193.99,-82.95 220.75,-73.3 227.29,-70.94 233.48,-66.77 238.78,-62.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"244.15,-57.44 241.08,-64.48 241.56,-59.79 238.97,-62.14 238.97,-62.14 238.97,-62.14 241.56,-59.79 236.85,-59.81 244.15,-57.44 244.15,-57.44\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"162.25\" y=\"-84.1\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"E4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<g id=\"a_E4\"><a xlink:title=\"0&#45;&gt;1&#10;#4\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M138.82,-42.54C144.52,-42.04 150.9,-41.55 156.75,-41.3 185.17,-40.09 192.33,-40.09 220.75,-41.3 224.22,-41.45 227.88,-41.68 231.48,-41.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"238.68,-42.54 231.44,-45.11 235.19,-42.26 231.7,-41.97 231.7,-41.97 231.7,-41.97 235.19,-42.26 231.96,-38.83 238.68,-42.54 238.68,-42.54\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"164.25\" y=\"-59.1\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"172.75\" y=\"-45.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"188.75\" y=\"-45.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"E5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<g id=\"a_E5\"><a xlink:title=\"1&#45;&gt;0&#10;#5\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M245.96,-29.56C239.78,-21.64 231.03,-12.64 220.75,-8.3 194.55,2.77 182.95,2.77 156.75,-8.3 148.88,-11.63 141.91,-17.68 136.3,-23.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"131.54,-29.56 133.63,-22.17 133.79,-26.88 136.04,-24.2 136.04,-24.2 136.04,-24.2 133.79,-26.88 138.45,-26.22 131.54,-29.56 131.54,-29.56\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"160.25\" y=\"-26.1\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"156.75\" y=\"-12.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"172.75\" y=\"-12.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"188.75\" y=\"-12.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"204.75\" y=\"-12.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"E6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<g id=\"a_E6\"><a xlink:title=\"1&#45;&gt;1&#10;#6\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M252.68,-62.08C251.98,-71.62 253.34,-80.3 256.75,-80.3 259.25,-80.3 260.65,-75.62 260.94,-69.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"260.82,-62.08 264.09,-69.03 260.88,-65.58 260.94,-69.08 260.94,-69.08 260.94,-69.08 260.88,-65.58 257.79,-69.13 260.82,-62.08 260.82,-62.08\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"230.25\" y=\"-99.1\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"248.75\" y=\"-84.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"E7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<g id=\"a_E7\"><a xlink:title=\"1&#45;&gt;1&#10;#7\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M250.58,-61.22C246.06,-82.45 248.12,-110.3 256.75,-110.3 264.47,-110.3 266.93,-88.02 264.13,-68.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"262.92,-61.22 267.23,-67.57 263.53,-64.67 264.13,-68.12 264.13,-68.12 264.13,-68.12 263.53,-64.67 261.03,-68.66 262.92,-61.22 262.92,-61.22\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"230.25\" y=\"-128.1\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"240.75\" y=\"-114.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"256.75\" y=\"-114.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"E8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<g id=\"a_E8\"><a xlink:title=\"1&#45;&gt;1&#10;#8\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M249.23,-61.02C240.3,-91.2 242.8,-138.3 256.75,-138.3 269.66,-138.3 272.77,-97.93 266.07,-68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"264.27,-61.02 269.07,-67.01 265.14,-64.41 266.02,-67.8 266.02,-67.8 266.02,-67.8 265.14,-64.41 262.97,-68.59 264.27,-61.02 264.27,-61.02\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"232.25\" y=\"-156.1\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"232.75\" y=\"-142.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"248.75\" y=\"-142.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"264.75\" y=\"-142.1\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"147pt\" height=\"283pt\"\n",
" viewBox=\"0.00 0.00 146.59 283.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acd4\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 279.38)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-279.38 142.59,-279.38 142.59,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-244.18\" font-family=\"Times,serif\" font-size=\"14.00\">min even</text>\n",
"<!-- 0 -->\n",
"<g id=\"N0\" class=\"node acdS0\n",
" acdS1\n",
"\">\n",
"<title>0</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"69.3\" cy=\"-177.69\" rx=\"69.09\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1&#45;8</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3,4}</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0,1</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"N1\" class=\"node acdS1\n",
"\">\n",
"<title>1</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"96.3,-83 42.3,-83 42.3,0 96.3,0 96.3,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 6</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 1</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"69.3\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;1&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"acd4_edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M69.3,-118.61C69.3,-110.25 69.3,-101.69 69.3,-93.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"72.8,-93.29 69.3,-83.29 65.8,-93.29 72.8,-93.29\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><script>\n",
"function acd4_clear(){\n",
" $(\"#acd4 .node,#acdaut4 .node,#acdaut4 .edge\")\n",
" .removeClass(\"acdhigh acdbold acdacc acdrej\");\n",
"};\n",
"function acd4_state(state){\n",
" acd4_clear();\n",
" $(\"#acd4 .acdS\" + state).addClass(\"acdhigh acdbold\");\n",
" $(\"#acdaut4 #S\" + state).addClass(\"acdbold\");\n",
"};\n",
"function acd4_edge(edge){\n",
" acd4_clear();\n",
" var theedge = $('#acdaut4 #E' + edge)\n",
" var classList = theedge.attr('class').split(/\\s+/);\n",
" $.each(classList, function(index, item) {\n",
" if (item.startsWith('acdN')) {\n",
" $(\"#acd4 #\" + item.substring(3)).addClass(\"acdhigh acdbold\");\n",
" }\n",
" });\n",
" theedge.addClass(\"acdbold\");\n",
"};\n",
"function acd4_node(node, acc){\n",
" acd4_clear();\n",
" $(\"#acdaut4 .acdN\" + node).addClass(acc\n",
" ? \"acdacc acdbold\"\n",
" : \"acdrej acdbold\");\n",
" $(\"#acd4 #N\" + node).addClass(\"acdbold acdhigh\");\n",
"};$(\"#acdaut4 #E1\").addClass(\"acdN0\");$(\"#acdaut4 #E2\").addClass(\"acdN0\");$(\"#acdaut4 #E3\").addClass(\"acdN0\");$(\"#acdaut4 #E4\").addClass(\"acdN0\");$(\"#acdaut4 #E5\").addClass(\"acdN0\");$(\"#acdaut4 #E6\").addClass(\"acdN0\");$(\"#acdaut4 #E7\").addClass(\"acdN0\");$(\"#acdaut4 #E8\").addClass(\"acdN0\");$(\"#acdaut4 #E6\").addClass(\"acdN1\");$(\"#acdaut4 #E1\").click(function(){acd4_edge(1);});$(\"#acdaut4 #E2\").click(function(){acd4_edge(2);});$(\"#acdaut4 #E3\").click(function(){acd4_edge(3);});$(\"#acdaut4 #E4\").click(function(){acd4_edge(4);});$(\"#acdaut4 #E5\").click(function(){acd4_edge(5);});$(\"#acdaut4 #E6\").click(function(){acd4_edge(6);});$(\"#acdaut4 #E7\").click(function(){acd4_edge(7);});$(\"#acdaut4 #E8\").click(function(){acd4_edge(8);});$(\"#acdaut4 #S0\").click(function(){acd4_state(0);});$(\"#acdaut4 #S1\").click(function(){acd4_state(1);});$(\"#acd4 #N0\").click(function(){acd4_node(0, 1);});$(\"#acd4 #N1\").click(function(){acd4_node(1, 0);});</script>"
],
"text/plain": [
"<spot.acd; proxy of <Swig Object of type 'spot::acd *' at 0x7f0c480e2480> >"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cacd = spot.acd(c); cacd"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "e7760d51",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cacd.state_step(1, 7)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "unusual-dependence",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"220pt\" height=\"237pt\"\n",
" viewBox=\"0.00 0.00 219.50 236.63\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 232.63)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-232.63 215.5,-232.63 215.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"85.25\" y=\"-214.43\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"106.25\" y=\"-214.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"122.25\" y=\"-214.43\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"84.25\" y=\"-200.43\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-45.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-41.93\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-45.63C2.79,-45.63 17.15,-45.63 30.63,-45.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-45.63 30.94,-48.78 34.44,-45.63 30.94,-45.63 30.94,-45.63 30.94,-45.63 34.44,-45.63 30.94,-42.48 37.94,-45.63 37.94,-45.63\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-63.41C52.21,-72.94 53.29,-81.63 56,-81.63 57.99,-81.63 59.1,-76.95 59.33,-70.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-63.41 62.48,-70.37 59.28,-66.91 59.33,-70.41 59.33,-70.41 59.33,-70.41 59.28,-66.91 56.18,-70.45 59.24,-63.41 59.24,-63.41\"/>\n",
"<text text-anchor=\"start\" x=\"29.5\" y=\"-100.43\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-85.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.99,-63.21C47.55,-84.35 49.21,-111.63 56,-111.63 62.04,-111.63 64.03,-89.99 61.96,-70.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.01,-63.21 65.06,-69.73 61.47,-66.68 61.93,-70.15 61.93,-70.15 61.93,-70.15 61.47,-66.68 58.81,-70.56 61.01,-63.21 61.01,-63.21\"/>\n",
"<text text-anchor=\"start\" x=\"27.5\" y=\"-130.43\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-115.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"185\" cy=\"-45.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"185\" y=\"-41.93\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.12,-59.33C74.36,-65.91 82.74,-73.12 92,-76.63 115.69,-85.61 125.31,-85.61 149,-76.63 155.94,-74 162.4,-69.29 167.82,-64.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"172.88,-59.33 170.1,-66.49 170.39,-61.79 167.89,-64.25 167.89,-64.25 167.89,-64.25 170.39,-61.79 165.68,-62 172.88,-59.33 172.88,-59.33\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-101.43\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-86.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.07,-43.87C79.77,-43.36 86.15,-42.88 92,-42.63 117.31,-41.55 123.69,-41.55 149,-42.63 152.47,-42.78 156.13,-43.01 159.73,-43.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"166.93,-43.87 159.69,-46.44 163.44,-43.58 159.95,-43.3 159.95,-43.3 159.95,-43.3 163.44,-43.58 160.21,-40.16 166.93,-43.87 166.93,-43.87\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-61.43\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-46.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.67,-30.48C168.54,-22.04 159.68,-12.31 149,-7.63 125.8,2.54 115.2,2.54 92,-7.63 83.66,-11.29 76.43,-18.02 70.74,-24.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"66.33,-30.48 68.15,-23.02 68.48,-27.72 70.63,-24.96 70.63,-24.96 70.63,-24.96 68.48,-27.72 73.12,-26.89 66.33,-30.48 66.33,-30.48\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-26.43\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-11.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M181.17,-63.41C180.51,-72.94 181.79,-81.63 185,-81.63 187.36,-81.63 188.67,-76.95 188.95,-70.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.83,-63.41 192.09,-70.36 188.89,-66.91 188.94,-70.41 188.94,-70.41 188.94,-70.41 188.89,-66.91 185.79,-70.46 188.83,-63.41 188.83,-63.41\"/>\n",
"<text text-anchor=\"start\" x=\"158.5\" y=\"-85.43\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.76,-62.77C175.09,-80.21 177.17,-99.63 185,-99.63 191.79,-99.63 194.26,-85.03 192.4,-69.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"191.24,-62.77 195.49,-69.16 191.81,-66.22 192.38,-69.68 192.38,-69.68 192.38,-69.68 191.81,-66.22 189.28,-70.19 191.24,-62.77 191.24,-62.77\"/>\n",
"<text text-anchor=\"start\" x=\"158.5\" y=\"-118.43\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-103.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M177.69,-62.29C169.56,-90.02 172,-129.63 185,-129.63 196.93,-129.63 199.97,-96.25 194.1,-69.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"192.31,-62.29 197.09,-68.3 193.17,-65.69 194.04,-69.08 194.04,-69.08 194.04,-69.08 193.17,-65.69 190.98,-69.85 192.31,-62.29 192.31,-62.29\"/>\n",
"<text text-anchor=\"start\" x=\"160.5\" y=\"-148.43\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-133.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480e2d50> >"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = spot.acd_transform(c); d"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "d5440de1",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"378pt\" height=\"177pt\"\n",
" viewBox=\"0.00 0.00 377.50 176.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 172.62)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-172.62 373.5,-172.62 373.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"163.25\" y=\"-138.42\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"60\" cy=\"-40.82\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"60\" cy=\"-40.82\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"60\" y=\"-37.12\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.17,-40.82C2.84,-40.82 16.88,-40.82 30.71,-40.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.86,-40.82 30.86,-43.97 34.36,-40.82 30.86,-40.82 30.86,-40.82 30.86,-40.82 34.36,-40.82 30.86,-37.67 37.86,-40.82 37.86,-40.82\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M56.31,-62.62C55.96,-72.38 57.19,-80.82 60,-80.82 62.07,-80.82 63.28,-76.26 63.64,-69.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"63.69,-62.62 66.79,-69.65 63.67,-66.12 63.64,-69.62 63.64,-69.62 63.64,-69.62 63.67,-66.12 60.49,-69.6 63.69,-62.62 63.69,-62.62\"/>\n",
"<text text-anchor=\"start\" x=\"33.5\" y=\"-84.62\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M53.69,-61.93C50.9,-79.91 53.01,-98.82 60,-98.82 66.06,-98.82 68.45,-84.6 67.16,-69.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"66.31,-61.93 70.26,-68.51 66.72,-65.41 67.14,-68.88 67.14,-68.88 67.14,-68.88 66.72,-65.41 64.01,-69.25 66.31,-61.93 66.31,-61.93\"/>\n",
"<text text-anchor=\"start\" x=\"31.5\" y=\"-102.62\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"203.5\" cy=\"-59.82\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"203.5\" y=\"-56.12\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.75,-57.75C81.52,-64.76 90.31,-72.11 100,-75.82 126.29,-85.88 158.7,-77.69 179.94,-69.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"186.7,-67.14 181.33,-72.62 183.44,-68.41 180.18,-69.69 180.18,-69.69 180.18,-69.69 183.44,-68.41 179.03,-66.76 186.7,-67.14 186.7,-67.14\"/>\n",
"<text text-anchor=\"start\" x=\"102\" y=\"-83.62\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M81.88,-43.62C107.6,-47.07 151.21,-52.93 178.34,-56.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"185.53,-57.54 178.18,-59.73 182.06,-57.07 178.6,-56.61 178.6,-56.61 178.6,-56.61 182.06,-57.07 179.01,-53.48 185.53,-57.54 185.53,-57.54\"/>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-56.62\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M190.2,-47.56C181.68,-39.97 169.62,-30.91 157,-26.82 132.9,-19 124.96,-22.47 100,-26.82 95.82,-27.54 91.5,-28.68 87.32,-29.99\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"80.48,-32.34 86.08,-27.09 83.79,-31.2 87.1,-30.07 87.1,-30.07 87.1,-30.07 83.79,-31.2 88.12,-33.05 80.48,-32.34 80.48,-32.34\"/>\n",
"<text text-anchor=\"start\" x=\"100\" y=\"-30.62\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M191.74,-73.86C187.35,-84.73 191.27,-95.82 203.5,-95.82 213.06,-95.82 217.54,-89.05 216.95,-80.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"215.26,-73.86 219.95,-79.93 216.07,-77.26 216.89,-80.66 216.89,-80.66 216.89,-80.66 216.07,-77.26 213.83,-81.4 215.26,-73.86 215.26,-73.86\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-99.62\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"343\" cy=\"-40.82\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"343\" cy=\"-40.82\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"343\" y=\"-37.12\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M220.02,-67.15C239.87,-75.46 275.01,-86.53 303,-75.82 310.42,-72.98 317.31,-68 323.17,-62.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"328.25,-57.75 325.42,-64.89 325.74,-60.19 323.23,-62.63 323.23,-62.63 323.23,-62.63 325.74,-60.19 321.04,-60.37 328.25,-57.75 328.25,-57.75\"/>\n",
"<text text-anchor=\"start\" x=\"250\" y=\"-83.62\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M221.36,-57.49C244.4,-54.3 286.03,-48.55 313.85,-44.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"320.95,-43.72 314.45,-47.8 317.48,-44.2 314.01,-44.68 314.01,-44.68 314.01,-44.68 317.48,-44.2 313.58,-41.56 320.95,-43.72 320.95,-43.72\"/>\n",
"<text text-anchor=\"start\" x=\"252\" y=\"-56.62\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M324.65,-27.91C318.19,-23.85 310.58,-19.88 303,-17.82 215.96,5.94 187.04,5.94 100,-17.82 94.79,-19.24 89.56,-21.56 84.7,-24.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"78.35,-27.91 82.8,-21.65 81.37,-26.14 84.39,-24.37 84.39,-24.37 84.39,-24.37 81.37,-26.14 85.98,-27.09 78.35,-27.91 78.35,-27.91\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-5.62\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M322.52,-32.34C316.39,-30.08 309.52,-27.95 303,-26.82 279.79,-22.78 272.41,-19.55 250,-26.82 239.94,-30.08 230.24,-36.49 222.41,-42.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"216.8,-47.56 220.1,-40.63 219.47,-45.3 222.14,-43.03 222.14,-43.03 222.14,-43.03 219.47,-45.3 224.18,-45.44 216.8,-47.56 216.8,-47.56\"/>\n",
"<text text-anchor=\"start\" x=\"250\" y=\"-30.62\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M336.93,-62.21C336.27,-72.14 338.29,-80.82 343,-80.82 346.53,-80.82 348.55,-75.94 349.06,-69.31\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"349.07,-62.21 352.21,-69.22 349.06,-65.71 349.06,-69.21 349.06,-69.21 349.06,-69.21 349.06,-65.71 345.91,-69.21 349.07,-62.21 349.07,-62.21\"/>\n",
"<text text-anchor=\"start\" x=\"316.5\" y=\"-84.62\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M332.99,-60.43C327.81,-78.84 331.14,-98.82 343,-98.82 353.38,-98.82 357.23,-83.52 354.55,-67.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"353.01,-60.43 357.6,-66.57 353.77,-63.84 354.53,-67.26 354.53,-67.26 354.53,-67.26 353.77,-63.84 351.45,-67.94 353.01,-60.43 353.01,-60.43\"/>\n",
"<text text-anchor=\"start\" x=\"318.5\" y=\"-102.62\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480ea150> >"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e = spot.acd_transform_sbacc(c); e"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "9ed0bc59",
"metadata": {},
"outputs": [],
"source": [
"assert c.equivalent_to(d)\n",
"assert c.equivalent_to(e)"
]
},
{
"cell_type": "markdown",
"id": "36629c32",
"metadata": {},
"source": [
"Paritizing a generalized-Büchi automaton with `acd_transform()` produces a Büchi automaton.\n",
"The Zielonka-tree transformation produces a larger automaton because it ignores the transition structure, and also it uses an extra and unnecessary color (because it was not taught how to omit it)."
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "deb92971",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"152pt\" height=\"283pt\"\n",
" viewBox=\"0.00 0.00 151.50 283.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 279.38)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-279.38 147.5,-279.38 147.5,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"71.75\" y=\"-244.18\" font-family=\"Times,serif\" font-size=\"14.00\">min even</text>\n",
"<!-- 0 -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"75.5\" cy=\"-177.69\" rx=\"59.29\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1&#45;7</text>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3}</text>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;3</text>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"71,-83 0,-83 0,0 71,0 71,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1,3&#45;5</text>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2}</text>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;1&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.88,-120.95C56.11,-111.64 53.25,-102.03 50.51,-92.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"53.82,-91.72 47.61,-83.14 47.12,-93.72 53.82,-91.72\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"143.5,-83 89.5,-83 89.5,0 143.5,0 143.5,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 7</text>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;2&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M92.41,-121.33C95.26,-112 98.21,-102.36 101.02,-93.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"104.44,-93.96 104.01,-83.38 97.74,-91.92 104.44,-93.96\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<style>\n",
".acdhigh ellipse,.acdacc ellipse,.acdacc path,.acdacc polygon{stroke:green;}\n",
".acdhigh polygon,.acdrej ellipse,.acdrej path,.acdrej polygon{stroke:red;}\n",
".acdbold ellipse,.acdbold polygon,.acdbold path{stroke-width:2;}\n",
".acdrej polygon{fill:red;}\n",
".acdacc polygon{fill:green;}\n",
"</style><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"500pt\" height=\"190pt\"\n",
" viewBox=\"0.00 0.00 500.00 190.44\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acdaut5\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 186.44)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-186.44 496,-186.44 496,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"171.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"221.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"237.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"271.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\">)&amp;Inf(</text>\n",
"<text text-anchor=\"start\" x=\"321.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"337.5\" y=\"-168.24\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"203.5\" y=\"-154.24\" font-family=\"Lato\" font-size=\"14.00\">[gen. Büchi 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"S0\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-37.44\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-33.74\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"acdaut5_edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-37.44C2.79,-37.44 17.15,-37.44 30.63,-37.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-37.44 30.94,-40.59 34.44,-37.44 30.94,-37.44 30.94,-37.44 30.94,-37.44 34.44,-37.44 30.94,-34.29 37.94,-37.44 37.94,-37.44\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"S2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"345\" cy=\"-68.44\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"345\" y=\"-64.74\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"E1\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<g id=\"a_E1\"><a xlink:title=\"0&#45;&gt;2&#10;#1\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M69.29,-50.13C75.72,-56.38 83.91,-63.76 92,-69.44 125.69,-93.07 134.04,-102.59 174,-112.44 232.96,-126.96 253.46,-115.98 309,-91.44 314.24,-89.12 319.56,-86.05 324.43,-82.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"330.31,-78.96 326.26,-85.48 327.4,-80.91 324.5,-82.87 324.5,-82.87 324.5,-82.87 327.4,-80.91 322.74,-80.26 330.31,-78.96 330.31,-78.96\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-136.24\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"176.5\" y=\"-122.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"192.5\" y=\"-122.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"208.5\" y=\"-122.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"S3\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"200.5\" cy=\"-37.44\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"200.5\" y=\"-33.74\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"E2\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<g id=\"a_E2\"><a xlink:title=\"0&#45;&gt;3&#10;#2\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.19,-37.44C99.33,-37.44 146.26,-37.44 175.01,-37.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"182.25,-37.44 175.25,-40.59 178.75,-37.44 175.25,-37.44 175.25,-37.44 175.25,-37.44 178.75,-37.44 175.25,-34.29 182.25,-37.44 182.25,-37.44\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-55.24\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-41.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"108\" y=\"-41.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"124\" y=\"-41.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"140\" y=\"-41.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"S1\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"474\" cy=\"-24.44\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"474\" y=\"-20.74\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"E5\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<g id=\"a_E5\"><a xlink:title=\"2&#45;&gt;1&#10;#5\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M363.1,-68.91C382.22,-68.8 413.69,-66.66 438,-55.44 444.74,-52.32 451.14,-47.47 456.57,-42.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"461.66,-37.61 458.81,-44.74 459.14,-40.04 456.63,-42.48 456.63,-42.48 456.63,-42.48 459.14,-40.04 454.44,-40.21 461.66,-37.61 461.66,-37.61\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"383\" y=\"-86.24\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"401.5\" y=\"-71.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"E6\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<g id=\"a_E6\"><a xlink:title=\"3&#45;&gt;2&#10;#6\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M218.41,-41.11C243.69,-46.61 291.45,-57 320.23,-63.27\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"327.12,-64.76 319.61,-66.35 323.7,-64.02 320.28,-63.27 320.28,-63.27 320.28,-63.27 323.7,-64.02 320.95,-60.2 327.12,-64.76 327.12,-64.76\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"248.5\" y=\"-77.24\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"245\" y=\"-63.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-63.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"277\" y=\"-63.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"293\" y=\"-63.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"E7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<g id=\"a_E7\"><a xlink:title=\"3&#45;&gt;3&#10;#7\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M188.25,-51.1C183.36,-62.09 187.44,-73.44 200.5,-73.44 210.71,-73.44 215.43,-66.51 214.67,-58.24\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"212.75,-51.1 217.61,-57.04 213.66,-54.48 214.57,-57.86 214.57,-57.86 214.57,-57.86 213.66,-54.48 211.53,-58.68 212.75,-51.1 212.75,-51.1\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"174\" y=\"-92.24\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"192.5\" y=\"-77.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"E3\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<g id=\"a_E3\"><a xlink:title=\"1&#45;&gt;0&#10;#3\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M457.25,-17.84C451.33,-15.67 444.46,-13.54 438,-12.44 308.54,9.77 229.35,-4.13 174,-10.44 140.96,-14.2 103.68,-23.75 80.26,-30.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.46,-32.39 79.31,-27.42 76.82,-31.42 80.18,-30.44 80.18,-30.44 80.18,-30.44 76.82,-31.42 81.06,-33.47 73.46,-32.39 73.46,-32.39\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"250.5\" y=\"-21.24\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"253\" y=\"-7.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"269\" y=\"-7.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"285\" y=\"-7.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"E4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<g id=\"a_E4\"><a xlink:title=\"1&#45;&gt;2&#10;#4\">\n",
"<path fill=\"none\" stroke=\"black\" d=\"M456.09,-20.51C436.86,-16.96 405.03,-13.85 381,-25.44 371.6,-29.97 363.89,-38.37 358.12,-46.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"354.09,-52.7 355.29,-45.12 356.01,-49.77 357.93,-46.84 357.93,-46.84 357.93,-46.84 356.01,-49.77 360.56,-48.57 354.09,-52.7 354.09,-52.7\"/>\n",
"</a>\n",
"</g>\n",
"<text text-anchor=\"start\" x=\"381\" y=\"-44.24\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"401.5\" y=\"-29.24\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: acd Pages: 1 -->\n",
"<svg width=\"152pt\" height=\"283pt\"\n",
" viewBox=\"0.00 0.00 151.50 283.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"acd5\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 279.38)\">\n",
"<title>acd</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-279.38 147.5,-279.38 147.5,4 -4,4\"/>\n",
"<text text-anchor=\"middle\" x=\"71.75\" y=\"-244.18\" font-family=\"Times,serif\" font-size=\"14.00\">min even</text>\n",
"<!-- 0 -->\n",
"<g id=\"N0\" class=\"node acdS0\n",
" acdS1\n",
" acdS2\n",
" acdS3\n",
"\">\n",
"<title>0</title>\n",
"<ellipse fill=\"white\" stroke=\"black\" cx=\"75.5\" cy=\"-177.69\" rx=\"59.29\" ry=\"58.88\"/>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-203.99\" font-family=\"Times,serif\" font-size=\"14.00\">SCC #0</text>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-188.99\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1&#45;7</text>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-173.99\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2,3}</text>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-158.99\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;3</text>\n",
"<text text-anchor=\"middle\" x=\"75.5\" y=\"-143.99\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 0</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"N1\" class=\"node acdS0\n",
" acdS1\n",
" acdS2\n",
"\">\n",
"<title>1</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"71,-83 0,-83 0,0 71,0 71,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 1,3&#45;5</text>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1,2}</text>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 0&#45;2</text>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"35.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;1&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"acd5_edge1\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M58.88,-120.95C56.11,-111.64 53.25,-102.03 50.51,-92.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"53.82,-91.72 47.61,-83.14 47.12,-93.72 53.82,-91.72\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"N2\" class=\"node acdS3\n",
"\">\n",
"<title>2</title>\n",
"<polygon fill=\"white\" stroke=\"black\" points=\"143.5,-83 89.5,-83 89.5,0 143.5,0 143.5,-83\"/>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-67.8\" font-family=\"Times,serif\" font-size=\"14.00\">T: 7</text>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">Q: 3</text>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">lvl: 1</text>\n",
"<text text-anchor=\"middle\" x=\"116.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">&lt;2&gt;</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"acd5_edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M92.41,-121.33C95.26,-112 98.21,-102.36 101.02,-93.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"104.44,-93.96 104.01,-83.38 97.74,-91.92 104.44,-93.96\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><script>\n",
"function acd5_clear(){\n",
" $(\"#acd5 .node,#acdaut5 .node,#acdaut5 .edge\")\n",
" .removeClass(\"acdhigh acdbold acdacc acdrej\");\n",
"};\n",
"function acd5_state(state){\n",
" acd5_clear();\n",
" $(\"#acd5 .acdS\" + state).addClass(\"acdhigh acdbold\");\n",
" $(\"#acdaut5 #S\" + state).addClass(\"acdbold\");\n",
"};\n",
"function acd5_edge(edge){\n",
" acd5_clear();\n",
" var theedge = $('#acdaut5 #E' + edge)\n",
" var classList = theedge.attr('class').split(/\\s+/);\n",
" $.each(classList, function(index, item) {\n",
" if (item.startsWith('acdN')) {\n",
" $(\"#acd5 #\" + item.substring(3)).addClass(\"acdhigh acdbold\");\n",
" }\n",
" });\n",
" theedge.addClass(\"acdbold\");\n",
"};\n",
"function acd5_node(node, acc){\n",
" acd5_clear();\n",
" $(\"#acdaut5 .acdN\" + node).addClass(acc\n",
" ? \"acdacc acdbold\"\n",
" : \"acdrej acdbold\");\n",
" $(\"#acd5 #N\" + node).addClass(\"acdbold acdhigh\");\n",
"};$(\"#acdaut5 #E1\").addClass(\"acdN0\");$(\"#acdaut5 #E2\").addClass(\"acdN0\");$(\"#acdaut5 #E3\").addClass(\"acdN0\");$(\"#acdaut5 #E4\").addClass(\"acdN0\");$(\"#acdaut5 #E5\").addClass(\"acdN0\");$(\"#acdaut5 #E6\").addClass(\"acdN0\");$(\"#acdaut5 #E7\").addClass(\"acdN0\");$(\"#acdaut5 #E1\").addClass(\"acdN1\");$(\"#acdaut5 #E3\").addClass(\"acdN1\");$(\"#acdaut5 #E4\").addClass(\"acdN1\");$(\"#acdaut5 #E5\").addClass(\"acdN1\");$(\"#acdaut5 #E7\").addClass(\"acdN2\");$(\"#acdaut5 #E1\").click(function(){acd5_edge(1);});$(\"#acdaut5 #E2\").click(function(){acd5_edge(2);});$(\"#acdaut5 #E3\").click(function(){acd5_edge(3);});$(\"#acdaut5 #E4\").click(function(){acd5_edge(4);});$(\"#acdaut5 #E5\").click(function(){acd5_edge(5);});$(\"#acdaut5 #E6\").click(function(){acd5_edge(6);});$(\"#acdaut5 #E7\").click(function(){acd5_edge(7);});$(\"#acdaut5 #S0\").click(function(){acd5_state(0);});$(\"#acdaut5 #S1\").click(function(){acd5_state(1);});$(\"#acdaut5 #S2\").click(function(){acd5_state(2);});$(\"#acdaut5 #S3\").click(function(){acd5_state(3);});$(\"#acd5 #N0\").click(function(){acd5_node(0, 1);});$(\"#acd5 #N1\").click(function(){acd5_node(1, 0);});$(\"#acd5 #N2\").click(function(){acd5_node(2, 0);});</script>"
],
"text/plain": [
"<spot.acd; proxy of <Swig Object of type 'spot::acd *' at 0x7f0c480ea1b0> >"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g = spot.automaton(\"\"\"HOA: v1 States: 4 Start: 0 AP: 2 \"p0\" \"p1\"\n",
"acc-name: generalized-Buchi 4 Acceptance: 4\n",
"Inf(0)&Inf(1)&Inf(2)&Inf(3) properties: trans-labels explicit-labels\n",
"trans-acc --BODY-- State: 0 [!0&1] 2 {0 1 2} [!0&!1] 3 {0 1 2 3}\n",
"State: 1 [!0&1] 0 {0 1 2} [!0&!1] 2 {0} State: 2 [!0&1] 1 {0} State: 3\n",
"[!0&!1] 2 {0 1 2 3} [0&!1] 3 {0} --END--\"\"\")\n",
"\n",
"spot.acd(g)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "94a02201",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"486pt\" height=\"166pt\"\n",
" viewBox=\"0.00 0.00 486.00 165.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 161.74)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-161.74 482,-161.74 482,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"218.5\" y=\"-143.54\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"239.5\" y=\"-143.54\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"255.5\" y=\"-143.54\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"217.5\" y=\"-129.54\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-40.74\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-37.04\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-40.74C2.79,-40.74 17.15,-40.74 30.63,-40.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-40.74 30.94,-43.89 34.44,-40.74 30.94,-40.74 30.94,-40.74 30.94,-40.74 34.44,-40.74 30.94,-37.59 37.94,-40.74 37.94,-40.74\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"331\" cy=\"-59.74\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"331\" y=\"-56.04\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M68.19,-54.14C74.57,-61.08 83.06,-69.22 92,-74.74 122.03,-93.24 132.21,-94.88 167,-100.74 223.39,-110.23 242.86,-111.22 295,-87.74 301.15,-84.97 307.14,-80.86 312.39,-76.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"317.75,-72.09 314.46,-79.02 315.09,-74.35 312.42,-76.62 312.42,-76.62 312.42,-76.62 315.09,-74.35 310.38,-74.22 317.75,-72.09 317.75,-72.09\"/>\n",
"<text text-anchor=\"start\" x=\"167\" y=\"-110.54\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-40.74\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"193.5\" y=\"-37.04\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.16,-40.74C97.99,-40.74 141.2,-40.74 168.29,-40.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"175.48,-40.74 168.48,-43.89 171.98,-40.74 168.48,-40.74 168.48,-40.74 168.48,-40.74 171.98,-40.74 168.48,-37.59 175.48,-40.74 175.48,-40.74\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-59.54\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-44.54\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"460\" cy=\"-27.74\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"460\" y=\"-24.04\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M349.27,-58.07C367.99,-55.96 398.6,-51.61 424,-43.74 428.36,-42.39 432.88,-40.62 437.16,-38.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"443.66,-35.78 438.6,-41.56 440.47,-37.24 437.29,-38.7 437.29,-38.7 437.29,-38.7 440.47,-37.24 435.98,-35.83 443.66,-35.78 443.66,-35.78\"/>\n",
"<text text-anchor=\"start\" x=\"369\" y=\"-58.54\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M211.39,-43.1C235.12,-46.43 278.48,-52.51 305.69,-56.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"312.9,-57.34 305.53,-59.49 309.43,-56.85 305.97,-56.37 305.97,-56.37 305.97,-56.37 309.43,-56.85 306.41,-53.25 312.9,-57.34 312.9,-57.34\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-72.54\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"258.5\" y=\"-57.54\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M181.74,-54.78C177.35,-65.65 181.27,-76.74 193.5,-76.74 203.06,-76.74 207.54,-69.97 206.95,-61.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-54.78 209.95,-60.85 206.07,-58.18 206.89,-61.58 206.89,-61.58 206.89,-61.58 206.07,-58.18 203.83,-62.32 205.26,-54.78 205.26,-54.78\"/>\n",
"<text text-anchor=\"start\" x=\"167\" y=\"-80.54\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M443.36,-20C437.44,-17.48 430.55,-15 424,-13.74 311.84,7.86 280.4,-0.02 167,-13.74 136.53,-17.42 102.31,-26.65 80.26,-33.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.54,-35.35 79.31,-30.29 76.89,-34.32 80.23,-33.3 80.23,-33.3 80.23,-33.3 76.89,-34.32 81.16,-36.31 73.54,-35.35 73.54,-35.35\"/>\n",
"<text text-anchor=\"start\" x=\"240\" y=\"-9.54\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M442.31,-23.2C423.29,-18.91 391.66,-14.52 367,-24.74 359.22,-27.96 352.27,-33.84 346.65,-39.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"341.88,-45.39 344.08,-38.04 344.17,-42.75 346.46,-40.1 346.46,-40.1 346.46,-40.1 344.17,-42.75 348.84,-42.16 341.88,-45.39 341.88,-45.39\"/>\n",
"<text text-anchor=\"start\" x=\"367\" y=\"-28.54\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480e2300> >"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.acd_transform(g)"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "d484ba8f",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"494pt\" height=\"181pt\"\n",
" viewBox=\"0.00 0.00 494.00 181.44\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 177.44)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-177.44 490,-177.44 490,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"221.5\" y=\"-143.24\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-35.64\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-31.94\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-35.64C2.79,-35.64 17.15,-35.64 30.63,-35.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-35.64 30.94,-38.79 34.44,-35.64 30.94,-35.64 30.94,-35.64 30.94,-35.64 34.44,-35.64 30.94,-32.49 37.94,-35.64 37.94,-35.64\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-115.64\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"335\" y=\"-111.94\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.14,-45.68C91.34,-59.46 130.12,-83.86 167,-95.64 215.93,-111.28 276.46,-114.87 309.55,-115.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"316.96,-115.71 309.91,-118.74 313.46,-115.65 309.96,-115.59 309.96,-115.59 309.96,-115.59 313.46,-115.65 310.01,-112.44 316.96,-115.71 316.96,-115.71\"/>\n",
"<text text-anchor=\"start\" x=\"167\" y=\"-111.44\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-35.64\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"193.5\" y=\"-31.94\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.16,-35.64C97.99,-35.64 141.2,-35.64 168.29,-35.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"175.48,-35.64 168.48,-38.79 171.98,-35.64 168.48,-35.64 168.48,-35.64 168.48,-35.64 171.98,-35.64 168.48,-32.49 175.48,-35.64 175.48,-35.64\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-39.44\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"468\" cy=\"-58.64\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"468\" y=\"-54.94\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M353.32,-114.56C373.38,-112.68 406.86,-107.55 432,-93.64 439.25,-89.63 446.01,-83.67 451.62,-77.8\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"456.42,-72.5 454.06,-79.8 454.07,-75.09 451.72,-77.69 451.72,-77.69 451.72,-77.69 454.07,-75.09 449.39,-75.57 456.42,-72.5 456.42,-72.5\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-114.44\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M181.74,-49.69C177.35,-60.56 181.27,-71.64 193.5,-71.64 203.06,-71.64 207.54,-64.88 206.95,-56.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-49.69 209.95,-55.76 206.07,-53.09 206.89,-56.49 206.89,-56.49 206.89,-56.49 206.07,-53.09 203.83,-57.23 205.26,-49.69 205.26,-49.69\"/>\n",
"<text text-anchor=\"start\" x=\"167\" y=\"-75.44\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-39.64\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"black\" cx=\"335\" cy=\"-39.64\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"335\" y=\"-35.94\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M211.61,-36.14C234.98,-36.81 277.22,-38.02 305.44,-38.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"312.64,-39.03 305.55,-41.98 309.14,-38.93 305.64,-38.83 305.64,-38.83 305.64,-38.83 309.14,-38.93 305.74,-35.68 312.64,-39.03 312.64,-39.03\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-41.44\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M454.14,-46.92C447.83,-41.66 439.91,-35.73 432,-31.64 401.03,-15.63 391.48,-13.81 357,-8.64 273.49,3.87 250.83,1.49 167,-8.64 136.53,-12.33 102.31,-21.56 80.26,-28.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.54,-30.26 79.31,-25.2 76.89,-29.23 80.23,-28.21 80.23,-28.21 80.23,-28.21 76.89,-29.23 81.16,-31.22 73.54,-30.26 73.54,-30.26\"/>\n",
"<text text-anchor=\"start\" x=\"240\" y=\"-5.44\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M449.68,-58.48C430.37,-58.99 398.73,-61.95 375,-74.64 365.61,-79.67 357.18,-87.79 350.58,-95.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"345.91,-101.22 347.89,-93.8 348.12,-98.5 350.33,-95.79 350.33,-95.79 350.33,-95.79 348.12,-98.5 352.77,-97.78 345.91,-101.22 345.91,-101.22\"/>\n",
"<text text-anchor=\"start\" x=\"375\" y=\"-78.44\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M356.95,-37.12C376.63,-35.39 406.76,-34.4 432,-40.64 436.72,-41.81 441.53,-43.73 446,-45.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"452.27,-49.14 444.61,-48.7 449.17,-47.52 446.06,-45.91 446.06,-45.91 446.06,-45.91 449.17,-47.52 447.52,-43.11 452.27,-49.14 452.27,-49.14\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-44.44\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480f0420> >"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.acd_transform_sbacc(g)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "3332e850",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"729pt\" height=\"342pt\"\n",
" viewBox=\"0.00 0.00 729.00 342.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.8064516129032259 0.8064516129032259) rotate(0) translate(4 420)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-420 899.79,-420 899.79,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"400.4\" y=\"-401.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"421.4\" y=\"-401.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"437.4\" y=\"-401.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"475.4\" y=\"-401.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"491.4\" y=\"-401.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"401.4\" y=\"-387.8\" font-family=\"Lato\" font-size=\"14.00\">[gen. Streett 1]</text>\n",
"<!-- I -->\n",
"<!-- 8 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>8</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-259\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-255.3\" font-family=\"Lato\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- I&#45;&gt;8 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-259C2.79,-259 17.15,-259 30.63,-259\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-259 30.94,-262.15 34.44,-259 30.94,-259 30.94,-259 30.94,-259 34.44,-259 30.94,-255.85 37.94,-259 37.94,-259\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>6</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"741.9\" cy=\"-334\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"741.9\" y=\"-330.3\" font-family=\"Lato\" font-size=\"14.00\">6</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;6 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>8&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M67.91,-272.91C74.33,-280.44 82.95,-289.5 92,-296 129.95,-323.24 140.74,-340 187.45,-340 187.45,-340 187.45,-340 613.9,-340 649.66,-340 691.02,-337.6 716.57,-335.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"723.65,-335.33 716.89,-338.97 720.16,-335.58 716.67,-335.83 716.67,-335.83 716.67,-335.83 720.16,-335.58 716.45,-332.68 723.65,-335.33 723.65,-335.33\"/>\n",
"<text text-anchor=\"start\" x=\"375.9\" y=\"-358.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"394.4\" y=\"-343.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g id=\"node13\" class=\"node\">\n",
"<title>11</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"188.45\" cy=\"-200\" rx=\"21.4\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"188.45\" y=\"-196.3\" font-family=\"Lato\" font-size=\"14.00\">11</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;11 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>8&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.69,-249.46C77.84,-245.66 85.14,-241.4 92,-238 114.92,-226.65 142.11,-216.1 161.59,-209\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.4,-206.55 162.88,-211.89 165.11,-207.74 161.82,-208.92 161.82,-208.92 161.82,-208.92 165.11,-207.74 160.75,-205.96 168.4,-206.55 168.4,-206.55\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-256.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"112.5\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"329.4\" cy=\"-200\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"329.4\" y=\"-196.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"475.4\" cy=\"-171\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"475.4\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M341.72,-186.43C353.86,-171.97 371.71,-151 373.9,-150 396.95,-139.5 406.2,-144.35 430.9,-150 438.5,-151.74 446.32,-154.99 453.19,-158.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"459.71,-161.86 452.05,-161.37 456.62,-160.22 453.52,-158.59 453.52,-158.59 453.52,-158.59 456.62,-160.22 454.99,-155.8 459.71,-161.86 459.71,-161.86\"/>\n",
"<text text-anchor=\"start\" x=\"375.9\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"394.4\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M457.46,-174.53C449.42,-176.21 439.66,-178.22 430.9,-180 404.65,-185.33 374.53,-191.3 354.16,-195.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"347.12,-196.71 353.38,-192.27 350.55,-196.03 353.99,-195.36 353.99,-195.36 353.99,-195.36 350.55,-196.03 354.6,-198.45 347.12,-196.71 347.12,-196.71\"/>\n",
"<text text-anchor=\"start\" x=\"373.9\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"394.4\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"612.9\" cy=\"-184\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"612.9\" y=\"-180.3\" font-family=\"Lato\" font-size=\"14.00\">4</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>2&#45;&gt;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M493.56,-172.65C517.38,-174.93 560.6,-179.08 587.69,-181.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"594.87,-182.37 587.61,-184.83 591.39,-182.03 587.91,-181.7 587.91,-181.7 587.91,-181.7 591.39,-182.03 588.21,-178.56 594.87,-182.37 594.87,-182.37\"/>\n",
"<text text-anchor=\"start\" x=\"521.9\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"540.4\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"329.4\" cy=\"-94\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"329.4\" y=\"-90.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M317.64,-108.04C313.24,-118.91 317.16,-130 329.4,-130 338.95,-130 343.44,-123.23 342.84,-115.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"341.15,-108.04 345.85,-114.11 341.97,-111.45 342.79,-114.85 342.79,-114.85 342.79,-114.85 341.97,-111.45 339.72,-115.58 341.15,-108.04 341.15,-108.04\"/>\n",
"<text text-anchor=\"start\" x=\"302.9\" y=\"-148.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"321.4\" y=\"-133.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"475.4\" cy=\"-86\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"475.4\" y=\"-82.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M347.48,-93.05C372.92,-91.64 420.88,-88.97 450.01,-87.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"457.33,-86.95 450.52,-90.48 453.84,-87.14 450.35,-87.34 450.35,-87.34 450.35,-87.34 453.84,-87.14 450.17,-84.19 457.33,-86.95 457.33,-86.95\"/>\n",
"<text text-anchor=\"start\" x=\"373.9\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"394.4\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>5</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"612.9\" cy=\"-33\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"612.9\" y=\"-29.3\" font-family=\"Lato\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;5 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;5</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M493.64,-84.88C514.39,-82.94 549.83,-77.76 576.9,-64 583.27,-60.76 589.41,-56.08 594.71,-51.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"600.11,-46.21 597.19,-53.32 597.57,-48.62 595.03,-51.03 595.03,-51.03 595.03,-51.03 597.57,-48.62 592.86,-48.74 600.11,-46.21 600.11,-46.21\"/>\n",
"<text text-anchor=\"start\" x=\"521.9\" y=\"-100.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"540.4\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>4&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M625.17,-197.31C647.8,-224.04 698.83,-284.31 724.9,-315.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"729.47,-320.5 722.54,-317.2 727.21,-317.83 724.95,-315.16 724.95,-315.16 724.95,-315.16 727.21,-317.83 727.35,-313.12 729.47,-320.5 729.47,-320.5\"/>\n",
"<text text-anchor=\"start\" x=\"650.9\" y=\"-307.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"669.4\" y=\"-292.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node10\" class=\"node\">\n",
"<title>7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"741.9\" cy=\"-181\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"741.9\" y=\"-177.3\" font-family=\"Lato\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;7 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>4&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M631.02,-183.6C653.09,-183.07 691.57,-182.17 716.63,-181.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"723.63,-181.41 716.71,-184.72 720.14,-181.49 716.64,-181.57 716.64,-181.57 716.64,-181.57 720.14,-181.49 716.56,-178.42 723.63,-181.41 723.63,-181.41\"/>\n",
"<text text-anchor=\"start\" x=\"648.9\" y=\"-201.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"669.4\" y=\"-186.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;8 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>5&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M596.09,-25.92C590.16,-23.47 583.3,-20.87 576.9,-19 533.26,-6.28 521.85,0 476.4,0 187.45,0 187.45,0 187.45,0 83.46,0 62.36,-168.59 58.08,-233.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"57.66,-240.79 54.93,-233.61 57.87,-237.29 58.08,-233.8 58.08,-233.8 58.08,-233.8 57.87,-237.29 61.22,-233.99 57.66,-240.79 57.66,-240.79\"/>\n",
"<text text-anchor=\"start\" x=\"302.9\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"321.4\" y=\"-3.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;3 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>5&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M595.3,-28C576.1,-23.18 544.01,-18.2 519.9,-30 505.58,-37.01 494.62,-51.24 487.29,-63.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"483.78,-69.86 484.46,-62.21 485.49,-66.8 487.21,-63.75 487.21,-63.75 487.21,-63.75 485.49,-66.8 489.95,-65.29 483.78,-69.86 483.78,-69.86\"/>\n",
"<text text-anchor=\"start\" x=\"519.9\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"540.4\" y=\"-33.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g id=\"node11\" class=\"node\">\n",
"<title>9</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"874.34\" cy=\"-315\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"874.34\" y=\"-311.3\" font-family=\"Lato\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;9 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>6&#45;&gt;9</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M758.99,-340.47C777.73,-347.02 809.38,-355.01 834.9,-346 842.7,-343.25 850.08,-338.17 856.25,-332.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"861.55,-328.08 858.49,-335.12 858.96,-330.44 856.37,-332.79 856.37,-332.79 856.37,-332.79 858.96,-330.44 854.25,-330.46 861.55,-328.08 861.55,-328.08\"/>\n",
"<text text-anchor=\"start\" x=\"779.9\" y=\"-368.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"798.4\" y=\"-353.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;7 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>7&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M731.19,-195.79C727.7,-206.42 731.27,-217 741.9,-217 750.03,-217 754.03,-210.8 753.89,-203.12\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"752.6,-195.79 756.92,-202.14 753.21,-199.24 753.82,-202.69 753.82,-202.69 753.82,-202.69 753.21,-199.24 750.71,-203.23 752.6,-195.79 752.6,-195.79\"/>\n",
"<text text-anchor=\"start\" x=\"715.4\" y=\"-235.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"733.9\" y=\"-220.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g id=\"node12\" class=\"node\">\n",
"<title>10</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"874.34\" cy=\"-153\" rx=\"21.4\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"874.34\" y=\"-149.3\" font-family=\"Lato\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;10 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>7&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M759.68,-177.4C781.57,-172.7 820.13,-164.42 846.2,-158.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"853.2,-157.32 847.02,-161.87 849.78,-158.06 846.36,-158.79 846.36,-158.79 846.36,-158.79 849.78,-158.06 845.7,-155.71 853.2,-157.32 853.2,-157.32\"/>\n",
"<text text-anchor=\"start\" x=\"777.9\" y=\"-190.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"798.4\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;8 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>9&#45;&gt;8</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M857.6,-308.32C833.41,-298.68 785.41,-282 742.9,-282 187.45,-282 187.45,-282 187.45,-282 149.61,-282 106.53,-272.5 80.57,-265.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"73.72,-263.88 81.3,-262.64 77.1,-264.78 80.48,-265.69 80.48,-265.69 80.48,-265.69 77.1,-264.78 79.67,-268.73 73.72,-263.88 73.72,-263.88\"/>\n",
"<text text-anchor=\"start\" x=\"448.9\" y=\"-300.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"467.4\" y=\"-285.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 9&#45;&gt;6 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>9&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M856.4,-311.38C837.01,-307.95 804.5,-304.33 777.9,-312 772.47,-313.57 767.06,-316.25 762.19,-319.22\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"756.33,-323.06 760.45,-316.59 759.25,-321.14 762.18,-319.22 762.18,-319.22 762.18,-319.22 759.25,-321.14 763.91,-321.85 756.33,-323.06 756.33,-323.06\"/>\n",
"<text text-anchor=\"start\" x=\"777.9\" y=\"-330.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"798.4\" y=\"-315.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;2 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>10&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M852.73,-152.02C821.13,-150.58 758.83,-147.95 705.9,-147 680.57,-146.55 674.17,-145.25 648.9,-147 595.61,-150.69 533.73,-160.71 500.49,-166.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"493.45,-167.83 499.79,-163.5 496.9,-167.21 500.34,-166.6 500.34,-166.6 500.34,-166.6 496.9,-167.21 500.9,-169.7 493.45,-167.83 493.45,-167.83\"/>\n",
"<text text-anchor=\"start\" x=\"650.9\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"669.4\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;0 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>11&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M209.95,-200C235.07,-200 277.56,-200 304.24,-200\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"311.31,-200 304.31,-203.15 307.81,-200 304.31,-200 304.31,-200 304.31,-200 307.81,-200 304.31,-196.85 311.31,-200 311.31,-200\"/>\n",
"<text text-anchor=\"start\" x=\"227.9\" y=\"-218.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"248.4\" y=\"-203.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;1 -->\n",
"<g id=\"edge21\" class=\"edge\">\n",
"<title>11&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M203.39,-187.05C210.56,-180.55 219.53,-172.66 227.9,-166 254.82,-144.54 287.46,-121.71 308.08,-107.64\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"314.08,-103.57 310.06,-110.11 311.18,-105.54 308.29,-107.51 308.29,-107.51 308.29,-107.51 311.18,-105.54 306.52,-104.9 314.08,-103.57 314.08,-103.57\"/>\n",
"<text text-anchor=\"start\" x=\"229.9\" y=\"-184.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"248.4\" y=\"-169.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480f0840> >"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.zielonka_tree_transform(g)"
]
},
{
"cell_type": "markdown",
"id": "7d638d20",
"metadata": {},
"source": [
"An issue in Spot is to always ensure that property bits of automata (cleaming that an automaton is weak, inherently weak, deterministic, etc.) are properly preserved or reset.\n",
"\n",
"Here if the input is inherently weak, the output should be weak. "
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "german-vienna",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"170pt\" height=\"137pt\"\n",
" viewBox=\"0.00 0.00 170.00 136.63\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 132.63)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-132.63 166,-132.63 166,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"34.5\" y=\"-114.43\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"55.5\" y=\"-114.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"71.5\" y=\"-114.43\" font-family=\"Lato\" font-size=\"14.00\">) | Inf(</text>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-114.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-114.43\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"47\" y=\"-100.43\" font-family=\"Lato\" font-size=\"14.00\">[Fin&#45;less 2]</text>\n",
"<!-- I -->\n",
"<!-- 1 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-26.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-22.93\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- I&#45;&gt;1 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-26.63C2.79,-26.63 17.15,-26.63 30.63,-26.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-26.63 30.94,-29.78 34.44,-26.63 30.94,-26.63 30.94,-26.63 30.94,-26.63 34.44,-26.63 30.94,-23.48 37.94,-26.63 37.94,-26.63\"/>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-43.66C48.32,-53.49 50.45,-62.63 56,-62.63 60.17,-62.63 62.4,-57.49 62.71,-50.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-43.66 65.85,-50.51 62.54,-47.16 62.71,-50.66 62.71,-50.66 62.71,-50.66 62.54,-47.16 59.56,-50.8 62.38,-43.66 62.38,-43.66\"/>\n",
"<text text-anchor=\"start\" x=\"50.5\" y=\"-81.43\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-66.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"144\" cy=\"-26.63\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"144\" y=\"-22.93\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.04,-29.56C79.73,-30.4 86.12,-31.21 92,-31.63 99.09,-32.13 100.91,-32.13 108,-31.63 111.49,-31.38 115.16,-30.99 118.76,-30.54\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"125.96,-29.56 119.46,-33.63 122.49,-30.03 119.03,-30.51 119.03,-30.51 119.03,-30.51 122.49,-30.03 118.6,-27.39 125.96,-29.56 125.96,-29.56\"/>\n",
"<text text-anchor=\"start\" x=\"96.5\" y=\"-50.43\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-35.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M130.45,-14.75C124.21,-9.65 116.25,-4.27 108,-1.63 101.23,0.54 98.77,0.54 92,-1.63 86.07,-3.53 80.29,-6.84 75.19,-10.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"69.55,-14.75 73.21,-8 72.34,-12.62 75.12,-10.5 75.12,-10.5 75.12,-10.5 72.34,-12.62 77.03,-13.01 69.55,-14.75 69.55,-14.75\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-20.43\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-5.43\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480f30c0> >"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"w = spot.automaton(\"\"\"HOA: v1\n",
"States: 2\n",
"Start: 1\n",
"AP: 1 \"a\"\n",
"Acceptance: 2 Inf(0) | Inf(1)\n",
"properties: trans-labels explicit-labels trans-acc colored complete\n",
"properties: deterministic inherently-weak\n",
"--BODY--\n",
"State: 0\n",
"[t] 1 {0}\n",
"State: 1\n",
"[0] 0 {1}\n",
"[!0] 1 {0}\n",
"--END--\"\"\"); w"
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "chemical-primary",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(spot.trival_maybe(), spot.trival(True))"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"w.prop_weak(), w.prop_inherently_weak()"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "hispanic-floor",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"163pt\" height=\"117pt\"\n",
" viewBox=\"0.00 0.00 163.00 117.35\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 113.35)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-113.35 159,-113.35 159,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"74.5\" y=\"-94.15\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-79.15\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-20.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-16.65\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-20.35C2.79,-20.35 17.15,-20.35 30.63,-20.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-20.35 30.94,-23.5 34.44,-20.35 30.94,-20.35 30.94,-20.35 30.94,-20.35 34.44,-20.35 30.94,-17.2 37.94,-20.35 37.94,-20.35\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-37.39C48.32,-47.21 50.45,-56.35 56,-56.35 60.17,-56.35 62.4,-51.21 62.71,-44.49\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-37.39 65.85,-44.23 62.54,-40.89 62.71,-44.38 62.71,-44.38 62.71,-44.38 62.54,-40.89 59.56,-44.53 62.38,-37.39 62.38,-37.39\"/>\n",
"<text text-anchor=\"start\" x=\"50.5\" y=\"-60.15\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-20.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-16.65\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-20.35C85.12,-20.35 99.52,-20.35 111.67,-20.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-20.35 111.89,-23.5 115.39,-20.35 111.89,-20.35 111.89,-20.35 111.89,-20.35 115.39,-20.35 111.89,-17.2 118.89,-20.35 118.89,-20.35\"/>\n",
"<text text-anchor=\"start\" x=\"93\" y=\"-24.15\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M122.52,-9.39C114.01,-3.78 102.65,1.35 92,-1.35 87.14,-2.59 82.22,-4.65 77.67,-6.97\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"71.31,-10.49 75.91,-4.34 74.37,-8.79 77.44,-7.1 77.44,-7.1 77.44,-7.1 74.37,-8.79 78.96,-9.85 71.31,-10.49 71.31,-10.49\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-5.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f0c480f3210> >"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"w2 = spot.acd_transform(w); w2"
]
},
{
"cell_type": "code",
"execution_count": 65,
"id": "central-london",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(spot.trival(True), spot.trival(True))"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"w2.prop_weak(), w2.prop_inherently_weak()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d25733d5",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}