1{
2 "cells": [
3  {
4   "cell_type": "code",
5   "execution_count": 1,
6   "metadata": {},
7   "outputs": [],
8   "source": [
9    "import spot\n",
10    "import spot.ltsmin\n",
11    "# The following line causes the notebook to exit with 77 if divine is not \n",
12    "# installed, therefore skipping this test in the test suite.\n",
13    "spot.ltsmin.require('divine')\n",
14    "# This notebook also tests the limitation of the number of states in the GraphViz output\n",
15    "spot.setup(max_states=10)"
16   ]
17  },
18  {
19   "cell_type": "markdown",
20   "metadata": {},
21   "source": [
22    "There are two ways to load a DiVinE model: from a file or from a cell.   \n",
23    "\n",
24    "Loading from a file\n",
25    "-------------------\n",
26    "\n",
27    "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."
28   ]
29  },
30  {
31   "cell_type": "code",
32   "execution_count": 2,
33   "metadata": {},
34   "outputs": [],
35   "source": [
36    "!rm -f test1.dve"
37   ]
38  },
39  {
40   "cell_type": "code",
41   "execution_count": 3,
42   "metadata": {},
43   "outputs": [
44    {
45     "name": "stdout",
46     "output_type": "stream",
47     "text": [
48      "Writing test1.dve\n"
49     ]
50    }
51   ],
52   "source": [
53    "%%file test1.dve\n",
54    "int a = 0, b = 0;\n",
55    "\n",
56    "process P {\n",
57    " state x;\n",
58    " init x;\n",
59    "\n",
60    " trans\n",
61    "   x -> x { guard a < 3 && b < 3; effect a = a + 1; },\n",
62    "   x -> x { guard a < 3 && b < 3; effect b = b + 1; };\n",
63    "}\n",
64    "\n",
65    "process Q {\n",
66    "  state wait, work;\n",
67    "  init wait;\n",
68    "  trans\n",
69    "    wait -> work { guard b > 1; },\n",
70    "    work -> wait { guard a > 1; };\n",
71    "}\n",
72    "\n",
73    "system async;"
74   ]
75  },
76  {
77   "cell_type": "markdown",
78   "metadata": {},
79   "source": [
80    "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."
81   ]
82  },
83  {
84   "cell_type": "code",
85   "execution_count": 4,
86   "metadata": {},
87   "outputs": [],
88   "source": [
89    "m = spot.ltsmin.load('test1.dve')"
90   ]
91  },
92  {
93   "cell_type": "markdown",
94   "metadata": {},
95   "source": [
96    "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",
97    "\n",
98    "For editing and loading DVE file from a notebook, it is a better to use the `%%dve` as shown next."
99   ]
100  },
101  {
102   "cell_type": "code",
103   "execution_count": 5,
104   "metadata": {},
105   "outputs": [],
106   "source": [
107    "!rm -f test1.dve test1.dve.cpp test1.dve2C"
108   ]
109  },
110  {
111   "cell_type": "markdown",
112   "metadata": {},
113   "source": [
114    "Loading from a notebook cell\n",
115    "----------------------------\n",
116    "\n",
117    "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`."
118   ]
119  },
120  {
121   "cell_type": "code",
122   "execution_count": 6,
123   "metadata": {},
124   "outputs": [],
125   "source": [
126    "%%dve m\n",
127    "int a = 0, b = 0;\n",
128    "\n",
129    "process P {\n",
130    " state x;\n",
131    " init x;\n",
132    "\n",
133    " trans\n",
134    "   x -> x { guard a < 3 && b < 3; effect a = a + 1; },\n",
135    "   x -> x { guard a < 3 && b < 3; effect b = b + 1; };\n",
136    "}\n",
137    "\n",
138    "process Q {\n",
139    "  state wait, work;\n",
140    "  init wait;\n",
141    "  trans\n",
142    "    wait -> work { guard b > 1; },\n",
143    "    work -> wait { guard a > 1; };\n",
144    "}\n",
145    "\n",
146    "system async;"
147   ]
148  },
149  {
150   "cell_type": "markdown",
151   "metadata": {},
152   "source": [
153    "Working with an ltsmin model\n",
154    "----------------------------\n",
155    "\n",
156    "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."
157   ]
158  },
159  {
160   "cell_type": "code",
161   "execution_count": 7,
162   "metadata": {},
163   "outputs": [
164    {
165     "data": {
166      "text/plain": [
167       "ltsmin model with the following variables:\n",
168       "  a: int\n",
169       "  b: int\n",
170       "  P: ['x']\n",
171       "  Q: ['wait', 'work']"
172      ]
173     },
174     "execution_count": 7,
175     "metadata": {},
176     "output_type": "execute_result"
177    }
178   ],
179   "source": [
180    "m"
181   ]
182  },
183  {
184   "cell_type": "code",
185   "execution_count": 8,
186   "metadata": {},
187   "outputs": [
188    {
189     "data": {
190      "text/plain": [
191       "[('state_size', 4),\n",
192       " ('types', [('int', []), ('P', ['x']), ('Q', ['wait', 'work'])]),\n",
193       " ('variables', [('a', 0), ('b', 0), ('P', 1), ('Q', 2)])]"
194      ]
195     },
196     "execution_count": 8,
197     "metadata": {},
198     "output_type": "execute_result"
199    }
200   ],
201   "source": [
202    "sorted(m.info().items())"
203   ]
204  },
205  {
206   "cell_type": "markdown",
207   "metadata": {},
208   "source": [
209    "To obtain a Kripke structure, call `kripke` and supply a list of atomic propositions to observe in the model."
210   ]
211  },
212  {
213   "cell_type": "code",
214   "execution_count": 9,
215   "metadata": {},
216   "outputs": [
217    {
218     "data": {
219      "image/svg+xml": [
220       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
221       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
222       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
223       "<!-- Generated by graphviz version 2.43.0 (0)\n",
224       " -->\n",
225       "<!-- Pages: 1 -->\n",
226       "<svg width=\"734pt\" height=\"270pt\"\n",
227       " viewBox=\"0.00 0.00 734.00 270.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
228       "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.8695652173913044 0.8695652173913044) rotate(0) translate(4 308)\">\n",
229       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-308 843,-308 843,4 -4,4\"/>\n",
230       "<text text-anchor=\"start\" x=\"416.5\" y=\"-288.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
231       "<text text-anchor=\"start\" x=\"408.5\" y=\"-273.8\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
232       "<!-- I -->\n",
233       "<!-- 0 -->\n",
234       "<g id=\"node2\" class=\"node\">\n",
235       "<title>0</title>\n",
236       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M181,-143C181,-143 49,-143 49,-143 43,-143 37,-137 37,-131 37,-131 37,-117 37,-117 37,-111 43,-105 49,-105 49,-105 181,-105 181,-105 187,-105 193,-111 193,-117 193,-117 193,-131 193,-131 193,-137 187,-143 181,-143\"/>\n",
237       "<text text-anchor=\"start\" x=\"70.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
238       "<text text-anchor=\"start\" x=\"45\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
239       "</g>\n",
240       "<!-- I&#45;&gt;0 -->\n",
241       "<g id=\"edge1\" class=\"edge\">\n",
242       "<title>I&#45;&gt;0</title>\n",
243       "<path fill=\"none\" stroke=\"black\" d=\"M1.08,-124C2.17,-124 13.89,-124 29.41,-124\"/>\n",
244       "<polygon fill=\"black\" stroke=\"black\" points=\"36.78,-124 29.78,-127.15 33.28,-124 29.78,-124 29.78,-124 29.78,-124 33.28,-124 29.78,-120.85 36.78,-124 36.78,-124\"/>\n",
245       "</g>\n",
246       "<!-- 1 -->\n",
247       "<g id=\"node3\" class=\"node\">\n",
248       "<title>1</title>\n",
249       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M377,-171C377,-171 241,-171 241,-171 235,-171 229,-165 229,-159 229,-159 229,-145 229,-145 229,-139 235,-133 241,-133 241,-133 377,-133 377,-133 383,-133 389,-139 389,-145 389,-145 389,-159 389,-159 389,-165 383,-171 377,-171\"/>\n",
250       "<text text-anchor=\"start\" x=\"264.5\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
251       "<text text-anchor=\"start\" x=\"237\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
252       "</g>\n",
253       "<!-- 0&#45;&gt;1 -->\n",
254       "<g id=\"edge2\" class=\"edge\">\n",
255       "<title>0&#45;&gt;1</title>\n",
256       "<path fill=\"none\" stroke=\"black\" d=\"M193.26,-135.27C202.56,-136.62 212.11,-138.02 221.53,-139.39\"/>\n",
257       "<polygon fill=\"black\" stroke=\"black\" points=\"228.7,-140.44 221.32,-142.54 225.24,-139.93 221.78,-139.43 221.78,-139.43 221.78,-139.43 225.24,-139.93 222.23,-136.31 228.7,-140.44 228.7,-140.44\"/>\n",
258       "</g>\n",
259       "<!-- 2 -->\n",
260       "<g id=\"node4\" class=\"node\">\n",
261       "<title>2</title>\n",
262       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M375,-115C375,-115 243,-115 243,-115 237,-115 231,-109 231,-103 231,-103 231,-89 231,-89 231,-83 237,-77 243,-77 243,-77 375,-77 375,-77 381,-77 387,-83 387,-89 387,-89 387,-103 387,-103 387,-109 381,-115 375,-115\"/>\n",
263       "<text text-anchor=\"start\" x=\"264.5\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0</text>\n",
264       "<text text-anchor=\"start\" x=\"239\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
265       "</g>\n",
266       "<!-- 0&#45;&gt;2 -->\n",
267       "<g id=\"edge3\" class=\"edge\">\n",
268       "<title>0&#45;&gt;2</title>\n",
269       "<path fill=\"none\" stroke=\"black\" d=\"M193.26,-112.73C203.34,-111.26 213.7,-109.75 223.88,-108.27\"/>\n",
270       "<polygon fill=\"black\" stroke=\"black\" points=\"230.89,-107.24 224.42,-111.37 227.43,-107.75 223.97,-108.25 223.97,-108.25 223.97,-108.25 227.43,-107.75 223.51,-105.14 230.89,-107.24 230.89,-107.24\"/>\n",
271       "</g>\n",
272       "<!-- 3 -->\n",
273       "<g id=\"node5\" class=\"node\">\n",
274       "<title>3</title>\n",
275       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M573,-199C573,-199 437,-199 437,-199 431,-199 425,-193 425,-187 425,-187 425,-173 425,-173 425,-167 431,-161 437,-161 437,-161 573,-161 573,-161 579,-161 585,-167 585,-173 585,-173 585,-187 585,-187 585,-193 579,-199 573,-199\"/>\n",
276       "<text text-anchor=\"start\" x=\"460.5\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
277       "<text text-anchor=\"start\" x=\"433\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
278       "</g>\n",
279       "<!-- 1&#45;&gt;3 -->\n",
280       "<g id=\"edge4\" class=\"edge\">\n",
281       "<title>1&#45;&gt;3</title>\n",
282       "<path fill=\"none\" stroke=\"black\" d=\"M389.19,-163.43C398.54,-164.78 408.12,-166.16 417.56,-167.52\"/>\n",
283       "<polygon fill=\"black\" stroke=\"black\" points=\"424.75,-168.56 417.37,-170.68 421.29,-168.06 417.82,-167.56 417.82,-167.56 417.82,-167.56 421.29,-168.06 418.27,-164.44 424.75,-168.56 424.75,-168.56\"/>\n",
284       "</g>\n",
285       "<!-- 4 -->\n",
286       "<g id=\"node6\" class=\"node\">\n",
287       "<title>4</title>\n",
288       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M573,-143C573,-143 437,-143 437,-143 431,-143 425,-137 425,-131 425,-131 425,-117 425,-117 425,-111 431,-105 437,-105 437,-105 573,-105 573,-105 579,-105 585,-111 585,-117 585,-117 585,-131 585,-131 585,-137 579,-143 573,-143\"/>\n",
289       "<text text-anchor=\"start\" x=\"460.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0</text>\n",
290       "<text text-anchor=\"start\" x=\"433\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
291       "</g>\n",
292       "<!-- 1&#45;&gt;4 -->\n",
293       "<g id=\"edge5\" class=\"edge\">\n",
294       "<title>1&#45;&gt;4</title>\n",
295       "<path fill=\"none\" stroke=\"black\" d=\"M389.19,-140.57C398.54,-139.22 408.12,-137.84 417.56,-136.48\"/>\n",
296       "<polygon fill=\"black\" stroke=\"black\" points=\"424.75,-135.44 418.27,-139.56 421.29,-135.94 417.82,-136.44 417.82,-136.44 417.82,-136.44 421.29,-135.94 417.37,-133.32 424.75,-135.44 424.75,-135.44\"/>\n",
297       "</g>\n",
298       "<!-- 2&#45;&gt;4 -->\n",
299       "<g id=\"edge6\" class=\"edge\">\n",
300       "<title>2&#45;&gt;4</title>\n",
301       "<path fill=\"none\" stroke=\"black\" d=\"M387.23,-107.15C397.28,-108.6 407.62,-110.09 417.8,-111.56\"/>\n",
302       "<polygon fill=\"black\" stroke=\"black\" points=\"424.81,-112.57 417.43,-114.69 421.35,-112.07 417.88,-111.57 417.88,-111.57 417.88,-111.57 421.35,-112.07 418.33,-108.45 424.81,-112.57 424.81,-112.57\"/>\n",
303       "</g>\n",
304       "<!-- 5 -->\n",
305       "<g id=\"node7\" class=\"node\">\n",
306       "<title>5</title>\n",
307       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M571,-87C571,-87 439,-87 439,-87 433,-87 427,-81 427,-75 427,-75 427,-61 427,-61 427,-55 433,-49 439,-49 439,-49 571,-49 571,-49 577,-49 583,-55 583,-61 583,-61 583,-75 583,-75 583,-81 577,-87 571,-87\"/>\n",
308       "<text text-anchor=\"start\" x=\"460.5\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0</text>\n",
309       "<text text-anchor=\"start\" x=\"435\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
310       "</g>\n",
311       "<!-- 2&#45;&gt;5 -->\n",
312       "<g id=\"edge7\" class=\"edge\">\n",
313       "<title>2&#45;&gt;5</title>\n",
314       "<path fill=\"none\" stroke=\"black\" d=\"M387.23,-84.85C397.89,-83.31 408.89,-81.73 419.67,-80.17\"/>\n",
315       "<polygon fill=\"black\" stroke=\"black\" points=\"426.72,-79.15 420.24,-83.27 423.25,-79.65 419.79,-80.15 419.79,-80.15 419.79,-80.15 423.25,-79.65 419.34,-77.04 426.72,-79.15 426.72,-79.15\"/>\n",
316       "</g>\n",
317       "<!-- 6 -->\n",
318       "<g id=\"node8\" class=\"node\">\n",
319       "<title>6</title>\n",
320       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M765,-248C765,-248 633,-248 633,-248 627,-248 621,-242 621,-236 621,-236 621,-222 621,-222 621,-216 627,-210 633,-210 633,-210 765,-210 765,-210 771,-210 777,-216 777,-222 777,-222 777,-236 777,-236 777,-242 771,-248 765,-248\"/>\n",
321       "<text text-anchor=\"start\" x=\"654.5\" y=\"-232.8\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
322       "<text text-anchor=\"start\" x=\"629\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; dead</text>\n",
323       "</g>\n",
324       "<!-- 3&#45;&gt;6 -->\n",
325       "<g id=\"edge8\" class=\"edge\">\n",
326       "<title>3&#45;&gt;6</title>\n",
327       "<path fill=\"none\" stroke=\"black\" d=\"M580.51,-199.01C592.31,-202.03 604.58,-205.16 616.54,-208.21\"/>\n",
328       "<polygon fill=\"black\" stroke=\"black\" points=\"623.53,-210 615.97,-211.32 620.14,-209.13 616.75,-208.26 616.75,-208.26 616.75,-208.26 620.14,-209.13 617.53,-205.21 623.53,-210 623.53,-210\"/>\n",
329       "</g>\n",
330       "<!-- 7 -->\n",
331       "<g id=\"node9\" class=\"node\">\n",
332       "<title>7</title>\n",
333       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M739.5,-192C739.5,-192 658.5,-192 658.5,-192 652.5,-192 646.5,-186 646.5,-180 646.5,-180 646.5,-166 646.5,-166 646.5,-160 652.5,-154 658.5,-154 658.5,-154 739.5,-154 739.5,-154 745.5,-154 751.5,-160 751.5,-166 751.5,-166 751.5,-180 751.5,-180 751.5,-186 745.5,-192 739.5,-192\"/>\n",
334       "<text text-anchor=\"start\" x=\"654.5\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=1, Q=0</text>\n",
335       "<text text-anchor=\"start\" x=\"694\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
336       "</g>\n",
337       "<!-- 3&#45;&gt;7 -->\n",
338       "<g id=\"edge9\" class=\"edge\">\n",
339       "<title>3&#45;&gt;7</title>\n",
340       "<path fill=\"none\" stroke=\"black\" d=\"M585.2,-177.11C603.28,-176.45 622.18,-175.76 639.22,-175.14\"/>\n",
341       "<polygon fill=\"black\" stroke=\"black\" points=\"646.41,-174.88 639.52,-178.28 642.91,-175.01 639.41,-175.14 639.41,-175.14 639.41,-175.14 642.91,-175.01 639.3,-171.99 646.41,-174.88 646.41,-174.88\"/>\n",
342       "</g>\n",
343       "<!-- 4&#45;&gt;7 -->\n",
344       "<g id=\"edge10\" class=\"edge\">\n",
345       "<title>4&#45;&gt;7</title>\n",
346       "<path fill=\"none\" stroke=\"black\" d=\"M580.51,-143.01C599.96,-147.98 620.65,-153.26 639.16,-157.98\"/>\n",
347       "<polygon fill=\"black\" stroke=\"black\" points=\"646.4,-159.83 638.84,-161.15 643.01,-158.97 639.62,-158.1 639.62,-158.1 639.62,-158.1 643.01,-158.97 640.4,-155.05 646.4,-159.83 646.4,-159.83\"/>\n",
348       "</g>\n",
349       "<!-- 8 -->\n",
350       "<g id=\"node10\" class=\"node\">\n",
351       "<title>8</title>\n",
352       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M739.5,-136C739.5,-136 658.5,-136 658.5,-136 652.5,-136 646.5,-130 646.5,-124 646.5,-124 646.5,-110 646.5,-110 646.5,-104 652.5,-98 658.5,-98 658.5,-98 739.5,-98 739.5,-98 745.5,-98 751.5,-104 751.5,-110 751.5,-110 751.5,-124 751.5,-124 751.5,-130 745.5,-136 739.5,-136\"/>\n",
353       "<text text-anchor=\"start\" x=\"654.5\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0</text>\n",
354       "<text text-anchor=\"start\" x=\"694\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
355       "</g>\n",
356       "<!-- 4&#45;&gt;8 -->\n",
357       "<g id=\"edge11\" class=\"edge\">\n",
358       "<title>4&#45;&gt;8</title>\n",
359       "<path fill=\"none\" stroke=\"black\" d=\"M585.2,-121.11C603.28,-120.45 622.18,-119.76 639.22,-119.14\"/>\n",
360       "<polygon fill=\"black\" stroke=\"black\" points=\"646.41,-118.88 639.52,-122.28 642.91,-119.01 639.41,-119.14 639.41,-119.14 639.41,-119.14 642.91,-119.01 639.3,-115.99 646.41,-118.88 646.41,-118.88\"/>\n",
361       "</g>\n",
362       "<!-- 5&#45;&gt;8 -->\n",
363       "<g id=\"edge13\" class=\"edge\">\n",
364       "<title>5&#45;&gt;8</title>\n",
365       "<path fill=\"none\" stroke=\"black\" d=\"M580.51,-87.01C599.96,-91.98 620.65,-97.26 639.16,-101.98\"/>\n",
366       "<polygon fill=\"black\" stroke=\"black\" points=\"646.4,-103.83 638.84,-105.15 643.01,-102.97 639.62,-102.1 639.62,-102.1 639.62,-102.1 643.01,-102.97 640.4,-99.05 646.4,-103.83 646.4,-103.83\"/>\n",
367       "</g>\n",
368       "<!-- u5 -->\n",
369       "<g id=\"node11\" class=\"node\">\n",
370       "<title>u5</title>\n",
371       "<g id=\"a_node11\"><a xlink:title=\"hidden successors\">\n",
372       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M704.33,-79.5C704.33,-79.5 693.67,-79.5 693.67,-79.5 689.83,-79.5 686,-75.67 686,-71.83 686,-71.83 686,-64.17 686,-64.17 686,-60.33 689.83,-56.5 693.67,-56.5 693.67,-56.5 704.33,-56.5 704.33,-56.5 708.17,-56.5 712,-60.33 712,-64.17 712,-64.17 712,-71.83 712,-71.83 712,-75.67 708.17,-79.5 704.33,-79.5\"/>\n",
373       "<text text-anchor=\"middle\" x=\"699\" y=\"-64.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
374       "</a>\n",
375       "</g>\n",
376       "</g>\n",
377       "<!-- 5&#45;&gt;u5 -->\n",
378       "<g id=\"edge12\" class=\"edge\">\n",
379       "<title>5&#45;&gt;u5</title>\n",
380       "<g id=\"a_edge12\"><a xlink:title=\"hidden successors\">\n",
381       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M583.26,-68C618.13,-68 656.42,-68 678.77,-68\"/>\n",
382       "<polygon fill=\"black\" stroke=\"black\" points=\"685.98,-68 678.98,-71.15 682.48,-68 678.98,-68 678.98,-68 678.98,-68 682.48,-68 678.98,-64.85 685.98,-68 685.98,-68\"/>\n",
383       "</a>\n",
384       "</g>\n",
385       "</g>\n",
386       "<!-- 9 -->\n",
387       "<g id=\"node12\" class=\"node\">\n",
388       "<title>9</title>\n",
389       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M739.5,-38C739.5,-38 658.5,-38 658.5,-38 652.5,-38 646.5,-32 646.5,-26 646.5,-26 646.5,-12 646.5,-12 646.5,-6 652.5,0 658.5,0 658.5,0 739.5,0 739.5,0 745.5,0 751.5,-6 751.5,-12 751.5,-12 751.5,-26 751.5,-26 751.5,-32 745.5,-38 739.5,-38\"/>\n",
390       "<text text-anchor=\"start\" x=\"654.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0</text>\n",
391       "<text text-anchor=\"start\" x=\"694\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
392       "</g>\n",
393       "<!-- 5&#45;&gt;9 -->\n",
394       "<g id=\"edge14\" class=\"edge\">\n",
395       "<title>5&#45;&gt;9</title>\n",
396       "<path fill=\"none\" stroke=\"black\" d=\"M580.51,-48.99C599.96,-44.02 620.65,-38.74 639.16,-34.02\"/>\n",
397       "<polygon fill=\"black\" stroke=\"black\" points=\"646.4,-32.17 640.4,-36.95 643.01,-33.03 639.62,-33.9 639.62,-33.9 639.62,-33.9 643.01,-33.03 638.84,-30.85 646.4,-32.17 646.4,-32.17\"/>\n",
398       "</g>\n",
399       "<!-- 6&#45;&gt;6 -->\n",
400       "<g id=\"edge15\" class=\"edge\">\n",
401       "<title>6&#45;&gt;6</title>\n",
402       "<path fill=\"none\" stroke=\"black\" d=\"M676.07,-248.04C672.9,-257.53 680.54,-266 699,-266 712.55,-266 720.28,-261.43 722.17,-255.25\"/>\n",
403       "<polygon fill=\"black\" stroke=\"black\" points=\"721.93,-248.04 725.31,-254.93 722.04,-251.54 722.16,-255.03 722.16,-255.03 722.16,-255.03 722.04,-251.54 719.01,-255.14 721.93,-248.04 721.93,-248.04\"/>\n",
404       "</g>\n",
405       "<!-- u7 -->\n",
406       "<g id=\"node13\" class=\"node\">\n",
407       "<title>u7</title>\n",
408       "<g id=\"a_node13\"><a xlink:title=\"hidden successors\">\n",
409       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M831.33,-184.5C831.33,-184.5 820.67,-184.5 820.67,-184.5 816.83,-184.5 813,-180.67 813,-176.83 813,-176.83 813,-169.17 813,-169.17 813,-165.33 816.83,-161.5 820.67,-161.5 820.67,-161.5 831.33,-161.5 831.33,-161.5 835.17,-161.5 839,-165.33 839,-169.17 839,-169.17 839,-176.83 839,-176.83 839,-180.67 835.17,-184.5 831.33,-184.5\"/>\n",
410       "<text text-anchor=\"middle\" x=\"826\" y=\"-169.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
411       "</a>\n",
412       "</g>\n",
413       "</g>\n",
414       "<!-- 7&#45;&gt;u7 -->\n",
415       "<g id=\"edge16\" class=\"edge\">\n",
416       "<title>7&#45;&gt;u7</title>\n",
417       "<g id=\"a_edge16\"><a xlink:title=\"hidden successors\">\n",
418       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M751.56,-173C770.63,-173 791.1,-173 805.57,-173\"/>\n",
419       "<polygon fill=\"black\" stroke=\"black\" points=\"812.94,-173 805.94,-176.15 809.44,-173 805.94,-173 805.94,-173 805.94,-173 809.44,-173 805.94,-169.85 812.94,-173 812.94,-173\"/>\n",
420       "</a>\n",
421       "</g>\n",
422       "</g>\n",
423       "<!-- u8 -->\n",
424       "<g id=\"node14\" class=\"node\">\n",
425       "<title>u8</title>\n",
426       "<g id=\"a_node14\"><a xlink:title=\"hidden successors\">\n",
427       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M831.33,-128.5C831.33,-128.5 820.67,-128.5 820.67,-128.5 816.83,-128.5 813,-124.67 813,-120.83 813,-120.83 813,-113.17 813,-113.17 813,-109.33 816.83,-105.5 820.67,-105.5 820.67,-105.5 831.33,-105.5 831.33,-105.5 835.17,-105.5 839,-109.33 839,-113.17 839,-113.17 839,-120.83 839,-120.83 839,-124.67 835.17,-128.5 831.33,-128.5\"/>\n",
428       "<text text-anchor=\"middle\" x=\"826\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
429       "</a>\n",
430       "</g>\n",
431       "</g>\n",
432       "<!-- 8&#45;&gt;u8 -->\n",
433       "<g id=\"edge17\" class=\"edge\">\n",
434       "<title>8&#45;&gt;u8</title>\n",
435       "<g id=\"a_edge17\"><a xlink:title=\"hidden successors\">\n",
436       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M751.56,-117C770.63,-117 791.1,-117 805.57,-117\"/>\n",
437       "<polygon fill=\"black\" stroke=\"black\" points=\"812.94,-117 805.94,-120.15 809.44,-117 805.94,-117 805.94,-117 805.94,-117 809.44,-117 805.94,-113.85 812.94,-117 812.94,-117\"/>\n",
438       "</a>\n",
439       "</g>\n",
440       "</g>\n",
441       "<!-- u9 -->\n",
442       "<g id=\"node15\" class=\"node\">\n",
443       "<title>u9</title>\n",
444       "<g id=\"a_node15\"><a xlink:title=\"hidden successors\">\n",
445       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M831.33,-30.5C831.33,-30.5 820.67,-30.5 820.67,-30.5 816.83,-30.5 813,-26.67 813,-22.83 813,-22.83 813,-15.17 813,-15.17 813,-11.33 816.83,-7.5 820.67,-7.5 820.67,-7.5 831.33,-7.5 831.33,-7.5 835.17,-7.5 839,-11.33 839,-15.17 839,-15.17 839,-22.83 839,-22.83 839,-26.67 835.17,-30.5 831.33,-30.5\"/>\n",
446       "<text text-anchor=\"middle\" x=\"826\" y=\"-15.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
447       "</a>\n",
448       "</g>\n",
449       "</g>\n",
450       "<!-- 9&#45;&gt;u9 -->\n",
451       "<g id=\"edge18\" class=\"edge\">\n",
452       "<title>9&#45;&gt;u9</title>\n",
453       "<g id=\"a_edge18\"><a xlink:title=\"hidden successors\">\n",
454       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M751.56,-19C770.63,-19 791.1,-19 805.57,-19\"/>\n",
455       "<polygon fill=\"black\" stroke=\"black\" points=\"812.94,-19 805.94,-22.15 809.44,-19 805.94,-19 805.94,-19 805.94,-19 809.44,-19 805.94,-15.85 812.94,-19 812.94,-19\"/>\n",
456       "</a>\n",
457       "</g>\n",
458       "</g>\n",
459       "</g>\n",
460       "</svg>\n"
461      ],
462      "text/plain": [
463       "<spot.impl.kripke; proxy of <Swig Object of type 'std::shared_ptr< spot::kripke > *' at 0x7fe6bc6afba0> >"
464      ]
465     },
466     "execution_count": 9,
467     "metadata": {},
468     "output_type": "execute_result"
469    }
470   ],
471   "source": [
472    "k = m.kripke([\"a<1\", \"b>2\"])\n",
473    "k"
474   ]
475  },
476  {
477   "cell_type": "code",
478   "execution_count": 10,
479   "metadata": {},
480   "outputs": [
481    {
482     "data": {
483      "image/svg+xml": [
484       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
485       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
486       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
487       "<!-- Generated by graphviz version 2.43.0 (0)\n",
488       " -->\n",
489       "<!-- Pages: 1 -->\n",
490       "<svg width=\"734pt\" height=\"248pt\"\n",
491       " viewBox=\"0.00 0.00 734.00 248.07\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
492       "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.7042253521126761 0.7042253521126761) rotate(0) translate(4 348.5)\">\n",
493       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-348.5 1039,-348.5 1039,4 -4,4\"/>\n",
494       "<text text-anchor=\"start\" x=\"514.5\" y=\"-329.3\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
495       "<text text-anchor=\"start\" x=\"506.5\" y=\"-314.3\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
496       "<!-- I -->\n",
497       "<!-- 0 -->\n",
498       "<g id=\"node2\" class=\"node\">\n",
499       "<title>0</title>\n",
500       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M181,-176.5C181,-176.5 49,-176.5 49,-176.5 43,-176.5 37,-170.5 37,-164.5 37,-164.5 37,-150.5 37,-150.5 37,-144.5 43,-138.5 49,-138.5 49,-138.5 181,-138.5 181,-138.5 187,-138.5 193,-144.5 193,-150.5 193,-150.5 193,-164.5 193,-164.5 193,-170.5 187,-176.5 181,-176.5\"/>\n",
501       "<text text-anchor=\"start\" x=\"70.5\" y=\"-161.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
502       "<text text-anchor=\"start\" x=\"45\" y=\"-146.3\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
503       "</g>\n",
504       "<!-- I&#45;&gt;0 -->\n",
505       "<g id=\"edge1\" class=\"edge\">\n",
506       "<title>I&#45;&gt;0</title>\n",
507       "<path fill=\"none\" stroke=\"black\" d=\"M1.08,-157.5C2.17,-157.5 13.89,-157.5 29.41,-157.5\"/>\n",
508       "<polygon fill=\"black\" stroke=\"black\" points=\"36.78,-157.5 29.78,-160.65 33.28,-157.5 29.78,-157.5 29.78,-157.5 29.78,-157.5 33.28,-157.5 29.78,-154.35 36.78,-157.5 36.78,-157.5\"/>\n",
509       "</g>\n",
510       "<!-- 1 -->\n",
511       "<g id=\"node3\" class=\"node\">\n",
512       "<title>1</title>\n",
513       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M377,-204.5C377,-204.5 241,-204.5 241,-204.5 235,-204.5 229,-198.5 229,-192.5 229,-192.5 229,-178.5 229,-178.5 229,-172.5 235,-166.5 241,-166.5 241,-166.5 377,-166.5 377,-166.5 383,-166.5 389,-172.5 389,-178.5 389,-178.5 389,-192.5 389,-192.5 389,-198.5 383,-204.5 377,-204.5\"/>\n",
514       "<text text-anchor=\"start\" x=\"264.5\" y=\"-189.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
515       "<text text-anchor=\"start\" x=\"237\" y=\"-174.3\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
516       "</g>\n",
517       "<!-- 0&#45;&gt;1 -->\n",
518       "<g id=\"edge2\" class=\"edge\">\n",
519       "<title>0&#45;&gt;1</title>\n",
520       "<path fill=\"none\" stroke=\"black\" d=\"M193.26,-168.77C202.56,-170.12 212.11,-171.52 221.53,-172.89\"/>\n",
521       "<polygon fill=\"black\" stroke=\"black\" points=\"228.7,-173.94 221.32,-176.04 225.24,-173.43 221.78,-172.93 221.78,-172.93 221.78,-172.93 225.24,-173.43 222.23,-169.81 228.7,-173.94 228.7,-173.94\"/>\n",
522       "</g>\n",
523       "<!-- 2 -->\n",
524       "<g id=\"node4\" class=\"node\">\n",
525       "<title>2</title>\n",
526       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M375,-148.5C375,-148.5 243,-148.5 243,-148.5 237,-148.5 231,-142.5 231,-136.5 231,-136.5 231,-122.5 231,-122.5 231,-116.5 237,-110.5 243,-110.5 243,-110.5 375,-110.5 375,-110.5 381,-110.5 387,-116.5 387,-122.5 387,-122.5 387,-136.5 387,-136.5 387,-142.5 381,-148.5 375,-148.5\"/>\n",
527       "<text text-anchor=\"start\" x=\"264.5\" y=\"-133.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0</text>\n",
528       "<text text-anchor=\"start\" x=\"239\" y=\"-118.3\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
529       "</g>\n",
530       "<!-- 0&#45;&gt;2 -->\n",
531       "<g id=\"edge3\" class=\"edge\">\n",
532       "<title>0&#45;&gt;2</title>\n",
533       "<path fill=\"none\" stroke=\"black\" d=\"M193.26,-146.23C203.34,-144.76 213.7,-143.25 223.88,-141.77\"/>\n",
534       "<polygon fill=\"black\" stroke=\"black\" points=\"230.89,-140.74 224.42,-144.87 227.43,-141.25 223.97,-141.75 223.97,-141.75 223.97,-141.75 227.43,-141.25 223.51,-138.64 230.89,-140.74 230.89,-140.74\"/>\n",
535       "</g>\n",
536       "<!-- 3 -->\n",
537       "<g id=\"node5\" class=\"node\">\n",
538       "<title>3</title>\n",
539       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M573,-232.5C573,-232.5 437,-232.5 437,-232.5 431,-232.5 425,-226.5 425,-220.5 425,-220.5 425,-206.5 425,-206.5 425,-200.5 431,-194.5 437,-194.5 437,-194.5 573,-194.5 573,-194.5 579,-194.5 585,-200.5 585,-206.5 585,-206.5 585,-220.5 585,-220.5 585,-226.5 579,-232.5 573,-232.5\"/>\n",
540       "<text text-anchor=\"start\" x=\"460.5\" y=\"-217.3\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
541       "<text text-anchor=\"start\" x=\"433\" y=\"-202.3\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
542       "</g>\n",
543       "<!-- 1&#45;&gt;3 -->\n",
544       "<g id=\"edge4\" class=\"edge\">\n",
545       "<title>1&#45;&gt;3</title>\n",
546       "<path fill=\"none\" stroke=\"black\" d=\"M389.19,-196.93C398.54,-198.28 408.12,-199.66 417.56,-201.02\"/>\n",
547       "<polygon fill=\"black\" stroke=\"black\" points=\"424.75,-202.06 417.37,-204.18 421.29,-201.56 417.82,-201.06 417.82,-201.06 417.82,-201.06 421.29,-201.56 418.27,-197.94 424.75,-202.06 424.75,-202.06\"/>\n",
548       "</g>\n",
549       "<!-- 4 -->\n",
550       "<g id=\"node6\" class=\"node\">\n",
551       "<title>4</title>\n",
552       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M573,-176.5C573,-176.5 437,-176.5 437,-176.5 431,-176.5 425,-170.5 425,-164.5 425,-164.5 425,-150.5 425,-150.5 425,-144.5 431,-138.5 437,-138.5 437,-138.5 573,-138.5 573,-138.5 579,-138.5 585,-144.5 585,-150.5 585,-150.5 585,-164.5 585,-164.5 585,-170.5 579,-176.5 573,-176.5\"/>\n",
553       "<text text-anchor=\"start\" x=\"460.5\" y=\"-161.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0</text>\n",
554       "<text text-anchor=\"start\" x=\"433\" y=\"-146.3\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
555       "</g>\n",
556       "<!-- 1&#45;&gt;4 -->\n",
557       "<g id=\"edge5\" class=\"edge\">\n",
558       "<title>1&#45;&gt;4</title>\n",
559       "<path fill=\"none\" stroke=\"black\" d=\"M389.19,-174.07C398.54,-172.72 408.12,-171.34 417.56,-169.98\"/>\n",
560       "<polygon fill=\"black\" stroke=\"black\" points=\"424.75,-168.94 418.27,-173.06 421.29,-169.44 417.82,-169.94 417.82,-169.94 417.82,-169.94 421.29,-169.44 417.37,-166.82 424.75,-168.94 424.75,-168.94\"/>\n",
561       "</g>\n",
562       "<!-- 2&#45;&gt;4 -->\n",
563       "<g id=\"edge6\" class=\"edge\">\n",
564       "<title>2&#45;&gt;4</title>\n",
565       "<path fill=\"none\" stroke=\"black\" d=\"M387.23,-140.65C397.28,-142.1 407.62,-143.59 417.8,-145.06\"/>\n",
566       "<polygon fill=\"black\" stroke=\"black\" points=\"424.81,-146.07 417.43,-148.19 421.35,-145.57 417.88,-145.07 417.88,-145.07 417.88,-145.07 421.35,-145.57 418.33,-141.95 424.81,-146.07 424.81,-146.07\"/>\n",
567       "</g>\n",
568       "<!-- 5 -->\n",
569       "<g id=\"node7\" class=\"node\">\n",
570       "<title>5</title>\n",
571       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M571,-120.5C571,-120.5 439,-120.5 439,-120.5 433,-120.5 427,-114.5 427,-108.5 427,-108.5 427,-94.5 427,-94.5 427,-88.5 433,-82.5 439,-82.5 439,-82.5 571,-82.5 571,-82.5 577,-82.5 583,-88.5 583,-94.5 583,-94.5 583,-108.5 583,-108.5 583,-114.5 577,-120.5 571,-120.5\"/>\n",
572       "<text text-anchor=\"start\" x=\"460.5\" y=\"-105.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0</text>\n",
573       "<text text-anchor=\"start\" x=\"435\" y=\"-90.3\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
574       "</g>\n",
575       "<!-- 2&#45;&gt;5 -->\n",
576       "<g id=\"edge7\" class=\"edge\">\n",
577       "<title>2&#45;&gt;5</title>\n",
578       "<path fill=\"none\" stroke=\"black\" d=\"M387.23,-118.35C397.89,-116.81 408.89,-115.23 419.67,-113.67\"/>\n",
579       "<polygon fill=\"black\" stroke=\"black\" points=\"426.72,-112.65 420.24,-116.77 423.25,-113.15 419.79,-113.65 419.79,-113.65 419.79,-113.65 423.25,-113.15 419.34,-110.54 426.72,-112.65 426.72,-112.65\"/>\n",
580       "</g>\n",
581       "<!-- 6 -->\n",
582       "<g id=\"node8\" class=\"node\">\n",
583       "<title>6</title>\n",
584       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M767,-288.5C767,-288.5 635,-288.5 635,-288.5 629,-288.5 623,-282.5 623,-276.5 623,-276.5 623,-262.5 623,-262.5 623,-256.5 629,-250.5 635,-250.5 635,-250.5 767,-250.5 767,-250.5 773,-250.5 779,-256.5 779,-262.5 779,-262.5 779,-276.5 779,-276.5 779,-282.5 773,-288.5 767,-288.5\"/>\n",
585       "<text text-anchor=\"start\" x=\"656.5\" y=\"-273.3\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
586       "<text text-anchor=\"start\" x=\"631\" y=\"-258.3\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; dead</text>\n",
587       "</g>\n",
588       "<!-- 3&#45;&gt;6 -->\n",
589       "<g id=\"edge8\" class=\"edge\">\n",
590       "<title>3&#45;&gt;6</title>\n",
591       "<path fill=\"none\" stroke=\"black\" d=\"M571.95,-232.54C589.6,-237.63 608.78,-243.17 626.8,-248.37\"/>\n",
592       "<polygon fill=\"black\" stroke=\"black\" points=\"633.9,-250.42 626.3,-251.51 630.54,-249.45 627.18,-248.48 627.18,-248.48 627.18,-248.48 630.54,-249.45 628.05,-245.45 633.9,-250.42 633.9,-250.42\"/>\n",
593       "</g>\n",
594       "<!-- 7 -->\n",
595       "<g id=\"node9\" class=\"node\">\n",
596       "<title>7</title>\n",
597       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M769,-232.5C769,-232.5 633,-232.5 633,-232.5 627,-232.5 621,-226.5 621,-220.5 621,-220.5 621,-206.5 621,-206.5 621,-200.5 627,-194.5 633,-194.5 633,-194.5 769,-194.5 769,-194.5 775,-194.5 781,-200.5 781,-206.5 781,-206.5 781,-220.5 781,-220.5 781,-226.5 775,-232.5 769,-232.5\"/>\n",
598       "<text text-anchor=\"start\" x=\"656.5\" y=\"-217.3\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=1, Q=0</text>\n",
599       "<text text-anchor=\"start\" x=\"629\" y=\"-202.3\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
600       "</g>\n",
601       "<!-- 3&#45;&gt;7 -->\n",
602       "<g id=\"edge9\" class=\"edge\">\n",
603       "<title>3&#45;&gt;7</title>\n",
604       "<path fill=\"none\" stroke=\"black\" d=\"M585.19,-213.5C594.54,-213.5 604.12,-213.5 613.56,-213.5\"/>\n",
605       "<polygon fill=\"black\" stroke=\"black\" points=\"620.75,-213.5 613.75,-216.65 617.25,-213.5 613.75,-213.5 613.75,-213.5 613.75,-213.5 617.25,-213.5 613.75,-210.35 620.75,-213.5 620.75,-213.5\"/>\n",
606       "</g>\n",
607       "<!-- 4&#45;&gt;7 -->\n",
608       "<g id=\"edge10\" class=\"edge\">\n",
609       "<title>4&#45;&gt;7</title>\n",
610       "<path fill=\"none\" stroke=\"black\" d=\"M571.95,-176.54C589.6,-181.63 608.78,-187.17 626.8,-192.37\"/>\n",
611       "<polygon fill=\"black\" stroke=\"black\" points=\"633.9,-194.42 626.3,-195.51 630.54,-193.45 627.18,-192.48 627.18,-192.48 627.18,-192.48 630.54,-193.45 628.05,-189.45 633.9,-194.42 633.9,-194.42\"/>\n",
612       "</g>\n",
613       "<!-- 8 -->\n",
614       "<g id=\"node10\" class=\"node\">\n",
615       "<title>8</title>\n",
616       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M769,-176.5C769,-176.5 633,-176.5 633,-176.5 627,-176.5 621,-170.5 621,-164.5 621,-164.5 621,-150.5 621,-150.5 621,-144.5 627,-138.5 633,-138.5 633,-138.5 769,-138.5 769,-138.5 775,-138.5 781,-144.5 781,-150.5 781,-150.5 781,-164.5 781,-164.5 781,-170.5 775,-176.5 769,-176.5\"/>\n",
617       "<text text-anchor=\"start\" x=\"656.5\" y=\"-161.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0</text>\n",
618       "<text text-anchor=\"start\" x=\"629\" y=\"-146.3\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
619       "</g>\n",
620       "<!-- 4&#45;&gt;8 -->\n",
621       "<g id=\"edge11\" class=\"edge\">\n",
622       "<title>4&#45;&gt;8</title>\n",
623       "<path fill=\"none\" stroke=\"black\" d=\"M585.19,-157.5C594.54,-157.5 604.12,-157.5 613.56,-157.5\"/>\n",
624       "<polygon fill=\"black\" stroke=\"black\" points=\"620.75,-157.5 613.75,-160.65 617.25,-157.5 613.75,-157.5 613.75,-157.5 613.75,-157.5 617.25,-157.5 613.75,-154.35 620.75,-157.5 620.75,-157.5\"/>\n",
625       "</g>\n",
626       "<!-- 5&#45;&gt;8 -->\n",
627       "<g id=\"edge12\" class=\"edge\">\n",
628       "<title>5&#45;&gt;8</title>\n",
629       "<path fill=\"none\" stroke=\"black\" d=\"M571.95,-120.54C589.6,-125.63 608.78,-131.17 626.8,-136.37\"/>\n",
630       "<polygon fill=\"black\" stroke=\"black\" points=\"633.9,-138.42 626.3,-139.51 630.54,-137.45 627.18,-136.48 627.18,-136.48 627.18,-136.48 630.54,-137.45 628.05,-133.45 633.9,-138.42 633.9,-138.42\"/>\n",
631       "</g>\n",
632       "<!-- 9 -->\n",
633       "<g id=\"node11\" class=\"node\">\n",
634       "<title>9</title>\n",
635       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M741.5,-47.5C741.5,-47.5 660.5,-47.5 660.5,-47.5 654.5,-47.5 648.5,-41.5 648.5,-35.5 648.5,-35.5 648.5,-21.5 648.5,-21.5 648.5,-15.5 654.5,-9.5 660.5,-9.5 660.5,-9.5 741.5,-9.5 741.5,-9.5 747.5,-9.5 753.5,-15.5 753.5,-21.5 753.5,-21.5 753.5,-35.5 753.5,-35.5 753.5,-41.5 747.5,-47.5 741.5,-47.5\"/>\n",
636       "<text text-anchor=\"start\" x=\"656.5\" y=\"-32.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0</text>\n",
637       "<text text-anchor=\"start\" x=\"696\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
638       "</g>\n",
639       "<!-- 5&#45;&gt;9 -->\n",
640       "<g id=\"edge13\" class=\"edge\">\n",
641       "<title>5&#45;&gt;9</title>\n",
642       "<path fill=\"none\" stroke=\"black\" d=\"M556.72,-82.42C583.01,-72.52 615.22,-60.4 642.44,-50.16\"/>\n",
643       "<polygon fill=\"black\" stroke=\"black\" points=\"649.24,-47.6 643.8,-53.01 645.97,-48.83 642.69,-50.07 642.69,-50.07 642.69,-50.07 645.97,-48.83 641.58,-47.12 649.24,-47.6 649.24,-47.6\"/>\n",
644       "</g>\n",
645       "<!-- 10 -->\n",
646       "<g id=\"node12\" class=\"node\">\n",
647       "<title>10</title>\n",
648       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M767,-120.5C767,-120.5 635,-120.5 635,-120.5 629,-120.5 623,-114.5 623,-108.5 623,-108.5 623,-94.5 623,-94.5 623,-88.5 629,-82.5 635,-82.5 635,-82.5 767,-82.5 767,-82.5 773,-82.5 779,-88.5 779,-94.5 779,-94.5 779,-108.5 779,-108.5 779,-114.5 773,-120.5 767,-120.5\"/>\n",
649       "<text text-anchor=\"start\" x=\"656.5\" y=\"-105.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=1</text>\n",
650       "<text text-anchor=\"start\" x=\"631\" y=\"-90.3\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
651       "</g>\n",
652       "<!-- 5&#45;&gt;10 -->\n",
653       "<g id=\"edge14\" class=\"edge\">\n",
654       "<title>5&#45;&gt;10</title>\n",
655       "<path fill=\"none\" stroke=\"black\" d=\"M583.23,-101.5C593.89,-101.5 604.89,-101.5 615.67,-101.5\"/>\n",
656       "<polygon fill=\"black\" stroke=\"black\" points=\"622.72,-101.5 615.72,-104.65 619.22,-101.5 615.72,-101.5 615.72,-101.5 615.72,-101.5 619.22,-101.5 615.72,-98.35 622.72,-101.5 622.72,-101.5\"/>\n",
657       "</g>\n",
658       "<!-- 6&#45;&gt;6 -->\n",
659       "<g id=\"edge15\" class=\"edge\">\n",
660       "<title>6&#45;&gt;6</title>\n",
661       "<path fill=\"none\" stroke=\"black\" d=\"M665.7,-288.54C660.82,-298.03 672.58,-306.5 701,-306.5 721.87,-306.5 733.76,-301.93 736.67,-295.75\"/>\n",
662       "<polygon fill=\"black\" stroke=\"black\" points=\"736.3,-288.54 739.8,-295.37 736.48,-292.03 736.66,-295.53 736.66,-295.53 736.66,-295.53 736.48,-292.03 733.51,-295.69 736.3,-288.54 736.3,-288.54\"/>\n",
663       "</g>\n",
664       "<!-- 11 -->\n",
665       "<g id=\"node13\" class=\"node\">\n",
666       "<title>11</title>\n",
667       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M961,-288.5C961,-288.5 829,-288.5 829,-288.5 823,-288.5 817,-282.5 817,-276.5 817,-276.5 817,-262.5 817,-262.5 817,-256.5 823,-250.5 829,-250.5 829,-250.5 961,-250.5 961,-250.5 967,-250.5 973,-256.5 973,-262.5 973,-262.5 973,-276.5 973,-276.5 973,-282.5 967,-288.5 961,-288.5\"/>\n",
668       "<text text-anchor=\"start\" x=\"850.5\" y=\"-273.3\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=1, Q=0</text>\n",
669       "<text text-anchor=\"start\" x=\"825\" y=\"-258.3\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; dead</text>\n",
670       "</g>\n",
671       "<!-- 7&#45;&gt;11 -->\n",
672       "<g id=\"edge16\" class=\"edge\">\n",
673       "<title>7&#45;&gt;11</title>\n",
674       "<path fill=\"none\" stroke=\"black\" d=\"M767.27,-232.54C784.74,-237.63 803.72,-243.17 821.55,-248.37\"/>\n",
675       "<polygon fill=\"black\" stroke=\"black\" points=\"828.58,-250.42 820.98,-251.48 825.22,-249.44 821.86,-248.46 821.86,-248.46 821.86,-248.46 825.22,-249.44 822.75,-245.44 828.58,-250.42 828.58,-250.42\"/>\n",
676       "</g>\n",
677       "<!-- 12 -->\n",
678       "<g id=\"node14\" class=\"node\">\n",
679       "<title>12</title>\n",
680       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M935.5,-232.5C935.5,-232.5 854.5,-232.5 854.5,-232.5 848.5,-232.5 842.5,-226.5 842.5,-220.5 842.5,-220.5 842.5,-206.5 842.5,-206.5 842.5,-200.5 848.5,-194.5 854.5,-194.5 854.5,-194.5 935.5,-194.5 935.5,-194.5 941.5,-194.5 947.5,-200.5 947.5,-206.5 947.5,-206.5 947.5,-220.5 947.5,-220.5 947.5,-226.5 941.5,-232.5 935.5,-232.5\"/>\n",
681       "<text text-anchor=\"start\" x=\"850.5\" y=\"-217.3\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=2, Q=0</text>\n",
682       "<text text-anchor=\"start\" x=\"890\" y=\"-202.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
683       "</g>\n",
684       "<!-- 7&#45;&gt;12 -->\n",
685       "<g id=\"edge17\" class=\"edge\">\n",
686       "<title>7&#45;&gt;12</title>\n",
687       "<path fill=\"none\" stroke=\"black\" d=\"M781.2,-213.5C799.28,-213.5 818.18,-213.5 835.22,-213.5\"/>\n",
688       "<polygon fill=\"black\" stroke=\"black\" points=\"842.41,-213.5 835.41,-216.65 838.91,-213.5 835.41,-213.5 835.41,-213.5 835.41,-213.5 838.91,-213.5 835.41,-210.35 842.41,-213.5 842.41,-213.5\"/>\n",
689       "</g>\n",
690       "<!-- 8&#45;&gt;12 -->\n",
691       "<g id=\"edge18\" class=\"edge\">\n",
692       "<title>8&#45;&gt;12</title>\n",
693       "<path fill=\"none\" stroke=\"black\" d=\"M767.27,-176.54C789.34,-182.97 813.84,-190.12 835.36,-196.4\"/>\n",
694       "<polygon fill=\"black\" stroke=\"black\" points=\"842.24,-198.4 834.64,-199.47 838.88,-197.42 835.52,-196.44 835.52,-196.44 835.52,-196.44 838.88,-197.42 836.4,-193.42 842.24,-198.4 842.24,-198.4\"/>\n",
695       "</g>\n",
696       "<!-- 13 -->\n",
697       "<g id=\"node15\" class=\"node\">\n",
698       "<title>13</title>\n",
699       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M935.5,-176.5C935.5,-176.5 854.5,-176.5 854.5,-176.5 848.5,-176.5 842.5,-170.5 842.5,-164.5 842.5,-164.5 842.5,-150.5 842.5,-150.5 842.5,-144.5 848.5,-138.5 854.5,-138.5 854.5,-138.5 935.5,-138.5 935.5,-138.5 941.5,-138.5 947.5,-144.5 947.5,-150.5 947.5,-150.5 947.5,-164.5 947.5,-164.5 947.5,-170.5 941.5,-176.5 935.5,-176.5\"/>\n",
700       "<text text-anchor=\"start\" x=\"850.5\" y=\"-161.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=3, Q=0</text>\n",
701       "<text text-anchor=\"start\" x=\"890\" y=\"-146.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
702       "</g>\n",
703       "<!-- 8&#45;&gt;13 -->\n",
704       "<g id=\"edge19\" class=\"edge\">\n",
705       "<title>8&#45;&gt;13</title>\n",
706       "<path fill=\"none\" stroke=\"black\" d=\"M781.2,-157.5C799.28,-157.5 818.18,-157.5 835.22,-157.5\"/>\n",
707       "<polygon fill=\"black\" stroke=\"black\" points=\"842.41,-157.5 835.41,-160.65 838.91,-157.5 835.41,-157.5 835.41,-157.5 835.41,-157.5 838.91,-157.5 835.41,-154.35 842.41,-157.5 842.41,-157.5\"/>\n",
708       "</g>\n",
709       "<!-- 14 -->\n",
710       "<g id=\"node16\" class=\"node\">\n",
711       "<title>14</title>\n",
712       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M935.5,-120.5C935.5,-120.5 854.5,-120.5 854.5,-120.5 848.5,-120.5 842.5,-114.5 842.5,-108.5 842.5,-108.5 842.5,-94.5 842.5,-94.5 842.5,-88.5 848.5,-82.5 854.5,-82.5 854.5,-82.5 935.5,-82.5 935.5,-82.5 941.5,-82.5 947.5,-88.5 947.5,-94.5 947.5,-94.5 947.5,-108.5 947.5,-108.5 947.5,-114.5 941.5,-120.5 935.5,-120.5\"/>\n",
713       "<text text-anchor=\"start\" x=\"850.5\" y=\"-105.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=1</text>\n",
714       "<text text-anchor=\"start\" x=\"890\" y=\"-90.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
715       "</g>\n",
716       "<!-- 8&#45;&gt;14 -->\n",
717       "<g id=\"edge20\" class=\"edge\">\n",
718       "<title>8&#45;&gt;14</title>\n",
719       "<path fill=\"none\" stroke=\"black\" d=\"M767.27,-138.46C789.34,-132.03 813.84,-124.88 835.36,-118.6\"/>\n",
720       "<polygon fill=\"black\" stroke=\"black\" points=\"842.24,-116.6 836.4,-121.58 838.88,-117.58 835.52,-118.56 835.52,-118.56 835.52,-118.56 838.88,-117.58 834.64,-115.53 842.24,-116.6 842.24,-116.6\"/>\n",
721       "</g>\n",
722       "<!-- u9 -->\n",
723       "<g id=\"node17\" class=\"node\">\n",
724       "<title>u9</title>\n",
725       "<g id=\"a_node17\"><a xlink:title=\"hidden successors\">\n",
726       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M900.33,-23C900.33,-23 889.67,-23 889.67,-23 885.83,-23 882,-19.17 882,-15.33 882,-15.33 882,-7.67 882,-7.67 882,-3.83 885.83,0 889.67,0 889.67,0 900.33,0 900.33,0 904.17,0 908,-3.83 908,-7.67 908,-7.67 908,-15.33 908,-15.33 908,-19.17 904.17,-23 900.33,-23\"/>\n",
727       "<text text-anchor=\"middle\" x=\"895\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
728       "</a>\n",
729       "</g>\n",
730       "</g>\n",
731       "<!-- 9&#45;&gt;u9 -->\n",
732       "<g id=\"edge21\" class=\"edge\">\n",
733       "<title>9&#45;&gt;u9</title>\n",
734       "<g id=\"a_edge21\"><a xlink:title=\"hidden successors\">\n",
735       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M753.71,-23.92C793.5,-20.4 846.31,-15.72 874.42,-13.23\"/>\n",
736       "<polygon fill=\"black\" stroke=\"black\" points=\"881.67,-12.59 874.97,-16.35 878.18,-12.9 874.69,-13.21 874.69,-13.21 874.69,-13.21 878.18,-12.9 874.42,-10.07 881.67,-12.59 881.67,-12.59\"/>\n",
737       "</a>\n",
738       "</g>\n",
739       "</g>\n",
740       "<!-- 10&#45;&gt;14 -->\n",
741       "<g id=\"edge23\" class=\"edge\">\n",
742       "<title>10&#45;&gt;14</title>\n",
743       "<path fill=\"none\" stroke=\"black\" d=\"M779.26,-101.5C797.86,-101.5 817.44,-101.5 835.05,-101.5\"/>\n",
744       "<polygon fill=\"black\" stroke=\"black\" points=\"842.47,-101.5 835.47,-104.65 838.97,-101.5 835.47,-101.5 835.47,-101.5 835.47,-101.5 838.97,-101.5 835.47,-98.35 842.47,-101.5 842.47,-101.5\"/>\n",
745       "</g>\n",
746       "<!-- u10 -->\n",
747       "<g id=\"node18\" class=\"node\">\n",
748       "<title>u10</title>\n",
749       "<g id=\"a_node18\"><a xlink:title=\"hidden successors\">\n",
750       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M900.33,-64C900.33,-64 889.67,-64 889.67,-64 885.83,-64 882,-60.17 882,-56.33 882,-56.33 882,-48.67 882,-48.67 882,-44.83 885.83,-41 889.67,-41 889.67,-41 900.33,-41 900.33,-41 904.17,-41 908,-44.83 908,-48.67 908,-48.67 908,-56.33 908,-56.33 908,-60.17 904.17,-64 900.33,-64\"/>\n",
751       "<text text-anchor=\"middle\" x=\"895\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
752       "</a>\n",
753       "</g>\n",
754       "</g>\n",
755       "<!-- 10&#45;&gt;u10 -->\n",
756       "<g id=\"edge22\" class=\"edge\">\n",
757       "<title>10&#45;&gt;u10</title>\n",
758       "<g id=\"a_edge22\"><a xlink:title=\"hidden successors\">\n",
759       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M776.51,-82.49C812.27,-73.36 852.23,-63.16 875.12,-57.32\"/>\n",
760       "<polygon fill=\"black\" stroke=\"black\" points=\"881.92,-55.58 875.92,-60.37 878.53,-56.45 875.14,-57.31 875.14,-57.31 875.14,-57.31 878.53,-56.45 874.36,-54.26 881.92,-55.58 881.92,-55.58\"/>\n",
761       "</a>\n",
762       "</g>\n",
763       "</g>\n",
764       "<!-- 11&#45;&gt;11 -->\n",
765       "<g id=\"edge24\" class=\"edge\">\n",
766       "<title>11&#45;&gt;11</title>\n",
767       "<path fill=\"none\" stroke=\"black\" d=\"M872.07,-288.54C868.9,-298.03 876.54,-306.5 895,-306.5 908.55,-306.5 916.28,-301.93 918.17,-295.75\"/>\n",
768       "<polygon fill=\"black\" stroke=\"black\" points=\"917.93,-288.54 921.31,-295.43 918.04,-292.04 918.16,-295.53 918.16,-295.53 918.16,-295.53 918.04,-292.04 915.01,-295.64 917.93,-288.54 917.93,-288.54\"/>\n",
769       "</g>\n",
770       "<!-- u12 -->\n",
771       "<g id=\"node19\" class=\"node\">\n",
772       "<title>u12</title>\n",
773       "<g id=\"a_node19\"><a xlink:title=\"hidden successors\">\n",
774       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M1027.33,-225C1027.33,-225 1016.67,-225 1016.67,-225 1012.83,-225 1009,-221.17 1009,-217.33 1009,-217.33 1009,-209.67 1009,-209.67 1009,-205.83 1012.83,-202 1016.67,-202 1016.67,-202 1027.33,-202 1027.33,-202 1031.17,-202 1035,-205.83 1035,-209.67 1035,-209.67 1035,-217.33 1035,-217.33 1035,-221.17 1031.17,-225 1027.33,-225\"/>\n",
775       "<text text-anchor=\"middle\" x=\"1022\" y=\"-209.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
776       "</a>\n",
777       "</g>\n",
778       "</g>\n",
779       "<!-- 12&#45;&gt;u12 -->\n",
780       "<g id=\"edge25\" class=\"edge\">\n",
781       "<title>12&#45;&gt;u12</title>\n",
782       "<g id=\"a_edge25\"><a xlink:title=\"hidden successors\">\n",
783       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M947.56,-213.5C966.63,-213.5 987.1,-213.5 1001.57,-213.5\"/>\n",
784       "<polygon fill=\"black\" stroke=\"black\" points=\"1008.94,-213.5 1001.94,-216.65 1005.44,-213.5 1001.94,-213.5 1001.94,-213.5 1001.94,-213.5 1005.44,-213.5 1001.94,-210.35 1008.94,-213.5 1008.94,-213.5\"/>\n",
785       "</a>\n",
786       "</g>\n",
787       "</g>\n",
788       "<!-- u13 -->\n",
789       "<g id=\"node20\" class=\"node\">\n",
790       "<title>u13</title>\n",
791       "<g id=\"a_node20\"><a xlink:title=\"hidden successors\">\n",
792       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M1027.33,-169C1027.33,-169 1016.67,-169 1016.67,-169 1012.83,-169 1009,-165.17 1009,-161.33 1009,-161.33 1009,-153.67 1009,-153.67 1009,-149.83 1012.83,-146 1016.67,-146 1016.67,-146 1027.33,-146 1027.33,-146 1031.17,-146 1035,-149.83 1035,-153.67 1035,-153.67 1035,-161.33 1035,-161.33 1035,-165.17 1031.17,-169 1027.33,-169\"/>\n",
793       "<text text-anchor=\"middle\" x=\"1022\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
794       "</a>\n",
795       "</g>\n",
796       "</g>\n",
797       "<!-- 13&#45;&gt;u13 -->\n",
798       "<g id=\"edge26\" class=\"edge\">\n",
799       "<title>13&#45;&gt;u13</title>\n",
800       "<g id=\"a_edge26\"><a xlink:title=\"hidden successors\">\n",
801       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M947.56,-157.5C966.63,-157.5 987.1,-157.5 1001.57,-157.5\"/>\n",
802       "<polygon fill=\"black\" stroke=\"black\" points=\"1008.94,-157.5 1001.94,-160.65 1005.44,-157.5 1001.94,-157.5 1001.94,-157.5 1001.94,-157.5 1005.44,-157.5 1001.94,-154.35 1008.94,-157.5 1008.94,-157.5\"/>\n",
803       "</a>\n",
804       "</g>\n",
805       "</g>\n",
806       "<!-- u14 -->\n",
807       "<g id=\"node21\" class=\"node\">\n",
808       "<title>u14</title>\n",
809       "<g id=\"a_node21\"><a xlink:title=\"hidden successors\">\n",
810       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M1027.33,-113C1027.33,-113 1016.67,-113 1016.67,-113 1012.83,-113 1009,-109.17 1009,-105.33 1009,-105.33 1009,-97.67 1009,-97.67 1009,-93.83 1012.83,-90 1016.67,-90 1016.67,-90 1027.33,-90 1027.33,-90 1031.17,-90 1035,-93.83 1035,-97.67 1035,-97.67 1035,-105.33 1035,-105.33 1035,-109.17 1031.17,-113 1027.33,-113\"/>\n",
811       "<text text-anchor=\"middle\" x=\"1022\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
812       "</a>\n",
813       "</g>\n",
814       "</g>\n",
815       "<!-- 14&#45;&gt;u14 -->\n",
816       "<g id=\"edge27\" class=\"edge\">\n",
817       "<title>14&#45;&gt;u14</title>\n",
818       "<g id=\"a_edge27\"><a xlink:title=\"hidden successors\">\n",
819       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M947.56,-101.5C966.63,-101.5 987.1,-101.5 1001.57,-101.5\"/>\n",
820       "<polygon fill=\"black\" stroke=\"black\" points=\"1008.94,-101.5 1001.94,-104.65 1005.44,-101.5 1001.94,-101.5 1001.94,-101.5 1001.94,-101.5 1005.44,-101.5 1001.94,-98.35 1008.94,-101.5 1008.94,-101.5\"/>\n",
821       "</a>\n",
822       "</g>\n",
823       "</g>\n",
824       "</g>\n",
825       "</svg>\n"
826      ],
827      "text/plain": [
828       "<spot.jupyter.SVG object>"
829      ]
830     },
831     "execution_count": 10,
832     "metadata": {},
833     "output_type": "execute_result"
834    }
835   ],
836   "source": [
837    "k.show('.<15')"
838   ]
839  },
840  {
841   "cell_type": "code",
842   "execution_count": 11,
843   "metadata": {},
844   "outputs": [
845    {
846     "data": {
847      "image/svg+xml": [
848       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
849       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
850       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
851       "<!-- Generated by graphviz version 2.43.0 (0)\n",
852       " -->\n",
853       "<!-- Pages: 1 -->\n",
854       "<svg width=\"734pt\" height=\"183pt\"\n",
855       " viewBox=\"0.00 0.00 734.00 183.37\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
856       "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.5319148936170213 0.5319148936170213) rotate(0) translate(4 340)\">\n",
857       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-340 1373,-340 1373,4 -4,4\"/>\n",
858       "<text text-anchor=\"start\" x=\"681.5\" y=\"-320.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
859       "<text text-anchor=\"start\" x=\"673.5\" y=\"-305.8\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
860       "<!-- I -->\n",
861       "<!-- 0 -->\n",
862       "<g id=\"node2\" class=\"node\">\n",
863       "<title>0</title>\n",
864       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M181,-168C181,-168 49,-168 49,-168 43,-168 37,-162 37,-156 37,-156 37,-142 37,-142 37,-136 43,-130 49,-130 49,-130 181,-130 181,-130 187,-130 193,-136 193,-142 193,-142 193,-156 193,-156 193,-162 187,-168 181,-168\"/>\n",
865       "<text text-anchor=\"start\" x=\"70.5\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
866       "<text text-anchor=\"start\" x=\"45\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
867       "</g>\n",
868       "<!-- I&#45;&gt;0 -->\n",
869       "<g id=\"edge1\" class=\"edge\">\n",
870       "<title>I&#45;&gt;0</title>\n",
871       "<path fill=\"none\" stroke=\"black\" d=\"M1.08,-149C2.17,-149 13.89,-149 29.41,-149\"/>\n",
872       "<polygon fill=\"black\" stroke=\"black\" points=\"36.78,-149 29.78,-152.15 33.28,-149 29.78,-149 29.78,-149 29.78,-149 33.28,-149 29.78,-145.85 36.78,-149 36.78,-149\"/>\n",
873       "</g>\n",
874       "<!-- 1 -->\n",
875       "<g id=\"node3\" class=\"node\">\n",
876       "<title>1</title>\n",
877       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M377,-196C377,-196 241,-196 241,-196 235,-196 229,-190 229,-184 229,-184 229,-170 229,-170 229,-164 235,-158 241,-158 241,-158 377,-158 377,-158 383,-158 389,-164 389,-170 389,-170 389,-184 389,-184 389,-190 383,-196 377,-196\"/>\n",
878       "<text text-anchor=\"start\" x=\"264.5\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
879       "<text text-anchor=\"start\" x=\"237\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
880       "</g>\n",
881       "<!-- 0&#45;&gt;1 -->\n",
882       "<g id=\"edge2\" class=\"edge\">\n",
883       "<title>0&#45;&gt;1</title>\n",
884       "<path fill=\"none\" stroke=\"black\" d=\"M193.26,-160.27C202.56,-161.62 212.11,-163.02 221.53,-164.39\"/>\n",
885       "<polygon fill=\"black\" stroke=\"black\" points=\"228.7,-165.44 221.32,-167.54 225.24,-164.93 221.78,-164.43 221.78,-164.43 221.78,-164.43 225.24,-164.93 222.23,-161.31 228.7,-165.44 228.7,-165.44\"/>\n",
886       "</g>\n",
887       "<!-- 2 -->\n",
888       "<g id=\"node4\" class=\"node\">\n",
889       "<title>2</title>\n",
890       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M375,-140C375,-140 243,-140 243,-140 237,-140 231,-134 231,-128 231,-128 231,-114 231,-114 231,-108 237,-102 243,-102 243,-102 375,-102 375,-102 381,-102 387,-108 387,-114 387,-114 387,-128 387,-128 387,-134 381,-140 375,-140\"/>\n",
891       "<text text-anchor=\"start\" x=\"264.5\" y=\"-124.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0</text>\n",
892       "<text text-anchor=\"start\" x=\"239\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
893       "</g>\n",
894       "<!-- 0&#45;&gt;2 -->\n",
895       "<g id=\"edge3\" class=\"edge\">\n",
896       "<title>0&#45;&gt;2</title>\n",
897       "<path fill=\"none\" stroke=\"black\" d=\"M193.26,-137.73C203.34,-136.26 213.7,-134.75 223.88,-133.27\"/>\n",
898       "<polygon fill=\"black\" stroke=\"black\" points=\"230.89,-132.24 224.42,-136.37 227.43,-132.75 223.97,-133.25 223.97,-133.25 223.97,-133.25 227.43,-132.75 223.51,-130.14 230.89,-132.24 230.89,-132.24\"/>\n",
899       "</g>\n",
900       "<!-- 3 -->\n",
901       "<g id=\"node5\" class=\"node\">\n",
902       "<title>3</title>\n",
903       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M573,-224C573,-224 437,-224 437,-224 431,-224 425,-218 425,-212 425,-212 425,-198 425,-198 425,-192 431,-186 437,-186 437,-186 573,-186 573,-186 579,-186 585,-192 585,-198 585,-198 585,-212 585,-212 585,-218 579,-224 573,-224\"/>\n",
904       "<text text-anchor=\"start\" x=\"460.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
905       "<text text-anchor=\"start\" x=\"433\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
906       "</g>\n",
907       "<!-- 1&#45;&gt;3 -->\n",
908       "<g id=\"edge4\" class=\"edge\">\n",
909       "<title>1&#45;&gt;3</title>\n",
910       "<path fill=\"none\" stroke=\"black\" d=\"M389.19,-188.43C398.54,-189.78 408.12,-191.16 417.56,-192.52\"/>\n",
911       "<polygon fill=\"black\" stroke=\"black\" points=\"424.75,-193.56 417.37,-195.68 421.29,-193.06 417.82,-192.56 417.82,-192.56 417.82,-192.56 421.29,-193.06 418.27,-189.44 424.75,-193.56 424.75,-193.56\"/>\n",
912       "</g>\n",
913       "<!-- 4 -->\n",
914       "<g id=\"node6\" class=\"node\">\n",
915       "<title>4</title>\n",
916       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M573,-168C573,-168 437,-168 437,-168 431,-168 425,-162 425,-156 425,-156 425,-142 425,-142 425,-136 431,-130 437,-130 437,-130 573,-130 573,-130 579,-130 585,-136 585,-142 585,-142 585,-156 585,-156 585,-162 579,-168 573,-168\"/>\n",
917       "<text text-anchor=\"start\" x=\"460.5\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0</text>\n",
918       "<text text-anchor=\"start\" x=\"433\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
919       "</g>\n",
920       "<!-- 1&#45;&gt;4 -->\n",
921       "<g id=\"edge5\" class=\"edge\">\n",
922       "<title>1&#45;&gt;4</title>\n",
923       "<path fill=\"none\" stroke=\"black\" d=\"M389.19,-165.57C398.54,-164.22 408.12,-162.84 417.56,-161.48\"/>\n",
924       "<polygon fill=\"black\" stroke=\"black\" points=\"424.75,-160.44 418.27,-164.56 421.29,-160.94 417.82,-161.44 417.82,-161.44 417.82,-161.44 421.29,-160.94 417.37,-158.32 424.75,-160.44 424.75,-160.44\"/>\n",
925       "</g>\n",
926       "<!-- 2&#45;&gt;4 -->\n",
927       "<g id=\"edge6\" class=\"edge\">\n",
928       "<title>2&#45;&gt;4</title>\n",
929       "<path fill=\"none\" stroke=\"black\" d=\"M387.23,-132.15C397.28,-133.6 407.62,-135.09 417.8,-136.56\"/>\n",
930       "<polygon fill=\"black\" stroke=\"black\" points=\"424.81,-137.57 417.43,-139.69 421.35,-137.07 417.88,-136.57 417.88,-136.57 417.88,-136.57 421.35,-137.07 418.33,-133.45 424.81,-137.57 424.81,-137.57\"/>\n",
931       "</g>\n",
932       "<!-- 5 -->\n",
933       "<g id=\"node7\" class=\"node\">\n",
934       "<title>5</title>\n",
935       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M571,-112C571,-112 439,-112 439,-112 433,-112 427,-106 427,-100 427,-100 427,-86 427,-86 427,-80 433,-74 439,-74 439,-74 571,-74 571,-74 577,-74 583,-80 583,-86 583,-86 583,-100 583,-100 583,-106 577,-112 571,-112\"/>\n",
936       "<text text-anchor=\"start\" x=\"460.5\" y=\"-96.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0</text>\n",
937       "<text text-anchor=\"start\" x=\"435\" y=\"-81.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
938       "</g>\n",
939       "<!-- 2&#45;&gt;5 -->\n",
940       "<g id=\"edge7\" class=\"edge\">\n",
941       "<title>2&#45;&gt;5</title>\n",
942       "<path fill=\"none\" stroke=\"black\" d=\"M387.23,-109.85C397.89,-108.31 408.89,-106.73 419.67,-105.17\"/>\n",
943       "<polygon fill=\"black\" stroke=\"black\" points=\"426.72,-104.15 420.24,-108.27 423.25,-104.65 419.79,-105.15 419.79,-105.15 419.79,-105.15 423.25,-104.65 419.34,-102.04 426.72,-104.15 426.72,-104.15\"/>\n",
944       "</g>\n",
945       "<!-- 6 -->\n",
946       "<g id=\"node8\" class=\"node\">\n",
947       "<title>6</title>\n",
948       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M767,-280C767,-280 635,-280 635,-280 629,-280 623,-274 623,-268 623,-268 623,-254 623,-254 623,-248 629,-242 635,-242 635,-242 767,-242 767,-242 773,-242 779,-248 779,-254 779,-254 779,-268 779,-268 779,-274 773,-280 767,-280\"/>\n",
949       "<text text-anchor=\"start\" x=\"656.5\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
950       "<text text-anchor=\"start\" x=\"631\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; dead</text>\n",
951       "</g>\n",
952       "<!-- 3&#45;&gt;6 -->\n",
953       "<g id=\"edge8\" class=\"edge\">\n",
954       "<title>3&#45;&gt;6</title>\n",
955       "<path fill=\"none\" stroke=\"black\" d=\"M571.95,-224.04C589.6,-229.13 608.78,-234.67 626.8,-239.87\"/>\n",
956       "<polygon fill=\"black\" stroke=\"black\" points=\"633.9,-241.92 626.3,-243.01 630.54,-240.95 627.18,-239.98 627.18,-239.98 627.18,-239.98 630.54,-240.95 628.05,-236.95 633.9,-241.92 633.9,-241.92\"/>\n",
957       "</g>\n",
958       "<!-- 7 -->\n",
959       "<g id=\"node9\" class=\"node\">\n",
960       "<title>7</title>\n",
961       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M769,-224C769,-224 633,-224 633,-224 627,-224 621,-218 621,-212 621,-212 621,-198 621,-198 621,-192 627,-186 633,-186 633,-186 769,-186 769,-186 775,-186 781,-192 781,-198 781,-198 781,-212 781,-212 781,-218 775,-224 769,-224\"/>\n",
962       "<text text-anchor=\"start\" x=\"656.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=1, Q=0</text>\n",
963       "<text text-anchor=\"start\" x=\"629\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
964       "</g>\n",
965       "<!-- 3&#45;&gt;7 -->\n",
966       "<g id=\"edge9\" class=\"edge\">\n",
967       "<title>3&#45;&gt;7</title>\n",
968       "<path fill=\"none\" stroke=\"black\" d=\"M585.19,-205C594.54,-205 604.12,-205 613.56,-205\"/>\n",
969       "<polygon fill=\"black\" stroke=\"black\" points=\"620.75,-205 613.75,-208.15 617.25,-205 613.75,-205 613.75,-205 613.75,-205 617.25,-205 613.75,-201.85 620.75,-205 620.75,-205\"/>\n",
970       "</g>\n",
971       "<!-- 4&#45;&gt;7 -->\n",
972       "<g id=\"edge10\" class=\"edge\">\n",
973       "<title>4&#45;&gt;7</title>\n",
974       "<path fill=\"none\" stroke=\"black\" d=\"M571.95,-168.04C589.6,-173.13 608.78,-178.67 626.8,-183.87\"/>\n",
975       "<polygon fill=\"black\" stroke=\"black\" points=\"633.9,-185.92 626.3,-187.01 630.54,-184.95 627.18,-183.98 627.18,-183.98 627.18,-183.98 630.54,-184.95 628.05,-180.95 633.9,-185.92 633.9,-185.92\"/>\n",
976       "</g>\n",
977       "<!-- 8 -->\n",
978       "<g id=\"node10\" class=\"node\">\n",
979       "<title>8</title>\n",
980       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M769,-168C769,-168 633,-168 633,-168 627,-168 621,-162 621,-156 621,-156 621,-142 621,-142 621,-136 627,-130 633,-130 633,-130 769,-130 769,-130 775,-130 781,-136 781,-142 781,-142 781,-156 781,-156 781,-162 775,-168 769,-168\"/>\n",
981       "<text text-anchor=\"start\" x=\"656.5\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0</text>\n",
982       "<text text-anchor=\"start\" x=\"629\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
983       "</g>\n",
984       "<!-- 4&#45;&gt;8 -->\n",
985       "<g id=\"edge11\" class=\"edge\">\n",
986       "<title>4&#45;&gt;8</title>\n",
987       "<path fill=\"none\" stroke=\"black\" d=\"M585.19,-149C594.54,-149 604.12,-149 613.56,-149\"/>\n",
988       "<polygon fill=\"black\" stroke=\"black\" points=\"620.75,-149 613.75,-152.15 617.25,-149 613.75,-149 613.75,-149 613.75,-149 617.25,-149 613.75,-145.85 620.75,-149 620.75,-149\"/>\n",
989       "</g>\n",
990       "<!-- 5&#45;&gt;8 -->\n",
991       "<g id=\"edge12\" class=\"edge\">\n",
992       "<title>5&#45;&gt;8</title>\n",
993       "<path fill=\"none\" stroke=\"black\" d=\"M571.95,-112.04C589.6,-117.13 608.78,-122.67 626.8,-127.87\"/>\n",
994       "<polygon fill=\"black\" stroke=\"black\" points=\"633.9,-129.92 626.3,-131.01 630.54,-128.95 627.18,-127.98 627.18,-127.98 627.18,-127.98 630.54,-128.95 628.05,-124.95 633.9,-129.92 633.9,-129.92\"/>\n",
995       "</g>\n",
996       "<!-- 9 -->\n",
997       "<g id=\"node11\" class=\"node\">\n",
998       "<title>9</title>\n",
999       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M765,-47C765,-47 637,-47 637,-47 631,-47 625,-41 625,-35 625,-35 625,-21 625,-21 625,-15 631,-9 637,-9 637,-9 765,-9 765,-9 771,-9 777,-15 777,-21 777,-21 777,-35 777,-35 777,-41 771,-47 765,-47\"/>\n",
1000       "<text text-anchor=\"start\" x=\"656.5\" y=\"-31.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0</text>\n",
1001       "<text text-anchor=\"start\" x=\"633\" y=\"-16.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; &quot;b&gt;2&quot; &amp; !dead</text>\n",
1002       "</g>\n",
1003       "<!-- 5&#45;&gt;9 -->\n",
1004       "<g id=\"edge13\" class=\"edge\">\n",
1005       "<title>5&#45;&gt;9</title>\n",
1006       "<path fill=\"none\" stroke=\"black\" d=\"M562.9,-73.94C585.89,-66.23 612.54,-57.3 636.19,-49.38\"/>\n",
1007       "<polygon fill=\"black\" stroke=\"black\" points=\"643.11,-47.06 637.47,-52.27 639.79,-48.17 636.47,-49.29 636.47,-49.29 636.47,-49.29 639.79,-48.17 635.47,-46.3 643.11,-47.06 643.11,-47.06\"/>\n",
1008       "</g>\n",
1009       "<!-- 10 -->\n",
1010       "<g id=\"node12\" class=\"node\">\n",
1011       "<title>10</title>\n",
1012       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M767,-112C767,-112 635,-112 635,-112 629,-112 623,-106 623,-100 623,-100 623,-86 623,-86 623,-80 629,-74 635,-74 635,-74 767,-74 767,-74 773,-74 779,-80 779,-86 779,-86 779,-100 779,-100 779,-106 773,-112 767,-112\"/>\n",
1013       "<text text-anchor=\"start\" x=\"656.5\" y=\"-96.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=1</text>\n",
1014       "<text text-anchor=\"start\" x=\"631\" y=\"-81.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1015       "</g>\n",
1016       "<!-- 5&#45;&gt;10 -->\n",
1017       "<g id=\"edge14\" class=\"edge\">\n",
1018       "<title>5&#45;&gt;10</title>\n",
1019       "<path fill=\"none\" stroke=\"black\" d=\"M583.23,-93C593.89,-93 604.89,-93 615.67,-93\"/>\n",
1020       "<polygon fill=\"black\" stroke=\"black\" points=\"622.72,-93 615.72,-96.15 619.22,-93 615.72,-93 615.72,-93 615.72,-93 619.22,-93 615.72,-89.85 622.72,-93 622.72,-93\"/>\n",
1021       "</g>\n",
1022       "<!-- 6&#45;&gt;6 -->\n",
1023       "<g id=\"edge15\" class=\"edge\">\n",
1024       "<title>6&#45;&gt;6</title>\n",
1025       "<path fill=\"none\" stroke=\"black\" d=\"M665.34,-280.04C660.4,-289.53 672.29,-298 701,-298 722.08,-298 734.1,-293.43 737.04,-287.25\"/>\n",
1026       "<polygon fill=\"black\" stroke=\"black\" points=\"736.66,-280.04 740.17,-286.87 736.84,-283.53 737.02,-287.03 737.02,-287.03 737.02,-287.03 736.84,-283.53 733.88,-287.19 736.66,-280.04 736.66,-280.04\"/>\n",
1027       "</g>\n",
1028       "<!-- 11 -->\n",
1029       "<g id=\"node13\" class=\"node\">\n",
1030       "<title>11</title>\n",
1031       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M963,-280C963,-280 831,-280 831,-280 825,-280 819,-274 819,-268 819,-268 819,-254 819,-254 819,-248 825,-242 831,-242 831,-242 963,-242 963,-242 969,-242 975,-248 975,-254 975,-254 975,-268 975,-268 975,-274 969,-280 963,-280\"/>\n",
1032       "<text text-anchor=\"start\" x=\"852.5\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=1, Q=0</text>\n",
1033       "<text text-anchor=\"start\" x=\"827\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; dead</text>\n",
1034       "</g>\n",
1035       "<!-- 7&#45;&gt;11 -->\n",
1036       "<g id=\"edge16\" class=\"edge\">\n",
1037       "<title>7&#45;&gt;11</title>\n",
1038       "<path fill=\"none\" stroke=\"black\" d=\"M767.95,-224.04C785.6,-229.13 804.78,-234.67 822.8,-239.87\"/>\n",
1039       "<polygon fill=\"black\" stroke=\"black\" points=\"829.9,-241.92 822.3,-243.01 826.54,-240.95 823.18,-239.98 823.18,-239.98 823.18,-239.98 826.54,-240.95 824.05,-236.95 829.9,-241.92 829.9,-241.92\"/>\n",
1040       "</g>\n",
1041       "<!-- 12 -->\n",
1042       "<g id=\"node14\" class=\"node\">\n",
1043       "<title>12</title>\n",
1044       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M965,-224C965,-224 829,-224 829,-224 823,-224 817,-218 817,-212 817,-212 817,-198 817,-198 817,-192 823,-186 829,-186 829,-186 965,-186 965,-186 971,-186 977,-192 977,-198 977,-198 977,-212 977,-212 977,-218 971,-224 965,-224\"/>\n",
1045       "<text text-anchor=\"start\" x=\"852.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=2, Q=0</text>\n",
1046       "<text text-anchor=\"start\" x=\"825\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1047       "</g>\n",
1048       "<!-- 7&#45;&gt;12 -->\n",
1049       "<g id=\"edge17\" class=\"edge\">\n",
1050       "<title>7&#45;&gt;12</title>\n",
1051       "<path fill=\"none\" stroke=\"black\" d=\"M781.19,-205C790.54,-205 800.12,-205 809.56,-205\"/>\n",
1052       "<polygon fill=\"black\" stroke=\"black\" points=\"816.75,-205 809.75,-208.15 813.25,-205 809.75,-205 809.75,-205 809.75,-205 813.25,-205 809.75,-201.85 816.75,-205 816.75,-205\"/>\n",
1053       "</g>\n",
1054       "<!-- 8&#45;&gt;12 -->\n",
1055       "<g id=\"edge18\" class=\"edge\">\n",
1056       "<title>8&#45;&gt;12</title>\n",
1057       "<path fill=\"none\" stroke=\"black\" d=\"M767.95,-168.04C785.6,-173.13 804.78,-178.67 822.8,-183.87\"/>\n",
1058       "<polygon fill=\"black\" stroke=\"black\" points=\"829.9,-185.92 822.3,-187.01 826.54,-184.95 823.18,-183.98 823.18,-183.98 823.18,-183.98 826.54,-184.95 824.05,-180.95 829.9,-185.92 829.9,-185.92\"/>\n",
1059       "</g>\n",
1060       "<!-- 13 -->\n",
1061       "<g id=\"node15\" class=\"node\">\n",
1062       "<title>13</title>\n",
1063       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M963,-168C963,-168 831,-168 831,-168 825,-168 819,-162 819,-156 819,-156 819,-142 819,-142 819,-136 825,-130 831,-130 831,-130 963,-130 963,-130 969,-130 975,-136 975,-142 975,-142 975,-156 975,-156 975,-162 969,-168 963,-168\"/>\n",
1064       "<text text-anchor=\"start\" x=\"852.5\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=3, Q=0</text>\n",
1065       "<text text-anchor=\"start\" x=\"827\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; &quot;b&gt;2&quot; &amp; !dead</text>\n",
1066       "</g>\n",
1067       "<!-- 8&#45;&gt;13 -->\n",
1068       "<g id=\"edge19\" class=\"edge\">\n",
1069       "<title>8&#45;&gt;13</title>\n",
1070       "<path fill=\"none\" stroke=\"black\" d=\"M781.19,-149C791.32,-149 801.72,-149 811.92,-149\"/>\n",
1071       "<polygon fill=\"black\" stroke=\"black\" points=\"818.95,-149 811.95,-152.15 815.45,-149 811.95,-149 811.95,-149 811.95,-149 815.45,-149 811.95,-145.85 818.95,-149 818.95,-149\"/>\n",
1072       "</g>\n",
1073       "<!-- 14 -->\n",
1074       "<g id=\"node16\" class=\"node\">\n",
1075       "<title>14</title>\n",
1076       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M965,-112C965,-112 829,-112 829,-112 823,-112 817,-106 817,-100 817,-100 817,-86 817,-86 817,-80 823,-74 829,-74 829,-74 965,-74 965,-74 971,-74 977,-80 977,-86 977,-86 977,-100 977,-100 977,-106 971,-112 965,-112\"/>\n",
1077       "<text text-anchor=\"start\" x=\"852.5\" y=\"-96.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=1</text>\n",
1078       "<text text-anchor=\"start\" x=\"825\" y=\"-81.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1079       "</g>\n",
1080       "<!-- 8&#45;&gt;14 -->\n",
1081       "<g id=\"edge20\" class=\"edge\">\n",
1082       "<title>8&#45;&gt;14</title>\n",
1083       "<path fill=\"none\" stroke=\"black\" d=\"M767.95,-129.96C785.6,-124.87 804.78,-119.33 822.8,-114.13\"/>\n",
1084       "<polygon fill=\"black\" stroke=\"black\" points=\"829.9,-112.08 824.05,-117.05 826.54,-113.05 823.18,-114.02 823.18,-114.02 823.18,-114.02 826.54,-113.05 822.3,-110.99 829.9,-112.08 829.9,-112.08\"/>\n",
1085       "</g>\n",
1086       "<!-- 15 -->\n",
1087       "<g id=\"node17\" class=\"node\">\n",
1088       "<title>15</title>\n",
1089       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M959.5,-38C959.5,-38 834.5,-38 834.5,-38 828.5,-38 822.5,-32 822.5,-26 822.5,-26 822.5,-12 822.5,-12 822.5,-6 828.5,0 834.5,0 834.5,0 959.5,0 959.5,0 965.5,0 971.5,-6 971.5,-12 971.5,-12 971.5,-26 971.5,-26 971.5,-32 965.5,-38 959.5,-38\"/>\n",
1090       "<text text-anchor=\"start\" x=\"852.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=1</text>\n",
1091       "<text text-anchor=\"start\" x=\"830.5\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; &quot;b&gt;2&quot; &amp; dead</text>\n",
1092       "</g>\n",
1093       "<!-- 9&#45;&gt;15 -->\n",
1094       "<g id=\"edge21\" class=\"edge\">\n",
1095       "<title>9&#45;&gt;15</title>\n",
1096       "<path fill=\"none\" stroke=\"black\" d=\"M777.01,-24.52C789.6,-23.94 802.72,-23.33 815.45,-22.74\"/>\n",
1097       "<polygon fill=\"black\" stroke=\"black\" points=\"822.47,-22.41 815.62,-25.88 818.97,-22.57 815.48,-22.74 815.48,-22.74 815.48,-22.74 818.97,-22.57 815.33,-19.59 822.47,-22.41 822.47,-22.41\"/>\n",
1098       "</g>\n",
1099       "<!-- 10&#45;&gt;14 -->\n",
1100       "<g id=\"edge22\" class=\"edge\">\n",
1101       "<title>10&#45;&gt;14</title>\n",
1102       "<path fill=\"none\" stroke=\"black\" d=\"M779.23,-93C789.28,-93 799.62,-93 809.8,-93\"/>\n",
1103       "<polygon fill=\"black\" stroke=\"black\" points=\"816.81,-93 809.81,-96.15 813.31,-93 809.81,-93 809.81,-93 809.81,-93 813.31,-93 809.81,-89.85 816.81,-93 816.81,-93\"/>\n",
1104       "</g>\n",
1105       "<!-- 10&#45;&gt;15 -->\n",
1106       "<g id=\"edge23\" class=\"edge\">\n",
1107       "<title>10&#45;&gt;15</title>\n",
1108       "<path fill=\"none\" stroke=\"black\" d=\"M751.96,-73.94C778.67,-63.75 811.66,-51.17 839.33,-40.62\"/>\n",
1109       "<polygon fill=\"black\" stroke=\"black\" points=\"845.87,-38.12 840.46,-43.56 842.6,-39.37 839.33,-40.62 839.33,-40.62 839.33,-40.62 842.6,-39.37 838.21,-37.67 845.87,-38.12 845.87,-38.12\"/>\n",
1110       "</g>\n",
1111       "<!-- 11&#45;&gt;11 -->\n",
1112       "<g id=\"edge24\" class=\"edge\">\n",
1113       "<title>11&#45;&gt;11</title>\n",
1114       "<path fill=\"none\" stroke=\"black\" d=\"M861.34,-280.04C856.4,-289.53 868.29,-298 897,-298 918.08,-298 930.1,-293.43 933.04,-287.25\"/>\n",
1115       "<polygon fill=\"black\" stroke=\"black\" points=\"932.66,-280.04 936.17,-286.87 932.84,-283.53 933.02,-287.03 933.02,-287.03 933.02,-287.03 932.84,-283.53 929.88,-287.19 932.66,-280.04 932.66,-280.04\"/>\n",
1116       "</g>\n",
1117       "<!-- 16 -->\n",
1118       "<g id=\"node18\" class=\"node\">\n",
1119       "<title>16</title>\n",
1120       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1161,-280C1161,-280 1025,-280 1025,-280 1019,-280 1013,-274 1013,-268 1013,-268 1013,-254 1013,-254 1013,-248 1019,-242 1025,-242 1025,-242 1161,-242 1161,-242 1167,-242 1173,-248 1173,-254 1173,-254 1173,-268 1173,-268 1173,-274 1167,-280 1161,-280\"/>\n",
1121       "<text text-anchor=\"start\" x=\"1048.5\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=2, Q=0</text>\n",
1122       "<text text-anchor=\"start\" x=\"1021\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1123       "</g>\n",
1124       "<!-- 12&#45;&gt;16 -->\n",
1125       "<g id=\"edge25\" class=\"edge\">\n",
1126       "<title>12&#45;&gt;16</title>\n",
1127       "<path fill=\"none\" stroke=\"black\" d=\"M963.95,-224.04C981.6,-229.13 1000.78,-234.67 1018.8,-239.87\"/>\n",
1128       "<polygon fill=\"black\" stroke=\"black\" points=\"1025.9,-241.92 1018.3,-243.01 1022.54,-240.95 1019.18,-239.98 1019.18,-239.98 1019.18,-239.98 1022.54,-240.95 1020.05,-236.95 1025.9,-241.92 1025.9,-241.92\"/>\n",
1129       "</g>\n",
1130       "<!-- 17 -->\n",
1131       "<g id=\"node19\" class=\"node\">\n",
1132       "<title>17</title>\n",
1133       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1159,-168C1159,-168 1027,-168 1027,-168 1021,-168 1015,-162 1015,-156 1015,-156 1015,-142 1015,-142 1015,-136 1021,-130 1027,-130 1027,-130 1159,-130 1159,-130 1165,-130 1171,-136 1171,-142 1171,-142 1171,-156 1171,-156 1171,-162 1165,-168 1159,-168\"/>\n",
1134       "<text text-anchor=\"start\" x=\"1048.5\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=3, Q=0</text>\n",
1135       "<text text-anchor=\"start\" x=\"1023\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; &quot;b&gt;2&quot; &amp; !dead</text>\n",
1136       "</g>\n",
1137       "<!-- 12&#45;&gt;17 -->\n",
1138       "<g id=\"edge26\" class=\"edge\">\n",
1139       "<title>12&#45;&gt;17</title>\n",
1140       "<path fill=\"none\" stroke=\"black\" d=\"M963.95,-185.96C981.6,-180.87 1000.78,-175.33 1018.8,-170.13\"/>\n",
1141       "<polygon fill=\"black\" stroke=\"black\" points=\"1025.9,-168.08 1020.05,-173.05 1022.54,-169.05 1019.18,-170.02 1019.18,-170.02 1019.18,-170.02 1022.54,-169.05 1018.3,-166.99 1025.9,-168.08 1025.9,-168.08\"/>\n",
1142       "</g>\n",
1143       "<!-- 18 -->\n",
1144       "<g id=\"node20\" class=\"node\">\n",
1145       "<title>18</title>\n",
1146       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1161,-224C1161,-224 1025,-224 1025,-224 1019,-224 1013,-218 1013,-212 1013,-212 1013,-198 1013,-198 1013,-192 1019,-186 1025,-186 1025,-186 1161,-186 1161,-186 1167,-186 1173,-192 1173,-198 1173,-198 1173,-212 1173,-212 1173,-218 1167,-224 1161,-224\"/>\n",
1147       "<text text-anchor=\"start\" x=\"1048.5\" y=\"-208.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=2, Q=1</text>\n",
1148       "<text text-anchor=\"start\" x=\"1021\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1149       "</g>\n",
1150       "<!-- 12&#45;&gt;18 -->\n",
1151       "<g id=\"edge27\" class=\"edge\">\n",
1152       "<title>12&#45;&gt;18</title>\n",
1153       "<path fill=\"none\" stroke=\"black\" d=\"M977.19,-198.35C986.54,-198.24 996.12,-198.22 1005.56,-198.29\"/>\n",
1154       "<polygon fill=\"black\" stroke=\"black\" points=\"1012.75,-198.35 1005.72,-201.44 1009.25,-198.32 1005.75,-198.29 1005.75,-198.29 1005.75,-198.29 1009.25,-198.32 1005.78,-195.14 1012.75,-198.35 1012.75,-198.35\"/>\n",
1155       "</g>\n",
1156       "<!-- 19 -->\n",
1157       "<g id=\"node21\" class=\"node\">\n",
1158       "<title>19</title>\n",
1159       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1157,-94C1157,-94 1029,-94 1029,-94 1023,-94 1017,-88 1017,-82 1017,-82 1017,-68 1017,-68 1017,-62 1023,-56 1029,-56 1029,-56 1157,-56 1157,-56 1163,-56 1169,-62 1169,-68 1169,-68 1169,-82 1169,-82 1169,-88 1163,-94 1157,-94\"/>\n",
1160       "<text text-anchor=\"start\" x=\"1048.5\" y=\"-78.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=3, Q=1</text>\n",
1161       "<text text-anchor=\"start\" x=\"1025\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; &quot;b&gt;2&quot; &amp; dead</text>\n",
1162       "</g>\n",
1163       "<!-- 13&#45;&gt;19 -->\n",
1164       "<g id=\"edge28\" class=\"edge\">\n",
1165       "<title>13&#45;&gt;19</title>\n",
1166       "<path fill=\"none\" stroke=\"black\" d=\"M952.93,-129.85C961.02,-126.94 969.24,-123.93 977,-121 997.25,-113.37 1019.35,-104.62 1038.72,-96.83\"/>\n",
1167       "<polygon fill=\"black\" stroke=\"black\" points=\"1045.44,-94.11 1040.13,-99.65 1042.2,-95.42 1038.95,-96.73 1038.95,-96.73 1038.95,-96.73 1042.2,-95.42 1037.77,-93.81 1045.44,-94.11 1045.44,-94.11\"/>\n",
1168       "</g>\n",
1169       "<!-- 14&#45;&gt;18 -->\n",
1170       "<g id=\"edge29\" class=\"edge\">\n",
1171       "<title>14&#45;&gt;18</title>\n",
1172       "<path fill=\"none\" stroke=\"black\" d=\"M963.26,-112.07C968.13,-114.69 972.78,-117.66 977,-121 1000.19,-139.37 989.81,-158.63 1013,-177 1015.37,-178.88 1017.88,-180.64 1020.49,-182.29\"/>\n",
1173       "<polygon fill=\"black\" stroke=\"black\" points=\"1026.74,-185.93 1019.1,-185.12 1023.71,-184.16 1020.69,-182.4 1020.69,-182.4 1020.69,-182.4 1023.71,-184.16 1022.28,-179.68 1026.74,-185.93 1026.74,-185.93\"/>\n",
1174       "</g>\n",
1175       "<!-- 14&#45;&gt;19 -->\n",
1176       "<g id=\"edge30\" class=\"edge\">\n",
1177       "<title>14&#45;&gt;19</title>\n",
1178       "<path fill=\"none\" stroke=\"black\" d=\"M977.19,-85.65C987.93,-84.66 998.98,-83.63 1009.77,-82.63\"/>\n",
1179       "<polygon fill=\"black\" stroke=\"black\" points=\"1016.82,-81.98 1010.14,-85.76 1013.34,-82.3 1009.85,-82.62 1009.85,-82.62 1009.85,-82.62 1013.34,-82.3 1009.56,-79.49 1016.82,-81.98 1016.82,-81.98\"/>\n",
1180       "</g>\n",
1181       "<!-- 15&#45;&gt;15 -->\n",
1182       "<g id=\"edge31\" class=\"edge\">\n",
1183       "<title>15&#45;&gt;15</title>\n",
1184       "<path fill=\"none\" stroke=\"black\" d=\"M861.34,-38.04C856.4,-47.53 868.29,-56 897,-56 918.08,-56 930.1,-51.43 933.04,-45.25\"/>\n",
1185       "<polygon fill=\"black\" stroke=\"black\" points=\"932.66,-38.04 936.17,-44.87 932.84,-41.53 933.02,-45.03 933.02,-45.03 933.02,-45.03 932.84,-41.53 929.88,-45.19 932.66,-38.04 932.66,-38.04\"/>\n",
1186       "</g>\n",
1187       "<!-- 20 -->\n",
1188       "<g id=\"node22\" class=\"node\">\n",
1189       "<title>20</title>\n",
1190       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1357,-280C1357,-280 1221,-280 1221,-280 1215,-280 1209,-274 1209,-268 1209,-268 1209,-254 1209,-254 1209,-248 1215,-242 1221,-242 1221,-242 1357,-242 1357,-242 1363,-242 1369,-248 1369,-254 1369,-254 1369,-268 1369,-268 1369,-274 1363,-280 1357,-280\"/>\n",
1191       "<text text-anchor=\"start\" x=\"1244.5\" y=\"-264.8\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=2, Q=1</text>\n",
1192       "<text text-anchor=\"start\" x=\"1217\" y=\"-249.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1193       "</g>\n",
1194       "<!-- 16&#45;&gt;20 -->\n",
1195       "<g id=\"edge32\" class=\"edge\">\n",
1196       "<title>16&#45;&gt;20</title>\n",
1197       "<path fill=\"none\" stroke=\"black\" d=\"M1173.19,-254.35C1182.54,-254.24 1192.12,-254.22 1201.56,-254.29\"/>\n",
1198       "<polygon fill=\"black\" stroke=\"black\" points=\"1208.75,-254.35 1201.72,-257.44 1205.25,-254.32 1201.75,-254.29 1201.75,-254.29 1201.75,-254.29 1205.25,-254.32 1201.78,-251.14 1208.75,-254.35 1208.75,-254.35\"/>\n",
1199       "</g>\n",
1200       "<!-- 21 -->\n",
1201       "<g id=\"node23\" class=\"node\">\n",
1202       "<title>21</title>\n",
1203       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1355,-168C1355,-168 1223,-168 1223,-168 1217,-168 1211,-162 1211,-156 1211,-156 1211,-142 1211,-142 1211,-136 1217,-130 1223,-130 1223,-130 1355,-130 1355,-130 1361,-130 1367,-136 1367,-142 1367,-142 1367,-156 1367,-156 1367,-162 1361,-168 1355,-168\"/>\n",
1204       "<text text-anchor=\"start\" x=\"1244.5\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=3, Q=1</text>\n",
1205       "<text text-anchor=\"start\" x=\"1219\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; &quot;b&gt;2&quot; &amp; !dead</text>\n",
1206       "</g>\n",
1207       "<!-- 17&#45;&gt;21 -->\n",
1208       "<g id=\"edge33\" class=\"edge\">\n",
1209       "<title>17&#45;&gt;21</title>\n",
1210       "<path fill=\"none\" stroke=\"black\" d=\"M1171.23,-142.38C1181.89,-142.24 1192.89,-142.21 1203.67,-142.3\"/>\n",
1211       "<polygon fill=\"black\" stroke=\"black\" points=\"1210.72,-142.38 1203.68,-145.45 1207.22,-142.34 1203.72,-142.3 1203.72,-142.3 1203.72,-142.3 1207.22,-142.34 1203.75,-139.15 1210.72,-142.38 1210.72,-142.38\"/>\n",
1212       "</g>\n",
1213       "<!-- 18&#45;&gt;12 -->\n",
1214       "<g id=\"edge36\" class=\"edge\">\n",
1215       "<title>18&#45;&gt;12</title>\n",
1216       "<path fill=\"none\" stroke=\"black\" d=\"M1012.75,-211.65C1003.4,-211.76 993.82,-211.78 984.38,-211.71\"/>\n",
1217       "<polygon fill=\"black\" stroke=\"black\" points=\"977.19,-211.65 984.22,-208.56 980.69,-211.68 984.19,-211.71 984.19,-211.71 984.19,-211.71 980.69,-211.68 984.16,-214.86 977.19,-211.65 977.19,-211.65\"/>\n",
1218       "</g>\n",
1219       "<!-- 18&#45;&gt;20 -->\n",
1220       "<g id=\"edge34\" class=\"edge\">\n",
1221       "<title>18&#45;&gt;20</title>\n",
1222       "<path fill=\"none\" stroke=\"black\" d=\"M1159.95,-224.04C1177.6,-229.13 1196.78,-234.67 1214.8,-239.87\"/>\n",
1223       "<polygon fill=\"black\" stroke=\"black\" points=\"1221.9,-241.92 1214.3,-243.01 1218.54,-240.95 1215.18,-239.98 1215.18,-239.98 1215.18,-239.98 1218.54,-240.95 1216.05,-236.95 1221.9,-241.92 1221.9,-241.92\"/>\n",
1224       "</g>\n",
1225       "<!-- 18&#45;&gt;21 -->\n",
1226       "<g id=\"edge35\" class=\"edge\">\n",
1227       "<title>18&#45;&gt;21</title>\n",
1228       "<path fill=\"none\" stroke=\"black\" d=\"M1159.95,-185.96C1177.6,-180.87 1196.78,-175.33 1214.8,-170.13\"/>\n",
1229       "<polygon fill=\"black\" stroke=\"black\" points=\"1221.9,-168.08 1216.05,-173.05 1218.54,-169.05 1215.18,-170.02 1215.18,-170.02 1215.18,-170.02 1218.54,-169.05 1214.3,-166.99 1221.9,-168.08 1221.9,-168.08\"/>\n",
1230       "</g>\n",
1231       "<!-- 19&#45;&gt;19 -->\n",
1232       "<g id=\"edge37\" class=\"edge\">\n",
1233       "<title>19&#45;&gt;19</title>\n",
1234       "<path fill=\"none\" stroke=\"black\" d=\"M1057.34,-94.04C1052.4,-103.53 1064.29,-112 1093,-112 1114.08,-112 1126.1,-107.43 1129.04,-101.25\"/>\n",
1235       "<polygon fill=\"black\" stroke=\"black\" points=\"1128.66,-94.04 1132.17,-100.87 1128.84,-97.53 1129.02,-101.03 1129.02,-101.03 1129.02,-101.03 1128.84,-97.53 1125.88,-101.19 1128.66,-94.04 1128.66,-94.04\"/>\n",
1236       "</g>\n",
1237       "<!-- 20&#45;&gt;16 -->\n",
1238       "<g id=\"edge38\" class=\"edge\">\n",
1239       "<title>20&#45;&gt;16</title>\n",
1240       "<path fill=\"none\" stroke=\"black\" d=\"M1208.75,-267.65C1199.4,-267.76 1189.82,-267.78 1180.38,-267.71\"/>\n",
1241       "<polygon fill=\"black\" stroke=\"black\" points=\"1173.19,-267.65 1180.22,-264.56 1176.69,-267.68 1180.19,-267.71 1180.19,-267.71 1180.19,-267.71 1176.69,-267.68 1180.16,-270.86 1173.19,-267.65 1173.19,-267.65\"/>\n",
1242       "</g>\n",
1243       "<!-- 21&#45;&gt;17 -->\n",
1244       "<g id=\"edge39\" class=\"edge\">\n",
1245       "<title>21&#45;&gt;17</title>\n",
1246       "<path fill=\"none\" stroke=\"black\" d=\"M1210.72,-155.62C1200.05,-155.76 1189.06,-155.79 1178.28,-155.7\"/>\n",
1247       "<polygon fill=\"black\" stroke=\"black\" points=\"1171.23,-155.62 1178.26,-152.55 1174.73,-155.66 1178.23,-155.7 1178.23,-155.7 1178.23,-155.7 1174.73,-155.66 1178.2,-158.85 1171.23,-155.62 1171.23,-155.62\"/>\n",
1248       "</g>\n",
1249       "</g>\n",
1250       "</svg>\n"
1251      ],
1252      "text/plain": [
1253       "<spot.jupyter.SVG object>"
1254      ]
1255     },
1256     "execution_count": 11,
1257     "metadata": {},
1258     "output_type": "execute_result"
1259    }
1260   ],
1261   "source": [
1262    "k.show('.<0')  # unlimited output"
1263   ]
1264  },
1265  {
1266   "cell_type": "markdown",
1267   "metadata": {},
1268   "source": [
1269    "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). "
1270   ]
1271  },
1272  {
1273   "cell_type": "code",
1274   "execution_count": 12,
1275   "metadata": {},
1276   "outputs": [
1277    {
1278     "data": {
1279      "image/svg+xml": [
1280       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1281       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1282       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1283       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1284       " -->\n",
1285       "<!-- Pages: 1 -->\n",
1286       "<svg width=\"197pt\" height=\"125pt\"\n",
1287       " viewBox=\"0.00 0.00 197.00 124.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1288       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 120.8)\">\n",
1289       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-120.8 193,-120.8 193,4 -4,4\"/>\n",
1290       "<text text-anchor=\"start\" x=\"73\" y=\"-86.6\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
1291       "<!-- I -->\n",
1292       "<!-- 1 -->\n",
1293       "<g id=\"node2\" class=\"node\">\n",
1294       "<title>1</title>\n",
1295       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
1296       "<text text-anchor=\"middle\" x=\"56\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1297       "</g>\n",
1298       "<!-- I&#45;&gt;1 -->\n",
1299       "<g id=\"edge1\" class=\"edge\">\n",
1300       "<title>I&#45;&gt;1</title>\n",
1301       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22C2.79,-22 17.15,-22 30.63,-22\"/>\n",
1302       "<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",
1303       "</g>\n",
1304       "<!-- 1&#45;&gt;1 -->\n",
1305       "<g id=\"edge4\" class=\"edge\">\n",
1306       "<title>1&#45;&gt;1</title>\n",
1307       "<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",
1308       "<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",
1309       "<text text-anchor=\"start\" x=\"11\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot;</text>\n",
1310       "</g>\n",
1311       "<!-- 0 -->\n",
1312       "<g id=\"node3\" class=\"node\">\n",
1313       "<title>0</title>\n",
1314       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"167\" cy=\"-22\" rx=\"18\" ry=\"18\"/>\n",
1315       "<ellipse fill=\"none\" stroke=\"black\" cx=\"167\" cy=\"-22\" rx=\"22\" ry=\"22\"/>\n",
1316       "<text text-anchor=\"middle\" x=\"167\" y=\"-18.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1317       "</g>\n",
1318       "<!-- 1&#45;&gt;0 -->\n",
1319       "<g id=\"edge3\" class=\"edge\">\n",
1320       "<title>1&#45;&gt;0</title>\n",
1321       "<path fill=\"none\" stroke=\"black\" d=\"M74.03,-22C91.1,-22 117.66,-22 137.86,-22\"/>\n",
1322       "<polygon fill=\"black\" stroke=\"black\" points=\"144.98,-22 137.98,-25.15 141.48,-22 137.98,-22 137.98,-22 137.98,-22 141.48,-22 137.98,-18.85 144.98,-22 144.98,-22\"/>\n",
1323       "<text text-anchor=\"start\" x=\"92\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;b&gt;2&quot;</text>\n",
1324       "</g>\n",
1325       "<!-- 0&#45;&gt;0 -->\n",
1326       "<g id=\"edge2\" class=\"edge\">\n",
1327       "<title>0&#45;&gt;0</title>\n",
1328       "<path fill=\"none\" stroke=\"black\" d=\"M156.93,-41.76C155.22,-52.35 158.58,-62 167,-62 173.45,-62 176.93,-56.34 177.43,-48.94\"/>\n",
1329       "<polygon fill=\"black\" stroke=\"black\" points=\"177.07,-41.76 180.57,-48.59 177.25,-45.25 177.43,-48.75 177.43,-48.75 177.43,-48.75 177.25,-45.25 174.28,-48.91 177.07,-41.76 177.07,-41.76\"/>\n",
1330       "<text text-anchor=\"middle\" x=\"167\" y=\"-65.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1331       "</g>\n",
1332       "</g>\n",
1333       "</svg>\n"
1334      ],
1335      "text/plain": [
1336       "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe6bc6bf660> >"
1337      ]
1338     },
1339     "execution_count": 12,
1340     "metadata": {},
1341     "output_type": "execute_result"
1342    }
1343   ],
1344   "source": [
1345    "a = spot.translate('\"a<1\" U \"b>2\"'); a"
1346   ]
1347  },
1348  {
1349   "cell_type": "code",
1350   "execution_count": 13,
1351   "metadata": {},
1352   "outputs": [
1353    {
1354     "data": {
1355      "image/svg+xml": [
1356       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1357       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1358       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1359       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1360       " -->\n",
1361       "<!-- Pages: 1 -->\n",
1362       "<svg width=\"734pt\" height=\"137pt\"\n",
1363       " viewBox=\"0.00 0.00 734.00 137.49\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1364       "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.5291005291005292 0.5291005291005292) rotate(0) translate(4 256)\">\n",
1365       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-256 1384,-256 1384,4 -4,4\"/>\n",
1366       "<text text-anchor=\"start\" x=\"669.5\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
1367       "<text text-anchor=\"start\" x=\"690.5\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1368       "<text text-anchor=\"start\" x=\"706.5\" y=\"-237.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
1369       "<text text-anchor=\"start\" x=\"668.5\" y=\"-223.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
1370       "<!-- I -->\n",
1371       "<!-- 0 -->\n",
1372       "<g id=\"node2\" class=\"node\">\n",
1373       "<title>0</title>\n",
1374       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M153,-189C153,-189 50,-189 50,-189 44,-189 38,-183 38,-177 38,-177 38,-165 38,-165 38,-159 44,-153 50,-153 50,-153 153,-153 153,-153 159,-153 165,-159 165,-165 165,-165 165,-177 165,-177 165,-183 159,-189 153,-189\"/>\n",
1375       "<text text-anchor=\"start\" x=\"46\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0 * 1</text>\n",
1376       "</g>\n",
1377       "<!-- I&#45;&gt;0 -->\n",
1378       "<g id=\"edge1\" class=\"edge\">\n",
1379       "<title>I&#45;&gt;0</title>\n",
1380       "<path fill=\"none\" stroke=\"black\" d=\"M1.07,-171C2.14,-171 14.89,-171 30.93,-171\"/>\n",
1381       "<polygon fill=\"black\" stroke=\"black\" points=\"37.98,-171 30.98,-174.15 34.48,-171 30.98,-171 30.98,-171 30.98,-171 34.48,-171 30.98,-167.85 37.98,-171 37.98,-171\"/>\n",
1382       "</g>\n",
1383       "<!-- 1 -->\n",
1384       "<g id=\"node3\" class=\"node\">\n",
1385       "<title>1</title>\n",
1386       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M456,-216C456,-216 353,-216 353,-216 347,-216 341,-210 341,-204 341,-204 341,-192 341,-192 341,-186 347,-180 353,-180 353,-180 456,-180 456,-180 462,-180 468,-186 468,-192 468,-192 468,-204 468,-204 468,-210 462,-216 456,-216\"/>\n",
1387       "<text text-anchor=\"start\" x=\"349\" y=\"-194.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0 * 1</text>\n",
1388       "</g>\n",
1389       "<!-- 0&#45;&gt;1 -->\n",
1390       "<g id=\"edge2\" class=\"edge\">\n",
1391       "<title>0&#45;&gt;1</title>\n",
1392       "<path fill=\"none\" stroke=\"black\" d=\"M165.23,-176.63C214.43,-181.04 282.87,-187.18 333.78,-191.75\"/>\n",
1393       "<polygon fill=\"black\" stroke=\"black\" points=\"340.85,-192.38 333.59,-194.89 337.36,-192.07 333.88,-191.75 333.88,-191.75 333.88,-191.75 337.36,-192.07 334.16,-188.62 340.85,-192.38 340.85,-192.38\"/>\n",
1394       "<text text-anchor=\"start\" x=\"183\" y=\"-193.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1395       "</g>\n",
1396       "<!-- 2 -->\n",
1397       "<g id=\"node4\" class=\"node\">\n",
1398       "<title>2</title>\n",
1399       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M456,-162C456,-162 353,-162 353,-162 347,-162 341,-156 341,-150 341,-150 341,-138 341,-138 341,-132 347,-126 353,-126 353,-126 456,-126 456,-126 462,-126 468,-132 468,-138 468,-138 468,-150 468,-150 468,-156 462,-162 456,-162\"/>\n",
1400       "<text text-anchor=\"start\" x=\"349\" y=\"-140.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0 * 1</text>\n",
1401       "</g>\n",
1402       "<!-- 0&#45;&gt;2 -->\n",
1403       "<g id=\"edge3\" class=\"edge\">\n",
1404       "<title>0&#45;&gt;2</title>\n",
1405       "<path fill=\"none\" stroke=\"black\" d=\"M165.28,-161.15C171.26,-160.36 177.24,-159.62 183,-159 233.23,-153.56 290.12,-149.74 333.53,-147.33\"/>\n",
1406       "<polygon fill=\"black\" stroke=\"black\" points=\"340.65,-146.93 333.84,-150.46 337.16,-147.13 333.66,-147.32 333.66,-147.32 333.66,-147.32 337.16,-147.13 333.49,-144.17 340.65,-146.93 340.65,-146.93\"/>\n",
1407       "<text text-anchor=\"start\" x=\"183\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1408       "</g>\n",
1409       "<!-- 3 -->\n",
1410       "<g id=\"node5\" class=\"node\">\n",
1411       "<title>3</title>\n",
1412       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M759,-189C759,-189 656,-189 656,-189 650,-189 644,-183 644,-177 644,-177 644,-165 644,-165 644,-159 650,-153 656,-153 656,-153 759,-153 759,-153 765,-153 771,-159 771,-165 771,-165 771,-177 771,-177 771,-183 765,-189 759,-189\"/>\n",
1413       "<text text-anchor=\"start\" x=\"652\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0 * 1</text>\n",
1414       "</g>\n",
1415       "<!-- 2&#45;&gt;3 -->\n",
1416       "<g id=\"edge4\" class=\"edge\">\n",
1417       "<title>2&#45;&gt;3</title>\n",
1418       "<path fill=\"none\" stroke=\"black\" d=\"M468.23,-149.63C517.43,-154.04 585.87,-160.18 636.78,-164.75\"/>\n",
1419       "<polygon fill=\"black\" stroke=\"black\" points=\"643.85,-165.38 636.59,-167.89 640.36,-165.07 636.88,-164.75 636.88,-164.75 636.88,-164.75 640.36,-165.07 637.16,-161.62 643.85,-165.38 643.85,-165.38\"/>\n",
1420       "<text text-anchor=\"start\" x=\"486\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1421       "</g>\n",
1422       "<!-- 4 -->\n",
1423       "<g id=\"node6\" class=\"node\">\n",
1424       "<title>4</title>\n",
1425       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M759,-135C759,-135 656,-135 656,-135 650,-135 644,-129 644,-123 644,-123 644,-111 644,-111 644,-105 650,-99 656,-99 656,-99 759,-99 759,-99 765,-99 771,-105 771,-111 771,-111 771,-123 771,-123 771,-129 765,-135 759,-135\"/>\n",
1426       "<text text-anchor=\"start\" x=\"652\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0 * 1</text>\n",
1427       "</g>\n",
1428       "<!-- 2&#45;&gt;4 -->\n",
1429       "<g id=\"edge5\" class=\"edge\">\n",
1430       "<title>2&#45;&gt;4</title>\n",
1431       "<path fill=\"none\" stroke=\"black\" d=\"M468.28,-134.15C474.26,-133.36 480.24,-132.62 486,-132 536.23,-126.56 593.12,-122.74 636.53,-120.33\"/>\n",
1432       "<polygon fill=\"black\" stroke=\"black\" points=\"643.65,-119.93 636.84,-123.46 640.16,-120.13 636.66,-120.32 636.66,-120.32 636.66,-120.32 640.16,-120.13 636.49,-117.17 643.65,-119.93 643.65,-119.93\"/>\n",
1433       "<text text-anchor=\"start\" x=\"486\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1434       "</g>\n",
1435       "<!-- 5 -->\n",
1436       "<g id=\"node7\" class=\"node\">\n",
1437       "<title>5</title>\n",
1438       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1062,-189C1062,-189 959,-189 959,-189 953,-189 947,-183 947,-177 947,-177 947,-165 947,-165 947,-159 953,-153 959,-153 959,-153 1062,-153 1062,-153 1068,-153 1074,-159 1074,-165 1074,-165 1074,-177 1074,-177 1074,-183 1068,-189 1062,-189\"/>\n",
1439       "<text text-anchor=\"start\" x=\"955\" y=\"-167.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0 * 1</text>\n",
1440       "</g>\n",
1441       "<!-- 4&#45;&gt;5 -->\n",
1442       "<g id=\"edge6\" class=\"edge\">\n",
1443       "<title>4&#45;&gt;5</title>\n",
1444       "<path fill=\"none\" stroke=\"black\" d=\"M771.24,-132.29C777.23,-133.6 783.22,-134.86 789,-136 839.07,-145.87 895.97,-154.85 939.42,-161.24\"/>\n",
1445       "<polygon fill=\"black\" stroke=\"black\" points=\"946.55,-162.28 939.17,-164.38 943.09,-161.77 939.62,-161.27 939.62,-161.27 939.62,-161.27 943.09,-161.77 940.08,-158.15 946.55,-162.28 946.55,-162.28\"/>\n",
1446       "<text text-anchor=\"start\" x=\"789\" y=\"-162.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1447       "</g>\n",
1448       "<!-- 6 -->\n",
1449       "<g id=\"node8\" class=\"node\">\n",
1450       "<title>6</title>\n",
1451       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1062,-135C1062,-135 959,-135 959,-135 953,-135 947,-129 947,-123 947,-123 947,-111 947,-111 947,-105 953,-99 959,-99 959,-99 1062,-99 1062,-99 1068,-99 1074,-105 1074,-111 1074,-111 1074,-123 1074,-123 1074,-129 1068,-135 1062,-135\"/>\n",
1452       "<text text-anchor=\"start\" x=\"955\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0 * 1</text>\n",
1453       "</g>\n",
1454       "<!-- 4&#45;&gt;6 -->\n",
1455       "<g id=\"edge7\" class=\"edge\">\n",
1456       "<title>4&#45;&gt;6</title>\n",
1457       "<path fill=\"none\" stroke=\"black\" d=\"M771.23,-117C820.43,-117 888.87,-117 939.78,-117\"/>\n",
1458       "<polygon fill=\"black\" stroke=\"black\" points=\"946.85,-117 939.85,-120.15 943.35,-117 939.85,-117 939.85,-117 939.85,-117 943.35,-117 939.85,-113.85 946.85,-117 946.85,-117\"/>\n",
1459       "<text text-anchor=\"start\" x=\"789\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1460       "</g>\n",
1461       "<!-- 7 -->\n",
1462       "<g id=\"node9\" class=\"node\">\n",
1463       "<title>7</title>\n",
1464       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1062,-81C1062,-81 959,-81 959,-81 953,-81 947,-75 947,-69 947,-69 947,-57 947,-57 947,-51 953,-45 959,-45 959,-45 1062,-45 1062,-45 1068,-45 1074,-51 1074,-57 1074,-57 1074,-69 1074,-69 1074,-75 1068,-81 1062,-81\"/>\n",
1465       "<text text-anchor=\"start\" x=\"955\" y=\"-59.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=1 * 1</text>\n",
1466       "</g>\n",
1467       "<!-- 4&#45;&gt;7 -->\n",
1468       "<g id=\"edge8\" class=\"edge\">\n",
1469       "<title>4&#45;&gt;7</title>\n",
1470       "<path fill=\"none\" stroke=\"black\" d=\"M771.24,-101.71C777.23,-100.4 783.22,-99.14 789,-98 839.07,-88.13 895.97,-79.15 939.42,-72.76\"/>\n",
1471       "<polygon fill=\"black\" stroke=\"black\" points=\"946.55,-71.72 940.08,-75.85 943.09,-72.23 939.62,-72.73 939.62,-72.73 939.62,-72.73 943.09,-72.23 939.17,-69.62 946.55,-71.72 946.55,-71.72\"/>\n",
1472       "<text text-anchor=\"start\" x=\"789\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1473       "</g>\n",
1474       "<!-- 8 -->\n",
1475       "<g id=\"node10\" class=\"node\">\n",
1476       "<title>8</title>\n",
1477       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1365,-135C1365,-135 1262,-135 1262,-135 1256,-135 1250,-129 1250,-123 1250,-123 1250,-111 1250,-111 1250,-105 1256,-99 1262,-99 1262,-99 1365,-99 1365,-99 1371,-99 1377,-105 1377,-111 1377,-111 1377,-123 1377,-123 1377,-129 1371,-135 1365,-135\"/>\n",
1478       "<text text-anchor=\"start\" x=\"1258\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=1 * 0</text>\n",
1479       "</g>\n",
1480       "<!-- 6&#45;&gt;8 -->\n",
1481       "<g id=\"edge9\" class=\"edge\">\n",
1482       "<title>6&#45;&gt;8</title>\n",
1483       "<path fill=\"none\" stroke=\"black\" d=\"M1074.23,-117C1123.43,-117 1191.87,-117 1242.78,-117\"/>\n",
1484       "<polygon fill=\"black\" stroke=\"black\" points=\"1249.85,-117 1242.85,-120.15 1246.35,-117 1242.85,-117 1242.85,-117 1242.85,-117 1246.35,-117 1242.85,-113.85 1249.85,-117 1249.85,-117\"/>\n",
1485       "<text text-anchor=\"start\" x=\"1094\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; &quot;b&gt;2&quot; &amp; !dead</text>\n",
1486       "</g>\n",
1487       "<!-- u7 -->\n",
1488       "<g id=\"node11\" class=\"node\">\n",
1489       "<title>u7</title>\n",
1490       "<g id=\"a_node11\"><a xlink:title=\"hidden successors\">\n",
1491       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M1318.83,-77.5C1318.83,-77.5 1308.17,-77.5 1308.17,-77.5 1304.33,-77.5 1300.5,-73.67 1300.5,-69.83 1300.5,-69.83 1300.5,-62.17 1300.5,-62.17 1300.5,-58.33 1304.33,-54.5 1308.17,-54.5 1308.17,-54.5 1318.83,-54.5 1318.83,-54.5 1322.67,-54.5 1326.5,-58.33 1326.5,-62.17 1326.5,-62.17 1326.5,-69.83 1326.5,-69.83 1326.5,-73.67 1322.67,-77.5 1318.83,-77.5\"/>\n",
1492       "<text text-anchor=\"middle\" x=\"1313.5\" y=\"-62.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
1493       "</a>\n",
1494       "</g>\n",
1495       "</g>\n",
1496       "<!-- 7&#45;&gt;u7 -->\n",
1497       "<g id=\"edge10\" class=\"edge\">\n",
1498       "<title>7&#45;&gt;u7</title>\n",
1499       "<g id=\"a_edge10\"><a xlink:title=\"hidden successors\">\n",
1500       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M1074.23,-63.63C1143.15,-64.31 1249.8,-65.38 1293.17,-65.81\"/>\n",
1501       "<polygon fill=\"black\" stroke=\"black\" points=\"1300.28,-65.88 1293.25,-68.96 1296.78,-65.84 1293.28,-65.81 1293.28,-65.81 1293.28,-65.81 1296.78,-65.84 1293.31,-62.66 1300.28,-65.88 1300.28,-65.88\"/>\n",
1502       "</a>\n",
1503       "</g>\n",
1504       "</g>\n",
1505       "<!-- 9 -->\n",
1506       "<g id=\"node12\" class=\"node\">\n",
1507       "<title>9</title>\n",
1508       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1365,-36C1365,-36 1262,-36 1262,-36 1256,-36 1250,-30 1250,-24 1250,-24 1250,-12 1250,-12 1250,-6 1256,0 1262,0 1262,0 1365,0 1365,0 1371,0 1377,-6 1377,-12 1377,-12 1377,-24 1377,-24 1377,-30 1371,-36 1365,-36\"/>\n",
1509       "<text text-anchor=\"start\" x=\"1258\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=1 * 1</text>\n",
1510       "</g>\n",
1511       "<!-- 7&#45;&gt;9 -->\n",
1512       "<g id=\"edge11\" class=\"edge\">\n",
1513       "<title>7&#45;&gt;9</title>\n",
1514       "<path fill=\"none\" stroke=\"black\" d=\"M1074.2,-47.47C1080.2,-46.21 1086.2,-45.02 1092,-44 1142.16,-35.15 1199.29,-28.51 1242.83,-24.16\"/>\n",
1515       "<polygon fill=\"black\" stroke=\"black\" points=\"1249.97,-23.45 1243.31,-27.27 1246.49,-23.79 1243,-24.14 1243,-24.14 1243,-24.14 1246.49,-23.79 1242.69,-21 1249.97,-23.45 1249.97,-23.45\"/>\n",
1516       "<text text-anchor=\"start\" x=\"1092\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1517       "</g>\n",
1518       "<!-- 8&#45;&gt;8 -->\n",
1519       "<g id=\"edge12\" class=\"edge\">\n",
1520       "<title>8&#45;&gt;8</title>\n",
1521       "<path fill=\"none\" stroke=\"black\" d=\"M1286.36,-135.15C1282.19,-144.54 1291.23,-153 1313.5,-153 1329.85,-153 1339.07,-148.44 1341.16,-142.3\"/>\n",
1522       "<polygon fill=\"black\" stroke=\"black\" points=\"1340.64,-135.15 1344.29,-141.9 1340.89,-138.64 1341.15,-142.13 1341.15,-142.13 1341.15,-142.13 1340.89,-138.64 1338.01,-142.37 1340.64,-135.15 1340.64,-135.15\"/>\n",
1523       "<text text-anchor=\"start\" x=\"1247\" y=\"-171.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; &quot;b&gt;2&quot; &amp; dead</text>\n",
1524       "<text text-anchor=\"start\" x=\"1305.5\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1525       "</g>\n",
1526       "</g>\n",
1527       "</svg>\n"
1528      ],
1529      "text/plain": [
1530       "<spot.impl.twa_product; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_product > *' at 0x7fe6bc6afc30> >"
1531      ]
1532     },
1533     "execution_count": 13,
1534     "metadata": {},
1535     "output_type": "execute_result"
1536    }
1537   ],
1538   "source": [
1539    "spot.otf_product(k, a)"
1540   ]
1541  },
1542  {
1543   "cell_type": "markdown",
1544   "metadata": {},
1545   "source": [
1546    "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`:"
1547   ]
1548  },
1549  {
1550   "cell_type": "code",
1551   "execution_count": 14,
1552   "metadata": {},
1553   "outputs": [
1554    {
1555     "data": {
1556      "text/latex": [
1557       "$\\{\\unicode{x201C}\\mathit{a < 2}\\unicode{x201D}, \\unicode{x201C}\\mathit{b == 1}\\unicode{x201D}\\}$"
1558      ],
1559      "text/plain": [
1560       "spot.atomic_prop_set([spot.formula(\"\\\"a < 2\\\"\"), spot.formula(\"\\\"b == 1\\\"\")])"
1561      ]
1562     },
1563     "execution_count": 14,
1564     "metadata": {},
1565     "output_type": "execute_result"
1566    }
1567   ],
1568   "source": [
1569    "a = spot.atomic_prop_collect(spot.formula('\"a < 2\" W \"b == 1\"')); a"
1570   ]
1571  },
1572  {
1573   "cell_type": "code",
1574   "execution_count": 15,
1575   "metadata": {},
1576   "outputs": [],
1577   "source": [
1578    "def model_check(f, m):\n",
1579    "    nf = spot.formula.Not(f)\n",
1580    "    ss = m.kripke(spot.atomic_prop_collect(nf))\n",
1581    "    return spot.otf_product(ss, nf.translate()).is_empty() "
1582   ]
1583  },
1584  {
1585   "cell_type": "code",
1586   "execution_count": 16,
1587   "metadata": {},
1588   "outputs": [
1589    {
1590     "data": {
1591      "text/plain": [
1592       "False"
1593      ]
1594     },
1595     "execution_count": 16,
1596     "metadata": {},
1597     "output_type": "execute_result"
1598    }
1599   ],
1600   "source": [
1601    "model_check('\"a<1\" R \"b > 1\"', m)"
1602   ]
1603  },
1604  {
1605   "cell_type": "markdown",
1606   "metadata": {},
1607   "source": [
1608    "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."
1609   ]
1610  },
1611  {
1612   "cell_type": "code",
1613   "execution_count": 17,
1614   "metadata": {},
1615   "outputs": [],
1616   "source": [
1617    "def model_debug(f, m):\n",
1618    "    nf = spot.formula.Not(f)\n",
1619    "    ss = m.kripke(spot.atomic_prop_collect(nf))\n",
1620    "    return ss.intersecting_run(nf.translate())"
1621   ]
1622  },
1623  {
1624   "cell_type": "code",
1625   "execution_count": 18,
1626   "metadata": {},
1627   "outputs": [
1628    {
1629     "name": "stdout",
1630     "output_type": "stream",
1631     "text": [
1632      "Prefix:\n",
1633      "  a=0, b=0, Q=0\n",
1634      "  |  \"a<1\" & !\"b > 1\" & !dead\n",
1635      "  a=1, b=0, Q=0\n",
1636      "  |  !\"a<1\" & !\"b > 1\" & !dead\n",
1637      "  a=2, b=0, Q=0\n",
1638      "  |  !\"a<1\" & !\"b > 1\" & !dead\n",
1639      "Cycle:\n",
1640      "  a=3, b=0, Q=0\n",
1641      "  |  !\"a<1\" & !\"b > 1\" & dead\n",
1642      "\n"
1643     ]
1644    }
1645   ],
1646   "source": [
1647    "run = model_debug('\"a<1\" R \"b > 1\"', m); print(run)"
1648   ]
1649  },
1650  {
1651   "cell_type": "markdown",
1652   "metadata": {},
1653   "source": [
1654    "This accepting run can be represented as an automaton (the `True` argument requires the state names to be preserved).  This can be more readable."
1655   ]
1656  },
1657  {
1658   "cell_type": "code",
1659   "execution_count": 19,
1660   "metadata": {},
1661   "outputs": [
1662    {
1663     "data": {
1664      "image/svg+xml": [
1665       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1666       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1667       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1668       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1669       " -->\n",
1670       "<!-- Pages: 1 -->\n",
1671       "<svg width=\"734pt\" height=\"81pt\"\n",
1672       " viewBox=\"0.00 0.00 734.00 80.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1673       "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.7042253521126761 0.7042253521126761) rotate(0) translate(4 111)\">\n",
1674       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-111 1041.5,-111 1041.5,4 -4,4\"/>\n",
1675       "<text text-anchor=\"start\" x=\"515.75\" y=\"-91.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
1676       "<text text-anchor=\"start\" x=\"507.75\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
1677       "<!-- I -->\n",
1678       "<!-- 0 -->\n",
1679       "<g id=\"node2\" class=\"node\">\n",
1680       "<title>0</title>\n",
1681       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M131,-36C131,-36 50,-36 50,-36 44,-36 38,-30 38,-24 38,-24 38,-12 38,-12 38,-6 44,0 50,0 50,0 131,0 131,0 137,0 143,-6 143,-12 143,-12 143,-24 143,-24 143,-30 137,-36 131,-36\"/>\n",
1682       "<text text-anchor=\"start\" x=\"46\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
1683       "</g>\n",
1684       "<!-- I&#45;&gt;0 -->\n",
1685       "<g id=\"edge1\" class=\"edge\">\n",
1686       "<title>I&#45;&gt;0</title>\n",
1687       "<path fill=\"none\" stroke=\"black\" d=\"M1.06,-18C2.08,-18 14.94,-18 30.56,-18\"/>\n",
1688       "<polygon fill=\"black\" stroke=\"black\" points=\"37.9,-18 30.9,-21.15 34.4,-18 30.9,-18 30.9,-18 30.9,-18 34.4,-18 30.9,-14.85 37.9,-18 37.9,-18\"/>\n",
1689       "</g>\n",
1690       "<!-- 1 -->\n",
1691       "<g id=\"node3\" class=\"node\">\n",
1692       "<title>1</title>\n",
1693       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M420,-36C420,-36 339,-36 339,-36 333,-36 327,-30 327,-24 327,-24 327,-12 327,-12 327,-6 333,0 339,0 339,0 420,0 420,0 426,0 432,-6 432,-12 432,-12 432,-24 432,-24 432,-30 426,-36 420,-36\"/>\n",
1694       "<text text-anchor=\"start\" x=\"335\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
1695       "</g>\n",
1696       "<!-- 0&#45;&gt;1 -->\n",
1697       "<g id=\"edge2\" class=\"edge\">\n",
1698       "<title>0&#45;&gt;1</title>\n",
1699       "<path fill=\"none\" stroke=\"black\" d=\"M143.14,-18C192.77,-18 267.7,-18 319.62,-18\"/>\n",
1700       "<polygon fill=\"black\" stroke=\"black\" points=\"326.79,-18 319.79,-21.15 323.29,-18 319.79,-18 319.79,-18 319.79,-18 323.29,-18 319.79,-14.85 326.79,-18 326.79,-18\"/>\n",
1701       "<text text-anchor=\"start\" x=\"161\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b &gt; 1&quot; &amp; !dead</text>\n",
1702       "</g>\n",
1703       "<!-- 2 -->\n",
1704       "<g id=\"node4\" class=\"node\">\n",
1705       "<title>2</title>\n",
1706       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M712,-36C712,-36 631,-36 631,-36 625,-36 619,-30 619,-24 619,-24 619,-12 619,-12 619,-6 625,0 631,0 631,0 712,0 712,0 718,0 724,-6 724,-12 724,-12 724,-24 724,-24 724,-30 718,-36 712,-36\"/>\n",
1707       "<text text-anchor=\"start\" x=\"627\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
1708       "</g>\n",
1709       "<!-- 1&#45;&gt;2 -->\n",
1710       "<g id=\"edge3\" class=\"edge\">\n",
1711       "<title>1&#45;&gt;2</title>\n",
1712       "<path fill=\"none\" stroke=\"black\" d=\"M432.01,-18C482.38,-18 558.98,-18 611.7,-18\"/>\n",
1713       "<polygon fill=\"black\" stroke=\"black\" points=\"618.98,-18 611.98,-21.15 615.48,-18 611.98,-18 611.98,-18 611.98,-18 615.48,-18 611.98,-14.85 618.98,-18 618.98,-18\"/>\n",
1714       "<text text-anchor=\"start\" x=\"450\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b &gt; 1&quot; &amp; !dead</text>\n",
1715       "</g>\n",
1716       "<!-- 3 -->\n",
1717       "<g id=\"node5\" class=\"node\">\n",
1718       "<title>3</title>\n",
1719       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M1004,-36C1004,-36 923,-36 923,-36 917,-36 911,-30 911,-24 911,-24 911,-12 911,-12 911,-6 917,0 923,0 923,0 1004,0 1004,0 1010,0 1016,-6 1016,-12 1016,-12 1016,-24 1016,-24 1016,-30 1010,-36 1004,-36\"/>\n",
1720       "<text text-anchor=\"start\" x=\"919\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
1721       "</g>\n",
1722       "<!-- 2&#45;&gt;3 -->\n",
1723       "<g id=\"edge4\" class=\"edge\">\n",
1724       "<title>2&#45;&gt;3</title>\n",
1725       "<path fill=\"none\" stroke=\"black\" d=\"M724.01,-18C774.38,-18 850.98,-18 903.7,-18\"/>\n",
1726       "<polygon fill=\"black\" stroke=\"black\" points=\"910.98,-18 903.98,-21.15 907.48,-18 903.98,-18 903.98,-18 903.98,-18 907.48,-18 903.98,-14.85 910.98,-18 910.98,-18\"/>\n",
1727       "<text text-anchor=\"start\" x=\"742\" y=\"-21.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b &gt; 1&quot; &amp; !dead</text>\n",
1728       "</g>\n",
1729       "<!-- 3&#45;&gt;3 -->\n",
1730       "<g id=\"edge5\" class=\"edge\">\n",
1731       "<title>3&#45;&gt;3</title>\n",
1732       "<path fill=\"none\" stroke=\"black\" d=\"M937.09,-36.15C933.02,-45.54 941.83,-54 963.5,-54 979.42,-54 988.39,-49.44 990.43,-43.3\"/>\n",
1733       "<polygon fill=\"black\" stroke=\"black\" points=\"989.91,-36.15 993.56,-42.91 990.16,-39.64 990.42,-43.13 990.42,-43.13 990.42,-43.13 990.16,-39.64 987.27,-43.36 989.91,-36.15 989.91,-36.15\"/>\n",
1734       "<text text-anchor=\"start\" x=\"889.5\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b &gt; 1&quot; &amp; dead</text>\n",
1735       "</g>\n",
1736       "</g>\n",
1737       "</svg>\n"
1738      ],
1739      "text/plain": [
1740       "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fe6bc6cbcc0> >"
1741      ]
1742     },
1743     "execution_count": 19,
1744     "metadata": {},
1745     "output_type": "execute_result"
1746    }
1747   ],
1748   "source": [
1749    "run.as_twa(True)"
1750   ]
1751  },
1752  {
1753   "cell_type": "markdown",
1754   "metadata": {},
1755   "source": [
1756    "# Saving Kripke structures to some file\n",
1757    "\n",
1758    "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."
1759   ]
1760  },
1761  {
1762   "cell_type": "code",
1763   "execution_count": 20,
1764   "metadata": {},
1765   "outputs": [
1766    {
1767     "name": "stdout",
1768     "output_type": "stream",
1769     "text": [
1770      "HOA: v1\n",
1771      "States: 22\n",
1772      "Start: 0\n",
1773      "AP: 3 \"a<1\" \"b>2\" \"dead\"\n",
1774      "acc-name: all\n",
1775      "Acceptance: 0 t\n",
1776      "properties: state-labels explicit-labels state-acc\n",
1777      "--BODY--\n",
1778      "State: [0&!1&!2] 0 \"a=0, b=0, Q=0\"\n",
1779      "1 2\n",
1780      "State: [!0&!1&!2] 1 \"a=1, b=0, Q=0\"\n",
1781      "3 4\n",
1782      "State: [0&!1&!2] 2 \"a=0, b=1, Q=0\"\n",
1783      "4 5\n",
1784      "State: [!0&!1&!2] 3 \"a=2, b=0, Q=0\"\n",
1785      "6 7\n",
1786      "State: [!0&!1&!2] 4 \"a=1, b=1, Q=0\"\n",
1787      "7 8\n",
1788      "State: [0&!1&!2] 5 \"a=0, b=2, Q=0\"\n",
1789      "8 9 10\n",
1790      "State: [!0&!1&2] 6 \"a=3, b=0, Q=0\"\n",
1791      "6\n",
1792      "State: [!0&!1&!2] 7 \"a=2, b=1, Q=0\"\n",
1793      "11 12\n",
1794      "State: [!0&!1&!2] 8 \"a=1, b=2, Q=0\"\n",
1795      "12 13 14\n",
1796      "State: [0&1&!2] 9 \"a=0, b=3, Q=0\"\n",
1797      "15\n",
1798      "State: [0&!1&!2] 10 \"a=0, b=2, Q=1\"\n",
1799      "14 15\n",
1800      "State: [!0&!1&2] 11 \"a=3, b=1, Q=0\"\n",
1801      "11\n",
1802      "State: [!0&!1&!2] 12 \"a=2, b=2, Q=0\"\n",
1803      "16 17 18\n",
1804      "State: [!0&1&!2] 13 \"a=1, b=3, Q=0\"\n",
1805      "19\n",
1806      "State: [!0&!1&!2] 14 \"a=1, b=2, Q=1\"\n",
1807      "18 19\n",
1808      "State: [0&1&2] 15 \"a=0, b=3, Q=1\"\n",
1809      "15\n",
1810      "State: [!0&!1&!2] 16 \"a=3, b=2, Q=0\"\n",
1811      "20\n",
1812      "State: [!0&1&!2] 17 \"a=2, b=3, Q=0\"\n",
1813      "21\n",
1814      "State: [!0&!1&!2] 18 \"a=2, b=2, Q=1\"\n",
1815      "20 21 12\n",
1816      "State: [!0&1&2] 19 \"a=1, b=3, Q=1\"\n",
1817      "19\n",
1818      "State: [!0&!1&!2] 20 \"a=3, b=2, Q=1\"\n",
1819      "16\n",
1820      "State: [!0&1&!2] 21 \"a=2, b=3, Q=1\"\n",
1821      "17\n",
1822      "--END--\n"
1823     ]
1824    }
1825   ],
1826   "source": [
1827    "string = k.to_str('hoa')\n",
1828    "print(string)"
1829   ]
1830  },
1831  {
1832   "cell_type": "markdown",
1833   "metadata": {},
1834   "source": [
1835    "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."
1836   ]
1837  },
1838  {
1839   "cell_type": "code",
1840   "execution_count": 21,
1841   "metadata": {},
1842   "outputs": [
1843    {
1844     "name": "stdout",
1845     "output_type": "stream",
1846     "text": [
1847      "<class 'spot.impl.kripke_graph'>\n"
1848     ]
1849    },
1850    {
1851     "data": {
1852      "image/svg+xml": [
1853       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1854       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1855       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1856       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1857       " -->\n",
1858       "<!-- Pages: 1 -->\n",
1859       "<svg width=\"734pt\" height=\"270pt\"\n",
1860       " viewBox=\"0.00 0.00 734.00 270.38\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1861       "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.8695652173913044 0.8695652173913044) rotate(0) translate(4 308)\">\n",
1862       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-308 843,-308 843,4 -4,4\"/>\n",
1863       "<text text-anchor=\"start\" x=\"416.5\" y=\"-288.8\" font-family=\"Lato\" font-size=\"14.00\">t</text>\n",
1864       "<text text-anchor=\"start\" x=\"408.5\" y=\"-273.8\" font-family=\"Lato\" font-size=\"14.00\">[all]</text>\n",
1865       "<!-- I -->\n",
1866       "<!-- 0 -->\n",
1867       "<g id=\"node2\" class=\"node\">\n",
1868       "<title>0</title>\n",
1869       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M181,-143C181,-143 49,-143 49,-143 43,-143 37,-137 37,-131 37,-131 37,-117 37,-117 37,-111 43,-105 49,-105 49,-105 181,-105 181,-105 187,-105 193,-111 193,-117 193,-117 193,-131 193,-131 193,-137 187,-143 181,-143\"/>\n",
1870       "<text text-anchor=\"start\" x=\"70.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=0, Q=0</text>\n",
1871       "<text text-anchor=\"start\" x=\"45\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1872       "</g>\n",
1873       "<!-- I&#45;&gt;0 -->\n",
1874       "<g id=\"edge1\" class=\"edge\">\n",
1875       "<title>I&#45;&gt;0</title>\n",
1876       "<path fill=\"none\" stroke=\"black\" d=\"M1.08,-124C2.17,-124 13.89,-124 29.41,-124\"/>\n",
1877       "<polygon fill=\"black\" stroke=\"black\" points=\"36.78,-124 29.78,-127.15 33.28,-124 29.78,-124 29.78,-124 29.78,-124 33.28,-124 29.78,-120.85 36.78,-124 36.78,-124\"/>\n",
1878       "</g>\n",
1879       "<!-- 1 -->\n",
1880       "<g id=\"node3\" class=\"node\">\n",
1881       "<title>1</title>\n",
1882       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M377,-171C377,-171 241,-171 241,-171 235,-171 229,-165 229,-159 229,-159 229,-145 229,-145 229,-139 235,-133 241,-133 241,-133 377,-133 377,-133 383,-133 389,-139 389,-145 389,-145 389,-159 389,-159 389,-165 383,-171 377,-171\"/>\n",
1883       "<text text-anchor=\"start\" x=\"264.5\" y=\"-155.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=0, Q=0</text>\n",
1884       "<text text-anchor=\"start\" x=\"237\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1885       "</g>\n",
1886       "<!-- 0&#45;&gt;1 -->\n",
1887       "<g id=\"edge2\" class=\"edge\">\n",
1888       "<title>0&#45;&gt;1</title>\n",
1889       "<path fill=\"none\" stroke=\"black\" d=\"M193.26,-135.27C202.56,-136.62 212.11,-138.02 221.53,-139.39\"/>\n",
1890       "<polygon fill=\"black\" stroke=\"black\" points=\"228.7,-140.44 221.32,-142.54 225.24,-139.93 221.78,-139.43 221.78,-139.43 221.78,-139.43 225.24,-139.93 222.23,-136.31 228.7,-140.44 228.7,-140.44\"/>\n",
1891       "</g>\n",
1892       "<!-- 2 -->\n",
1893       "<g id=\"node4\" class=\"node\">\n",
1894       "<title>2</title>\n",
1895       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M375,-115C375,-115 243,-115 243,-115 237,-115 231,-109 231,-103 231,-103 231,-89 231,-89 231,-83 237,-77 243,-77 243,-77 375,-77 375,-77 381,-77 387,-83 387,-89 387,-89 387,-103 387,-103 387,-109 381,-115 375,-115\"/>\n",
1896       "<text text-anchor=\"start\" x=\"264.5\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=1, Q=0</text>\n",
1897       "<text text-anchor=\"start\" x=\"239\" y=\"-84.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1898       "</g>\n",
1899       "<!-- 0&#45;&gt;2 -->\n",
1900       "<g id=\"edge3\" class=\"edge\">\n",
1901       "<title>0&#45;&gt;2</title>\n",
1902       "<path fill=\"none\" stroke=\"black\" d=\"M193.26,-112.73C203.34,-111.26 213.7,-109.75 223.88,-108.27\"/>\n",
1903       "<polygon fill=\"black\" stroke=\"black\" points=\"230.89,-107.24 224.42,-111.37 227.43,-107.75 223.97,-108.25 223.97,-108.25 223.97,-108.25 227.43,-107.75 223.51,-105.14 230.89,-107.24 230.89,-107.24\"/>\n",
1904       "</g>\n",
1905       "<!-- 3 -->\n",
1906       "<g id=\"node5\" class=\"node\">\n",
1907       "<title>3</title>\n",
1908       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M573,-199C573,-199 437,-199 437,-199 431,-199 425,-193 425,-187 425,-187 425,-173 425,-173 425,-167 431,-161 437,-161 437,-161 573,-161 573,-161 579,-161 585,-167 585,-173 585,-173 585,-187 585,-187 585,-193 579,-199 573,-199\"/>\n",
1909       "<text text-anchor=\"start\" x=\"460.5\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=0, Q=0</text>\n",
1910       "<text text-anchor=\"start\" x=\"433\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1911       "</g>\n",
1912       "<!-- 1&#45;&gt;3 -->\n",
1913       "<g id=\"edge4\" class=\"edge\">\n",
1914       "<title>1&#45;&gt;3</title>\n",
1915       "<path fill=\"none\" stroke=\"black\" d=\"M389.19,-163.43C398.54,-164.78 408.12,-166.16 417.56,-167.52\"/>\n",
1916       "<polygon fill=\"black\" stroke=\"black\" points=\"424.75,-168.56 417.37,-170.68 421.29,-168.06 417.82,-167.56 417.82,-167.56 417.82,-167.56 421.29,-168.06 418.27,-164.44 424.75,-168.56 424.75,-168.56\"/>\n",
1917       "</g>\n",
1918       "<!-- 4 -->\n",
1919       "<g id=\"node6\" class=\"node\">\n",
1920       "<title>4</title>\n",
1921       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M573,-143C573,-143 437,-143 437,-143 431,-143 425,-137 425,-131 425,-131 425,-117 425,-117 425,-111 431,-105 437,-105 437,-105 573,-105 573,-105 579,-105 585,-111 585,-117 585,-117 585,-131 585,-131 585,-137 579,-143 573,-143\"/>\n",
1922       "<text text-anchor=\"start\" x=\"460.5\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=1, Q=0</text>\n",
1923       "<text text-anchor=\"start\" x=\"433\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1924       "</g>\n",
1925       "<!-- 1&#45;&gt;4 -->\n",
1926       "<g id=\"edge5\" class=\"edge\">\n",
1927       "<title>1&#45;&gt;4</title>\n",
1928       "<path fill=\"none\" stroke=\"black\" d=\"M389.19,-140.57C398.54,-139.22 408.12,-137.84 417.56,-136.48\"/>\n",
1929       "<polygon fill=\"black\" stroke=\"black\" points=\"424.75,-135.44 418.27,-139.56 421.29,-135.94 417.82,-136.44 417.82,-136.44 417.82,-136.44 421.29,-135.94 417.37,-133.32 424.75,-135.44 424.75,-135.44\"/>\n",
1930       "</g>\n",
1931       "<!-- 2&#45;&gt;4 -->\n",
1932       "<g id=\"edge6\" class=\"edge\">\n",
1933       "<title>2&#45;&gt;4</title>\n",
1934       "<path fill=\"none\" stroke=\"black\" d=\"M387.23,-107.15C397.28,-108.6 407.62,-110.09 417.8,-111.56\"/>\n",
1935       "<polygon fill=\"black\" stroke=\"black\" points=\"424.81,-112.57 417.43,-114.69 421.35,-112.07 417.88,-111.57 417.88,-111.57 417.88,-111.57 421.35,-112.07 418.33,-108.45 424.81,-112.57 424.81,-112.57\"/>\n",
1936       "</g>\n",
1937       "<!-- 5 -->\n",
1938       "<g id=\"node7\" class=\"node\">\n",
1939       "<title>5</title>\n",
1940       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M571,-87C571,-87 439,-87 439,-87 433,-87 427,-81 427,-75 427,-75 427,-61 427,-61 427,-55 433,-49 439,-49 439,-49 571,-49 571,-49 577,-49 583,-55 583,-61 583,-61 583,-75 583,-75 583,-81 577,-87 571,-87\"/>\n",
1941       "<text text-anchor=\"start\" x=\"460.5\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=2, Q=0</text>\n",
1942       "<text text-anchor=\"start\" x=\"435\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\">&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; !dead</text>\n",
1943       "</g>\n",
1944       "<!-- 2&#45;&gt;5 -->\n",
1945       "<g id=\"edge7\" class=\"edge\">\n",
1946       "<title>2&#45;&gt;5</title>\n",
1947       "<path fill=\"none\" stroke=\"black\" d=\"M387.23,-84.85C397.89,-83.31 408.89,-81.73 419.67,-80.17\"/>\n",
1948       "<polygon fill=\"black\" stroke=\"black\" points=\"426.72,-79.15 420.24,-83.27 423.25,-79.65 419.79,-80.15 419.79,-80.15 419.79,-80.15 423.25,-79.65 419.34,-77.04 426.72,-79.15 426.72,-79.15\"/>\n",
1949       "</g>\n",
1950       "<!-- 6 -->\n",
1951       "<g id=\"node8\" class=\"node\">\n",
1952       "<title>6</title>\n",
1953       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M765,-248C765,-248 633,-248 633,-248 627,-248 621,-242 621,-236 621,-236 621,-222 621,-222 621,-216 627,-210 633,-210 633,-210 765,-210 765,-210 771,-210 777,-216 777,-222 777,-222 777,-236 777,-236 777,-242 771,-248 765,-248\"/>\n",
1954       "<text text-anchor=\"start\" x=\"654.5\" y=\"-232.8\" font-family=\"Lato\" font-size=\"14.00\">a=3, b=0, Q=0</text>\n",
1955       "<text text-anchor=\"start\" x=\"629\" y=\"-217.8\" font-family=\"Lato\" font-size=\"14.00\">!&quot;a&lt;1&quot; &amp; !&quot;b&gt;2&quot; &amp; dead</text>\n",
1956       "</g>\n",
1957       "<!-- 3&#45;&gt;6 -->\n",
1958       "<g id=\"edge8\" class=\"edge\">\n",
1959       "<title>3&#45;&gt;6</title>\n",
1960       "<path fill=\"none\" stroke=\"black\" d=\"M580.51,-199.01C592.31,-202.03 604.58,-205.16 616.54,-208.21\"/>\n",
1961       "<polygon fill=\"black\" stroke=\"black\" points=\"623.53,-210 615.97,-211.32 620.14,-209.13 616.75,-208.26 616.75,-208.26 616.75,-208.26 620.14,-209.13 617.53,-205.21 623.53,-210 623.53,-210\"/>\n",
1962       "</g>\n",
1963       "<!-- 7 -->\n",
1964       "<g id=\"node9\" class=\"node\">\n",
1965       "<title>7</title>\n",
1966       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M739.5,-192C739.5,-192 658.5,-192 658.5,-192 652.5,-192 646.5,-186 646.5,-180 646.5,-180 646.5,-166 646.5,-166 646.5,-160 652.5,-154 658.5,-154 658.5,-154 739.5,-154 739.5,-154 745.5,-154 751.5,-160 751.5,-166 751.5,-166 751.5,-180 751.5,-180 751.5,-186 745.5,-192 739.5,-192\"/>\n",
1967       "<text text-anchor=\"start\" x=\"654.5\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\">a=2, b=1, Q=0</text>\n",
1968       "<text text-anchor=\"start\" x=\"694\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
1969       "</g>\n",
1970       "<!-- 3&#45;&gt;7 -->\n",
1971       "<g id=\"edge9\" class=\"edge\">\n",
1972       "<title>3&#45;&gt;7</title>\n",
1973       "<path fill=\"none\" stroke=\"black\" d=\"M585.2,-177.11C603.28,-176.45 622.18,-175.76 639.22,-175.14\"/>\n",
1974       "<polygon fill=\"black\" stroke=\"black\" points=\"646.41,-174.88 639.52,-178.28 642.91,-175.01 639.41,-175.14 639.41,-175.14 639.41,-175.14 642.91,-175.01 639.3,-171.99 646.41,-174.88 646.41,-174.88\"/>\n",
1975       "</g>\n",
1976       "<!-- 4&#45;&gt;7 -->\n",
1977       "<g id=\"edge10\" class=\"edge\">\n",
1978       "<title>4&#45;&gt;7</title>\n",
1979       "<path fill=\"none\" stroke=\"black\" d=\"M580.51,-143.01C599.96,-147.98 620.65,-153.26 639.16,-157.98\"/>\n",
1980       "<polygon fill=\"black\" stroke=\"black\" points=\"646.4,-159.83 638.84,-161.15 643.01,-158.97 639.62,-158.1 639.62,-158.1 639.62,-158.1 643.01,-158.97 640.4,-155.05 646.4,-159.83 646.4,-159.83\"/>\n",
1981       "</g>\n",
1982       "<!-- 8 -->\n",
1983       "<g id=\"node10\" class=\"node\">\n",
1984       "<title>8</title>\n",
1985       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M739.5,-136C739.5,-136 658.5,-136 658.5,-136 652.5,-136 646.5,-130 646.5,-124 646.5,-124 646.5,-110 646.5,-110 646.5,-104 652.5,-98 658.5,-98 658.5,-98 739.5,-98 739.5,-98 745.5,-98 751.5,-104 751.5,-110 751.5,-110 751.5,-124 751.5,-124 751.5,-130 745.5,-136 739.5,-136\"/>\n",
1986       "<text text-anchor=\"start\" x=\"654.5\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\">a=1, b=2, Q=0</text>\n",
1987       "<text text-anchor=\"start\" x=\"694\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
1988       "</g>\n",
1989       "<!-- 4&#45;&gt;8 -->\n",
1990       "<g id=\"edge11\" class=\"edge\">\n",
1991       "<title>4&#45;&gt;8</title>\n",
1992       "<path fill=\"none\" stroke=\"black\" d=\"M585.2,-121.11C603.28,-120.45 622.18,-119.76 639.22,-119.14\"/>\n",
1993       "<polygon fill=\"black\" stroke=\"black\" points=\"646.41,-118.88 639.52,-122.28 642.91,-119.01 639.41,-119.14 639.41,-119.14 639.41,-119.14 642.91,-119.01 639.3,-115.99 646.41,-118.88 646.41,-118.88\"/>\n",
1994       "</g>\n",
1995       "<!-- 5&#45;&gt;8 -->\n",
1996       "<g id=\"edge13\" class=\"edge\">\n",
1997       "<title>5&#45;&gt;8</title>\n",
1998       "<path fill=\"none\" stroke=\"black\" d=\"M580.51,-87.01C599.96,-91.98 620.65,-97.26 639.16,-101.98\"/>\n",
1999       "<polygon fill=\"black\" stroke=\"black\" points=\"646.4,-103.83 638.84,-105.15 643.01,-102.97 639.62,-102.1 639.62,-102.1 639.62,-102.1 643.01,-102.97 640.4,-99.05 646.4,-103.83 646.4,-103.83\"/>\n",
2000       "</g>\n",
2001       "<!-- u5 -->\n",
2002       "<g id=\"node11\" class=\"node\">\n",
2003       "<title>u5</title>\n",
2004       "<g id=\"a_node11\"><a xlink:title=\"hidden successors\">\n",
2005       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M704.33,-79.5C704.33,-79.5 693.67,-79.5 693.67,-79.5 689.83,-79.5 686,-75.67 686,-71.83 686,-71.83 686,-64.17 686,-64.17 686,-60.33 689.83,-56.5 693.67,-56.5 693.67,-56.5 704.33,-56.5 704.33,-56.5 708.17,-56.5 712,-60.33 712,-64.17 712,-64.17 712,-71.83 712,-71.83 712,-75.67 708.17,-79.5 704.33,-79.5\"/>\n",
2006       "<text text-anchor=\"middle\" x=\"699\" y=\"-64.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
2007       "</a>\n",
2008       "</g>\n",
2009       "</g>\n",
2010       "<!-- 5&#45;&gt;u5 -->\n",
2011       "<g id=\"edge12\" class=\"edge\">\n",
2012       "<title>5&#45;&gt;u5</title>\n",
2013       "<g id=\"a_edge12\"><a xlink:title=\"hidden successors\">\n",
2014       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M583.26,-68C618.13,-68 656.42,-68 678.77,-68\"/>\n",
2015       "<polygon fill=\"black\" stroke=\"black\" points=\"685.98,-68 678.98,-71.15 682.48,-68 678.98,-68 678.98,-68 678.98,-68 682.48,-68 678.98,-64.85 685.98,-68 685.98,-68\"/>\n",
2016       "</a>\n",
2017       "</g>\n",
2018       "</g>\n",
2019       "<!-- 9 -->\n",
2020       "<g id=\"node12\" class=\"node\">\n",
2021       "<title>9</title>\n",
2022       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M739.5,-38C739.5,-38 658.5,-38 658.5,-38 652.5,-38 646.5,-32 646.5,-26 646.5,-26 646.5,-12 646.5,-12 646.5,-6 652.5,0 658.5,0 658.5,0 739.5,0 739.5,0 745.5,0 751.5,-6 751.5,-12 751.5,-12 751.5,-26 751.5,-26 751.5,-32 745.5,-38 739.5,-38\"/>\n",
2023       "<text text-anchor=\"start\" x=\"654.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">a=0, b=3, Q=0</text>\n",
2024       "<text text-anchor=\"start\" x=\"694\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
2025       "</g>\n",
2026       "<!-- 5&#45;&gt;9 -->\n",
2027       "<g id=\"edge14\" class=\"edge\">\n",
2028       "<title>5&#45;&gt;9</title>\n",
2029       "<path fill=\"none\" stroke=\"black\" d=\"M580.51,-48.99C599.96,-44.02 620.65,-38.74 639.16,-34.02\"/>\n",
2030       "<polygon fill=\"black\" stroke=\"black\" points=\"646.4,-32.17 640.4,-36.95 643.01,-33.03 639.62,-33.9 639.62,-33.9 639.62,-33.9 643.01,-33.03 638.84,-30.85 646.4,-32.17 646.4,-32.17\"/>\n",
2031       "</g>\n",
2032       "<!-- 6&#45;&gt;6 -->\n",
2033       "<g id=\"edge15\" class=\"edge\">\n",
2034       "<title>6&#45;&gt;6</title>\n",
2035       "<path fill=\"none\" stroke=\"black\" d=\"M676.07,-248.04C672.9,-257.53 680.54,-266 699,-266 712.55,-266 720.28,-261.43 722.17,-255.25\"/>\n",
2036       "<polygon fill=\"black\" stroke=\"black\" points=\"721.93,-248.04 725.31,-254.93 722.04,-251.54 722.16,-255.03 722.16,-255.03 722.16,-255.03 722.04,-251.54 719.01,-255.14 721.93,-248.04 721.93,-248.04\"/>\n",
2037       "</g>\n",
2038       "<!-- u7 -->\n",
2039       "<g id=\"node13\" class=\"node\">\n",
2040       "<title>u7</title>\n",
2041       "<g id=\"a_node13\"><a xlink:title=\"hidden successors\">\n",
2042       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M831.33,-184.5C831.33,-184.5 820.67,-184.5 820.67,-184.5 816.83,-184.5 813,-180.67 813,-176.83 813,-176.83 813,-169.17 813,-169.17 813,-165.33 816.83,-161.5 820.67,-161.5 820.67,-161.5 831.33,-161.5 831.33,-161.5 835.17,-161.5 839,-165.33 839,-169.17 839,-169.17 839,-176.83 839,-176.83 839,-180.67 835.17,-184.5 831.33,-184.5\"/>\n",
2043       "<text text-anchor=\"middle\" x=\"826\" y=\"-169.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
2044       "</a>\n",
2045       "</g>\n",
2046       "</g>\n",
2047       "<!-- 7&#45;&gt;u7 -->\n",
2048       "<g id=\"edge16\" class=\"edge\">\n",
2049       "<title>7&#45;&gt;u7</title>\n",
2050       "<g id=\"a_edge16\"><a xlink:title=\"hidden successors\">\n",
2051       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M751.56,-173C770.63,-173 791.1,-173 805.57,-173\"/>\n",
2052       "<polygon fill=\"black\" stroke=\"black\" points=\"812.94,-173 805.94,-176.15 809.44,-173 805.94,-173 805.94,-173 805.94,-173 809.44,-173 805.94,-169.85 812.94,-173 812.94,-173\"/>\n",
2053       "</a>\n",
2054       "</g>\n",
2055       "</g>\n",
2056       "<!-- u8 -->\n",
2057       "<g id=\"node14\" class=\"node\">\n",
2058       "<title>u8</title>\n",
2059       "<g id=\"a_node14\"><a xlink:title=\"hidden successors\">\n",
2060       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M831.33,-128.5C831.33,-128.5 820.67,-128.5 820.67,-128.5 816.83,-128.5 813,-124.67 813,-120.83 813,-120.83 813,-113.17 813,-113.17 813,-109.33 816.83,-105.5 820.67,-105.5 820.67,-105.5 831.33,-105.5 831.33,-105.5 835.17,-105.5 839,-109.33 839,-113.17 839,-113.17 839,-120.83 839,-120.83 839,-124.67 835.17,-128.5 831.33,-128.5\"/>\n",
2061       "<text text-anchor=\"middle\" x=\"826\" y=\"-113.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
2062       "</a>\n",
2063       "</g>\n",
2064       "</g>\n",
2065       "<!-- 8&#45;&gt;u8 -->\n",
2066       "<g id=\"edge17\" class=\"edge\">\n",
2067       "<title>8&#45;&gt;u8</title>\n",
2068       "<g id=\"a_edge17\"><a xlink:title=\"hidden successors\">\n",
2069       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M751.56,-117C770.63,-117 791.1,-117 805.57,-117\"/>\n",
2070       "<polygon fill=\"black\" stroke=\"black\" points=\"812.94,-117 805.94,-120.15 809.44,-117 805.94,-117 805.94,-117 805.94,-117 809.44,-117 805.94,-113.85 812.94,-117 812.94,-117\"/>\n",
2071       "</a>\n",
2072       "</g>\n",
2073       "</g>\n",
2074       "<!-- u9 -->\n",
2075       "<g id=\"node15\" class=\"node\">\n",
2076       "<title>u9</title>\n",
2077       "<g id=\"a_node15\"><a xlink:title=\"hidden successors\">\n",
2078       "<path fill=\"#ffffaa\" stroke=\"transparent\" d=\"M831.33,-30.5C831.33,-30.5 820.67,-30.5 820.67,-30.5 816.83,-30.5 813,-26.67 813,-22.83 813,-22.83 813,-15.17 813,-15.17 813,-11.33 816.83,-7.5 820.67,-7.5 820.67,-7.5 831.33,-7.5 831.33,-7.5 835.17,-7.5 839,-11.33 839,-15.17 839,-15.17 839,-22.83 839,-22.83 839,-26.67 835.17,-30.5 831.33,-30.5\"/>\n",
2079       "<text text-anchor=\"middle\" x=\"826\" y=\"-15.3\" font-family=\"Lato\" font-size=\"14.00\">...</text>\n",
2080       "</a>\n",
2081       "</g>\n",
2082       "</g>\n",
2083       "<!-- 9&#45;&gt;u9 -->\n",
2084       "<g id=\"edge18\" class=\"edge\">\n",
2085       "<title>9&#45;&gt;u9</title>\n",
2086       "<g id=\"a_edge18\"><a xlink:title=\"hidden successors\">\n",
2087       "<path fill=\"none\" stroke=\"black\" stroke-dasharray=\"5,2\" d=\"M751.56,-19C770.63,-19 791.1,-19 805.57,-19\"/>\n",
2088       "<polygon fill=\"black\" stroke=\"black\" points=\"812.94,-19 805.94,-22.15 809.44,-19 805.94,-19 805.94,-19 805.94,-19 809.44,-19 805.94,-15.85 812.94,-19 812.94,-19\"/>\n",
2089       "</a>\n",
2090       "</g>\n",
2091       "</g>\n",
2092       "</g>\n",
2093       "</svg>\n"
2094      ],
2095      "text/plain": [
2096       "<spot.impl.kripke_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::kripke_graph > *' at 0x7fe6bc6c4210> >"
2097      ]
2098     },
2099     "execution_count": 21,
2100     "metadata": {},
2101     "output_type": "execute_result"
2102    }
2103   ],
2104   "source": [
2105    "k2 = spot.automaton(string, want_kripke=True)\n",
2106    "print(type(k2))\n",
2107    "k2"
2108   ]
2109  }
2110 ],
2111 "metadata": {
2112  "kernelspec": {
2113   "display_name": "Python 3",
2114   "language": "python",
2115   "name": "python3"
2116  },
2117  "language_info": {
2118   "codemirror_mode": {
2119    "name": "ipython",
2120    "version": 3
2121   },
2122   "file_extension": ".py",
2123   "mimetype": "text/x-python",
2124   "name": "python",
2125   "nbconvert_exporter": "python",
2126   "pygments_lexer": "ipython3",
2127   "version": "3.8.2"
2128  }
2129 },
2130 "nbformat": 4,
2131 "nbformat_minor": 2
2132}
2133