This is to workaround differences in minidom's pretty-printing that occurred between Python 3.7 and 3.8. * python/spot/jupyter.py (SVG): New class. * python/spot/__init__.py: Use it. * tests/python/_altscc.ipynb, tests/python/alternation.ipynb, tests/python/automata.ipynb, tests/python/formulas.ipynb, tests/python/gen.ipynb, tests/python/highlighting.ipynb, tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb, tests/python/product.ipynb, tests/python/randaut.ipynb, tests/python/testingaut.ipynb, tests/python/twagraph-internals.ipynb, tests/python/word.ipynb: Adjust.
2048 lines
122 KiB
Text
2048 lines
122 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import spot\n",
|
|
"import spot.ltsmin\n",
|
|
"# The following line causes the notebook to exit with 77 if divine is not \n",
|
|
"# installed, therefore skipping this test in the test suite.\n",
|
|
"spot.ltsmin.require('divine')\n",
|
|
"# This notebook also tests the limitation of the number of states in the GraphViz output\n",
|
|
"spot.setup(max_states=10)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"There are two ways to load a DiVinE model: from a file or from a cell. \n",
|
|
"\n",
|
|
"Loading from a file\n",
|
|
"-------------------\n",
|
|
"\n",
|
|
"We will first start with the file version, however because this notebook should also be a self-contained test case, we start by writing a model into a file."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"!rm -f test1.dve"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Writing test1.dve\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%file test1.dve\n",
|
|
"int a = 0, b = 0;\n",
|
|
"\n",
|
|
"process P {\n",
|
|
" state x;\n",
|
|
" init x;\n",
|
|
"\n",
|
|
" trans\n",
|
|
" x -> x { guard a < 3 && b < 3; effect a = a + 1; },\n",
|
|
" x -> x { guard a < 3 && b < 3; effect b = b + 1; };\n",
|
|
"}\n",
|
|
"\n",
|
|
"process Q {\n",
|
|
" state wait, work;\n",
|
|
" init wait;\n",
|
|
" trans\n",
|
|
" wait -> work { guard b > 1; },\n",
|
|
" work -> wait { guard a > 1; };\n",
|
|
"}\n",
|
|
"\n",
|
|
"system async;"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The `spot.ltsmin.load` function compiles the model using the `ltlmin` interface and load it. This should work with DiVinE models if `divine --LTSmin` works, and with Promela models if `spins` is installed."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"m = spot.ltsmin.load('test1.dve')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Compiling the model creates all several kinds of files. The `test1.dve` file is converted into a C++ source code `test1.dve.cpp` which is then compiled into a shared library `test1.dve2c`. Becauce `spot.ltsmin.load()` has already loaded this shared library, all those files can be erased. If you do not erase the files, `spot.ltsmin.load()` will use the timestamps to decide whether the library should be recompiled or not everytime you load the library.\n",
|
|
"\n",
|
|
"For editing and loading DVE file from a notebook, it is a better to use the `%%dve` as shown next."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"!rm -f test1.dve test1.dve.cpp test1.dve2C"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Loading from a notebook cell\n",
|
|
"----------------------------\n",
|
|
"\n",
|
|
"The `%%dve` cell magic implements all of the above steps (saving the model into a temporary file, compiling it, loading it, erasing the temporary files). The variable name that should receive the model (here `m`) should be indicated on the first line, after `%dve`."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"%%dve m\n",
|
|
"int a = 0, b = 0;\n",
|
|
"\n",
|
|
"process P {\n",
|
|
" state x;\n",
|
|
" init x;\n",
|
|
"\n",
|
|
" trans\n",
|
|
" x -> x { guard a < 3 && b < 3; effect a = a + 1; },\n",
|
|
" x -> x { guard a < 3 && b < 3; effect b = b + 1; };\n",
|
|
"}\n",
|
|
"\n",
|
|
"process Q {\n",
|
|
" state wait, work;\n",
|
|
" init wait;\n",
|
|
" trans\n",
|
|
" wait -> work { guard b > 1; },\n",
|
|
" work -> wait { guard a > 1; };\n",
|
|
"}\n",
|
|
"\n",
|
|
"system async;"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Working with an ltsmin model\n",
|
|
"----------------------------\n",
|
|
"\n",
|
|
"Printing an ltsmin model shows some information about the variables it contains and their types, however the `info()` methods provide the data in a map that is easier to work with."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"ltsmin model with the following variables:\n",
|
|
" a: int\n",
|
|
" b: int\n",
|
|
" P: ['x']\n",
|
|
" Q: ['wait', 'work']"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"m"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[('state_size', 4),\n",
|
|
" ('types', [('int', []), ('P', ['x']), ('Q', ['wait', 'work'])]),\n",
|
|
" ('variables', [('a', 0), ('b', 0), ('P', 1), ('Q', 2)])]"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"sorted(m.info().items())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"To obtain a Kripke structure, call `kripke` and supply a list of atomic propositions to observe in the model."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"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=\"734pt\" height=\"242pt\"\n",
|
|
" viewBox=\"0.00 0.00 734.00 242.46\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.6493506493506493 0.6493506493506493) rotate(0) translate(4 369.74)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-369.74 1127.41,-369.74 1127.41,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"558.71\" y=\"-350.54\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"550.71\" y=\"-335.54\" 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=\"150.14\" cy=\"-154.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"105.14\" y=\"-158.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"78.14\" y=\"-143.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-154.87C2.32,-154.87 13.67,-154.87 29.59,-154.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"36.68,-154.87 29.68,-158.02 33.18,-154.87 29.68,-154.87 29.68,-154.87 29.68,-154.87 33.18,-154.87 29.68,-151.72 36.68,-154.87 36.68,-154.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"415.24\" cy=\"-190.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"370.24\" y=\"-194.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"341.24\" y=\"-179.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M248.73,-168.22C268.01,-170.86 288.33,-173.64 307.88,-176.32\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"315.04,-177.3 307.68,-179.47 311.58,-176.82 308.11,-176.35 308.11,-176.35 308.11,-176.35 311.58,-176.82 308.54,-173.23 315.04,-177.3 315.04,-177.3\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"415.24\" cy=\"-118.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"370.24\" y=\"-122.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"343.24\" y=\"-107.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M248.73,-141.52C268.62,-138.8 289.61,-135.92 309.73,-133.17\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"316.8,-132.2 310.29,-136.27 313.33,-132.68 309.87,-133.15 309.87,-133.15 309.87,-133.15 313.33,-132.68 309.44,-130.03 316.8,-132.2 316.8,-132.2\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-226.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-230.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"609.17\" y=\"-215.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M515.64,-204.33C535.17,-206.97 555.74,-209.75 575.5,-212.43\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.45,-213.37 575.09,-215.55 578.98,-212.9 575.51,-212.43 575.51,-212.43 575.51,-212.43 578.98,-212.9 575.93,-209.31 582.45,-213.37 582.45,-213.37\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-154.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-158.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"609.17\" y=\"-143.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->4 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M515.64,-177.41C535.17,-174.77 555.74,-171.99 575.5,-169.31\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.45,-168.37 575.93,-172.43 578.98,-168.84 575.51,-169.31 575.51,-169.31 575.51,-169.31 578.98,-168.84 575.09,-166.19 582.45,-168.37 582.45,-168.37\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->4 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-132.12C534.13,-134.83 555.28,-137.69 575.57,-140.44\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.71,-141.41 575.35,-143.59 579.24,-140.94 575.77,-140.47 575.77,-140.47 575.77,-140.47 579.24,-140.94 576.19,-137.34 582.71,-141.41 582.71,-141.41\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-82.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-86.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"611.17\" y=\"-71.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->5 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-105.62C534.75,-102.83 556.59,-99.87 577.45,-97.05\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"584.49,-96.09 577.97,-100.15 581.02,-96.56 577.55,-97.03 577.55,-97.03 577.55,-97.03 581.02,-96.56 577.13,-93.91 584.49,-96.09 584.49,-96.09\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"948.27\" cy=\"-282.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"903.27\" y=\"-286.67\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"876.27\" y=\"-271.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->6 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M769.23,-244.97C797.05,-250.9 828.05,-257.49 856.29,-263.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"863.41,-265.02 855.9,-266.64 859.98,-264.29 856.56,-263.56 856.56,-263.56 856.56,-263.56 859.98,-264.29 857.22,-260.48 863.41,-265.02 863.41,-265.02\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"948.27\" cy=\"-210.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"903.27\" y=\"-214.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"943.27\" y=\"-199.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->7 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M795.75,-220.08C819.64,-218.63 844.42,-217.12 866.86,-215.76\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"874.05,-215.32 867.26,-218.89 870.56,-215.54 867.07,-215.75 867.07,-215.75 867.07,-215.75 870.56,-215.54 866.87,-212.6 874.05,-215.32 874.05,-215.32\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4->7 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M769.23,-172.97C803.85,-180.34 843.4,-188.76 876.42,-195.79\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"883.36,-197.27 875.86,-198.89 879.94,-196.54 876.51,-195.81 876.51,-195.81 876.51,-195.81 879.94,-196.54 877.17,-192.73 883.36,-197.27 883.36,-197.27\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"948.27\" cy=\"-138.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"903.27\" y=\"-142.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"943.27\" y=\"-127.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->8 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M795.75,-148.08C819.64,-146.63 844.42,-145.12 866.86,-143.76\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"874.05,-143.32 867.26,-146.89 870.56,-143.54 867.07,-143.75 867.07,-143.75 867.07,-143.75 870.56,-143.54 866.87,-140.6 874.05,-143.32 874.05,-143.32\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5->8 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>5->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M768.14,-100.74C802.96,-108.15 842.92,-116.66 876.25,-123.75\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"883.26,-125.24 875.76,-126.87 879.83,-124.52 876.41,-123.79 876.41,-123.79 876.41,-123.79 879.83,-124.52 877.07,-120.71 883.26,-125.24 883.26,-125.24\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u5 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>u5</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"961.27,-94.37 935.27,-94.37 935.27,-71.37 961.27,-71.37 961.27,-94.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"948.27\" y=\"-79.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->u5 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>5->u5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M796.51,-82.87C846.3,-82.87 899.84,-82.87 927.78,-82.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"934.95,-82.87 927.95,-86.02 931.45,-82.87 927.95,-82.87 927.95,-82.87 927.95,-82.87 931.45,-82.87 927.95,-79.72 934.95,-82.87 934.95,-82.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"948.27\" cy=\"-26.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"903.27\" y=\"-30.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"943.27\" y=\"-15.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->9 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>5->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M768.14,-65C802.96,-57.59 842.92,-49.08 876.25,-41.99\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"883.26,-40.5 877.07,-45.03 879.83,-41.22 876.41,-41.95 876.41,-41.95 876.41,-41.95 879.83,-41.22 875.76,-38.87 883.26,-40.5 883.26,-40.5\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6->6 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>6->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M918.02,-309.14C916.67,-319.3 926.76,-327.74 948.27,-327.74 964.41,-327.74 974.12,-322.99 977.4,-316.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"978.53,-309.14 980.55,-316.55 977.98,-312.6 977.44,-316.06 977.44,-316.06 977.44,-316.06 977.98,-312.6 974.33,-315.56 978.53,-309.14 978.53,-309.14\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u7 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>u7</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1123.41,-222.37 1097.41,-222.37 1097.41,-199.37 1123.41,-199.37 1123.41,-222.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1110.41\" y=\"-207.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->u7 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>7->u7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1023.25,-210.87C1047.98,-210.87 1073.49,-210.87 1090.27,-210.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1097.33,-210.87 1090.33,-214.02 1093.83,-210.87 1090.33,-210.87 1090.33,-210.87 1090.33,-210.87 1093.83,-210.87 1090.33,-207.72 1097.33,-210.87 1097.33,-210.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u8 -->\n",
|
|
"<g id=\"node14\" class=\"node\">\n",
|
|
"<title>u8</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1123.41,-150.37 1097.41,-150.37 1097.41,-127.37 1123.41,-127.37 1123.41,-150.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1110.41\" y=\"-135.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->u8 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>8->u8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1023.25,-138.87C1047.98,-138.87 1073.49,-138.87 1090.27,-138.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1097.33,-138.87 1090.33,-142.02 1093.83,-138.87 1090.33,-138.87 1090.33,-138.87 1090.33,-138.87 1093.83,-138.87 1090.33,-135.72 1097.33,-138.87 1097.33,-138.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u9 -->\n",
|
|
"<g id=\"node15\" class=\"node\">\n",
|
|
"<title>u9</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1123.41,-38.37 1097.41,-38.37 1097.41,-15.37 1123.41,-15.37 1123.41,-38.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1110.41\" y=\"-23.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->u9 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>9->u9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1023.25,-26.87C1047.98,-26.87 1073.49,-26.87 1090.27,-26.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1097.33,-26.87 1090.33,-30.02 1093.83,-26.87 1090.33,-26.87 1090.33,-26.87 1090.33,-26.87 1093.83,-26.87 1090.33,-23.72 1097.33,-26.87 1097.33,-26.87\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.impl.kripke; proxy of <Swig Object of type 'std::shared_ptr< spot::kripke > *' at 0x7f7618068570> >"
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"k = m.kripke([\"a<1\", \"b>2\"])\n",
|
|
"k"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"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=\"734pt\" height=\"219pt\"\n",
|
|
" viewBox=\"0.00 0.00 734.00 219.12\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.5235602094240838 0.5235602094240838) rotate(0) translate(4 413.74)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-413.74 1395.34,-413.74 1395.34,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"692.67\" y=\"-394.54\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"684.67\" y=\"-379.54\" 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=\"150.14\" cy=\"-182.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"105.14\" y=\"-186.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"78.14\" y=\"-171.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-182.87C2.32,-182.87 13.67,-182.87 29.59,-182.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"36.68,-182.87 29.68,-186.02 33.18,-182.87 29.68,-182.87 29.68,-182.87 29.68,-182.87 33.18,-182.87 29.68,-179.72 36.68,-182.87 36.68,-182.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"415.24\" cy=\"-218.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"370.24\" y=\"-222.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"341.24\" y=\"-207.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M248.73,-196.22C268.01,-198.86 288.33,-201.64 307.88,-204.32\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"315.04,-205.3 307.68,-207.47 311.58,-204.82 308.11,-204.35 308.11,-204.35 308.11,-204.35 311.58,-204.82 308.54,-201.23 315.04,-205.3 315.04,-205.3\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"415.24\" cy=\"-146.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"370.24\" y=\"-150.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"343.24\" y=\"-135.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M248.73,-169.52C268.62,-166.8 289.61,-163.92 309.73,-161.17\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"316.8,-160.2 310.29,-164.27 313.33,-160.68 309.87,-161.15 309.87,-161.15 309.87,-161.15 313.33,-160.68 309.44,-158.03 316.8,-160.2 316.8,-160.2\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-254.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-258.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"609.17\" y=\"-243.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M515.64,-232.33C535.17,-234.97 555.74,-237.75 575.5,-240.43\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.45,-241.37 575.09,-243.55 578.98,-240.9 575.51,-240.43 575.51,-240.43 575.51,-240.43 578.98,-240.9 575.93,-237.31 582.45,-241.37 582.45,-241.37\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-182.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-186.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"609.17\" y=\"-171.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->4 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M515.64,-205.41C535.17,-202.77 555.74,-199.99 575.5,-197.31\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.45,-196.37 575.93,-200.43 578.98,-196.84 575.51,-197.31 575.51,-197.31 575.51,-197.31 578.98,-196.84 575.09,-194.19 582.45,-196.37 582.45,-196.37\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->4 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-160.12C534.13,-162.83 555.28,-165.69 575.57,-168.44\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.71,-169.41 575.35,-171.59 579.24,-168.94 575.77,-168.47 575.77,-168.47 575.77,-168.47 579.24,-168.94 576.19,-165.34 582.71,-169.41 582.71,-169.41\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-110.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-114.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"611.17\" y=\"-99.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->5 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-133.62C534.75,-130.83 556.59,-127.87 577.45,-125.05\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"584.49,-124.09 577.97,-128.15 581.02,-124.56 577.55,-125.03 577.55,-125.03 577.55,-125.03 581.02,-124.56 577.13,-121.91 584.49,-124.09 584.49,-124.09\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-326.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-330.67\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"879.1\" y=\"-315.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->6 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M759.31,-275.21C793.44,-284.45 833.87,-295.4 868.72,-304.84\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"875.61,-306.7 868.03,-307.91 872.23,-305.79 868.85,-304.87 868.85,-304.87 868.85,-304.87 872.23,-305.79 869.68,-301.83 875.61,-306.7 875.61,-306.7\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-254.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-258.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"877.1\" y=\"-243.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->7 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M799.27,-254.87C808.66,-254.87 818.18,-254.87 827.63,-254.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"834.83,-254.87 827.83,-258.02 831.33,-254.87 827.83,-254.87 827.83,-254.87 827.83,-254.87 831.33,-254.87 827.83,-251.72 834.83,-254.87 834.83,-254.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4->7 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M759.31,-203.21C793.15,-212.38 833.19,-223.22 867.83,-232.6\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"874.69,-234.45 867.11,-235.66 871.31,-233.54 867.93,-232.62 867.93,-232.62 867.93,-232.62 871.31,-233.54 868.75,-229.58 874.69,-234.45 874.69,-234.45\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-182.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-186.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"877.1\" y=\"-171.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->8 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M799.27,-182.87C808.66,-182.87 818.18,-182.87 827.63,-182.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"834.83,-182.87 827.83,-186.02 831.33,-182.87 827.83,-182.87 827.83,-182.87 827.83,-182.87 831.33,-182.87 827.83,-179.72 834.83,-182.87 834.83,-182.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5->8 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>5->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M758.6,-131.02C792.6,-140.23 832.97,-151.16 867.86,-160.6\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"874.77,-162.47 867.19,-163.68 871.39,-161.56 868.01,-160.64 868.01,-160.64 868.01,-160.64 871.39,-161.56 868.83,-157.6 874.77,-162.47 874.77,-162.47\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-26.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-30.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"946.1\" y=\"-15.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->9 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>5->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M751.96,-89.46C793.65,-76.29 846.7,-59.53 887.41,-46.67\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"894.09,-44.56 888.37,-49.67 890.76,-45.62 887.42,-46.67 887.42,-46.67 887.42,-46.67 890.76,-45.62 886.47,-43.67 894.09,-44.56 894.09,-44.56\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 10 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>10</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-110.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-114.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"879.1\" y=\"-99.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->10 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>5->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M796.56,-110.87C807.83,-110.87 819.31,-110.87 830.64,-110.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"837.68,-110.87 830.68,-114.02 834.18,-110.87 830.68,-110.87 830.68,-110.87 830.68,-110.87 834.18,-110.87 830.68,-107.72 837.68,-110.87 837.68,-110.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6->6 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>6->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M902.38,-351.33C897.73,-362.28 913.98,-371.74 951.1,-371.74 979.53,-371.74 995.71,-366.19 999.65,-358.68\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"999.83,-351.33 1002.81,-358.41 999.74,-354.83 999.66,-358.33 999.66,-358.33 999.66,-358.33 999.74,-354.83 996.51,-358.25 999.83,-351.33 999.83,-351.33\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 11 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>11</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1216.2\" cy=\"-326.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1171.2\" y=\"-330.67\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1144.2\" y=\"-315.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->11 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>7->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1026.79,-275.31C1060.41,-284.51 1100.15,-295.38 1134.45,-304.77\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1141.24,-306.63 1133.65,-307.82 1137.86,-305.7 1134.49,-304.78 1134.49,-304.78 1134.49,-304.78 1137.86,-305.7 1135.32,-301.74 1141.24,-306.63 1141.24,-306.63\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 12 -->\n",
|
|
"<g id=\"node14\" class=\"node\">\n",
|
|
"<title>12</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1216.2\" cy=\"-254.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1171.2\" y=\"-258.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1211.2\" y=\"-243.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->12 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>7->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1067.12,-254.87C1089.61,-254.87 1112.75,-254.87 1133.86,-254.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1140.94,-254.87 1133.94,-258.02 1137.44,-254.87 1133.94,-254.87 1133.94,-254.87 1133.94,-254.87 1137.44,-254.87 1133.94,-251.72 1140.94,-254.87 1140.94,-254.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8->12 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>8->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1026.79,-203.31C1065.41,-213.88 1112.12,-226.66 1149.37,-236.85\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1156.21,-238.73 1148.63,-239.92 1152.83,-237.8 1149.46,-236.88 1149.46,-236.88 1149.46,-236.88 1152.83,-237.8 1150.29,-233.84 1156.21,-238.73 1156.21,-238.73\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 13 -->\n",
|
|
"<g id=\"node15\" class=\"node\">\n",
|
|
"<title>13</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1216.2\" cy=\"-182.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1171.2\" y=\"-186.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=3, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1211.2\" y=\"-171.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->13 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>8->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1067.12,-182.87C1089.61,-182.87 1112.75,-182.87 1133.86,-182.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1140.94,-182.87 1133.94,-186.02 1137.44,-182.87 1133.94,-182.87 1133.94,-182.87 1133.94,-182.87 1137.44,-182.87 1133.94,-179.72 1140.94,-182.87 1140.94,-182.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 14 -->\n",
|
|
"<g id=\"node16\" class=\"node\">\n",
|
|
"<title>14</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1216.2\" cy=\"-110.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1171.2\" y=\"-114.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1211.2\" y=\"-99.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->14 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>8->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1026.79,-162.43C1065.41,-151.86 1112.12,-139.08 1149.37,-128.89\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1156.21,-127.01 1150.29,-131.9 1152.83,-127.94 1149.46,-128.86 1149.46,-128.86 1149.46,-128.86 1152.83,-127.94 1148.63,-125.82 1156.21,-127.01 1156.21,-127.01\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u9 -->\n",
|
|
"<g id=\"node17\" class=\"node\">\n",
|
|
"<title>u9</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1229.2,-25.37 1203.2,-25.37 1203.2,-2.37 1229.2,-2.37 1229.2,-25.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1216.2\" y=\"-10.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->u9 -->\n",
|
|
"<g id=\"edge21\" class=\"edge\">\n",
|
|
"<title>9->u9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1025.39,-23.25C1083.35,-20.39 1160.21,-16.59 1195.71,-14.83\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1203.03,-14.47 1196.19,-17.96 1199.53,-14.64 1196.04,-14.82 1196.04,-14.82 1196.04,-14.82 1199.53,-14.64 1195.88,-11.67 1203.03,-14.47 1203.03,-14.47\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 10->14 -->\n",
|
|
"<g id=\"edge23\" class=\"edge\">\n",
|
|
"<title>10->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1064.44,-110.87C1087.76,-110.87 1111.9,-110.87 1133.84,-110.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1140.89,-110.87 1133.89,-114.02 1137.39,-110.87 1133.89,-110.87 1133.89,-110.87 1133.89,-110.87 1137.39,-110.87 1133.89,-107.72 1140.89,-110.87 1140.89,-110.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u10 -->\n",
|
|
"<g id=\"node18\" class=\"node\">\n",
|
|
"<title>u10</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1229.2,-66.37 1203.2,-66.37 1203.2,-43.37 1229.2,-43.37 1229.2,-66.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1216.2\" y=\"-51.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->u10 -->\n",
|
|
"<g id=\"edge22\" class=\"edge\">\n",
|
|
"<title>10->u10</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1029.87,-91.42C1053.33,-85.8 1079.19,-79.84 1103.07,-74.87 1135.59,-68.1 1173.73,-61.6 1196.1,-57.93\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1203.05,-56.8 1196.64,-61.04 1199.59,-57.36 1196.14,-57.93 1196.14,-57.93 1196.14,-57.93 1199.59,-57.36 1195.63,-54.82 1203.05,-56.8 1203.05,-56.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 11->11 -->\n",
|
|
"<g id=\"edge24\" class=\"edge\">\n",
|
|
"<title>11->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1185.95,-353.14C1184.6,-363.3 1194.69,-371.74 1216.2,-371.74 1232.34,-371.74 1242.05,-366.99 1245.33,-360.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1246.46,-353.14 1248.48,-360.55 1245.92,-356.6 1245.37,-360.06 1245.37,-360.06 1245.37,-360.06 1245.92,-356.6 1242.26,-359.56 1246.46,-353.14 1246.46,-353.14\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u12 -->\n",
|
|
"<g id=\"node19\" class=\"node\">\n",
|
|
"<title>u12</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1391.34,-266.37 1365.34,-266.37 1365.34,-243.37 1391.34,-243.37 1391.34,-266.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1378.34\" y=\"-251.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12->u12 -->\n",
|
|
"<g id=\"edge25\" class=\"edge\">\n",
|
|
"<title>12->u12</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1291.18,-254.87C1315.91,-254.87 1341.42,-254.87 1358.2,-254.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1365.26,-254.87 1358.26,-258.02 1361.76,-254.87 1358.26,-254.87 1358.26,-254.87 1358.26,-254.87 1361.76,-254.87 1358.26,-251.72 1365.26,-254.87 1365.26,-254.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u13 -->\n",
|
|
"<g id=\"node20\" class=\"node\">\n",
|
|
"<title>u13</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1391.34,-194.37 1365.34,-194.37 1365.34,-171.37 1391.34,-171.37 1391.34,-194.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1378.34\" y=\"-179.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 13->u13 -->\n",
|
|
"<g id=\"edge26\" class=\"edge\">\n",
|
|
"<title>13->u13</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1291.18,-182.87C1315.91,-182.87 1341.42,-182.87 1358.2,-182.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1365.26,-182.87 1358.26,-186.02 1361.76,-182.87 1358.26,-182.87 1358.26,-182.87 1358.26,-182.87 1361.76,-182.87 1358.26,-179.72 1365.26,-182.87 1365.26,-182.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u14 -->\n",
|
|
"<g id=\"node21\" class=\"node\">\n",
|
|
"<title>u14</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1391.34,-122.37 1365.34,-122.37 1365.34,-99.37 1391.34,-99.37 1391.34,-122.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1378.34\" y=\"-107.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14->u14 -->\n",
|
|
"<g id=\"edge27\" class=\"edge\">\n",
|
|
"<title>14->u14</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1291.18,-110.87C1315.91,-110.87 1341.42,-110.87 1358.2,-110.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1365.26,-110.87 1358.26,-114.02 1361.76,-110.87 1358.26,-110.87 1358.26,-110.87 1358.26,-110.87 1361.76,-110.87 1358.26,-107.72 1365.26,-110.87 1365.26,-110.87\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"k.show('.<15')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"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=\"734pt\" height=\"166pt\"\n",
|
|
" viewBox=\"0.00 0.00 734.00 165.54\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.390625 0.390625) rotate(0) translate(4 419.74)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-419.74 1874.86,-419.74 1874.86,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"932.43\" y=\"-400.54\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"924.43\" y=\"-385.54\" 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=\"150.14\" cy=\"-188.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"105.14\" y=\"-192.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"78.14\" y=\"-177.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-188.87C2.32,-188.87 13.67,-188.87 29.59,-188.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"36.68,-188.87 29.68,-192.02 33.18,-188.87 29.68,-188.87 29.68,-188.87 29.68,-188.87 33.18,-188.87 29.68,-185.72 36.68,-188.87 36.68,-188.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"415.24\" cy=\"-224.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"370.24\" y=\"-228.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"341.24\" y=\"-213.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M248.73,-202.22C268.01,-204.86 288.33,-207.64 307.88,-210.32\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"315.04,-211.3 307.68,-213.47 311.58,-210.82 308.11,-210.35 308.11,-210.35 308.11,-210.35 311.58,-210.82 308.54,-207.23 315.04,-211.3 315.04,-211.3\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"415.24\" cy=\"-152.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"370.24\" y=\"-156.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"343.24\" y=\"-141.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M248.73,-175.52C268.62,-172.8 289.61,-169.92 309.73,-167.17\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"316.8,-166.2 310.29,-170.27 313.33,-166.68 309.87,-167.15 309.87,-167.15 309.87,-167.15 313.33,-166.68 309.44,-164.03 316.8,-166.2 316.8,-166.2\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-260.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-264.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"609.17\" y=\"-249.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M515.64,-238.33C535.17,-240.97 555.74,-243.75 575.5,-246.43\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.45,-247.37 575.09,-249.55 578.98,-246.9 575.51,-246.43 575.51,-246.43 575.51,-246.43 578.98,-246.9 575.93,-243.31 582.45,-247.37 582.45,-247.37\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-188.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-192.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"609.17\" y=\"-177.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->4 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M515.64,-211.41C535.17,-208.77 555.74,-205.99 575.5,-203.31\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.45,-202.37 575.93,-206.43 578.98,-202.84 575.51,-203.31 575.51,-203.31 575.51,-203.31 578.98,-202.84 575.09,-200.19 582.45,-202.37 582.45,-202.37\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->4 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-166.12C534.13,-168.83 555.28,-171.69 575.57,-174.44\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.71,-175.41 575.35,-177.59 579.24,-174.94 575.77,-174.47 575.77,-174.47 575.77,-174.47 579.24,-174.94 576.19,-171.34 582.71,-175.41 582.71,-175.41\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-116.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-120.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"611.17\" y=\"-105.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->5 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-139.62C534.75,-136.83 556.59,-133.87 577.45,-131.05\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"584.49,-130.09 577.97,-134.15 581.02,-130.56 577.55,-131.03 577.55,-131.03 577.55,-131.03 581.02,-130.56 577.13,-127.91 584.49,-130.09 584.49,-130.09\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-332.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-336.67\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"879.1\" y=\"-321.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->6 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M759.31,-281.21C793.44,-290.45 833.87,-301.4 868.72,-310.84\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"875.61,-312.7 868.03,-313.91 872.23,-311.79 868.85,-310.87 868.85,-310.87 868.85,-310.87 872.23,-311.79 869.68,-307.83 875.61,-312.7 875.61,-312.7\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-260.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-264.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"877.1\" y=\"-249.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->7 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M799.27,-260.87C808.66,-260.87 818.18,-260.87 827.63,-260.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"834.83,-260.87 827.83,-264.02 831.33,-260.87 827.83,-260.87 827.83,-260.87 827.83,-260.87 831.33,-260.87 827.83,-257.72 834.83,-260.87 834.83,-260.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4->7 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M759.31,-209.21C793.15,-218.38 833.19,-229.22 867.83,-238.6\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"874.69,-240.45 867.11,-241.66 871.31,-239.54 867.93,-238.62 867.93,-238.62 867.93,-238.62 871.31,-239.54 868.75,-235.58 874.69,-240.45 874.69,-240.45\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-188.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-192.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"877.1\" y=\"-177.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->8 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M799.27,-188.87C808.66,-188.87 818.18,-188.87 827.63,-188.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"834.83,-188.87 827.83,-192.02 831.33,-188.87 827.83,-188.87 827.83,-188.87 827.83,-188.87 831.33,-188.87 827.83,-185.72 834.83,-188.87 834.83,-188.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5->8 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>5->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M758.6,-137.02C792.6,-146.23 832.97,-157.16 867.86,-166.6\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"874.77,-168.47 867.19,-169.68 871.39,-167.56 868.01,-166.64 868.01,-166.64 868.01,-166.64 871.39,-167.56 868.83,-163.6 874.77,-168.47 874.77,-168.47\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-35.87\" rx=\"110.12\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-39.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"881.1\" y=\"-24.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & "b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->9 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>5->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M753.69,-95.69C790.78,-84.4 836.47,-70.48 874.45,-58.91\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"881.45,-56.78 875.67,-61.84 878.1,-57.8 874.75,-58.82 874.75,-58.82 874.75,-58.82 878.1,-57.8 873.83,-55.81 881.45,-56.78 881.45,-56.78\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 10 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>10</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"951.1\" cy=\"-116.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"906.1\" y=\"-120.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"879.1\" y=\"-105.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->10 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>5->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M796.56,-116.87C807.83,-116.87 819.31,-116.87 830.64,-116.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"837.68,-116.87 830.68,-120.02 834.18,-116.87 830.68,-116.87 830.68,-116.87 830.68,-116.87 834.18,-116.87 830.68,-113.72 837.68,-116.87 837.68,-116.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6->6 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>6->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M902.01,-357.33C897.33,-368.28 913.7,-377.74 951.1,-377.74 979.74,-377.74 996.05,-372.19 1000.02,-364.68\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1000.2,-357.33 1003.18,-364.41 1000.11,-360.83 1000.03,-364.33 1000.03,-364.33 1000.03,-364.33 1000.11,-360.83 996.88,-364.25 1000.2,-357.33 1000.2,-357.33\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 11 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>11</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1219.03\" cy=\"-332.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1174.03\" y=\"-336.67\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1147.03\" y=\"-321.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->11 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>7->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1027.24,-281.21C1061.37,-290.45 1101.8,-301.4 1136.65,-310.84\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1143.54,-312.7 1135.96,-313.91 1140.16,-311.79 1136.78,-310.87 1136.78,-310.87 1136.78,-310.87 1140.16,-311.79 1137.61,-307.83 1143.54,-312.7 1143.54,-312.7\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 12 -->\n",
|
|
"<g id=\"node14\" class=\"node\">\n",
|
|
"<title>12</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1219.03\" cy=\"-260.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1174.03\" y=\"-264.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1145.03\" y=\"-249.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->12 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>7->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1067.2,-260.87C1076.59,-260.87 1086.11,-260.87 1095.56,-260.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1102.76,-260.87 1095.76,-264.02 1099.26,-260.87 1095.76,-260.87 1095.76,-260.87 1095.76,-260.87 1099.26,-260.87 1095.76,-257.72 1102.76,-260.87 1102.76,-260.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8->12 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>8->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1027.24,-209.21C1061.08,-218.38 1101.12,-229.22 1135.77,-238.6\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1142.62,-240.45 1135.04,-241.66 1139.24,-239.54 1135.86,-238.62 1135.86,-238.62 1135.86,-238.62 1139.24,-239.54 1136.69,-235.58 1142.62,-240.45 1142.62,-240.45\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 13 -->\n",
|
|
"<g id=\"node15\" class=\"node\">\n",
|
|
"<title>13</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1219.03\" cy=\"-188.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1174.03\" y=\"-192.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=3, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1147.03\" y=\"-177.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & "b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->13 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>8->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1067.2,-188.87C1077.58,-188.87 1088.1,-188.87 1098.52,-188.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1105.71,-188.87 1098.71,-192.02 1102.21,-188.87 1098.71,-188.87 1098.71,-188.87 1098.71,-188.87 1102.21,-188.87 1098.71,-185.72 1105.71,-188.87 1105.71,-188.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 14 -->\n",
|
|
"<g id=\"node16\" class=\"node\">\n",
|
|
"<title>14</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1219.03\" cy=\"-116.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1174.03\" y=\"-120.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1145.03\" y=\"-105.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->14 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>8->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1027.24,-168.53C1061.08,-159.36 1101.12,-148.52 1135.77,-139.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1142.62,-137.29 1136.69,-142.16 1139.24,-138.2 1135.86,-139.12 1135.86,-139.12 1135.86,-139.12 1139.24,-138.2 1135.04,-136.08 1142.62,-137.29 1142.62,-137.29\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 15 -->\n",
|
|
"<g id=\"node17\" class=\"node\">\n",
|
|
"<title>15</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1219.03\" cy=\"-26.87\" rx=\"107.46\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1174.03\" y=\"-30.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1151.03\" y=\"-15.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & "b>2" & dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->15 -->\n",
|
|
"<g id=\"edge21\" class=\"edge\">\n",
|
|
"<title>9->15</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1060.65,-32.2C1075.34,-31.7 1090.44,-31.19 1105.2,-30.69\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1112.41,-30.44 1105.52,-33.83 1108.91,-30.56 1105.42,-30.68 1105.42,-30.68 1105.42,-30.68 1108.91,-30.56 1105.31,-27.53 1112.41,-30.44 1112.41,-30.44\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 10->14 -->\n",
|
|
"<g id=\"edge22\" class=\"edge\">\n",
|
|
"<title>10->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1064.49,-116.87C1074.86,-116.87 1085.4,-116.87 1095.85,-116.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1103.06,-116.87 1096.06,-120.02 1099.56,-116.87 1096.06,-116.87 1096.06,-116.87 1096.06,-116.87 1099.56,-116.87 1096.06,-113.72 1103.06,-116.87 1103.06,-116.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 10->15 -->\n",
|
|
"<g id=\"edge23\" class=\"edge\">\n",
|
|
"<title>10->15</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1016.82,-94.97C1056.43,-81.56 1107.13,-64.4 1147.73,-50.66\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1154.41,-48.4 1148.79,-53.63 1151.09,-49.52 1147.78,-50.65 1147.78,-50.65 1147.78,-50.65 1151.09,-49.52 1146.77,-47.66 1154.41,-48.4 1154.41,-48.4\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 11->11 -->\n",
|
|
"<g id=\"edge24\" class=\"edge\">\n",
|
|
"<title>11->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1169.94,-357.33C1165.26,-368.28 1181.63,-377.74 1219.03,-377.74 1247.67,-377.74 1263.98,-372.19 1267.95,-364.68\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1268.13,-357.33 1271.11,-364.41 1268.04,-360.83 1267.96,-364.33 1267.96,-364.33 1267.96,-364.33 1268.04,-360.83 1264.81,-364.25 1268.13,-357.33 1268.13,-357.33\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 16 -->\n",
|
|
"<g id=\"node18\" class=\"node\">\n",
|
|
"<title>16</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1486.96\" cy=\"-332.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1441.96\" y=\"-336.67\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1412.96\" y=\"-321.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12->16 -->\n",
|
|
"<g id=\"edge25\" class=\"edge\">\n",
|
|
"<title>12->16</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1295.17,-281.21C1329.01,-290.38 1369.05,-301.22 1403.7,-310.6\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1410.55,-312.45 1402.97,-313.66 1407.17,-311.54 1403.79,-310.62 1403.79,-310.62 1403.79,-310.62 1407.17,-311.54 1404.62,-307.58 1410.55,-312.45 1410.55,-312.45\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 17 -->\n",
|
|
"<g id=\"node19\" class=\"node\">\n",
|
|
"<title>17</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1486.96\" cy=\"-188.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1441.96\" y=\"-192.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=3, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1414.96\" y=\"-177.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & "b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12->17 -->\n",
|
|
"<g id=\"edge26\" class=\"edge\">\n",
|
|
"<title>12->17</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1295.17,-240.53C1329.3,-231.29 1369.74,-220.34 1404.58,-210.9\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1411.47,-209.04 1405.54,-213.91 1408.09,-209.95 1404.71,-210.87 1404.71,-210.87 1404.71,-210.87 1408.09,-209.95 1403.89,-207.83 1411.47,-209.04 1411.47,-209.04\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 18 -->\n",
|
|
"<g id=\"node20\" class=\"node\">\n",
|
|
"<title>18</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1486.96\" cy=\"-260.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1441.96\" y=\"-264.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=2, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1412.96\" y=\"-249.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12->18 -->\n",
|
|
"<g id=\"edge27\" class=\"edge\">\n",
|
|
"<title>12->18</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1331.66,-254.2C1343.54,-254.11 1355.65,-254.1 1367.61,-254.16\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1374.63,-254.2 1367.61,-257.31 1371.13,-254.18 1367.63,-254.16 1367.63,-254.16 1367.63,-254.16 1371.13,-254.18 1367.65,-251.01 1374.63,-254.2 1374.63,-254.2\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 19 -->\n",
|
|
"<g id=\"node21\" class=\"node\">\n",
|
|
"<title>19</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1486.96\" cy=\"-98.87\" rx=\"110.12\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1441.96\" y=\"-102.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=3, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1416.96\" y=\"-87.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & "b>2" & dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 13->19 -->\n",
|
|
"<g id=\"edge28\" class=\"edge\">\n",
|
|
"<title>13->19</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1289.18,-167.71C1304.31,-162.94 1320.22,-157.82 1335,-152.87 1362.37,-143.69 1392.35,-133.09 1418.33,-123.72\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1425.19,-121.23 1419.68,-126.58 1421.9,-122.42 1418.61,-123.61 1418.61,-123.61 1418.61,-123.61 1421.9,-122.42 1417.54,-120.65 1425.19,-121.23 1425.19,-121.23\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 14->18 -->\n",
|
|
"<g id=\"edge29\" class=\"edge\">\n",
|
|
"<title>14->18</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1305.45,-134.94C1316.12,-139.61 1326.32,-145.48 1335,-152.87 1362.24,-176.06 1343.76,-201.68 1371,-224.87 1377.91,-230.76 1385.79,-235.69 1394.11,-239.81\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1400.54,-242.8 1392.87,-242.7 1397.37,-241.33 1394.2,-239.85 1394.2,-239.85 1394.2,-239.85 1397.37,-241.33 1395.53,-236.99 1400.54,-242.8 1400.54,-242.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 14->19 -->\n",
|
|
"<g id=\"edge30\" class=\"edge\">\n",
|
|
"<title>14->19</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1330.5,-109.39C1344.6,-108.44 1359.04,-107.46 1373.17,-106.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1380.53,-106.01 1373.76,-109.62 1377.04,-106.24 1373.55,-106.48 1373.55,-106.48 1373.55,-106.48 1377.04,-106.24 1373.34,-103.34 1380.53,-106.01 1380.53,-106.01\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 15->15 -->\n",
|
|
"<g id=\"edge31\" class=\"edge\">\n",
|
|
"<title>15->15</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1170.14,-50.87C1164.81,-62.01 1181.11,-71.74 1219.03,-71.74 1248.66,-71.74 1265.09,-65.8 1268.32,-57.89\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1267.92,-50.87 1271.46,-57.69 1268.12,-54.37 1268.31,-57.86 1268.31,-57.86 1268.31,-57.86 1268.12,-54.37 1265.17,-58.04 1267.92,-50.87 1267.92,-50.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 20 -->\n",
|
|
"<g id=\"node22\" class=\"node\">\n",
|
|
"<title>20</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1754.89\" cy=\"-332.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1709.89\" y=\"-336.67\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=2, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1680.89\" y=\"-321.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 16->20 -->\n",
|
|
"<g id=\"edge32\" class=\"edge\">\n",
|
|
"<title>16->20</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1599.59,-326.2C1611.47,-326.11 1623.58,-326.1 1635.54,-326.16\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1642.56,-326.2 1635.54,-329.31 1639.06,-326.18 1635.56,-326.16 1635.56,-326.16 1635.56,-326.16 1639.06,-326.18 1635.58,-323.01 1642.56,-326.2 1642.56,-326.2\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 21 -->\n",
|
|
"<g id=\"node23\" class=\"node\">\n",
|
|
"<title>21</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1754.89\" cy=\"-188.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1709.89\" y=\"-192.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=3, Q=1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1682.89\" y=\"-177.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & "b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17->21 -->\n",
|
|
"<g id=\"edge33\" class=\"edge\">\n",
|
|
"<title>17->21</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1596.9,-182.22C1610.45,-182.11 1624.36,-182.09 1638.02,-182.17\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1645.13,-182.22 1638.11,-185.32 1641.63,-182.2 1638.13,-182.17 1638.13,-182.17 1638.13,-182.17 1641.63,-182.2 1638.16,-179.02 1645.13,-182.22 1645.13,-182.22\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 18->12 -->\n",
|
|
"<g id=\"edge36\" class=\"edge\">\n",
|
|
"<title>18->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1374.63,-267.54C1362.75,-267.63 1350.63,-267.64 1338.68,-267.59\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1331.66,-267.54 1338.67,-264.44 1335.16,-267.56 1338.66,-267.59 1338.66,-267.59 1338.66,-267.59 1335.16,-267.56 1338.64,-270.74 1331.66,-267.54 1331.66,-267.54\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 18->20 -->\n",
|
|
"<g id=\"edge34\" class=\"edge\">\n",
|
|
"<title>18->20</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1563.1,-281.21C1596.94,-290.38 1636.98,-301.22 1671.63,-310.6\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1678.48,-312.45 1670.9,-313.66 1675.1,-311.54 1671.72,-310.62 1671.72,-310.62 1671.72,-310.62 1675.1,-311.54 1672.55,-307.58 1678.48,-312.45 1678.48,-312.45\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 18->21 -->\n",
|
|
"<g id=\"edge35\" class=\"edge\">\n",
|
|
"<title>18->21</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1563.1,-240.53C1597.23,-231.29 1637.67,-220.34 1672.51,-210.9\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1679.4,-209.04 1673.47,-213.91 1676.02,-209.95 1672.64,-210.87 1672.64,-210.87 1672.64,-210.87 1676.02,-209.95 1671.82,-207.83 1679.4,-209.04 1679.4,-209.04\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 19->19 -->\n",
|
|
"<g id=\"edge37\" class=\"edge\">\n",
|
|
"<title>19->19</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1437.87,-123.33C1433.19,-134.28 1449.56,-143.74 1486.96,-143.74 1515.6,-143.74 1531.91,-138.19 1535.88,-130.68\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1536.06,-123.33 1539.04,-130.41 1535.97,-126.83 1535.89,-130.33 1535.89,-130.33 1535.89,-130.33 1535.97,-126.83 1532.74,-130.25 1536.06,-123.33 1536.06,-123.33\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 20->16 -->\n",
|
|
"<g id=\"edge38\" class=\"edge\">\n",
|
|
"<title>20->16</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1642.56,-339.54C1630.68,-339.63 1618.56,-339.64 1606.61,-339.59\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1599.59,-339.54 1606.61,-336.44 1603.09,-339.56 1606.59,-339.59 1606.59,-339.59 1606.59,-339.59 1603.09,-339.56 1606.57,-342.74 1599.59,-339.54 1599.59,-339.54\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 21->17 -->\n",
|
|
"<g id=\"edge39\" class=\"edge\">\n",
|
|
"<title>21->17</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1645.13,-195.52C1631.58,-195.63 1617.67,-195.65 1604.01,-195.57\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1596.9,-195.52 1603.92,-192.42 1600.4,-195.55 1603.9,-195.57 1603.9,-195.57 1603.9,-195.57 1600.4,-195.55 1603.87,-198.72 1596.9,-195.52 1596.9,-195.52\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"k.show('.<0') # unlimited output"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"If we have an LTL proposition to check, we can convert it into an automaton using `spot.translate()`, and synchronize that automaton with the Kripke structure using `spot.otf_product()`. This `otf_product()` function returns product automaton that builds itself on-the-fly, as needed by whatever algorithm \"consumes\" it (here the display routine). "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"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=\"198pt\" height=\"125pt\"\n",
|
|
" viewBox=\"0.00 0.00 198.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 194,-120.8 194,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"72\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->1 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22 30.94,-25.15 34.44,-22 30.94,-22 30.94,-22 30.94,-22 34.44,-22 30.94,-18.85 37.94,-22 37.94,-22\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.04C48.32,-48.86 50.45,-58 56,-58 60.17,-58 62.4,-52.86 62.71,-46.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.04 65.85,-45.88 62.54,-42.53 62.71,-46.03 62.71,-46.03 62.71,-46.03 62.54,-42.53 59.56,-46.18 62.38,-39.04 62.38,-39.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"10.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2"</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"168\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<ellipse fill=\"none\" stroke=\"black\" cx=\"168\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"168\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M74.19,-22C91.41,-22 118.22,-22 138.6,-22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"145.79,-22 138.79,-25.15 142.29,-22 138.79,-22 138.79,-22 138.79,-22 142.29,-22 138.79,-18.85 145.79,-22 145.79,-22\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">"b>2"</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M157.57,-41.76C155.8,-52.35 159.28,-62 168,-62 174.68,-62 178.28,-56.34 178.81,-48.94\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"178.43,-41.76 181.94,-48.58 178.61,-45.25 178.8,-48.75 178.8,-48.75 178.8,-48.75 178.61,-45.25 175.65,-48.91 178.43,-41.76 178.43,-41.76\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"168\" y=\"-65.8\" 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 0x7f76180688d0> >"
|
|
]
|
|
},
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"a = spot.translate('\"a<1\" U \"b>2\"'); a"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"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=\"734pt\" height=\"119pt\"\n",
|
|
" viewBox=\"0.00 0.00 734.00 119.43\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.4587155963302752 0.4587155963302752) rotate(0) translate(4 256)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-256 1593.93,-256 1593.93,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"773.96\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"795.96\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"811.96\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"771.96\" y=\"-223.8\" 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=\"121.19\" cy=\"-171\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"65.19\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.09,-171C2.22,-171 14.42,-171 30.61,-171\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.77,-171 30.77,-174.15 34.27,-171 30.77,-171 30.77,-171 30.77,-171 34.27,-171 30.77,-167.85 37.77,-171 37.77,-171\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"467.58\" cy=\"-198\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"411.58\" y=\"-194.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M199.91,-177.09C254.13,-181.34 326.45,-187.01 382.1,-191.38\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"389.14,-191.93 381.92,-194.52 385.66,-191.66 382.17,-191.38 382.17,-191.38 382.17,-191.38 385.66,-191.66 382.41,-188.24 389.14,-191.93 389.14,-191.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"222.39\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"467.58\" cy=\"-144\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"411.58\" y=\"-140.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M193.29,-161.97C203.06,-160.88 212.96,-159.85 222.39,-159 274.29,-154.3 332.54,-150.66 379.12,-148.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"386.2,-147.77 379.38,-151.28 382.71,-147.95 379.21,-148.14 379.21,-148.14 379.21,-148.14 382.71,-147.95 379.04,-144.99 386.2,-147.77 386.2,-147.77\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"222.39\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"813.96\" cy=\"-171\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"757.96\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>2->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M546.29,-150.09C600.51,-154.34 672.84,-160.01 728.48,-164.38\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"735.53,-164.93 728.3,-167.52 732.04,-164.66 728.55,-164.38 728.55,-164.38 728.55,-164.38 732.04,-164.66 728.8,-161.24 735.53,-164.93 735.53,-164.93\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"568.77\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"813.96\" cy=\"-117\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"757.96\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->4 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>2->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M539.68,-134.97C549.44,-133.88 559.35,-132.85 568.77,-132 620.67,-127.3 678.92,-123.66 725.51,-121.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"732.59,-120.77 725.77,-124.28 729.09,-120.95 725.6,-121.14 725.6,-121.14 725.6,-121.14 729.09,-120.95 725.43,-117.99 732.59,-120.77 732.59,-120.77\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"568.77\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1160.35\" cy=\"-171\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1104.35\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->5 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>4->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M876.08,-129.04C888.97,-131.46 902.49,-133.89 915.16,-136 970.72,-145.25 1033.65,-154.23 1081.71,-160.78\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1088.69,-161.73 1081.33,-163.91 1085.22,-161.26 1081.76,-160.79 1081.76,-160.79 1081.76,-160.79 1085.22,-161.26 1082.18,-157.67 1088.69,-161.73 1088.69,-161.73\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"915.16\" y=\"-159.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1160.35\" cy=\"-117\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1104.35\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->6 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>4->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M897.45,-117C949.44,-117 1016.57,-117 1069.85,-117\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1076.94,-117 1069.94,-120.15 1073.44,-117 1069.94,-117 1069.94,-117 1069.94,-117 1073.44,-117 1069.94,-113.85 1076.94,-117 1076.94,-117\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"915.16\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1160.35\" cy=\"-63\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1104.35\" y=\"-59.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=1 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->7 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>4->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M876.08,-104.96C888.97,-102.54 902.49,-100.11 915.16,-98 970.72,-88.75 1033.65,-79.77 1081.71,-73.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1088.69,-72.27 1082.18,-76.33 1085.22,-72.74 1081.76,-73.21 1081.76,-73.21 1081.76,-73.21 1085.22,-72.74 1081.33,-70.09 1088.69,-72.27 1088.69,-72.27\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"915.16\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1506.73\" cy=\"-117\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1450.73\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=1 * 0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->8 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>6->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1243.84,-117C1295.83,-117 1362.95,-117 1416.23,-117\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1423.32,-117 1416.32,-120.15 1419.82,-117 1416.32,-117 1416.32,-117 1416.32,-117 1419.82,-117 1416.32,-113.85 1423.32,-117 1423.32,-117\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1263.54\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & "b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- u7 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>u7</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1519.73,-77.5 1493.73,-77.5 1493.73,-54.5 1519.73,-54.5 1519.73,-77.5\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1506.73\" y=\"-62.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->u7 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>7->u7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1243.84,-63.72C1324.16,-64.42 1440.61,-65.43 1486.3,-65.83\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1493.5,-65.89 1486.47,-68.98 1490,-65.86 1486.5,-65.83 1486.5,-65.83 1486.5,-65.83 1490,-65.86 1486.53,-62.68 1493.5,-65.89 1493.5,-65.89\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1506.73\" cy=\"-18\" rx=\"83.39\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1450.73\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=1 * 1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->9 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>7->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1221.61,-50.75C1234.74,-48.31 1248.58,-45.92 1261.54,-44 1314.7,-36.14 1374.7,-29.72 1421.92,-25.22\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1429.09,-24.55 1422.42,-28.34 1425.61,-24.88 1422.12,-25.21 1422.12,-25.21 1422.12,-25.21 1425.61,-24.88 1421.83,-22.07 1429.09,-24.55 1429.09,-24.55\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1261.54\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->8 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>8->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1476.26,-134.04C1470.04,-143.86 1480.19,-153 1506.73,-153 1526.64,-153 1537.33,-147.86 1538.81,-141.14\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1537.21,-134.04 1541.82,-140.18 1537.98,-137.45 1538.74,-140.87 1538.74,-140.87 1538.74,-140.87 1537.98,-137.45 1535.67,-141.56 1537.21,-134.04 1537.21,-134.04\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1438.73\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & "b>2" & dead</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1498.73\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7f7618068d80> >"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.otf_product(k, a)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"If we want to create a `model_check` function that takes a model and formula, we need to get the list of atomic propositions used in the formula using `atomic_prop_collect()`. This returns an `atomic_prop_set`:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\{\\unicode{x201C}\\mathit{a < 2}\\unicode{x201D}, \\unicode{x201C}\\mathit{b == 1}\\unicode{x201D}\\}$"
|
|
],
|
|
"text/plain": [
|
|
"spot.atomic_prop_set([spot.formula(\"\\\"a < 2\\\"\"), spot.formula(\"\\\"b == 1\\\"\")])"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"a = spot.atomic_prop_collect(spot.formula('\"a < 2\" W \"b == 1\"')); a"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def model_check(f, m):\n",
|
|
" nf = spot.formula.Not(f)\n",
|
|
" ss = m.kripke(spot.atomic_prop_collect(nf))\n",
|
|
" return spot.otf_product(ss, nf.translate()).is_empty() "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"False"
|
|
]
|
|
},
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"model_check('\"a<1\" R \"b > 1\"', m)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Instead of `otf_product(x, y).is_empty()` we prefer to call `!x.intersects(y)`. There is also `x.intersecting_run(y)` that can be used to return a counterexample."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def model_debug(f, m):\n",
|
|
" nf = spot.formula.Not(f)\n",
|
|
" ss = m.kripke(spot.atomic_prop_collect(nf))\n",
|
|
" return ss.intersecting_run(nf.translate())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Prefix:\n",
|
|
" a=0, b=0, Q=0\n",
|
|
" | \"a<1\" & !\"b > 1\" & !dead\n",
|
|
" a=1, b=0, Q=0\n",
|
|
" | !\"a<1\" & !\"b > 1\" & !dead\n",
|
|
" a=2, b=0, Q=0\n",
|
|
" | !\"a<1\" & !\"b > 1\" & !dead\n",
|
|
"Cycle:\n",
|
|
" a=3, b=0, Q=0\n",
|
|
" | !\"a<1\" & !\"b > 1\" & dead\n",
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"run = model_debug('\"a<1\" R \"b > 1\"', m); print(run)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"This accepting run can be represented as an automaton (the `True` argument requires the state names to be preserved). This can be more readable."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"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=\"734pt\" height=\"72pt\"\n",
|
|
" viewBox=\"0.00 0.00 734.00 71.98\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.625 0.625) rotate(0) translate(4 111)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-111 1168.76,-111 1168.76,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"579.38\" y=\"-91.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"571.38\" y=\"-76.8\" 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=\"106.89\" cy=\"-18\" rx=\"68.79\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"61.89\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.08,-18C2.16,-18 14.75,-18 30.85,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-18 30.94,-21.15 34.44,-18 30.94,-18 30.94,-18 30.94,-18 34.44,-18 30.94,-14.85 37.94,-18 37.94,-18\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"431.68\" cy=\"-18\" rx=\"68.79\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"386.68\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M175.95,-18C228.53,-18 301.24,-18 355.52,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"362.71,-18 355.71,-21.15 359.21,-18 355.71,-18 355.71,-18 355.71,-18 359.21,-18 355.71,-14.85 362.71,-18 362.71,-18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"193.79\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b > 1" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"760.47\" cy=\"-18\" rx=\"68.79\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"715.47\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M500.79,-18C554.32,-18 628.81,-18 684.12,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"691.45,-18 684.45,-21.15 687.95,-18 684.45,-18 684.45,-18 684.45,-18 687.95,-18 684.45,-14.85 691.45,-18 691.45,-18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"518.58\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b > 1" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"1089.26\" cy=\"-18\" rx=\"68.79\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1044.26\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>2->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M829.58,-18C883.1,-18 957.6,-18 1012.91,-18\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1020.24,-18 1013.24,-21.15 1016.74,-18 1013.24,-18 1013.24,-18 1013.24,-18 1016.74,-18 1013.24,-14.85 1020.24,-18 1020.24,-18\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"847.36\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b > 1" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1060.43,-34.66C1054.02,-44.62 1063.63,-54 1089.26,-54 1108.88,-54 1119.11,-48.5 1119.95,-41.46\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1118.09,-34.66 1122.98,-40.58 1119.01,-38.04 1119.94,-41.41 1119.94,-41.41 1119.94,-41.41 1119.01,-38.04 1116.9,-42.25 1118.09,-34.66 1118.09,-34.66\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1013.76\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b > 1" & dead</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 0x7f761806f330> >"
|
|
]
|
|
},
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"run.as_twa(True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Saving Kripke structures to some file\n",
|
|
"\n",
|
|
"For experiments, it is sometime useful to save a Kripke structure in the HOA format. The HOA printer will automatically use `state-labels` for Kripke structures."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"HOA: v1\n",
|
|
"States: 22\n",
|
|
"Start: 0\n",
|
|
"AP: 3 \"a<1\" \"b>2\" \"dead\"\n",
|
|
"acc-name: all\n",
|
|
"Acceptance: 0 t\n",
|
|
"properties: state-labels explicit-labels state-acc\n",
|
|
"--BODY--\n",
|
|
"State: [0&!1&!2] 0 \"a=0, b=0, Q=0\"\n",
|
|
"1 2\n",
|
|
"State: [!0&!1&!2] 1 \"a=1, b=0, Q=0\"\n",
|
|
"3 4\n",
|
|
"State: [0&!1&!2] 2 \"a=0, b=1, Q=0\"\n",
|
|
"4 5\n",
|
|
"State: [!0&!1&!2] 3 \"a=2, b=0, Q=0\"\n",
|
|
"6 7\n",
|
|
"State: [!0&!1&!2] 4 \"a=1, b=1, Q=0\"\n",
|
|
"7 8\n",
|
|
"State: [0&!1&!2] 5 \"a=0, b=2, Q=0\"\n",
|
|
"8 9 10\n",
|
|
"State: [!0&!1&2] 6 \"a=3, b=0, Q=0\"\n",
|
|
"6\n",
|
|
"State: [!0&!1&!2] 7 \"a=2, b=1, Q=0\"\n",
|
|
"11 12\n",
|
|
"State: [!0&!1&!2] 8 \"a=1, b=2, Q=0\"\n",
|
|
"12 13 14\n",
|
|
"State: [0&1&!2] 9 \"a=0, b=3, Q=0\"\n",
|
|
"15\n",
|
|
"State: [0&!1&!2] 10 \"a=0, b=2, Q=1\"\n",
|
|
"14 15\n",
|
|
"State: [!0&!1&2] 11 \"a=3, b=1, Q=0\"\n",
|
|
"11\n",
|
|
"State: [!0&!1&!2] 12 \"a=2, b=2, Q=0\"\n",
|
|
"16 17 18\n",
|
|
"State: [!0&1&!2] 13 \"a=1, b=3, Q=0\"\n",
|
|
"19\n",
|
|
"State: [!0&!1&!2] 14 \"a=1, b=2, Q=1\"\n",
|
|
"18 19\n",
|
|
"State: [0&1&2] 15 \"a=0, b=3, Q=1\"\n",
|
|
"15\n",
|
|
"State: [!0&!1&!2] 16 \"a=3, b=2, Q=0\"\n",
|
|
"20\n",
|
|
"State: [!0&1&!2] 17 \"a=2, b=3, Q=0\"\n",
|
|
"21\n",
|
|
"State: [!0&!1&!2] 18 \"a=2, b=2, Q=1\"\n",
|
|
"20 21 12\n",
|
|
"State: [!0&1&2] 19 \"a=1, b=3, Q=1\"\n",
|
|
"19\n",
|
|
"State: [!0&!1&!2] 20 \"a=3, b=2, Q=1\"\n",
|
|
"16\n",
|
|
"State: [!0&1&!2] 21 \"a=2, b=3, Q=1\"\n",
|
|
"17\n",
|
|
"--END--\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"string = k.to_str('hoa')\n",
|
|
"print(string)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"You can load this as a Kripke structure by passing the `want_kripke` option to `spot.automaton()`. The type `kripke_graph` stores the Kripke structure explicitely (like a `twa_graph` stores an automaton explicitely), so you may want to avoid it for very large modelsand use it only for development."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<class 'spot.impl.kripke_graph'>\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",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"734pt\" height=\"242pt\"\n",
|
|
" viewBox=\"0.00 0.00 734.00 242.46\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.6493506493506493 0.6493506493506493) rotate(0) translate(4 369.74)\">\n",
|
|
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-369.74 1127.41,-369.74 1127.41,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"558.71\" y=\"-350.54\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"550.71\" y=\"-335.54\" 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=\"150.14\" cy=\"-154.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"105.14\" y=\"-158.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"78.14\" y=\"-143.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-154.87C2.32,-154.87 13.67,-154.87 29.59,-154.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"36.68,-154.87 29.68,-158.02 33.18,-154.87 29.68,-154.87 29.68,-154.87 29.68,-154.87 33.18,-154.87 29.68,-151.72 36.68,-154.87 36.68,-154.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"415.24\" cy=\"-190.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"370.24\" y=\"-194.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"341.24\" y=\"-179.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M248.73,-168.22C268.01,-170.86 288.33,-173.64 307.88,-176.32\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"315.04,-177.3 307.68,-179.47 311.58,-176.82 308.11,-176.35 308.11,-176.35 308.11,-176.35 311.58,-176.82 308.54,-173.23 315.04,-177.3 315.04,-177.3\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"415.24\" cy=\"-118.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"370.24\" y=\"-122.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"343.24\" y=\"-107.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M248.73,-141.52C268.62,-138.8 289.61,-135.92 309.73,-133.17\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"316.8,-132.2 310.29,-136.27 313.33,-132.68 309.87,-133.15 309.87,-133.15 309.87,-133.15 313.33,-132.68 309.44,-130.03 316.8,-132.2 316.8,-132.2\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-226.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-230.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"609.17\" y=\"-215.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M515.64,-204.33C535.17,-206.97 555.74,-209.75 575.5,-212.43\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.45,-213.37 575.09,-215.55 578.98,-212.9 575.51,-212.43 575.51,-212.43 575.51,-212.43 578.98,-212.9 575.93,-209.31 582.45,-213.37 582.45,-213.37\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-154.87\" rx=\"115.93\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-158.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"609.17\" y=\"-143.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->4 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M515.64,-177.41C535.17,-174.77 555.74,-171.99 575.5,-169.31\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.45,-168.37 575.93,-172.43 578.98,-168.84 575.51,-169.31 575.51,-169.31 575.51,-169.31 578.98,-168.84 575.09,-166.19 582.45,-168.37 582.45,-168.37\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->4 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-132.12C534.13,-134.83 555.28,-137.69 575.57,-140.44\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"582.71,-141.41 575.35,-143.59 579.24,-140.94 575.77,-140.47 575.77,-140.47 575.77,-140.47 579.24,-140.94 576.19,-137.34 582.71,-141.41 582.71,-141.41\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"683.17\" cy=\"-82.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"638.17\" y=\"-86.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"611.17\" y=\"-71.67\" font-family=\"Lato\" font-size=\"14.00\">"a<1" & !"b>2" & !dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->5 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M514.13,-105.62C534.75,-102.83 556.59,-99.87 577.45,-97.05\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"584.49,-96.09 577.97,-100.15 581.02,-96.56 577.55,-97.03 577.55,-97.03 577.55,-97.03 581.02,-96.56 577.13,-93.91 584.49,-96.09 584.49,-96.09\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"948.27\" cy=\"-282.87\" rx=\"113.27\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"903.27\" y=\"-286.67\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"876.27\" y=\"-271.67\" font-family=\"Lato\" font-size=\"14.00\">!"a<1" & !"b>2" & dead</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->6 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M769.23,-244.97C797.05,-250.9 828.05,-257.49 856.29,-263.5\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"863.41,-265.02 855.9,-266.64 859.98,-264.29 856.56,-263.56 856.56,-263.56 856.56,-263.56 859.98,-264.29 857.22,-260.48 863.41,-265.02 863.41,-265.02\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"948.27\" cy=\"-210.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"903.27\" y=\"-214.67\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=1, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"943.27\" y=\"-199.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->7 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M795.75,-220.08C819.64,-218.63 844.42,-217.12 866.86,-215.76\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"874.05,-215.32 867.26,-218.89 870.56,-215.54 867.07,-215.75 867.07,-215.75 867.07,-215.75 870.56,-215.54 866.87,-212.6 874.05,-215.32 874.05,-215.32\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4->7 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M769.23,-172.97C803.85,-180.34 843.4,-188.76 876.42,-195.79\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"883.36,-197.27 875.86,-198.89 879.94,-196.54 876.51,-195.81 876.51,-195.81 876.51,-195.81 879.94,-196.54 877.17,-192.73 883.36,-197.27 883.36,-197.27\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"948.27\" cy=\"-138.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"903.27\" y=\"-142.67\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"943.27\" y=\"-127.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->8 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M795.75,-148.08C819.64,-146.63 844.42,-145.12 866.86,-143.76\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"874.05,-143.32 867.26,-146.89 870.56,-143.54 867.07,-143.75 867.07,-143.75 867.07,-143.75 870.56,-143.54 866.87,-140.6 874.05,-143.32 874.05,-143.32\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5->8 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>5->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M768.14,-100.74C802.96,-108.15 842.92,-116.66 876.25,-123.75\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"883.26,-125.24 875.76,-126.87 879.83,-124.52 876.41,-123.79 876.41,-123.79 876.41,-123.79 879.83,-124.52 877.07,-120.71 883.26,-125.24 883.26,-125.24\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u5 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>u5</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"961.27,-94.37 935.27,-94.37 935.27,-71.37 961.27,-71.37 961.27,-94.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"948.27\" y=\"-79.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->u5 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>5->u5</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M796.51,-82.87C846.3,-82.87 899.84,-82.87 927.78,-82.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"934.95,-82.87 927.95,-86.02 931.45,-82.87 927.95,-82.87 927.95,-82.87 927.95,-82.87 931.45,-82.87 927.95,-79.72 934.95,-82.87 934.95,-82.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"948.27\" cy=\"-26.87\" rx=\"74.91\" ry=\"26.74\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"903.27\" y=\"-30.67\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"943.27\" y=\"-15.67\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->9 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>5->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M768.14,-65C802.96,-57.59 842.92,-49.08 876.25,-41.99\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"883.26,-40.5 877.07,-45.03 879.83,-41.22 876.41,-41.95 876.41,-41.95 876.41,-41.95 879.83,-41.22 875.76,-38.87 883.26,-40.5 883.26,-40.5\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6->6 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>6->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" d=\"M918.02,-309.14C916.67,-319.3 926.76,-327.74 948.27,-327.74 964.41,-327.74 974.12,-322.99 977.4,-316.33\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"978.53,-309.14 980.55,-316.55 977.98,-312.6 977.44,-316.06 977.44,-316.06 977.44,-316.06 977.98,-312.6 974.33,-315.56 978.53,-309.14 978.53,-309.14\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u7 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>u7</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1123.41,-222.37 1097.41,-222.37 1097.41,-199.37 1123.41,-199.37 1123.41,-222.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1110.41\" y=\"-207.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->u7 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>7->u7</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1023.25,-210.87C1047.98,-210.87 1073.49,-210.87 1090.27,-210.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1097.33,-210.87 1090.33,-214.02 1093.83,-210.87 1090.33,-210.87 1090.33,-210.87 1090.33,-210.87 1093.83,-210.87 1090.33,-207.72 1097.33,-210.87 1097.33,-210.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u8 -->\n",
|
|
"<g id=\"node14\" class=\"node\">\n",
|
|
"<title>u8</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1123.41,-150.37 1097.41,-150.37 1097.41,-127.37 1123.41,-127.37 1123.41,-150.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1110.41\" y=\"-135.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->u8 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>8->u8</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1023.25,-138.87C1047.98,-138.87 1073.49,-138.87 1090.27,-138.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1097.33,-138.87 1090.33,-142.02 1093.83,-138.87 1090.33,-138.87 1090.33,-138.87 1090.33,-138.87 1093.83,-138.87 1090.33,-135.72 1097.33,-138.87 1097.33,-138.87\"/>\n",
|
|
"</g>\n",
|
|
"<!-- u9 -->\n",
|
|
"<g id=\"node15\" class=\"node\">\n",
|
|
"<title>u9</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"transparent\" points=\"1123.41,-38.37 1097.41,-38.37 1097.41,-15.37 1123.41,-15.37 1123.41,-38.37\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1110.41\" y=\"-23.17\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->u9 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>9->u9</title>\n",
|
|
"<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1023.25,-26.87C1047.98,-26.87 1073.49,-26.87 1090.27,-26.87\"/>\n",
|
|
"<polygon fill=\"black\" stroke=\"black\" points=\"1097.33,-26.87 1090.33,-30.02 1093.83,-26.87 1090.33,-26.87 1090.33,-26.87 1090.33,-26.87 1093.83,-26.87 1090.33,-23.72 1097.33,-26.87 1097.33,-26.87\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.impl.kripke_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::kripke_graph > *' at 0x7f7618068390> >"
|
|
]
|
|
},
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"k2 = spot.automaton(string, want_kripke=True)\n",
|
|
"print(type(k2))\n",
|
|
"k2"
|
|
]
|
|
}
|
|
],
|
|
"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.7.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|