spot/tests/python/_zlktree.ipynb
Alexandre Duret-Lutz af511707c0 introduce a zielonka_tree class
* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: New files.
* spot/twaalgos/Makefile.am: Add them.
* tests/python/_zlktree.ipynb: New file.
* tests/Makefile.am: Add it.
* python/spot/__init__.py, python/spot/impl.i: Add bindings for it.
* doc/spot.bib (casares.21.icalp): New entry.
* NEWS: Mention this.
2021-07-30 11:00:25 +02:00

1542 lines
71 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "found-hurricane",
"metadata": {},
"outputs": [],
"source": [
"import spot\n",
"spot.setup()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "colonial-testimony",
"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\">{3}</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\">{1}</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\">{3}</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\">{1}</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 0x7fefb0897c00> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(6, 7, False, False, False)"
]
},
"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); display(t)\n",
"t.num_branches(), t.first_branch(), t.has_rabin_shape(), t.has_streett_shape(), t.has_parity_shape()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "incorrect-protection",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7, 3)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(7, [3])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "rolled-command",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7, 2)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(7, [2])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "affecting-border",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(8, 1)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(7, [1])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "accepting-clerk",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(9, 2)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(8, [1])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "flexible-country",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(9, 3)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(9, [1])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "continental-sessions",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(8, 3)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(8, [3])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "expired-asian",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(10, 0)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(8, [0])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "binary-republic",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7, 0)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(10, [0,2])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "starting-liechtenstein",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(10, 0)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(7, [0,2])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "forced-canyon",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7, 4)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"t.step(7, [])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "floppy-chassis",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6, (Fin(0) & Inf(1)) | (Fin(2) & Inf(3)) | (Fin(4) & Inf(5)))\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 0x7fefb10dd300> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(6, 19, True, False, False)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = spot.acc_cond('Rabin 3')\n",
"print(c)\n",
"t = spot.zielonka_tree(c)\n",
"display(t)\n",
"t.num_branches(), t.first_branch(), t.has_rabin_shape(), t.has_streett_shape(), t.has_parity_shape()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "acquired-rogers",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6, (Fin(0) | Inf(1)) & (Fin(2) | Inf(3)) & (Fin(4) | Inf(5)))\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 0x7fefb083c900> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(6, 19, False, True, False)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = spot.acc_cond('Streett 3')\n",
"print(c)\n",
"t = spot.zielonka_tree(c)\n",
"display(t)\n",
"t.num_branches(), t.first_branch(), t.has_rabin_shape(), t.has_streett_shape(), t.has_parity_shape()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "minimal-douglas",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(5, (Inf(0) & Fin(1)) | (Inf(2) & Fin(3) & Fin(4)))\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 0x7fefb08a46f0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(2, 5, True, False, False)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = spot.acc_cond('Inf(0)&Fin(1) | (Inf(2)&Fin(3)&Fin(4))')\n",
"print(c)\n",
"t = spot.zielonka_tree(c)\n",
"display(t)\n",
"t.num_branches(), t.first_branch(), t.has_rabin_shape(), t.has_streett_shape(), t.has_parity_shape()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "tired-thumbnail",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(5, Fin(4) & (Inf(3) | (Fin(2) & (Inf(1) | Fin(0)))))\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\">{0,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=\"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\">{0,1,2}</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\">{0,1}</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\">{0}</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 0x7fefb08a48a0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(1, 4, True, True, True)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = spot.acc_cond('parity max odd 5')\n",
"print(c)\n",
"t = spot.zielonka_tree(c)\n",
"display(t)\n",
"t.num_branches(), t.first_branch(), t.has_rabin_shape(), t.has_streett_shape(), t.has_parity_shape()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "structured-palace",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(0, f)\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 0x7fefb08a43f0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(1, 0, True, True, True)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = spot.acc_cond('f')\n",
"print(c)\n",
"t = spot.zielonka_tree(c)\n",
"display(t)\n",
"t.num_branches(), t.first_branch(), t.has_rabin_shape(), t.has_streett_shape(), t.has_parity_shape()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "plain-modern",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(0, t)\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 0x7fefb08a43c0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(1, 0, True, True, True)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c = spot.acc_cond('t')\n",
"print(c)\n",
"t = spot.zielonka_tree(c)\n",
"display(t)\n",
"t.num_branches(), t.first_branch(), t.has_rabin_shape(), t.has_streett_shape(), t.has_parity_shape()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "interesting-seller",
"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
}