spot/tests/python/zlktree.ipynb
Alexandre Duret-Lutz 70ede35702 acd: add support for state-based output
* spot/twaalgos/zlktree.hh, spot/twaalgos/zlktree.cc (acd::node_level,
acd::state_step, acd_transform_sbacc): New public functions.
* tests/python/zlktree.ipynb, tests/python/zlktree.py: More tests.
* NEWS: Typo.
2021-09-24 13:38:51 +02:00

9774 lines
698 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 0x7f296cd16300> >"
]
},
"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 0x7f296c3d8210> >"
]
},
"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 0x7f296c3d8fc0> >"
]
},
"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 0x7f296c3d8c90> >"
]
},
"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 0x7f296c3e1210> >"
]
},
"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 0x7f296c3e64e0> >"
]
},
"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 0x7f296c3e6810> >"
]
},
"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 0x7f296c3e6390> >"
]
},
"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 0x7f296c3e62d0> >"
]
},
"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 0x7f296c3e6120> >"
]
},
"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 0x7f296c3e61b0> >"
]
},
"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 0x7f296c3e1f90> >"
]
},
"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 0x7f296c3d81e0> >"
]
},
"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 0x7f296cd16c30> >"
]
},
"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.)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "e12bb020",
"metadata": {},
"outputs": [],
"source": [
"theacd = spot.acd(a3)"
]
},
{
"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: 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=\"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 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=\"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 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=\"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 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=\"acd1_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=\"acd1_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=\"acd1_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=\"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 #E23\").addClass(\"acdN5\");$(\"#acdaut1 #E24\").addClass(\"acdN5\");$(\"#acdaut1 #E34\").addClass(\"acdN5\");$(\"#acdaut1 #E36\").addClass(\"acdN5\");$(\"#acdaut1 #E14\").addClass(\"acdN6\");$(\"#acdaut1 #E15\").addClass(\"acdN6\");$(\"#acdaut1 #E22\").addClass(\"acdN6\");$(\"#acdaut1 #E23\").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 #E23\").addClass(\"acdN11\");$(\"#acdaut1 #E14\").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 0x7f296c3f34e0> >"
]
},
"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=\"274pt\"\n",
" viewBox=\"0.00 0.00 729.00 273.90\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.2724795640326976 0.2724795640326976) rotate(0) translate(4 1002.37)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-1002.37 2674.5,-1002.37 2674.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"1284.75\" y=\"-984.17\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"1307.75\" y=\"-984.17\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"1323.75\" y=\"-984.17\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"1365.75\" y=\"-984.17\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"1381.75\" y=\"-984.17\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"1307.75\" y=\"-970.17\" 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,-767.37C67,-767.37 50,-767.37 50,-767.37 44,-767.37 38,-761.37 38,-755.37 38,-755.37 38,-741.37 38,-741.37 38,-735.37 44,-729.37 50,-729.37 50,-729.37 67,-729.37 67,-729.37 73,-729.37 79,-735.37 79,-741.37 79,-741.37 79,-755.37 79,-755.37 79,-761.37 73,-767.37 67,-767.37\"/>\n",
"<text text-anchor=\"start\" x=\"46\" y=\"-752.17\" font-family=\"Lato\" font-size=\"14.00\">0#3</text>\n",
"<text text-anchor=\"start\" x=\"50.5\" y=\"-737.17\" 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,-748.37C2.83,-748.37 17.03,-748.37 30.76,-748.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.83,-748.37 30.83,-751.52 34.33,-748.37 30.83,-748.37 30.83,-748.37 30.83,-748.37 34.33,-748.37 30.83,-745.22 37.83,-748.37 37.83,-748.37\"/>\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,-767.4C50.63,-776.9 52.93,-785.37 58.5,-785.37 62.59,-785.37 64.92,-780.8 65.49,-774.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"65.41,-767.4 68.63,-774.37 65.45,-770.9 65.48,-774.4 65.48,-774.4 65.48,-774.4 65.45,-770.9 62.33,-774.44 65.41,-767.4 65.41,-767.4\"/>\n",
"<text text-anchor=\"start\" x=\"30\" y=\"-789.17\" 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,-766.37C206,-766.37 180,-766.37 180,-766.37 174,-766.37 168,-760.37 168,-754.37 168,-754.37 168,-742.37 168,-742.37 168,-736.37 174,-730.37 180,-730.37 180,-730.37 206,-730.37 206,-730.37 212,-730.37 218,-736.37 218,-742.37 218,-742.37 218,-754.37 218,-754.37 218,-760.37 212,-766.37 206,-766.37\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-744.67\" 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,-748.37C100.54,-748.37 135.37,-748.37 160.68,-748.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"167.87,-748.37 160.87,-751.52 164.37,-748.37 160.87,-748.37 160.87,-748.37 160.87,-748.37 164.37,-748.37 160.87,-745.22 167.87,-748.37 167.87,-748.37\"/>\n",
"<text text-anchor=\"start\" x=\"97\" y=\"-752.17\" 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,-625.37C766,-625.37 749,-625.37 749,-625.37 743,-625.37 737,-619.37 737,-613.37 737,-613.37 737,-599.37 737,-599.37 737,-593.37 743,-587.37 749,-587.37 749,-587.37 766,-587.37 766,-587.37 772,-587.37 778,-593.37 778,-599.37 778,-599.37 778,-613.37 778,-613.37 778,-619.37 772,-625.37 766,-625.37\"/>\n",
"<text text-anchor=\"start\" x=\"745\" y=\"-610.17\" font-family=\"Lato\" font-size=\"14.00\">2#4</text>\n",
"<text text-anchor=\"start\" x=\"749.5\" y=\"-595.17\" 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=\"M63.17,-729.36C73.73,-681.04 108.86,-557.37 192,-557.37 192,-557.37 192,-557.37 618.5,-557.37 659.45,-557.37 703.51,-576.77 730.55,-591.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"736.71,-594.51 729.06,-593.93 733.64,-592.83 730.56,-591.16 730.56,-591.16 730.56,-591.16 733.64,-592.83 732.06,-588.39 736.71,-594.51 736.71,-594.51\"/>\n",
"<text text-anchor=\"start\" x=\"372\" y=\"-561.17\" 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,-713.37C904,-713.37 887,-713.37 887,-713.37 881,-713.37 875,-707.37 875,-701.37 875,-701.37 875,-687.37 875,-687.37 875,-681.37 881,-675.37 887,-675.37 887,-675.37 904,-675.37 904,-675.37 910,-675.37 916,-681.37 916,-687.37 916,-687.37 916,-701.37 916,-701.37 916,-707.37 910,-713.37 904,-713.37\"/>\n",
"<text text-anchor=\"start\" x=\"883\" y=\"-698.17\" font-family=\"Lato\" font-size=\"14.00\">3#4</text>\n",
"<text text-anchor=\"start\" x=\"887.5\" y=\"-683.17\" 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=\"M62.76,-767.45C72.48,-817.26 106.08,-947.37 192,-947.37 192,-947.37 192,-947.37 545.5,-947.37 690.35,-947.37 762.02,-952.08 853,-839.37 881.01,-804.66 890.12,-751.94 893.08,-720.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"893.68,-713.43 896.23,-720.67 893.39,-716.92 893.09,-720.4 893.09,-720.4 893.09,-720.4 893.39,-716.92 889.95,-720.14 893.68,-713.43 893.68,-713.43\"/>\n",
"<text text-anchor=\"start\" x=\"447\" y=\"-951.17\" 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,-766.52C178.81,-775.91 182.91,-784.37 193,-784.37 200.41,-784.37 204.59,-779.8 205.54,-773.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"205.3,-766.52 208.68,-773.41 205.42,-770.02 205.54,-773.52 205.54,-773.52 205.54,-773.52 205.42,-770.02 202.39,-773.62 205.3,-766.52 205.3,-766.52\"/>\n",
"<text text-anchor=\"start\" x=\"166.5\" y=\"-788.17\" 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=\"M200.93,-730.3C217.16,-691.43 261.53,-603.37 330.5,-603.37 330.5,-603.37 330.5,-603.37 618.5,-603.37 657.22,-603.37 702.03,-604.56 729.82,-605.44\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"736.85,-605.67 729.75,-608.59 733.35,-605.56 729.85,-605.44 729.85,-605.44 729.85,-605.44 733.35,-605.56 729.96,-602.3 736.85,-605.67 736.85,-605.67\"/>\n",
"<text text-anchor=\"start\" x=\"445\" y=\"-607.17\" 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,-767.37C340,-767.37 323,-767.37 323,-767.37 317,-767.37 311,-761.37 311,-755.37 311,-755.37 311,-741.37 311,-741.37 311,-735.37 317,-729.37 323,-729.37 323,-729.37 340,-729.37 340,-729.37 346,-729.37 352,-735.37 352,-741.37 352,-741.37 352,-755.37 352,-755.37 352,-761.37 346,-767.37 340,-767.37\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-752.17\" font-family=\"Lato\" font-size=\"14.00\">4#2</text>\n",
"<text text-anchor=\"start\" x=\"323.5\" y=\"-737.17\" 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=\"M218.33,-735.98C223.99,-733.66 230.09,-731.58 236,-730.37 260.82,-725.27 268.3,-724.75 293,-730.37 296.78,-731.23 300.63,-732.52 304.35,-734.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"310.86,-736.92 303.19,-736.96 307.67,-735.5 304.47,-734.08 304.47,-734.08 304.47,-734.08 307.67,-735.5 305.75,-731.2 310.86,-736.92 310.86,-736.92\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-734.17\" 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=\"M1640,-787.37C1640,-787.37 1623,-787.37 1623,-787.37 1617,-787.37 1611,-781.37 1611,-775.37 1611,-775.37 1611,-761.37 1611,-761.37 1611,-755.37 1617,-749.37 1623,-749.37 1623,-749.37 1640,-749.37 1640,-749.37 1646,-749.37 1652,-755.37 1652,-761.37 1652,-761.37 1652,-775.37 1652,-775.37 1652,-781.37 1646,-787.37 1640,-787.37\"/>\n",
"<text text-anchor=\"start\" x=\"1619\" y=\"-772.17\" font-family=\"Lato\" font-size=\"14.00\">5#4</text>\n",
"<text text-anchor=\"start\" x=\"1623.5\" y=\"-757.17\" 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.18,-762.04C251.83,-780.89 314.86,-815.56 370,-842.37 581.56,-945.22 659.26,-913.37 894.5,-913.37 894.5,-913.37 894.5,-913.37 1484.5,-913.37 1551.47,-913.37 1598.65,-835.61 1619.11,-793.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1622.17,-787.62 1621.97,-795.3 1620.65,-790.78 1619.13,-793.93 1619.13,-793.93 1619.13,-793.93 1620.65,-790.78 1616.29,-792.57 1622.17,-787.62 1622.17,-787.62\"/>\n",
"<text text-anchor=\"start\" x=\"871\" y=\"-917.17\" 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,-625.4C743.41,-634.9 747.54,-643.37 757.5,-643.37 764.82,-643.37 768.98,-638.8 770,-632.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"769.87,-625.4 773.15,-632.35 769.94,-628.9 770,-632.4 770,-632.4 770,-632.4 769.94,-628.9 766.85,-632.46 769.87,-625.4 769.87,-625.4\"/>\n",
"<text text-anchor=\"start\" x=\"731\" y=\"-647.17\" 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.17,-612.71C798.17,-619.73 829.49,-632.35 853,-649.37 860.96,-655.13 868.58,-662.59 875.07,-669.78\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"879.8,-675.2 872.82,-672 877.5,-672.56 875.19,-669.93 875.19,-669.93 875.19,-669.93 877.5,-672.56 877.57,-667.85 879.8,-675.2 879.8,-675.2\"/>\n",
"<text text-anchor=\"start\" x=\"802\" y=\"-653.17\" 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=\"M1344,-437.37C1344,-437.37 1327,-437.37 1327,-437.37 1321,-437.37 1315,-431.37 1315,-425.37 1315,-425.37 1315,-411.37 1315,-411.37 1315,-405.37 1321,-399.37 1327,-399.37 1327,-399.37 1344,-399.37 1344,-399.37 1350,-399.37 1356,-405.37 1356,-411.37 1356,-411.37 1356,-425.37 1356,-425.37 1356,-431.37 1350,-437.37 1344,-437.37\"/>\n",
"<text text-anchor=\"start\" x=\"1323\" y=\"-422.17\" font-family=\"Lato\" font-size=\"14.00\">2#8</text>\n",
"<text text-anchor=\"start\" x=\"1327.5\" y=\"-407.17\" 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=\"M759.53,-587.06C762.72,-532.54 773.89,-378.63 800,-336.37 827.05,-292.56 843.01,-269.37 894.5,-269.37 894.5,-269.37 894.5,-269.37 1190.5,-269.37 1258.28,-269.37 1304.29,-350.08 1323.86,-392.7\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1326.78,-399.19 1321.04,-394.1 1325.34,-396 1323.91,-392.81 1323.91,-392.81 1323.91,-392.81 1325.34,-396 1326.79,-391.52 1326.78,-399.19 1326.78,-399.19\"/>\n",
"<text text-anchor=\"start\" x=\"1013\" y=\"-273.17\" 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=\"M1930,-283.37C1930,-283.37 1913,-283.37 1913,-283.37 1907,-283.37 1901,-277.37 1901,-271.37 1901,-271.37 1901,-257.37 1901,-257.37 1901,-251.37 1907,-245.37 1913,-245.37 1913,-245.37 1930,-245.37 1930,-245.37 1936,-245.37 1942,-251.37 1942,-257.37 1942,-257.37 1942,-271.37 1942,-271.37 1942,-277.37 1936,-283.37 1930,-283.37\"/>\n",
"<text text-anchor=\"start\" x=\"1909\" y=\"-268.17\" font-family=\"Lato\" font-size=\"14.00\">3#6</text>\n",
"<text text-anchor=\"start\" x=\"1913.5\" y=\"-253.17\" 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=\"M759.04,-587.36C761.3,-515.8 771.17,-262.84 800,-188.37 825.4,-122.76 824.14,-61.37 894.5,-61.37 894.5,-61.37 894.5,-61.37 1263.5,-61.37 1394.19,-61.37 1426.81,-66.37 1557.5,-66.37 1557.5,-66.37 1557.5,-66.37 1778.5,-66.37 1826.4,-66.37 1844.07,-77.79 1875,-114.37 1905.17,-150.06 1915.34,-205.36 1918.76,-237.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1919.46,-245.28 1915.67,-238.61 1919.13,-241.79 1918.8,-238.31 1918.8,-238.31 1918.8,-238.31 1919.13,-241.79 1921.94,-238.01 1919.46,-245.28 1919.46,-245.28\"/>\n",
"<text text-anchor=\"start\" x=\"1309\" y=\"-67.17\" 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=\"M874.76,-691.84C854.41,-688.42 822.56,-680.76 800,-664.37 788.34,-655.89 778.7,-643.13 771.66,-631.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"768.01,-625.57 774.29,-629.99 769.8,-628.58 771.58,-631.6 771.58,-631.6 771.58,-631.6 769.8,-628.58 768.87,-633.2 768.01,-625.57 768.01,-625.57\"/>\n",
"<text text-anchor=\"start\" x=\"800\" y=\"-690.17\" 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.1,-702.99C943.42,-714.2 994.74,-732.37 1040.5,-732.37 1040.5,-732.37 1040.5,-732.37 1484.5,-732.37 1527.28,-732.37 1575.11,-747.12 1604,-757.73\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1610.57,-760.2 1602.91,-760.69 1607.29,-758.97 1604.02,-757.74 1604.02,-757.74 1604.02,-757.74 1607.29,-758.97 1605.12,-754.79 1610.57,-760.2 1610.57,-760.2\"/>\n",
"<text text-anchor=\"start\" x=\"1238\" y=\"-736.17\" 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=\"M897.09,-675.28C899.02,-627.66 906.91,-500.19 938,-399.37 978.56,-267.81 972.32,-203 1088,-128.37 1153.41,-86.17 1183.65,-104.37 1261.5,-104.37 1261.5,-104.37 1261.5,-104.37 1778.5,-104.37 1849.33,-104.37 1893.43,-193.16 1911.32,-238.45\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1913.87,-245.07 1908.42,-239.67 1912.61,-241.8 1911.35,-238.54 1911.35,-238.54 1911.35,-238.54 1912.61,-241.8 1914.29,-237.4 1913.87,-245.07 1913.87,-245.07\"/>\n",
"<text text-anchor=\"start\" x=\"1382\" y=\"-108.17\" 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,-496.37C1050,-496.37 1033,-496.37 1033,-496.37 1027,-496.37 1021,-490.37 1021,-484.37 1021,-484.37 1021,-470.37 1021,-470.37 1021,-464.37 1027,-458.37 1033,-458.37 1033,-458.37 1050,-458.37 1050,-458.37 1056,-458.37 1062,-464.37 1062,-470.37 1062,-470.37 1062,-484.37 1062,-484.37 1062,-490.37 1056,-496.37 1050,-496.37\"/>\n",
"<text text-anchor=\"start\" x=\"1029\" y=\"-481.17\" font-family=\"Lato\" font-size=\"14.00\">6#7</text>\n",
"<text text-anchor=\"start\" x=\"1033.5\" y=\"-466.17\" 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=\"M916.18,-679.26C922.89,-674.47 930.58,-669.39 938,-665.37 962.02,-652.35 976.82,-662.76 995,-642.37 1013.33,-621.81 1028.97,-544.51 1036.21,-503.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1037.42,-496.43 1039.33,-503.87 1036.82,-499.88 1036.22,-503.33 1036.22,-503.33 1036.22,-503.33 1036.82,-499.88 1033.12,-502.79 1037.42,-496.43 1037.42,-496.43\"/>\n",
"<text text-anchor=\"start\" x=\"938\" y=\"-669.17\" 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.64,-748.37C288.22,-748.37 251.46,-748.37 225.2,-748.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"218.09,-748.37 225.09,-745.22 221.59,-748.37 225.09,-748.37 225.09,-748.37 225.09,-748.37 221.59,-748.37 225.09,-751.52 218.09,-748.37 218.09,-748.37\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-752.17\" 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=\"M352.15,-740.32C385.54,-726.78 455.63,-698.89 516,-678.37 592.81,-652.26 685.07,-626.05 729.7,-613.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"736.7,-611.76 730.8,-616.66 733.33,-612.69 729.96,-613.62 729.96,-613.62 729.96,-613.62 733.33,-612.69 729.12,-610.59 736.7,-611.76 736.7,-611.76\"/>\n",
"<text text-anchor=\"start\" x=\"518\" y=\"-682.17\" 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=\"M343.63,-767.62C364.18,-800.35 411.4,-863.37 470.5,-863.37 470.5,-863.37 470.5,-863.37 758.5,-863.37 831.04,-863.37 871.41,-767.7 886.96,-720.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"889.16,-713.43 890.03,-721.05 888.09,-716.76 887.03,-720.09 887.03,-720.09 887.03,-720.09 888.09,-716.76 884.03,-719.14 889.16,-713.43 889.16,-713.43\"/>\n",
"<text text-anchor=\"start\" x=\"593\" y=\"-867.17\" 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,-767.37C480,-767.37 463,-767.37 463,-767.37 457,-767.37 451,-761.37 451,-755.37 451,-755.37 451,-741.37 451,-741.37 451,-735.37 457,-729.37 463,-729.37 463,-729.37 480,-729.37 480,-729.37 486,-729.37 492,-735.37 492,-741.37 492,-741.37 492,-755.37 492,-755.37 492,-761.37 486,-767.37 480,-767.37\"/>\n",
"<text text-anchor=\"start\" x=\"459\" y=\"-752.17\" font-family=\"Lato\" font-size=\"14.00\">7#1</text>\n",
"<text text-anchor=\"start\" x=\"463.5\" y=\"-737.17\" 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.27,-748.37C376.25,-748.37 416.78,-748.37 443.59,-748.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"450.76,-748.37 443.76,-751.52 447.26,-748.37 443.76,-748.37 443.76,-748.37 443.76,-748.37 447.26,-748.37 443.76,-745.22 450.76,-748.37 450.76,-748.37\"/>\n",
"<text text-anchor=\"start\" x=\"370\" y=\"-752.17\" 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=\"M1610.86,-779.26C1583.44,-793.42 1531.73,-816.37 1484.5,-816.37 1261.5,-816.37 1261.5,-816.37 1261.5,-816.37 1050.54,-816.37 949.56,-854.15 800,-705.37 780.06,-685.53 769.2,-654.67 763.66,-632.68\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"761.97,-625.59 766.65,-631.67 762.78,-629 763.59,-632.4 763.59,-632.4 763.59,-632.4 762.78,-629 760.52,-633.13 761.97,-625.59 761.97,-625.59\"/>\n",
"<text text-anchor=\"start\" x=\"1163\" y=\"-822.17\" 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=\"M1610.66,-768.81C1582.58,-769.4 1529.62,-770.37 1484.5,-770.37 1040.5,-770.37 1040.5,-770.37 1040.5,-770.37 992.07,-770.37 979.28,-758.7 938,-733.37 931.29,-729.25 924.74,-723.92 918.9,-718.53\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"913.75,-713.6 920.98,-716.17 916.28,-716.02 918.8,-718.44 918.8,-718.44 918.8,-718.44 916.28,-716.02 916.62,-720.72 913.75,-713.6 913.75,-713.6\"/>\n",
"<text text-anchor=\"start\" x=\"1238\" y=\"-774.17\" 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=\"M1786,-707.37C1786,-707.37 1769,-707.37 1769,-707.37 1763,-707.37 1757,-701.37 1757,-695.37 1757,-695.37 1757,-681.37 1757,-681.37 1757,-675.37 1763,-669.37 1769,-669.37 1769,-669.37 1786,-669.37 1786,-669.37 1792,-669.37 1798,-675.37 1798,-681.37 1798,-681.37 1798,-695.37 1798,-695.37 1798,-701.37 1792,-707.37 1786,-707.37\"/>\n",
"<text text-anchor=\"start\" x=\"1765\" y=\"-692.17\" font-family=\"Lato\" font-size=\"14.00\">5#5</text>\n",
"<text text-anchor=\"start\" x=\"1769.5\" y=\"-677.17\" 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=\"M1652.15,-752.29C1659.38,-746.82 1667.81,-740.93 1676,-736.37 1699.86,-723.06 1708.43,-725.31 1733,-713.37 1738.87,-710.51 1745.03,-707.19 1750.8,-703.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1756.89,-700.41 1752.4,-706.63 1753.86,-702.15 1750.82,-703.9 1750.82,-703.9 1750.82,-703.9 1753.86,-702.15 1749.25,-701.17 1756.89,-700.41 1756.89,-700.41\"/>\n",
"<text text-anchor=\"start\" x=\"1678\" y=\"-740.17\" 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=\"M2506,-582.37C2506,-582.37 2489,-582.37 2489,-582.37 2483,-582.37 2477,-576.37 2477,-570.37 2477,-570.37 2477,-556.37 2477,-556.37 2477,-550.37 2483,-544.37 2489,-544.37 2489,-544.37 2506,-544.37 2506,-544.37 2512,-544.37 2518,-550.37 2518,-556.37 2518,-556.37 2518,-570.37 2518,-570.37 2518,-576.37 2512,-582.37 2506,-582.37\"/>\n",
"<text text-anchor=\"start\" x=\"2485\" y=\"-567.17\" font-family=\"Lato\" font-size=\"14.00\">8#5</text>\n",
"<text text-anchor=\"start\" x=\"2489.5\" y=\"-552.17\" 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=\"M1652.06,-767.7C1679.76,-766.82 1731.99,-765.37 1776.5,-765.37 1776.5,-765.37 1776.5,-765.37 1995.5,-765.37 2202.58,-765.37 2298.49,-807.44 2451,-667.37 2473.49,-646.71 2485.43,-612.95 2491.34,-589.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2492.99,-582.61 2494.43,-590.15 2492.18,-586.01 2491.37,-589.42 2491.37,-589.42 2491.37,-589.42 2492.18,-586.01 2488.3,-588.69 2492.99,-582.61 2492.99,-582.61\"/>\n",
"<text text-anchor=\"start\" x=\"2039\" y=\"-771.17\" 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=\"M1322.4,-437.4C1320.59,-446.9 1324.95,-455.37 1335.5,-455.37 1343.25,-455.37 1347.66,-450.8 1348.74,-444.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1348.6,-437.4 1351.88,-444.34 1348.67,-440.9 1348.73,-444.4 1348.73,-444.4 1348.73,-444.4 1348.67,-440.9 1345.58,-444.46 1348.6,-437.4 1348.6,-437.4\"/>\n",
"<text text-anchor=\"start\" x=\"1307\" y=\"-459.17\" 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=\"M1492,-301.37C1492,-301.37 1475,-301.37 1475,-301.37 1469,-301.37 1463,-295.37 1463,-289.37 1463,-289.37 1463,-275.37 1463,-275.37 1463,-269.37 1469,-263.37 1475,-263.37 1475,-263.37 1492,-263.37 1492,-263.37 1498,-263.37 1504,-269.37 1504,-275.37 1504,-275.37 1504,-289.37 1504,-289.37 1504,-295.37 1498,-301.37 1492,-301.37\"/>\n",
"<text text-anchor=\"start\" x=\"1471\" y=\"-286.17\" font-family=\"Lato\" font-size=\"14.00\">2#0</text>\n",
"<text text-anchor=\"start\" x=\"1475.5\" y=\"-271.17\" 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=\"M1345.13,-399.36C1350.5,-387.01 1357.26,-370.45 1362,-355.37 1372.79,-321.01 1351.85,-298.82 1380,-276.37 1401.22,-259.44 1433.45,-264.77 1456.09,-271.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1462.79,-274.11 1455.15,-274.88 1459.47,-273 1456.15,-271.89 1456.15,-271.89 1456.15,-271.89 1459.47,-273 1457.15,-268.9 1462.79,-274.11 1462.79,-274.11\"/>\n",
"<text text-anchor=\"start\" x=\"1382\" y=\"-280.17\" 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=\"M1492,-588.37C1492,-588.37 1475,-588.37 1475,-588.37 1469,-588.37 1463,-582.37 1463,-576.37 1463,-576.37 1463,-562.37 1463,-562.37 1463,-556.37 1469,-550.37 1475,-550.37 1475,-550.37 1492,-550.37 1492,-550.37 1498,-550.37 1504,-556.37 1504,-562.37 1504,-562.37 1504,-576.37 1504,-576.37 1504,-582.37 1498,-588.37 1492,-588.37\"/>\n",
"<text text-anchor=\"start\" x=\"1471\" y=\"-573.17\" font-family=\"Lato\" font-size=\"14.00\">3#0</text>\n",
"<text text-anchor=\"start\" x=\"1475.5\" y=\"-558.17\" 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=\"M1346.39,-437.65C1354.03,-450.91 1365.7,-468.1 1380,-479.37 1401.46,-496.28 1416.36,-484.47 1437,-502.37 1449.04,-512.8 1446.15,-520.12 1455,-533.37 1457.47,-537.06 1460.18,-540.87 1462.92,-544.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1467.2,-550.27 1460.47,-546.56 1465.09,-547.47 1462.99,-544.67 1462.99,-544.67 1462.99,-544.67 1465.09,-547.47 1465.51,-542.78 1467.2,-550.27 1467.2,-550.27\"/>\n",
"<text text-anchor=\"start\" x=\"1382\" y=\"-506.17\" 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=\"M1340.36,-437.63C1345.7,-459.63 1357.36,-495.41 1380,-517.37 1399.61,-536.39 1412.71,-527.86 1437,-540.37 1443.5,-543.71 1450.26,-547.71 1456.52,-551.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1462.59,-555.55 1455,-554.42 1459.64,-553.66 1456.7,-551.77 1456.7,-551.77 1456.7,-551.77 1459.64,-553.66 1458.4,-549.12 1462.59,-555.55 1462.59,-555.55\"/>\n",
"<text text-anchor=\"start\" x=\"1384\" y=\"-544.17\" 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=\"M1900.9,-273.25C1892.99,-276.53 1883.69,-280.02 1875,-282.37 1767.59,-311.35 1474.8,-299.14 1380,-357.37 1366.41,-365.72 1355.86,-380.06 1348.55,-392.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1345.03,-399.19 1345.62,-391.53 1346.71,-396.12 1348.39,-393.04 1348.39,-393.04 1348.39,-393.04 1346.71,-396.12 1351.15,-394.56 1345.03,-399.19 1345.03,-399.19\"/>\n",
"<text text-anchor=\"start\" x=\"1605\" y=\"-314.17\" 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=\"M1900.93,-246.94C1874.91,-225.63 1826.59,-192.37 1778.5,-192.37 1557.5,-192.37 1557.5,-192.37 1557.5,-192.37 1476.73,-192.37 1435.98,-173.15 1380,-231.37 1360.11,-252.05 1379.83,-270.89 1362,-293.37 1275.18,-402.81 1207.28,-374.65 1088,-447.37 1081.58,-451.28 1074.76,-455.66 1068.4,-459.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1062.24,-463.92 1066.34,-457.42 1065.16,-461.98 1068.07,-460.05 1068.07,-460.05 1068.07,-460.05 1065.16,-461.98 1069.81,-462.68 1062.24,-463.92 1062.24,-463.92\"/>\n",
"<text text-anchor=\"start\" x=\"1455\" y=\"-195.17\" 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=\"M2080.5,-266.37C2080.5,-266.37 2054.5,-266.37 2054.5,-266.37 2048.5,-266.37 2042.5,-260.37 2042.5,-254.37 2042.5,-254.37 2042.5,-242.37 2042.5,-242.37 2042.5,-236.37 2048.5,-230.37 2054.5,-230.37 2054.5,-230.37 2080.5,-230.37 2080.5,-230.37 2086.5,-230.37 2092.5,-236.37 2092.5,-242.37 2092.5,-242.37 2092.5,-254.37 2092.5,-254.37 2092.5,-260.37 2086.5,-266.37 2080.5,-266.37\"/>\n",
"<text text-anchor=\"start\" x=\"2050.5\" y=\"-244.67\" font-family=\"Lato\" font-size=\"14.00\">3#12</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=\"M1942.22,-262.18C1966.12,-259.52 2006.69,-255.01 2034.96,-251.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2042.22,-251.07 2035.61,-254.97 2038.74,-251.45 2035.26,-251.84 2035.26,-251.84 2035.26,-251.84 2038.74,-251.45 2034.91,-248.71 2042.22,-251.07 2042.22,-251.07\"/>\n",
"<text text-anchor=\"start\" x=\"1968\" y=\"-263.17\" 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=\"M2228.5,-268.37C2228.5,-268.37 2202.5,-268.37 2202.5,-268.37 2196.5,-268.37 2190.5,-262.37 2190.5,-256.37 2190.5,-256.37 2190.5,-244.37 2190.5,-244.37 2190.5,-238.37 2196.5,-232.37 2202.5,-232.37 2202.5,-232.37 2228.5,-232.37 2228.5,-232.37 2234.5,-232.37 2240.5,-238.37 2240.5,-244.37 2240.5,-244.37 2240.5,-256.37 2240.5,-256.37 2240.5,-262.37 2234.5,-268.37 2228.5,-268.37\"/>\n",
"<text text-anchor=\"start\" x=\"2198.5\" y=\"-246.67\" font-family=\"Lato\" font-size=\"14.00\">5#13</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=\"M1942.21,-275.64C1974.33,-292.58 2039.99,-321.34 2096,-308.37 2127.82,-301 2160.96,-283.84 2184.07,-270.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2190.32,-266.31 2185.96,-272.63 2187.32,-268.12 2184.33,-269.94 2184.33,-269.94 2184.33,-269.94 2187.32,-268.12 2182.7,-267.24 2190.32,-266.31 2190.32,-266.31\"/>\n",
"<text text-anchor=\"start\" x=\"2043\" y=\"-316.17\" 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.31,-470.79C1070.25,-468.29 1079.51,-465.52 1088,-463.37 1166.9,-443.39 1262.13,-428.58 1307.68,-422.05\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1314.81,-421.04 1308.33,-425.14 1311.35,-421.53 1307.88,-422.02 1307.88,-422.02 1307.88,-422.02 1311.35,-421.53 1307.44,-418.9 1314.81,-421.04 1314.81,-421.04\"/>\n",
"<text text-anchor=\"start\" x=\"1163\" y=\"-450.17\" 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=\"M1049.83,-496.63C1057.17,-513.62 1069.98,-538 1088,-553.37 1115.32,-576.66 1128.19,-574.57 1163,-583.37 1165.94,-584.11 1376.97,-608.19 1380,-608.37 1405.29,-609.82 1413.24,-617.16 1437,-608.37 1445.54,-605.21 1453.56,-599.65 1460.41,-593.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1465.88,-588.67 1462.87,-595.73 1463.31,-591.04 1460.73,-593.41 1460.73,-593.41 1460.73,-593.41 1463.31,-591.04 1458.6,-591.09 1465.88,-588.67 1465.88,-588.67\"/>\n",
"<text text-anchor=\"start\" x=\"1238\" y=\"-601.17\" 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=\"M1202.5,-541.37C1202.5,-541.37 1176.5,-541.37 1176.5,-541.37 1170.5,-541.37 1164.5,-535.37 1164.5,-529.37 1164.5,-529.37 1164.5,-517.37 1164.5,-517.37 1164.5,-511.37 1170.5,-505.37 1176.5,-505.37 1176.5,-505.37 1202.5,-505.37 1202.5,-505.37 1208.5,-505.37 1214.5,-511.37 1214.5,-517.37 1214.5,-517.37 1214.5,-529.37 1214.5,-529.37 1214.5,-535.37 1208.5,-541.37 1202.5,-541.37\"/>\n",
"<text text-anchor=\"start\" x=\"1172.5\" y=\"-519.67\" 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=\"M1054.3,-496.41C1062.3,-507.41 1073.95,-520.24 1088,-526.37 1109.76,-535.85 1136.75,-534.42 1157.28,-530.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1164.26,-529.7 1157.94,-534.07 1160.82,-530.33 1157.37,-530.97 1157.37,-530.97 1157.37,-530.97 1160.82,-530.33 1156.8,-527.87 1164.26,-529.7 1164.26,-529.7\"/>\n",
"<text text-anchor=\"start\" x=\"1090\" y=\"-538.17\" 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=\"M2364,-334.37C2364,-334.37 2347,-334.37 2347,-334.37 2341,-334.37 2335,-328.37 2335,-322.37 2335,-322.37 2335,-308.37 2335,-308.37 2335,-302.37 2341,-296.37 2347,-296.37 2347,-296.37 2364,-296.37 2364,-296.37 2370,-296.37 2376,-302.37 2376,-308.37 2376,-308.37 2376,-322.37 2376,-322.37 2376,-328.37 2370,-334.37 2364,-334.37\"/>\n",
"<text text-anchor=\"start\" x=\"2343\" y=\"-319.17\" font-family=\"Lato\" font-size=\"14.00\">8#0</text>\n",
"<text text-anchor=\"start\" x=\"2347.5\" y=\"-304.17\" 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=\"M1045.31,-458.33C1050.34,-424.25 1061.17,-350.58 1070,-288.37 1074.1,-259.49 1068.62,-180.16 1088,-158.37 1110.28,-133.32 1347.16,-89.12 1380,-82.37 1510.34,-55.57 1543.31,-47.4 1676,-37.37 1963.18,-15.66 2113.67,71.59 2317,-132.37 2338.69,-154.12 2348.81,-243.9 2352.61,-289.11\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2353.19,-296.22 2349.48,-289.5 2352.91,-292.74 2352.62,-289.25 2352.62,-289.25 2352.62,-289.25 2352.91,-292.74 2355.76,-288.99 2353.19,-296.22 2353.19,-296.22\"/>\n",
"<text text-anchor=\"start\" x=\"1676\" y=\"-41.17\" 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.09,-733.02C499.32,-727.86 507.76,-722.4 516,-718.37 599.33,-677.58 637.78,-706.78 715,-655.37 724.5,-649.04 733.04,-639.94 739.87,-631.29\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"744.31,-625.42 742.6,-632.9 742.2,-628.21 740.09,-631 740.09,-631 740.09,-631 742.2,-628.21 737.57,-629.1 744.31,-625.42 744.31,-625.42\"/>\n",
"<text text-anchor=\"start\" x=\"591\" y=\"-698.17\" 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=\"M492.02,-758.64C515.03,-770.27 554.72,-788.81 591,-798.37 817.94,-858.14 880.82,-859.37 1115.5,-859.37 1115.5,-859.37 1115.5,-859.37 1484.5,-859.37 1534.25,-859.37 1546.32,-843.01 1587,-814.37 1595.45,-808.42 1603.56,-800.63 1610.44,-793.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1615.45,-787.55 1613.14,-794.87 1613.12,-790.16 1610.79,-792.77 1610.79,-792.77 1610.79,-792.77 1613.12,-790.16 1608.44,-790.67 1615.45,-787.55 1615.45,-787.55\"/>\n",
"<text text-anchor=\"start\" x=\"1017\" y=\"-862.17\" 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,-767.4C456.59,-776.9 460.95,-785.37 471.5,-785.37 479.25,-785.37 483.66,-780.8 484.74,-774.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"484.6,-767.4 487.88,-774.34 484.67,-770.9 484.73,-774.4 484.73,-774.4 484.73,-774.4 484.67,-770.9 481.58,-774.46 484.6,-767.4 484.6,-767.4\"/>\n",
"<text text-anchor=\"start\" x=\"443\" y=\"-789.17\" 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,-756.37C626,-756.37 609,-756.37 609,-756.37 603,-756.37 597,-750.37 597,-744.37 597,-744.37 597,-732.37 597,-732.37 597,-726.37 603,-720.37 609,-720.37 609,-720.37 626,-720.37 626,-720.37 632,-720.37 638,-726.37 638,-732.37 638,-732.37 638,-744.37 638,-744.37 638,-750.37 632,-756.37 626,-756.37\"/>\n",
"<text text-anchor=\"start\" x=\"605\" y=\"-734.67\" 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.19,-748.53C512.49,-748.53 545.02,-748.02 573,-745.37 578.34,-744.86 584.02,-744.11 589.45,-743.28\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"596.65,-742.12 590.24,-746.34 593.19,-742.67 589.74,-743.23 589.74,-743.23 589.74,-743.23 593.19,-742.67 589.23,-740.12 596.65,-742.12 596.65,-742.12\"/>\n",
"<text text-anchor=\"start\" x=\"518\" y=\"-751.17\" 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=\"M1756.79,-675.62C1723.44,-654.89 1653.05,-614.63 1587,-599.37 1529.83,-586.16 1511.96,-611.43 1455,-597.37 1418.72,-588.41 1404.09,-587.93 1380,-559.37 1352.02,-526.19 1342.02,-475.17 1338.46,-444.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1337.72,-437.48 1341.59,-444.11 1338.09,-440.96 1338.46,-444.44 1338.46,-444.44 1338.46,-444.44 1338.09,-440.96 1335.33,-444.77 1337.72,-437.48 1337.72,-437.48\"/>\n",
"<text text-anchor=\"start\" x=\"1532\" y=\"-603.17\" 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=\"M1794.77,-669.09C1816.71,-641.99 1855.31,-590.24 1875,-539.37 1908.65,-452.44 1917.42,-340.65 1919.7,-290.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1920,-283.4 1922.86,-290.53 1919.86,-286.9 1919.71,-290.4 1919.71,-290.4 1919.71,-290.4 1919.86,-286.9 1916.56,-290.27 1920,-283.4 1920,-283.4\"/>\n",
"<text text-anchor=\"start\" x=\"1824\" y=\"-634.17\" 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=\"M1798.14,-684.06C1825.45,-678.45 1876.48,-669.37 1920.5,-669.37 1920.5,-669.37 1920.5,-669.37 2356.5,-669.37 2400.43,-669.37 2416.49,-667.56 2451,-640.37 2467.65,-627.25 2479.48,-606.23 2486.89,-589.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2489.8,-582.57 2489.98,-590.25 2488.44,-585.8 2487.08,-589.02 2487.08,-589.02 2487.08,-589.02 2488.44,-585.8 2484.18,-587.8 2489.8,-582.57 2489.8,-582.57\"/>\n",
"<text text-anchor=\"start\" x=\"2114\" y=\"-673.17\" 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=\"M2657,-526.37C2657,-526.37 2631,-526.37 2631,-526.37 2625,-526.37 2619,-520.37 2619,-514.37 2619,-514.37 2619,-502.37 2619,-502.37 2619,-496.37 2625,-490.37 2631,-490.37 2631,-490.37 2657,-490.37 2657,-490.37 2663,-490.37 2669,-496.37 2669,-502.37 2669,-502.37 2669,-514.37 2669,-514.37 2669,-520.37 2663,-526.37 2657,-526.37\"/>\n",
"<text text-anchor=\"start\" x=\"2627\" y=\"-504.67\" font-family=\"Lato\" font-size=\"14.00\">5#11</text>\n",
"</g>\n",
"<!-- 10&#45;&gt;19 -->\n",
"<g id=\"edge44\" class=\"edge\">\n",
"<title>10&#45;&gt;19</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1798.42,-695.56C1825.63,-704.71 1876.09,-719.37 1920.5,-719.37 1920.5,-719.37 1920.5,-719.37 2498.5,-719.37 2587.52,-719.37 2625.73,-589.94 2638.12,-533.82\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2639.64,-526.72 2641.26,-534.23 2638.91,-530.15 2638.18,-533.57 2638.18,-533.57 2638.18,-533.57 2638.91,-530.15 2635.09,-532.91 2639.64,-526.72 2639.64,-526.72\"/>\n",
"<text text-anchor=\"start\" x=\"2189\" y=\"-723.17\" 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=\"M2476.56,-563.37C2449.41,-563.37 2399.28,-563.37 2356.5,-563.37 1847.5,-563.37 1847.5,-563.37 1847.5,-563.37 1836.43,-563.37 1465.2,-499.66 1455,-495.37 1445.91,-491.54 1445.46,-487.45 1437,-482.37 1412.81,-467.83 1403.7,-469.69 1380,-454.37 1373.83,-450.38 1367.54,-445.63 1361.73,-440.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1356.1,-436.25 1363.5,-438.3 1358.79,-438.49 1361.49,-440.72 1361.49,-440.72 1361.49,-440.72 1358.79,-438.49 1359.48,-443.15 1356.1,-436.25 1356.1,-436.25\"/>\n",
"<text text-anchor=\"start\" x=\"1895\" y=\"-567.17\" 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=\"M2484.03,-582.4C2482.17,-591.9 2486.66,-600.37 2497.5,-600.37 2505.46,-600.37 2510,-595.8 2511.11,-589.61\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2510.97,-582.4 2514.25,-589.34 2511.03,-585.9 2511.1,-589.4 2511.1,-589.4 2511.1,-589.4 2511.03,-585.9 2507.95,-589.46 2510.97,-582.4 2510.97,-582.4\"/>\n",
"<text text-anchor=\"start\" x=\"2469\" y=\"-604.17\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</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=\"M2518.23,-561.8C2539.51,-559.51 2573.98,-554.05 2601,-541.37 2606.92,-538.59 2612.76,-534.84 2618.12,-530.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2623.73,-526.49 2620.15,-533.28 2620.97,-528.65 2618.21,-530.8 2618.21,-530.8 2618.21,-530.8 2620.97,-528.65 2616.28,-528.31 2623.73,-526.49 2623.73,-526.49\"/>\n",
"<text text-anchor=\"start\" x=\"2546\" y=\"-562.17\" 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=\"M2652.5,-260.37C2652.5,-260.37 2635.5,-260.37 2635.5,-260.37 2629.5,-260.37 2623.5,-254.37 2623.5,-248.37 2623.5,-248.37 2623.5,-234.37 2623.5,-234.37 2623.5,-228.37 2629.5,-222.37 2635.5,-222.37 2635.5,-222.37 2652.5,-222.37 2652.5,-222.37 2658.5,-222.37 2664.5,-228.37 2664.5,-234.37 2664.5,-234.37 2664.5,-248.37 2664.5,-248.37 2664.5,-254.37 2658.5,-260.37 2652.5,-260.37\"/>\n",
"<text text-anchor=\"start\" x=\"2631.5\" y=\"-245.17\" font-family=\"Lato\" font-size=\"14.00\">5#6</text>\n",
"<text text-anchor=\"start\" x=\"2636\" y=\"-230.17\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</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=\"M2507.11,-544.19C2531.9,-488.93 2603.52,-329.35 2631.55,-266.88\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2634.44,-260.44 2634.45,-268.12 2633.01,-263.64 2631.57,-266.83 2631.57,-266.83 2631.57,-266.83 2633.01,-263.64 2628.7,-265.54 2634.44,-260.44 2634.44,-260.44\"/>\n",
"<text text-anchor=\"start\" x=\"2548\" y=\"-463.17\" 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=\"M1462.81,-265.98C1426.09,-237.15 1343.61,-180.37 1263.5,-180.37 894.5,-180.37 894.5,-180.37 894.5,-180.37 835.57,-180.37 826.09,-220.53 800,-273.37 773.37,-327.3 762.7,-510.86 759.57,-579.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"759.26,-586.93 756.42,-579.8 759.41,-583.44 759.56,-579.94 759.56,-579.94 759.56,-579.94 759.41,-583.44 762.71,-580.08 759.26,-586.93 759.26,-586.93\"/>\n",
"<text text-anchor=\"start\" x=\"1090\" y=\"-184.17\" 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=\"M1462.77,-271C1455,-267.14 1445.84,-263.31 1437,-261.37 1412.26,-255.93 1405.31,-260.38 1380,-261.37 1252.53,-266.35 1124.49,-265.04 1088,-293.37 961.02,-391.92 913.89,-595.66 900.74,-668.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"899.5,-675.09 897.62,-667.65 900.11,-671.64 900.72,-668.19 900.72,-668.19 900.72,-668.19 900.11,-671.64 903.82,-668.74 899.5,-675.09 899.5,-675.09\"/>\n",
"<text text-anchor=\"start\" x=\"1165\" y=\"-276.17\" 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=\"M1462.73,-286.46C1436.53,-292.21 1392.2,-303.26 1380,-314.37 1378.44,-315.78 1359.34,-362.24 1346.98,-392.58\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1344.3,-399.16 1344.02,-391.49 1345.62,-395.92 1346.94,-392.67 1346.94,-392.67 1346.94,-392.67 1345.62,-395.92 1349.85,-393.86 1344.3,-399.16 1344.3,-399.16\"/>\n",
"<text text-anchor=\"start\" x=\"1380\" y=\"-318.17\" 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=\"M1504.08,-281.56C1574.23,-278.66 1813.07,-268.8 1893.68,-265.47\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1900.97,-265.17 1894.11,-268.61 1897.48,-265.32 1893.98,-265.46 1893.98,-265.46 1893.98,-265.46 1897.48,-265.32 1893.85,-262.31 1900.97,-265.17 1900.97,-265.17\"/>\n",
"<text text-anchor=\"start\" x=\"1678\" y=\"-279.17\" 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=\"M1462.83,-570.48C1441.29,-570.87 1406.32,-568.99 1380,-555.37 1338.95,-534.12 1336.56,-516.48 1309,-479.37 1299.5,-466.58 1302.33,-459.57 1291,-448.37 1228.01,-386.12 1206.06,-350.37 1117.5,-350.37 894.5,-350.37 894.5,-350.37 894.5,-350.37 791.28,-350.37 766.16,-514.68 760.25,-580.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"759.65,-587.13 757.1,-579.88 759.94,-583.64 760.24,-580.15 760.24,-580.15 760.24,-580.15 759.94,-583.64 763.38,-580.42 759.65,-587.13 759.65,-587.13\"/>\n",
"<text text-anchor=\"start\" x=\"1090\" y=\"-354.17\" 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=\"M1501.22,-588.54C1509.59,-597.83 1520.03,-608.97 1530,-618.37 1553.89,-640.89 1567.38,-639.04 1587,-665.37 1604.48,-688.82 1616.45,-720.35 1623.35,-742.33\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1625.41,-749.1 1620.36,-743.32 1624.39,-745.75 1623.37,-742.4 1623.37,-742.4 1623.37,-742.4 1624.39,-745.75 1626.38,-741.49 1625.41,-749.1 1625.41,-749.1\"/>\n",
"<text text-anchor=\"start\" x=\"1534\" y=\"-669.17\" 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=\"M1504.17,-570.86C1567.94,-574.55 1770.82,-576.96 1875,-469.37 1899.48,-444.08 1912.92,-340.32 1918.04,-290.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1918.77,-283.67 1921.2,-290.95 1918.42,-287.15 1918.06,-290.64 1918.06,-290.64 1918.06,-290.64 1918.42,-287.15 1914.93,-290.32 1918.77,-283.67 1918.77,-283.67\"/>\n",
"<text text-anchor=\"start\" x=\"1678\" y=\"-565.17\" 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=\"M1462.62,-575.36C1441.8,-580.74 1408.25,-586.87 1380,-580.37 1309.69,-564.18 1295.92,-546.41 1234,-509.37 1225.53,-504.3 1225.21,-499.91 1216,-496.37 1166.76,-477.42 1104.24,-475.46 1069.28,-476.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1062.26,-476.32 1069.17,-472.99 1065.76,-476.23 1069.26,-476.14 1069.26,-476.14 1069.26,-476.14 1065.76,-476.23 1069.34,-479.29 1062.26,-476.32 1062.26,-476.32\"/>\n",
"<text text-anchor=\"start\" x=\"1234\" y=\"-549.17\" 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=\"M2042.92,-266.4C2036.14,-270.88 2028.53,-275.28 2021,-278.37 1991.24,-290.56 1981.67,-286.75 1950,-292.37 1886.87,-303.57 1438.44,-355.99 1380,-382.37 1373.3,-385.39 1366.79,-389.73 1360.94,-394.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1355.32,-399.05 1358.68,-392.15 1358.01,-396.81 1360.69,-394.56 1360.69,-394.56 1360.69,-394.56 1358.01,-396.81 1362.71,-396.98 1355.32,-399.05 1355.32,-399.05\"/>\n",
"<text text-anchor=\"start\" x=\"1678\" y=\"-334.17\" 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=\"M2044.8,-230.15C2008.29,-199.84 1937.13,-142.37 1922.5,-142.37 1482.5,-142.37 1482.5,-142.37 1482.5,-142.37 1346.8,-142.37 1340.21,-236.72 1216,-291.37 1161.8,-315.21 1130.19,-286.81 1088,-328.37 1070.52,-345.58 1054.97,-413.22 1047.39,-451.17\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1045.98,-458.34 1044.24,-450.87 1046.65,-454.91 1047.33,-451.48 1047.33,-451.48 1047.33,-451.48 1046.65,-454.91 1050.42,-452.08 1045.98,-458.34 1045.98,-458.34\"/>\n",
"<text text-anchor=\"start\" x=\"1530\" y=\"-146.17\" 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=\"M2054.47,-266.52C2052.47,-275.91 2056.81,-284.37 2067.5,-284.37 2075.35,-284.37 2079.77,-279.8 2080.78,-273.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2080.53,-266.52 2083.92,-273.4 2080.65,-270.02 2080.77,-273.52 2080.77,-273.52 2080.77,-273.52 2080.65,-270.02 2077.63,-273.63 2080.53,-266.52 2080.53,-266.52\"/>\n",
"<text text-anchor=\"start\" x=\"2041\" y=\"-288.17\" 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=\"M2092.61,-248.7C2117.34,-249.04 2155.91,-249.56 2183.03,-249.94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2190.36,-250.04 2183.31,-253.09 2186.86,-249.99 2183.36,-249.94 2183.36,-249.94 2183.36,-249.94 2186.86,-249.99 2183.4,-246.79 2190.36,-250.04 2190.36,-250.04\"/>\n",
"<text text-anchor=\"start\" x=\"2118\" y=\"-254.17\" 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=\"M2204.02,-268.45C2196.27,-280.42 2184.7,-295.64 2171,-305.37 2142.24,-325.8 2130.43,-323.68 2096,-331.37 1783.68,-401.12 1695.03,-351.11 1380,-407.37 1374.5,-408.35 1368.67,-409.64 1363.12,-411\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1356.29,-412.73 1362.31,-407.96 1359.69,-411.87 1363.08,-411.01 1363.08,-411.01 1363.08,-411.01 1359.69,-411.87 1363.85,-414.06 1356.29,-412.73 1356.29,-412.73\"/>\n",
"<text text-anchor=\"start\" x=\"1751\" y=\"-378.17\" 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=\"M2190.42,-236.89C2156.66,-219.69 2093.28,-193.6 2039,-206.37 2005.63,-214.21 1970.89,-233.14 1948.13,-247.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1942.04,-251.09 1946.28,-244.69 1945,-249.22 1947.96,-247.35 1947.96,-247.35 1947.96,-247.35 1945,-249.22 1949.64,-250.02 1942.04,-251.09 1942.04,-251.09\"/>\n",
"<text text-anchor=\"start\" x=\"2043\" y=\"-210.17\" 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=\"M2202.47,-268.52C2200.47,-277.91 2204.81,-286.37 2215.5,-286.37 2223.35,-286.37 2227.77,-281.8 2228.78,-275.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2228.53,-268.52 2231.92,-275.4 2228.65,-272.02 2228.77,-275.52 2228.77,-275.52 2228.77,-275.52 2228.65,-272.02 2225.63,-275.63 2228.53,-268.52 2228.53,-268.52\"/>\n",
"<text text-anchor=\"start\" x=\"2189\" y=\"-290.17\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 15&#45;&gt;17 -->\n",
"<g id=\"edge65\" class=\"edge\">\n",
"<title>15&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2240.54,-261.69C2265.06,-273.24 2303.02,-291.12 2328.3,-303.03\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2334.76,-306.07 2327.08,-305.93 2331.59,-304.58 2328.42,-303.08 2328.42,-303.08 2328.42,-303.08 2331.59,-304.58 2329.77,-300.23 2334.76,-306.07 2334.76,-306.07\"/>\n",
"<text text-anchor=\"start\" x=\"2260\" y=\"-300.17\" 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=\"M1214.6,-505.79C1240.8,-486.69 1282.49,-456.29 1309.17,-436.84\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1314.95,-432.62 1311.15,-439.29 1312.12,-434.69 1309.29,-436.75 1309.29,-436.75 1309.29,-436.75 1312.12,-434.69 1307.44,-434.2 1314.95,-432.62 1314.95,-432.62\"/>\n",
"<text text-anchor=\"start\" x=\"1236\" y=\"-494.17\" 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=\"M1164.21,-514.1C1157.98,-511.82 1151.27,-509.43 1145,-507.37 1119.48,-498.95 1090.01,-490.45 1069.24,-484.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1062.27,-482.73 1069.86,-481.56 1065.64,-483.66 1069.02,-484.6 1069.02,-484.6 1069.02,-484.6 1065.64,-483.66 1068.18,-487.63 1062.27,-482.73 1062.27,-482.73\"/>\n",
"<text text-anchor=\"start\" x=\"1088\" y=\"-511.17\" 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=\"M1176.47,-541.52C1174.47,-550.91 1178.81,-559.37 1189.5,-559.37 1197.35,-559.37 1201.77,-554.8 1202.78,-548.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1202.53,-541.52 1205.92,-548.4 1202.65,-545.02 1202.77,-548.52 1202.77,-548.52 1202.77,-548.52 1202.65,-545.02 1199.63,-548.63 1202.53,-541.52 1202.53,-541.52\"/>\n",
"<text text-anchor=\"start\" x=\"1163\" y=\"-563.17\" 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=\"M1344,-688.37C1344,-688.37 1327,-688.37 1327,-688.37 1321,-688.37 1315,-682.37 1315,-676.37 1315,-676.37 1315,-662.37 1315,-662.37 1315,-656.37 1321,-650.37 1327,-650.37 1327,-650.37 1344,-650.37 1344,-650.37 1350,-650.37 1356,-656.37 1356,-662.37 1356,-662.37 1356,-676.37 1356,-676.37 1356,-682.37 1350,-688.37 1344,-688.37\"/>\n",
"<text text-anchor=\"start\" x=\"1323\" y=\"-673.17\" font-family=\"Lato\" font-size=\"14.00\">5#0</text>\n",
"<text text-anchor=\"start\" x=\"1327.5\" y=\"-658.17\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;21 -->\n",
"<g id=\"edge68\" class=\"edge\">\n",
"<title>16&#45;&gt;21</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1194.63,-541.67C1200.22,-562.57 1212.11,-596.54 1234,-617.37 1253.79,-636.2 1266.84,-627.61 1291,-640.37 1296.89,-643.48 1302.99,-647.19 1308.68,-650.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1314.67,-654.91 1307.1,-653.64 1311.76,-652.96 1308.85,-651.02 1308.85,-651.02 1308.85,-651.02 1311.76,-652.96 1310.6,-648.4 1314.67,-654.91 1314.67,-654.91\"/>\n",
"<text text-anchor=\"start\" x=\"1238\" y=\"-644.17\" 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=\"M2334.75,-318.59C2276.16,-328.09 2098.18,-356.57 1950,-376.37 1885.25,-385.02 1869.09,-387.84 1804,-393.37 1636.78,-407.56 1435.18,-415.12 1363.44,-417.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1356.13,-417.76 1363.02,-414.38 1359.62,-417.64 1363.12,-417.53 1363.12,-417.53 1363.12,-417.53 1359.62,-417.64 1363.23,-420.67 1356.13,-417.76 1356.13,-417.76\"/>\n",
"<text text-anchor=\"start\" x=\"1822\" y=\"-396.17\" 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=\"M2367.25,-334.42C2392.19,-378.59 2453.99,-488.06 2482.13,-537.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2485.71,-544.25 2479.53,-539.71 2483.99,-541.21 2482.27,-538.16 2482.27,-538.16 2482.27,-538.16 2483.99,-541.21 2485.01,-536.61 2485.71,-544.25 2485.71,-544.25\"/>\n",
"<text text-anchor=\"start\" x=\"2394\" y=\"-480.17\" 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=\"M2376.1,-322.93C2432.6,-344.78 2592.32,-406.99 2601,-415.37 2620.16,-433.85 2631.3,-462.68 2637.23,-483.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2639.12,-490.28 2634.24,-484.35 2638.2,-486.9 2637.28,-483.52 2637.28,-483.52 2637.28,-483.52 2638.2,-486.9 2640.32,-482.7 2639.12,-490.28 2639.12,-490.28\"/>\n",
"<text text-anchor=\"start\" x=\"2471\" y=\"-386.17\" 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=\"M2376.27,-316.05C2419.3,-316.79 2523.76,-314.37 2601,-278.37 2608.01,-275.1 2614.73,-270.28 2620.65,-265.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2625.85,-260.49 2622.77,-267.53 2623.26,-262.84 2620.66,-265.19 2620.66,-265.19 2620.66,-265.19 2623.26,-262.84 2618.55,-262.85 2625.85,-260.49 2625.85,-260.49\"/>\n",
"<text text-anchor=\"start\" x=\"2473\" y=\"-316.17\" 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.19,-730.64C665.55,-719.83 712.07,-701.21 715,-698.37 733.45,-680.47 744.39,-652.87 750.36,-632.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"752.27,-625.72 753.42,-633.31 751.33,-629.09 750.39,-632.46 750.39,-632.46 750.39,-632.46 751.33,-629.09 747.35,-631.62 752.27,-625.72 752.27,-625.72\"/>\n",
"<text text-anchor=\"start\" x=\"662\" y=\"-724.17\" 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.17,-739.11C657.73,-739.57 688.55,-739.58 715,-736.37 777.4,-728.79 791.94,-720.31 853,-705.37 857.77,-704.2 862.83,-702.91 867.71,-701.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"874.7,-699.78 868.73,-704.62 871.31,-700.68 867.93,-701.57 867.93,-701.57 867.93,-701.57 871.31,-700.68 867.12,-698.53 874.7,-699.78 874.7,-699.78\"/>\n",
"<text text-anchor=\"start\" x=\"733\" y=\"-737.17\" 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,-731.73C589.43,-729.56 580.92,-727.44 573,-726.37 547.9,-722.97 540.64,-720.49 516,-726.37 510.08,-727.78 504.06,-730.13 498.46,-732.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"492.1,-736 496.92,-730.03 495.22,-734.42 498.35,-732.84 498.35,-732.84 498.35,-732.84 495.22,-734.42 499.77,-735.65 492.1,-736 492.1,-736\"/>\n",
"<text text-anchor=\"start\" x=\"516\" y=\"-730.17\" 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,-756.52C602.89,-765.91 607.11,-774.37 617.5,-774.37 625.13,-774.37 629.43,-769.8 630.41,-763.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"630.16,-756.52 633.55,-763.41 630.28,-760.02 630.41,-763.52 630.41,-763.52 630.41,-763.52 630.28,-760.02 627.26,-763.62 630.16,-756.52 630.16,-756.52\"/>\n",
"<text text-anchor=\"start\" x=\"591\" y=\"-778.17\" 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=\"M2618.8,-504.04C2590.17,-499.3 2541.03,-492.37 2498.5,-492.37 2141.5,-492.37 2141.5,-492.37 2141.5,-492.37 1801.9,-492.37 1714.98,-485.18 1380,-429.37 1374.49,-428.45 1368.65,-427.18 1363.1,-425.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1356.28,-424.1 1363.84,-422.77 1359.67,-424.96 1363.06,-425.82 1363.06,-425.82 1363.06,-425.82 1359.67,-424.96 1362.29,-428.88 1356.28,-424.1 1356.28,-424.1\"/>\n",
"<text text-anchor=\"start\" x=\"1968\" y=\"-496.17\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 19&#45;&gt;7 -->\n",
"<g id=\"edge79\" class=\"edge\">\n",
"<title>19&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2636.37,-490.32C2629.81,-475.18 2618.24,-454.32 2601,-443.37 2522.63,-393.6 2485.28,-432.3 2394,-415.37 2234.58,-385.8 2195.95,-372.02 2039,-331.37 2007.26,-323.15 1996.15,-328.17 1968,-311.37 1958.33,-305.6 1949.33,-297.25 1941.93,-289.18\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1937.07,-283.68 1944.06,-286.84 1939.39,-286.31 1941.7,-288.93 1941.7,-288.93 1941.7,-288.93 1939.39,-286.31 1939.34,-291.01 1937.07,-283.68 1937.07,-283.68\"/>\n",
"<text text-anchor=\"start\" x=\"2264\" y=\"-404.17\" 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=\"M2618.68,-507.9C2597.92,-508.4 2567.75,-511.28 2544,-522.37 2535.25,-526.45 2526.98,-532.8 2519.95,-539.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2514.83,-544.25 2517.67,-537.12 2517.34,-541.82 2519.86,-539.38 2519.86,-539.38 2519.86,-539.38 2517.34,-541.82 2522.05,-541.65 2514.83,-544.25 2514.83,-544.25\"/>\n",
"<text text-anchor=\"start\" x=\"2544\" y=\"-526.17\" 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=\"M2631.34,-526.52C2629.39,-535.91 2633.61,-544.37 2644,-544.37 2651.63,-544.37 2655.93,-539.8 2656.91,-533.66\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2656.66,-526.52 2660.05,-533.41 2656.78,-530.02 2656.91,-533.52 2656.91,-533.52 2656.91,-533.52 2656.78,-530.02 2653.76,-533.62 2656.66,-526.52 2656.66,-526.52\"/>\n",
"<text text-anchor=\"start\" x=\"2617.5\" y=\"-548.17\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;6 -->\n",
"<g id=\"edge82\" class=\"edge\">\n",
"<title>20&#45;&gt;6</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2638.03,-222.31C2632.19,-203.64 2620.71,-175.68 2601,-159.37 2483.8,-62.36 2411.97,-122.16 2260,-129.37 2161.45,-134.04 2137.21,-140.86 2039,-150.37 2007.44,-153.42 1999.41,-153.05 1968,-157.37 1951.57,-159.63 1392.11,-250.04 1380,-261.37 1355.6,-284.2 1370.86,-302.15 1362,-334.37 1356.63,-353.91 1349.95,-375.82 1344.78,-392.36\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1342.67,-399.1 1341.76,-391.48 1343.72,-395.76 1344.76,-392.42 1344.76,-392.42 1344.76,-392.42 1343.72,-395.76 1347.77,-393.37 1342.67,-399.1 1342.67,-399.1\"/>\n",
"<text text-anchor=\"start\" x=\"1968\" y=\"-161.17\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;7 -->\n",
"<g id=\"edge83\" class=\"edge\">\n",
"<title>20&#45;&gt;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2626.42,-222.28C2601.53,-195.86 2551.7,-151.37 2498.5,-151.37 2141.5,-151.37 2141.5,-151.37 2141.5,-151.37 2060.33,-151.37 2034.85,-162.34 1968,-208.37 1956.16,-216.52 1945.79,-228.61 1937.96,-239.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1933.87,-245.36 1935.28,-237.81 1935.87,-242.48 1937.87,-239.61 1937.87,-239.61 1937.87,-239.61 1935.87,-242.48 1940.45,-241.41 1933.87,-245.36 1933.87,-245.36\"/>\n",
"<text text-anchor=\"start\" x=\"2264\" y=\"-155.17\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;15 -->\n",
"<g id=\"edge84\" class=\"edge\">\n",
"<title>20&#45;&gt;15</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2623.16,-241.79C2555.1,-243.22 2330.81,-247.95 2247.78,-249.71\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2240.65,-249.86 2247.58,-246.56 2244.15,-249.78 2247.65,-249.71 2247.65,-249.71 2247.65,-249.71 2244.15,-249.78 2247.72,-252.86 2240.65,-249.86 2240.65,-249.86\"/>\n",
"<text text-anchor=\"start\" x=\"2396\" y=\"-251.17\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;17 -->\n",
"<g id=\"edge85\" class=\"edge\">\n",
"<title>20&#45;&gt;17</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M2623.39,-246.03C2591.12,-253.75 2524.85,-269.77 2469,-284.37 2439.64,-292.04 2406.12,-301.35 2383.36,-307.75\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2376.37,-309.72 2382.26,-304.79 2379.74,-308.77 2383.11,-307.82 2383.11,-307.82 2383.11,-307.82 2379.74,-308.77 2383.96,-310.85 2376.37,-309.72 2376.37,-309.72\"/>\n",
"<text text-anchor=\"start\" x=\"2469\" y=\"-288.17\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;2 -->\n",
"<g id=\"edge86\" class=\"edge\">\n",
"<title>21&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1314.76,-667.21C1228.46,-657.77 884.34,-620.13 785.29,-609.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"778.33,-608.54 785.63,-606.17 781.81,-608.92 785.29,-609.3 785.29,-609.3 785.29,-609.3 781.81,-608.92 784.94,-612.43 778.33,-608.54 778.33,-608.54\"/>\n",
"<text text-anchor=\"start\" x=\"1015\" y=\"-643.17\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;3 -->\n",
"<g id=\"edge87\" class=\"edge\">\n",
"<title>21&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1314.75,-675.3C1307.37,-677.27 1298.87,-679.25 1291,-680.37 1154.09,-699.88 987.89,-697.33 923.65,-695.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"916.33,-695.14 923.43,-692.22 919.83,-695.25 923.33,-695.36 923.33,-695.36 923.33,-695.36 919.83,-695.25 923.23,-698.51 916.33,-695.14 916.33,-695.14\"/>\n",
"<text text-anchor=\"start\" x=\"1092\" y=\"-699.17\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;10 -->\n",
"<g id=\"edge88\" class=\"edge\">\n",
"<title>21&#45;&gt;10</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1356.24,-675.37C1363.62,-677.34 1372.13,-679.31 1380,-680.37 1518.02,-698.96 1685.48,-693.17 1749.68,-689.91\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"1756.99,-689.53 1750.16,-693.04 1753.49,-689.72 1750,-689.9 1750,-689.9 1750,-689.9 1753.49,-689.72 1749.83,-686.75 1756.99,-689.53 1756.99,-689.53\"/>\n",
"<text text-anchor=\"start\" x=\"1532\" y=\"-696.17\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 21&#45;&gt;11 -->\n",
"<g id=\"edge89\" class=\"edge\">\n",
"<title>21&#45;&gt;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1356.17,-666.06C1417.9,-656 1613.4,-626.37 1776.5,-626.37 1776.5,-626.37 1776.5,-626.37 2356.5,-626.37 2399.62,-626.37 2444.14,-601.21 2471.08,-582.69\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"2476.88,-578.62 2472.97,-585.22 2474.02,-580.63 2471.16,-582.64 2471.16,-582.64 2471.16,-582.64 2474.02,-580.63 2469.35,-580.06 2476.88,-578.62 2476.88,-578.62\"/>\n",
"<text text-anchor=\"start\" x=\"1893\" y=\"-630.17\" 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 0x7f296c3f3810> >"
]
},
"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": "15f094c0",
"metadata": {},
"source": [
"# More examples\n",
"\n",
"These additional examples also contribute to our test suite."
]
},
{
"cell_type": "code",
"execution_count": 45,
"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 0x7f296c18e210> >"
]
},
"execution_count": 45,
"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": 46,
"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 0x7f296c18e1b0> >"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.zielonka_tree(c.acc())"
]
},
{
"cell_type": "code",
"execution_count": 47,
"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 0x7f296c18e030> >"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = spot.zielonka_tree_transform(c); d"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "nutritional-rugby",
"metadata": {},
"outputs": [],
"source": [
"assert c.equivalent_to(d)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"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=\"acdaut2\" 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=\"acdaut2_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=\"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 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=\"acd2_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 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 #E7\").addClass(\"acdN0\");$(\"#acdaut2 #E8\").addClass(\"acdN0\");$(\"#acdaut2 #E6\").addClass(\"acdN1\");$(\"#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 #E7\").click(function(){acd2_edge(7);});$(\"#acdaut2 #E8\").click(function(){acd2_edge(8);});$(\"#acdaut2 #S0\").click(function(){acd2_state(0);});$(\"#acdaut2 #S1\").click(function(){acd2_state(1);});$(\"#acd2 #N0\").click(function(){acd2_node(0, 1);});$(\"#acd2 #N1\").click(function(){acd2_node(1, 0);});</script>"
],
"text/plain": [
"<spot.acd; proxy of <Swig Object of type 'spot::acd *' at 0x7f296c18e3c0> >"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cacd = spot.acd(c); cacd"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "e7760d51",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cacd.state_step(1, 7)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"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 0x7f296c193240> >"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = spot.acd_transform(c); d"
]
},
{
"cell_type": "code",
"execution_count": 52,
"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 0x7f296c1934b0> >"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e = spot.acd_transform_sbacc(c); e"
]
},
{
"cell_type": "code",
"execution_count": 53,
"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": 54,
"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=\"acdaut3\" 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=\"acdaut3_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=\"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 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=\"acd3_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=\"acd3_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 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 #E7\").addClass(\"acdN0\");$(\"#acdaut3 #E1\").addClass(\"acdN1\");$(\"#acdaut3 #E3\").addClass(\"acdN1\");$(\"#acdaut3 #E4\").addClass(\"acdN1\");$(\"#acdaut3 #E5\").addClass(\"acdN1\");$(\"#acdaut3 #E7\").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 #E7\").click(function(){acd3_edge(7);});$(\"#acdaut3 #S0\").click(function(){acd3_state(0);});$(\"#acdaut3 #S1\").click(function(){acd3_state(1);});$(\"#acdaut3 #S2\").click(function(){acd3_state(2);});$(\"#acdaut3 #S3\").click(function(){acd3_state(3);});$(\"#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 0x7f296c193f60> >"
]
},
"execution_count": 54,
"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": 55,
"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 0x7f296c193b70> >"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.acd_transform(g)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"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 0x7f296c198330> >"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.acd_transform_sbacc(g)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"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 0x7f296c1984e0> >"
]
},
"execution_count": 57,
"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": 58,
"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 0x7f296c198cf0> >"
]
},
"execution_count": 58,
"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": 59,
"id": "chemical-primary",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(spot.trival_maybe(), spot.trival(True))"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"w.prop_weak(), w.prop_inherently_weak()"
]
},
{
"cell_type": "code",
"execution_count": 60,
"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 0x7f296c19e120> >"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"w2 = spot.acd_transform(w); w2"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "central-london",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(spot.trival(True), spot.trival(True))"
]
},
"execution_count": 61,
"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
}