1{
2 "cells": [
3  {
4   "cell_type": "code",
5   "execution_count": 1,
6   "metadata": {},
7   "outputs": [],
8   "source": [
9    "import spot\n",
10    "spot.setup()\n",
11    "from spot.jupyter import display_inline\n",
12    "def display2(*args):\n",
13    "    display_inline(*args, per_row=2)"
14   ]
15  },
16  {
17   "cell_type": "markdown",
18   "metadata": {},
19   "source": [
20    "# Definitions and examples for parity acceptance"
21   ]
22  },
23  {
24   "cell_type": "markdown",
25   "metadata": {},
26   "source": [
27    "In Spot a **parity acceptance** is defined by a **kind**, a **style** and a **numsets**:\n",
28    "+ The **kind** can be either **max** or **min**.\n",
29    "+ The **style** can be either **odd** or **even**.\n",
30    "+ The **numsets** is the number of acceptance sets (a.k.a. colors) used by the parity acceptance.\n",
31    "    \n",
32    "Here are some examples:"
33   ]
34  },
35  {
36   "cell_type": "code",
37   "execution_count": 2,
38   "metadata": {},
39   "outputs": [
40    {
41     "name": "stdout",
42     "output_type": "stream",
43     "text": [
44      "parity min odd 1  = Fin(0)\n",
45      "parity min odd 2  = Fin(0) & Inf(1)\n",
46      "parity min odd 3  = Fin(0) & (Inf(1) | Fin(2))\n",
47      "parity min odd 4  = Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))\n",
48      "parity min even 1 = Inf(0)\n",
49      "parity min even 2 = Inf(0) | Fin(1)\n",
50      "parity min even 3 = Inf(0) | (Fin(1) & Inf(2))\n",
51      "parity min even 4 = Inf(0) | (Fin(1) & (Inf(2) | Fin(3)))\n",
52      "parity max odd 1  = Fin(0)\n",
53      "parity max odd 2  = Inf(1) | Fin(0)\n",
54      "parity max odd 3  = Fin(2) & (Inf(1) | Fin(0))\n",
55      "parity max odd 4  = Inf(3) | (Fin(2) & (Inf(1) | Fin(0)))\n",
56      "parity max even 1 = Inf(0)\n",
57      "parity max even 2 = Fin(1) & Inf(0)\n",
58      "parity max even 3 = Inf(2) | (Fin(1) & Inf(0))\n",
59      "parity max even 4 = Fin(3) & (Inf(2) | (Fin(1) & Inf(0)))\n"
60     ]
61    }
62   ],
63   "source": [
64    "for kind in ['min', 'max']:\n",
65    "    for style in ['odd', 'even']:\n",
66    "        for sets in range(1, 5):\n",
67    "            name = 'parity {} {} {}'.format(kind, style, sets)\n",
68    "            print('{:17} = {}'.format(name, spot.acc_code(name)))"
69   ]
70  },
71  {
72   "cell_type": "markdown",
73   "metadata": {},
74   "source": [
75    "Of course the case of parity automata with a single color is a bit degenerate, as the same formula correspond to two parity conditions with different kinds. \n",
76    "\n",
77    "In addition the the above, an automaton is said to be **colored** if each of its edges (or states) has exactly one color.  Automata that people usually call *parity automata* correspond in Spot to *colored* automata with *parity acceptance*.  For this reason try to use the term *automata with parity acceptance* rather than *parity automata* for automata that are not *colored*."
78   ]
79  },
80  {
81   "cell_type": "code",
82   "execution_count": 3,
83   "metadata": {},
84   "outputs": [],
85   "source": [
86    "# Generate a few random automata for the upcoming examples.\n",
87    "maxodd4, maxodd5, minodd4, minodd5, maxeven4 = spot.automata(\"\"\"\n",
88    "randaut -A 'parity max odd 4' -Q4 -e.4 2;\n",
89    "randaut -A 'parity max odd 5' -Q4 -e.4 2;\n",
90    "randaut -A 'parity min odd 4' -Q4 -e.4 2;\n",
91    "randaut -A 'parity min odd 5' -Q4 -e.4 2;\n",
92    "randaut -A 'parity max even 4' -Q4 -e.4 2|\"\"\")"
93   ]
94  },
95  {
96   "cell_type": "markdown",
97   "metadata": {},
98   "source": [
99    "# Testing parity and colored\n",
100    "\n",
101    "`is_parity()` is a method of `spot.acc_cond` that returns three Boolean values: \n",
102    "1. whether the condition is a parity condition,\n",
103    "2. whether it has `max` kind,\n",
104    "3. whether it has `odd` style."
105   ]
106  },
107  {
108   "cell_type": "code",
109   "execution_count": 4,
110   "metadata": {},
111   "outputs": [
112    {
113     "data": {
114      "text/plain": [
115       "[True, True, True]"
116      ]
117     },
118     "execution_count": 4,
119     "metadata": {},
120     "output_type": "execute_result"
121    }
122   ],
123   "source": [
124    "maxodd4.acc().is_parity()"
125   ]
126  },
127  {
128   "cell_type": "code",
129   "execution_count": 5,
130   "metadata": {},
131   "outputs": [
132    {
133     "data": {
134      "text/plain": [
135       "[True, True, False]"
136      ]
137     },
138     "execution_count": 5,
139     "metadata": {},
140     "output_type": "execute_result"
141    }
142   ],
143   "source": [
144    "maxeven4.acc().is_parity()"
145   ]
146  },
147  {
148   "cell_type": "code",
149   "execution_count": 6,
150   "metadata": {},
151   "outputs": [
152    {
153     "data": {
154      "text/plain": [
155       "[True, False, True]"
156      ]
157     },
158     "execution_count": 6,
159     "metadata": {},
160     "output_type": "execute_result"
161    }
162   ],
163   "source": [
164    "minodd5.acc().is_parity()"
165   ]
166  },
167  {
168   "cell_type": "markdown",
169   "metadata": {},
170   "source": [
171    "By default, `is_parity()` will match only conditions that are exactly equal to what the HOA format defines for the relevant configuration.   For instance, the formula for `min odd 4` should be exactly the following:"
172   ]
173  },
174  {
175   "cell_type": "code",
176   "execution_count": 7,
177   "metadata": {},
178   "outputs": [
179    {
180     "name": "stdout",
181     "output_type": "stream",
182     "text": [
183      "Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))\n"
184     ]
185    }
186   ],
187   "source": [
188    "print(spot.acc_code(\"parity min odd 4\"))"
189   ]
190  },
191  {
192   "cell_type": "markdown",
193   "metadata": {},
194   "source": [
195    "However there are many formulas that are equivalent to the above.  For instance the following `testacc` acceptance condition is logically equivalent to `parity min odd 4`.  Passing it through `is_parity()` will fail: the first Boolean returned is False, and the remaining one should be ignored."
196   ]
197  },
198  {
199   "cell_type": "code",
200   "execution_count": 8,
201   "metadata": {},
202   "outputs": [
203    {
204     "name": "stdout",
205     "output_type": "stream",
206     "text": [
207      "[False, False, True]\n"
208     ]
209    }
210   ],
211   "source": [
212    "testacc = spot.acc_cond(\"(Fin(0) & Inf(1)) | (Fin(0) & Fin(2) & Inf(3))\")\n",
213    "print(testacc.is_parity())"
214   ]
215  },
216  {
217   "cell_type": "markdown",
218   "metadata": {},
219   "source": [
220    "To test logical equivalence to a Parity condition, pass a `True` argument to `is_parity()`."
221   ]
222  },
223  {
224   "cell_type": "code",
225   "execution_count": 9,
226   "metadata": {},
227   "outputs": [
228    {
229     "name": "stdout",
230     "output_type": "stream",
231     "text": [
232      "[True, False, True]\n"
233     ]
234    }
235   ],
236   "source": [
237    "print(testacc.is_parity(True))"
238   ]
239  },
240  {
241   "cell_type": "markdown",
242   "metadata": {},
243   "source": [
244    "To test if an automaton is colored, use `is_colored`.  Not this technically, this property is orthogonal to the fact the the automaton uses the acceptance conditions.  It just states that each edge (or state) belongs to exactly one acceptance set."
245   ]
246  },
247  {
248   "cell_type": "code",
249   "execution_count": 10,
250   "metadata": {},
251   "outputs": [
252    {
253     "data": {
254      "text/plain": [
255       "False"
256      ]
257     },
258     "execution_count": 10,
259     "metadata": {},
260     "output_type": "execute_result"
261    }
262   ],
263   "source": [
264    "spot.is_colored(minodd4)"
265   ]
266  },
267  {
268   "cell_type": "code",
269   "execution_count": 11,
270   "metadata": {},
271   "outputs": [
272    {
273     "data": {
274      "text/plain": [
275       "True"
276      ]
277     },
278     "execution_count": 11,
279     "metadata": {},
280     "output_type": "execute_result"
281    }
282   ],
283   "source": [
284    "spot.is_colored(spot.colorize_parity(minodd4)) # See below for `colorize_parity()`."
285   ]
286  },
287  {
288   "cell_type": "markdown",
289   "metadata": {},
290   "source": [
291    "# Functions for altering automata with parity acceptance\n",
292    "\n",
293    "- [`change_parity()`](#Change-parity) can be used to alter the [*style*](#Changing-the-style), or [*kind*](#Changing-the-kind) of a parity acceptance.  For instance if you have an automaton with `parity min even` acceptance and want an automaton with `parity max odd`, this is the function to use.\n",
294    "- [`colorize_parity()`](#Colorize-parity) transforms an automaton with parity acceptance into a colored automaton with parity acceptance (a.k.a., parity automaton).\n",
295    "- [`cleanup_parity()`](#Cleanup-parity) remove from the acceptance condition colors that are unused in the automaton, while keeping it a parity acceptance.\n",
296    "- [`reduce_parity()`](#Reduce-parity) minimize the number of colors used in the automaton, producing the smallest parity acceptance condition possible for this automaton."
297   ]
298  },
299  {
300   "cell_type": "markdown",
301   "metadata": {},
302   "source": [
303    "# Change parity\n",
304    "\n",
305    "This section describes the `change_parity()` method, that allows switching between different kinds and styles.\n",
306    "Its takes three arguments:\n",
307    "1. the automaton to modify\n",
308    "2. the desired kind (`spot.parity_kind_any`, `spot.parity_kind_same`, `spot.parity_kind_max`, `spot.parity_kind_min`)\n",
309    "3. the desired style (`spot.parity_style_any`, `spot.parity_style_same`, `spot.parity_style_odd`, `spot.parity_style_even`)"
310   ]
311  },
312  {
313   "cell_type": "markdown",
314   "metadata": {},
315   "source": [
316    "## Changing the **style**\n",
317    "\n",
318    "Changing the style from `odd` to `even` or vice-versa can be done by adding a new color 0 and shifting all original colors by one, keeping the maximum or minimum color in case an edge has multiple colors.\n",
319    "\n",
320    "When the acceptance is a parity `max`, all the transitions that do not belong to any acceptance set will have the new color.\n",
321    "\n",
322    "### max odd 5 → max even 6"
323   ]
324  },
325  {
326   "cell_type": "code",
327   "execution_count": 12,
328   "metadata": {},
329   "outputs": [
330    {
331     "data": {
332      "text/html": [
333       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
334       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
335       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
336       "<!-- Generated by graphviz version 2.43.0 (0)\n",
337       " -->\n",
338       "<!-- Pages: 1 -->\n",
339       "<svg width=\"514pt\" height=\"190pt\"\n",
340       " viewBox=\"0.00 0.00 513.50 189.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
341       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 185.93)\">\n",
342       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.93 509.5,-185.93 509.5,4 -4,4\"/>\n",
343       "<text text-anchor=\"start\" x=\"107.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
344       "<text text-anchor=\"start\" x=\"130.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
345       "<text text-anchor=\"start\" x=\"146.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
346       "<text text-anchor=\"start\" x=\"192.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
347       "<text text-anchor=\"start\" x=\"208.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
348       "<text text-anchor=\"start\" x=\"250.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
349       "<text text-anchor=\"start\" x=\"266.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
350       "<text text-anchor=\"start\" x=\"312.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
351       "<text text-anchor=\"start\" x=\"328.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
352       "<text text-anchor=\"start\" x=\"366.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
353       "<text text-anchor=\"start\" x=\"382.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
354       "<text text-anchor=\"start\" x=\"197.25\" y=\"-153.73\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n",
355       "<!-- I -->\n",
356       "<!-- 0 -->\n",
357       "<g id=\"node2\" class=\"node\">\n",
358       "<title>0</title>\n",
359       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n",
360       "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
361       "</g>\n",
362       "<!-- I&#45;&gt;0 -->\n",
363       "<g id=\"edge1\" class=\"edge\">\n",
364       "<title>I&#45;&gt;0</title>\n",
365       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n",
366       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n",
367       "</g>\n",
368       "<!-- 2 -->\n",
369       "<g id=\"node3\" class=\"node\">\n",
370       "<title>2</title>\n",
371       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n",
372       "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
373       "</g>\n",
374       "<!-- 0&#45;&gt;2 -->\n",
375       "<g id=\"edge2\" class=\"edge\">\n",
376       "<title>0&#45;&gt;2</title>\n",
377       "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n",
378       "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n",
379       "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
380       "</g>\n",
381       "<!-- 3 -->\n",
382       "<g id=\"node4\" class=\"node\">\n",
383       "<title>3</title>\n",
384       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
385       "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
386       "</g>\n",
387       "<!-- 0&#45;&gt;3 -->\n",
388       "<g id=\"edge3\" class=\"edge\">\n",
389       "<title>0&#45;&gt;3</title>\n",
390       "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n",
391       "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n",
392       "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
393       "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
394       "</g>\n",
395       "<!-- 2&#45;&gt;2 -->\n",
396       "<g id=\"edge7\" class=\"edge\">\n",
397       "<title>2&#45;&gt;2</title>\n",
398       "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n",
399       "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n",
400       "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
401       "</g>\n",
402       "<!-- 1 -->\n",
403       "<g id=\"node5\" class=\"node\">\n",
404       "<title>1</title>\n",
405       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
406       "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
407       "</g>\n",
408       "<!-- 2&#45;&gt;1 -->\n",
409       "<g id=\"edge8\" class=\"edge\">\n",
410       "<title>2&#45;&gt;1</title>\n",
411       "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n",
412       "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n",
413       "<text text-anchor=\"start\" x=\"238\" y=\"-103.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
414       "<text text-anchor=\"start\" x=\"242.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
415       "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
416       "<text text-anchor=\"start\" x=\"274.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
417       "</g>\n",
418       "<!-- 3&#45;&gt;2 -->\n",
419       "<g id=\"edge10\" class=\"edge\">\n",
420       "<title>3&#45;&gt;2</title>\n",
421       "<path fill=\"none\" stroke=\"black\" d=\"M469.15,-71.93C462.86,-79.04 454.36,-87.16 445,-91.93 384.71,-122.65 362.41,-112.13 295,-117.93 269.76,-120.1 262.48,-124.47 238,-117.93 229.88,-115.77 221.7,-111.68 214.67,-107.43\"/>\n",
422       "<polygon fill=\"black\" stroke=\"black\" points=\"208.56,-103.54 216.15,-104.65 211.51,-105.42 214.46,-107.3 214.46,-107.3 214.46,-107.3 211.51,-105.42 212.76,-109.96 208.56,-103.54 208.56,-103.54\"/>\n",
423       "<text text-anchor=\"start\" x=\"313\" y=\"-134.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
424       "<text text-anchor=\"start\" x=\"333.5\" y=\"-119.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
425       "</g>\n",
426       "<!-- 3&#45;&gt;3 -->\n",
427       "<g id=\"edge9\" class=\"edge\">\n",
428       "<title>3&#45;&gt;3</title>\n",
429       "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n",
430       "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n",
431       "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
432       "<text text-anchor=\"start\" x=\"465\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
433       "<text text-anchor=\"start\" x=\"481\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
434       "</g>\n",
435       "<!-- 1&#45;&gt;0 -->\n",
436       "<g id=\"edge5\" class=\"edge\">\n",
437       "<title>1&#45;&gt;0</title>\n",
438       "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n",
439       "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n",
440       "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
441       "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
442       "</g>\n",
443       "<!-- 1&#45;&gt;2 -->\n",
444       "<g id=\"edge4\" class=\"edge\">\n",
445       "<title>1&#45;&gt;2</title>\n",
446       "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n",
447       "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n",
448       "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
449       "</g>\n",
450       "<!-- 1&#45;&gt;3 -->\n",
451       "<g id=\"edge6\" class=\"edge\">\n",
452       "<title>1&#45;&gt;3</title>\n",
453       "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n",
454       "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n",
455       "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
456       "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
457       "</g>\n",
458       "</g>\n",
459       "</svg>\n",
460       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
461       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
462       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
463       "<!-- Generated by graphviz version 2.43.0 (0)\n",
464       " -->\n",
465       "<!-- Pages: 1 -->\n",
466       "<svg width=\"514pt\" height=\"210pt\"\n",
467       " viewBox=\"0.00 0.00 513.50 209.89\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
468       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 205.89)\">\n",
469       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-205.89 509.5,-205.89 509.5,4 -4,4\"/>\n",
470       "<text text-anchor=\"start\" x=\"74.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
471       "<text text-anchor=\"start\" x=\"97.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
472       "<text text-anchor=\"start\" x=\"113.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
473       "<text text-anchor=\"start\" x=\"159.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
474       "<text text-anchor=\"start\" x=\"175.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
475       "<text text-anchor=\"start\" x=\"217.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
476       "<text text-anchor=\"start\" x=\"233.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
477       "<text text-anchor=\"start\" x=\"279.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
478       "<text text-anchor=\"start\" x=\"295.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
479       "<text text-anchor=\"start\" x=\"337.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
480       "<text text-anchor=\"start\" x=\"353.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
481       "<text text-anchor=\"start\" x=\"395.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
482       "<text text-anchor=\"start\" x=\"411.75\" y=\"-187.69\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n",
483       "<text text-anchor=\"start\" x=\"194.25\" y=\"-173.69\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 6]</text>\n",
484       "<!-- I -->\n",
485       "<!-- 0 -->\n",
486       "<g id=\"node2\" class=\"node\">\n",
487       "<title>0</title>\n",
488       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-23.89\" rx=\"18\" ry=\"18\"/>\n",
489       "<text text-anchor=\"middle\" x=\"56\" y=\"-20.19\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
490       "</g>\n",
491       "<!-- I&#45;&gt;0 -->\n",
492       "<g id=\"edge1\" class=\"edge\">\n",
493       "<title>I&#45;&gt;0</title>\n",
494       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.89C2.79,-23.89 17.15,-23.89 30.63,-23.89\"/>\n",
495       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.89 30.94,-27.04 34.44,-23.89 30.94,-23.89 30.94,-23.89 30.94,-23.89 34.44,-23.89 30.94,-20.74 37.94,-23.89 37.94,-23.89\"/>\n",
496       "</g>\n",
497       "<!-- 2 -->\n",
498       "<g id=\"node3\" class=\"node\">\n",
499       "<title>2</title>\n",
500       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-99.89\" rx=\"18\" ry=\"18\"/>\n",
501       "<text text-anchor=\"middle\" x=\"193.5\" y=\"-96.19\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
502       "</g>\n",
503       "<!-- 0&#45;&gt;2 -->\n",
504       "<g id=\"edge2\" class=\"edge\">\n",
505       "<title>0&#45;&gt;2</title>\n",
506       "<path fill=\"none\" stroke=\"black\" d=\"M72.02,-32.31C96.13,-45.83 143.57,-72.44 171.18,-87.93\"/>\n",
507       "<polygon fill=\"black\" stroke=\"black\" points=\"177.41,-91.43 169.77,-90.75 174.36,-89.71 171.31,-88 171.31,-88 171.31,-88 174.36,-89.71 172.85,-85.25 177.41,-91.43 177.41,-91.43\"/>\n",
508       "<text text-anchor=\"start\" x=\"92\" y=\"-93.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
509       "<text text-anchor=\"start\" x=\"112.5\" y=\"-78.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
510       "</g>\n",
511       "<!-- 3 -->\n",
512       "<g id=\"node4\" class=\"node\">\n",
513       "<title>3</title>\n",
514       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-56.89\" rx=\"18\" ry=\"18\"/>\n",
515       "<text text-anchor=\"middle\" x=\"481\" y=\"-53.19\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
516       "</g>\n",
517       "<!-- 0&#45;&gt;3 -->\n",
518       "<g id=\"edge3\" class=\"edge\">\n",
519       "<title>0&#45;&gt;3</title>\n",
520       "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-19.91C112.82,-11.24 212.46,7.7 295,-3.89 354.92,-12.3 422.66,-35.34 457.15,-48.1\"/>\n",
521       "<polygon fill=\"black\" stroke=\"black\" points=\"464,-50.65 456.34,-51.15 460.72,-49.43 457.44,-48.2 457.44,-48.2 457.44,-48.2 460.72,-49.43 458.54,-45.25 464,-50.65 464,-50.65\"/>\n",
522       "<text text-anchor=\"start\" x=\"238\" y=\"-22.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
523       "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
524       "</g>\n",
525       "<!-- 2&#45;&gt;2 -->\n",
526       "<g id=\"edge7\" class=\"edge\">\n",
527       "<title>2&#45;&gt;2</title>\n",
528       "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-113.93C177.35,-124.8 181.27,-135.89 193.5,-135.89 203.06,-135.89 207.54,-129.12 206.95,-120.98\"/>\n",
529       "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-113.93 209.95,-120 206.07,-117.33 206.89,-120.74 206.89,-120.74 206.89,-120.74 206.07,-117.33 203.83,-121.47 205.26,-113.93 205.26,-113.93\"/>\n",
530       "<text text-anchor=\"start\" x=\"169\" y=\"-154.69\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
531       "<text text-anchor=\"start\" x=\"185.5\" y=\"-139.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
532       "</g>\n",
533       "<!-- 1 -->\n",
534       "<g id=\"node5\" class=\"node\">\n",
535       "<title>1</title>\n",
536       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-56.89\" rx=\"18\" ry=\"18\"/>\n",
537       "<text text-anchor=\"middle\" x=\"341.5\" y=\"-53.19\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
538       "</g>\n",
539       "<!-- 2&#45;&gt;1 -->\n",
540       "<g id=\"edge8\" class=\"edge\">\n",
541       "<title>2&#45;&gt;1</title>\n",
542       "<path fill=\"none\" stroke=\"black\" d=\"M211.8,-100.28C232.3,-100.2 267.19,-98.31 295,-87.89 304.56,-84.31 314.06,-78.32 321.89,-72.56\"/>\n",
543       "<polygon fill=\"black\" stroke=\"black\" points=\"327.52,-68.24 323.88,-75 324.74,-70.37 321.97,-72.5 321.97,-72.5 321.97,-72.5 324.74,-70.37 320.05,-70 327.52,-68.24 327.52,-68.24\"/>\n",
544       "<text text-anchor=\"start\" x=\"238\" y=\"-117.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
545       "<text text-anchor=\"start\" x=\"258.5\" y=\"-102.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
546       "</g>\n",
547       "<!-- 3&#45;&gt;2 -->\n",
548       "<g id=\"edge10\" class=\"edge\">\n",
549       "<title>3&#45;&gt;2</title>\n",
550       "<path fill=\"none\" stroke=\"black\" d=\"M468.94,-70.51C462.6,-77.51 454.11,-85.65 445,-90.89 384.99,-125.4 363.59,-123.47 295,-132.89 269.9,-136.33 262.01,-140.96 238,-132.89 228.41,-129.66 219.25,-123.38 211.83,-117.16\"/>\n",
551       "<polygon fill=\"black\" stroke=\"black\" points=\"206.52,-112.47 213.85,-114.74 209.14,-114.79 211.76,-117.1 211.76,-117.1 211.76,-117.1 209.14,-114.79 209.68,-119.46 206.52,-112.47 206.52,-112.47\"/>\n",
552       "<text text-anchor=\"start\" x=\"313\" y=\"-148.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
553       "<text text-anchor=\"start\" x=\"333.5\" y=\"-133.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
554       "</g>\n",
555       "<!-- 3&#45;&gt;3 -->\n",
556       "<g id=\"edge9\" class=\"edge\">\n",
557       "<title>3&#45;&gt;3</title>\n",
558       "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-71.68C466.81,-82.3 470.38,-92.89 481,-92.89 489.13,-92.89 493.13,-86.68 493,-79.01\"/>\n",
559       "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-71.68 496.02,-78.03 492.31,-75.13 492.92,-78.57 492.92,-78.57 492.92,-78.57 492.31,-75.13 489.82,-79.12 491.71,-71.68 491.71,-71.68\"/>\n",
560       "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.69\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
561       "<text text-anchor=\"start\" x=\"473\" y=\"-96.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
562       "</g>\n",
563       "<!-- 1&#45;&gt;0 -->\n",
564       "<g id=\"edge5\" class=\"edge\">\n",
565       "<title>1&#45;&gt;0</title>\n",
566       "<path fill=\"none\" stroke=\"black\" d=\"M323.77,-52.23C315.22,-50 304.62,-47.49 295,-45.89 217.58,-33.02 124.64,-27.16 81.38,-24.97\"/>\n",
567       "<polygon fill=\"black\" stroke=\"black\" points=\"74.14,-24.62 81.28,-21.81 77.63,-24.79 81.13,-24.96 81.13,-24.96 81.13,-24.96 77.63,-24.79 80.97,-28.11 74.14,-24.62 74.14,-24.62\"/>\n",
568       "<text text-anchor=\"start\" x=\"167\" y=\"-53.69\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
569       "<text text-anchor=\"start\" x=\"185.5\" y=\"-38.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
570       "</g>\n",
571       "<!-- 1&#45;&gt;2 -->\n",
572       "<g id=\"edge4\" class=\"edge\">\n",
573       "<title>1&#45;&gt;2</title>\n",
574       "<path fill=\"none\" stroke=\"black\" d=\"M323.78,-53.39C302.86,-49.82 266.32,-46.28 238,-57.89 226.95,-62.41 217.13,-71.21 209.63,-79.59\"/>\n",
575       "<polygon fill=\"black\" stroke=\"black\" points=\"204.82,-85.26 206.94,-77.89 207.09,-82.59 209.35,-79.92 209.35,-79.92 209.35,-79.92 207.09,-82.59 211.75,-81.96 204.82,-85.26 204.82,-85.26\"/>\n",
576       "<text text-anchor=\"start\" x=\"238\" y=\"-76.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
577       "<text text-anchor=\"start\" x=\"258.5\" y=\"-61.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
578       "</g>\n",
579       "<!-- 1&#45;&gt;3 -->\n",
580       "<g id=\"edge6\" class=\"edge\">\n",
581       "<title>1&#45;&gt;3</title>\n",
582       "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-56.89C383.72,-56.89 427.72,-56.89 455.33,-56.89\"/>\n",
583       "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-56.89 455.65,-60.04 459.15,-56.89 455.65,-56.89 455.65,-56.89 455.65,-56.89 459.15,-56.89 455.65,-53.74 462.65,-56.89 462.65,-56.89\"/>\n",
584       "<text text-anchor=\"start\" x=\"388\" y=\"-75.69\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
585       "<text text-anchor=\"start\" x=\"408.5\" y=\"-60.69\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
586       "</g>\n",
587       "</g>\n",
588       "</svg>\n",
589       "</div>"
590      ],
591      "text/plain": [
592       "<IPython.core.display.HTML object>"
593      ]
594     },
595     "metadata": {},
596     "output_type": "display_data"
597    }
598   ],
599   "source": [
600    "display2(maxodd5, spot.change_parity(maxodd5, spot.parity_kind_any, spot.parity_style_even))"
601   ]
602  },
603  {
604   "cell_type": "markdown",
605   "metadata": {},
606   "source": [
607    "### min odd 5 → min even 6\n"
608   ]
609  },
610  {
611   "cell_type": "code",
612   "execution_count": 13,
613   "metadata": {},
614   "outputs": [
615    {
616     "data": {
617      "text/html": [
618       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
619       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
620       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
621       "<!-- Generated by graphviz version 2.43.0 (0)\n",
622       " -->\n",
623       "<!-- Pages: 1 -->\n",
624       "<svg width=\"514pt\" height=\"190pt\"\n",
625       " viewBox=\"0.00 0.00 513.50 189.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
626       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 185.93)\">\n",
627       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.93 509.5,-185.93 509.5,4 -4,4\"/>\n",
628       "<text text-anchor=\"start\" x=\"107.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
629       "<text text-anchor=\"start\" x=\"130.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
630       "<text text-anchor=\"start\" x=\"146.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
631       "<text text-anchor=\"start\" x=\"192.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
632       "<text text-anchor=\"start\" x=\"208.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
633       "<text text-anchor=\"start\" x=\"250.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
634       "<text text-anchor=\"start\" x=\"266.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
635       "<text text-anchor=\"start\" x=\"312.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
636       "<text text-anchor=\"start\" x=\"328.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
637       "<text text-anchor=\"start\" x=\"366.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
638       "<text text-anchor=\"start\" x=\"382.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
639       "<text text-anchor=\"start\" x=\"198.75\" y=\"-153.73\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n",
640       "<!-- I -->\n",
641       "<!-- 0 -->\n",
642       "<g id=\"node2\" class=\"node\">\n",
643       "<title>0</title>\n",
644       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n",
645       "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
646       "</g>\n",
647       "<!-- I&#45;&gt;0 -->\n",
648       "<g id=\"edge1\" class=\"edge\">\n",
649       "<title>I&#45;&gt;0</title>\n",
650       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n",
651       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n",
652       "</g>\n",
653       "<!-- 2 -->\n",
654       "<g id=\"node3\" class=\"node\">\n",
655       "<title>2</title>\n",
656       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n",
657       "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
658       "</g>\n",
659       "<!-- 0&#45;&gt;2 -->\n",
660       "<g id=\"edge2\" class=\"edge\">\n",
661       "<title>0&#45;&gt;2</title>\n",
662       "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n",
663       "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n",
664       "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
665       "</g>\n",
666       "<!-- 3 -->\n",
667       "<g id=\"node4\" class=\"node\">\n",
668       "<title>3</title>\n",
669       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
670       "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
671       "</g>\n",
672       "<!-- 0&#45;&gt;3 -->\n",
673       "<g id=\"edge3\" class=\"edge\">\n",
674       "<title>0&#45;&gt;3</title>\n",
675       "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n",
676       "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n",
677       "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
678       "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
679       "</g>\n",
680       "<!-- 2&#45;&gt;2 -->\n",
681       "<g id=\"edge7\" class=\"edge\">\n",
682       "<title>2&#45;&gt;2</title>\n",
683       "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n",
684       "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n",
685       "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
686       "</g>\n",
687       "<!-- 1 -->\n",
688       "<g id=\"node5\" class=\"node\">\n",
689       "<title>1</title>\n",
690       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
691       "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
692       "</g>\n",
693       "<!-- 2&#45;&gt;1 -->\n",
694       "<g id=\"edge8\" class=\"edge\">\n",
695       "<title>2&#45;&gt;1</title>\n",
696       "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n",
697       "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n",
698       "<text text-anchor=\"start\" x=\"238\" y=\"-103.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
699       "<text text-anchor=\"start\" x=\"242.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
700       "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
701       "<text text-anchor=\"start\" x=\"274.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
702       "</g>\n",
703       "<!-- 3&#45;&gt;2 -->\n",
704       "<g id=\"edge10\" class=\"edge\">\n",
705       "<title>3&#45;&gt;2</title>\n",
706       "<path fill=\"none\" stroke=\"black\" d=\"M469.15,-71.93C462.86,-79.04 454.36,-87.16 445,-91.93 384.71,-122.65 362.41,-112.13 295,-117.93 269.76,-120.1 262.48,-124.47 238,-117.93 229.88,-115.77 221.7,-111.68 214.67,-107.43\"/>\n",
707       "<polygon fill=\"black\" stroke=\"black\" points=\"208.56,-103.54 216.15,-104.65 211.51,-105.42 214.46,-107.3 214.46,-107.3 214.46,-107.3 211.51,-105.42 212.76,-109.96 208.56,-103.54 208.56,-103.54\"/>\n",
708       "<text text-anchor=\"start\" x=\"313\" y=\"-134.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
709       "<text text-anchor=\"start\" x=\"333.5\" y=\"-119.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
710       "</g>\n",
711       "<!-- 3&#45;&gt;3 -->\n",
712       "<g id=\"edge9\" class=\"edge\">\n",
713       "<title>3&#45;&gt;3</title>\n",
714       "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n",
715       "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n",
716       "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
717       "<text text-anchor=\"start\" x=\"465\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
718       "<text text-anchor=\"start\" x=\"481\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
719       "</g>\n",
720       "<!-- 1&#45;&gt;0 -->\n",
721       "<g id=\"edge5\" class=\"edge\">\n",
722       "<title>1&#45;&gt;0</title>\n",
723       "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n",
724       "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n",
725       "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
726       "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
727       "</g>\n",
728       "<!-- 1&#45;&gt;2 -->\n",
729       "<g id=\"edge4\" class=\"edge\">\n",
730       "<title>1&#45;&gt;2</title>\n",
731       "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n",
732       "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n",
733       "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
734       "</g>\n",
735       "<!-- 1&#45;&gt;3 -->\n",
736       "<g id=\"edge6\" class=\"edge\">\n",
737       "<title>1&#45;&gt;3</title>\n",
738       "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n",
739       "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n",
740       "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
741       "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
742       "</g>\n",
743       "</g>\n",
744       "</svg>\n",
745       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
746       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
747       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
748       "<!-- Generated by graphviz version 2.43.0 (0)\n",
749       " -->\n",
750       "<!-- Pages: 1 -->\n",
751       "<svg width=\"514pt\" height=\"192pt\"\n",
752       " viewBox=\"0.00 0.00 513.50 191.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
753       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 187.93)\">\n",
754       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-187.93 509.5,-187.93 509.5,4 -4,4\"/>\n",
755       "<text text-anchor=\"start\" x=\"77.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
756       "<text text-anchor=\"start\" x=\"98.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
757       "<text text-anchor=\"start\" x=\"114.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
758       "<text text-anchor=\"start\" x=\"156.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
759       "<text text-anchor=\"start\" x=\"172.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
760       "<text text-anchor=\"start\" x=\"218.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
761       "<text text-anchor=\"start\" x=\"234.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
762       "<text text-anchor=\"start\" x=\"276.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
763       "<text text-anchor=\"start\" x=\"292.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
764       "<text text-anchor=\"start\" x=\"338.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
765       "<text text-anchor=\"start\" x=\"354.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
766       "<text text-anchor=\"start\" x=\"392.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
767       "<text text-anchor=\"start\" x=\"408.75\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n",
768       "<text text-anchor=\"start\" x=\"195.75\" y=\"-155.73\" font-family=\"Lato\" font-size=\"14.00\">[parity min even 6]</text>\n",
769       "<!-- I -->\n",
770       "<!-- 0 -->\n",
771       "<g id=\"node2\" class=\"node\">\n",
772       "<title>0</title>\n",
773       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n",
774       "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
775       "</g>\n",
776       "<!-- I&#45;&gt;0 -->\n",
777       "<g id=\"edge1\" class=\"edge\">\n",
778       "<title>I&#45;&gt;0</title>\n",
779       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n",
780       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n",
781       "</g>\n",
782       "<!-- 2 -->\n",
783       "<g id=\"node3\" class=\"node\">\n",
784       "<title>2</title>\n",
785       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n",
786       "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
787       "</g>\n",
788       "<!-- 0&#45;&gt;2 -->\n",
789       "<g id=\"edge2\" class=\"edge\">\n",
790       "<title>0&#45;&gt;2</title>\n",
791       "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n",
792       "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n",
793       "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
794       "</g>\n",
795       "<!-- 3 -->\n",
796       "<g id=\"node4\" class=\"node\">\n",
797       "<title>3</title>\n",
798       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
799       "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
800       "</g>\n",
801       "<!-- 0&#45;&gt;3 -->\n",
802       "<g id=\"edge3\" class=\"edge\">\n",
803       "<title>0&#45;&gt;3</title>\n",
804       "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n",
805       "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n",
806       "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
807       "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
808       "</g>\n",
809       "<!-- 2&#45;&gt;2 -->\n",
810       "<g id=\"edge7\" class=\"edge\">\n",
811       "<title>2&#45;&gt;2</title>\n",
812       "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n",
813       "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n",
814       "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
815       "</g>\n",
816       "<!-- 1 -->\n",
817       "<g id=\"node5\" class=\"node\">\n",
818       "<title>1</title>\n",
819       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
820       "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
821       "</g>\n",
822       "<!-- 2&#45;&gt;1 -->\n",
823       "<g id=\"edge8\" class=\"edge\">\n",
824       "<title>2&#45;&gt;1</title>\n",
825       "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n",
826       "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n",
827       "<text text-anchor=\"start\" x=\"238\" y=\"-104.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
828       "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
829       "</g>\n",
830       "<!-- 3&#45;&gt;2 -->\n",
831       "<g id=\"edge10\" class=\"edge\">\n",
832       "<title>3&#45;&gt;2</title>\n",
833       "<path fill=\"none\" stroke=\"black\" d=\"M469.12,-71.88C462.83,-78.98 454.33,-87.1 445,-91.93 384.77,-123.11 362.53,-113.68 295,-119.93 269.77,-122.27 262.36,-126.88 238,-119.93 229.62,-117.54 221.28,-113.03 214.18,-108.36\"/>\n",
834       "<polygon fill=\"black\" stroke=\"black\" points=\"208.04,-104.09 215.59,-105.5 210.92,-106.09 213.79,-108.09 213.79,-108.09 213.79,-108.09 210.92,-106.09 211.99,-110.68 208.04,-104.09 208.04,-104.09\"/>\n",
835       "<text text-anchor=\"start\" x=\"313\" y=\"-136.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
836       "<text text-anchor=\"start\" x=\"333.5\" y=\"-121.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
837       "</g>\n",
838       "<!-- 3&#45;&gt;3 -->\n",
839       "<g id=\"edge9\" class=\"edge\">\n",
840       "<title>3&#45;&gt;3</title>\n",
841       "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n",
842       "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n",
843       "<text text-anchor=\"start\" x=\"456.5\" y=\"-112.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
844       "<text text-anchor=\"start\" x=\"473\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
845       "</g>\n",
846       "<!-- 1&#45;&gt;0 -->\n",
847       "<g id=\"edge5\" class=\"edge\">\n",
848       "<title>1&#45;&gt;0</title>\n",
849       "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n",
850       "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n",
851       "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
852       "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
853       "</g>\n",
854       "<!-- 1&#45;&gt;2 -->\n",
855       "<g id=\"edge4\" class=\"edge\">\n",
856       "<title>1&#45;&gt;2</title>\n",
857       "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n",
858       "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n",
859       "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
860       "</g>\n",
861       "<!-- 1&#45;&gt;3 -->\n",
862       "<g id=\"edge6\" class=\"edge\">\n",
863       "<title>1&#45;&gt;3</title>\n",
864       "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n",
865       "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n",
866       "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
867       "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
868       "</g>\n",
869       "</g>\n",
870       "</svg>\n",
871       "</div>"
872      ],
873      "text/plain": [
874       "<IPython.core.display.HTML object>"
875      ]
876     },
877     "metadata": {},
878     "output_type": "display_data"
879    }
880   ],
881   "source": [
882    "display2(minodd5, spot.change_parity(minodd5, spot.parity_kind_any, spot.parity_style_even))"
883   ]
884  },
885  {
886   "cell_type": "markdown",
887   "metadata": {},
888   "source": [
889    "## Changing the **kind**\n",
890    "\n",
891    "Generaly to go from `parity max` to `parity min`, it suffices to reverse the order of vertices.\n",
892    "\n",
893    "### max odd 5 → min odd 5:"
894   ]
895  },
896  {
897   "cell_type": "code",
898   "execution_count": 14,
899   "metadata": {},
900   "outputs": [
901    {
902     "data": {
903      "text/html": [
904       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
905       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
906       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
907       "<!-- Generated by graphviz version 2.43.0 (0)\n",
908       " -->\n",
909       "<!-- Pages: 1 -->\n",
910       "<svg width=\"514pt\" height=\"190pt\"\n",
911       " viewBox=\"0.00 0.00 513.50 189.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
912       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 185.93)\">\n",
913       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.93 509.5,-185.93 509.5,4 -4,4\"/>\n",
914       "<text text-anchor=\"start\" x=\"107.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
915       "<text text-anchor=\"start\" x=\"130.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
916       "<text text-anchor=\"start\" x=\"146.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
917       "<text text-anchor=\"start\" x=\"192.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
918       "<text text-anchor=\"start\" x=\"208.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
919       "<text text-anchor=\"start\" x=\"250.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
920       "<text text-anchor=\"start\" x=\"266.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
921       "<text text-anchor=\"start\" x=\"312.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
922       "<text text-anchor=\"start\" x=\"328.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
923       "<text text-anchor=\"start\" x=\"366.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
924       "<text text-anchor=\"start\" x=\"382.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
925       "<text text-anchor=\"start\" x=\"197.25\" y=\"-153.73\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n",
926       "<!-- I -->\n",
927       "<!-- 0 -->\n",
928       "<g id=\"node2\" class=\"node\">\n",
929       "<title>0</title>\n",
930       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n",
931       "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
932       "</g>\n",
933       "<!-- I&#45;&gt;0 -->\n",
934       "<g id=\"edge1\" class=\"edge\">\n",
935       "<title>I&#45;&gt;0</title>\n",
936       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n",
937       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n",
938       "</g>\n",
939       "<!-- 2 -->\n",
940       "<g id=\"node3\" class=\"node\">\n",
941       "<title>2</title>\n",
942       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n",
943       "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
944       "</g>\n",
945       "<!-- 0&#45;&gt;2 -->\n",
946       "<g id=\"edge2\" class=\"edge\">\n",
947       "<title>0&#45;&gt;2</title>\n",
948       "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n",
949       "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n",
950       "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
951       "</g>\n",
952       "<!-- 3 -->\n",
953       "<g id=\"node4\" class=\"node\">\n",
954       "<title>3</title>\n",
955       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
956       "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
957       "</g>\n",
958       "<!-- 0&#45;&gt;3 -->\n",
959       "<g id=\"edge3\" class=\"edge\">\n",
960       "<title>0&#45;&gt;3</title>\n",
961       "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n",
962       "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n",
963       "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
964       "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
965       "</g>\n",
966       "<!-- 2&#45;&gt;2 -->\n",
967       "<g id=\"edge7\" class=\"edge\">\n",
968       "<title>2&#45;&gt;2</title>\n",
969       "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n",
970       "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n",
971       "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
972       "</g>\n",
973       "<!-- 1 -->\n",
974       "<g id=\"node5\" class=\"node\">\n",
975       "<title>1</title>\n",
976       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
977       "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
978       "</g>\n",
979       "<!-- 2&#45;&gt;1 -->\n",
980       "<g id=\"edge8\" class=\"edge\">\n",
981       "<title>2&#45;&gt;1</title>\n",
982       "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n",
983       "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n",
984       "<text text-anchor=\"start\" x=\"238\" y=\"-103.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
985       "<text text-anchor=\"start\" x=\"242.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
986       "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
987       "<text text-anchor=\"start\" x=\"274.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
988       "</g>\n",
989       "<!-- 3&#45;&gt;2 -->\n",
990       "<g id=\"edge10\" class=\"edge\">\n",
991       "<title>3&#45;&gt;2</title>\n",
992       "<path fill=\"none\" stroke=\"black\" d=\"M469.15,-71.93C462.86,-79.04 454.36,-87.16 445,-91.93 384.71,-122.65 362.41,-112.13 295,-117.93 269.76,-120.1 262.48,-124.47 238,-117.93 229.88,-115.77 221.7,-111.68 214.67,-107.43\"/>\n",
993       "<polygon fill=\"black\" stroke=\"black\" points=\"208.56,-103.54 216.15,-104.65 211.51,-105.42 214.46,-107.3 214.46,-107.3 214.46,-107.3 211.51,-105.42 212.76,-109.96 208.56,-103.54 208.56,-103.54\"/>\n",
994       "<text text-anchor=\"start\" x=\"313\" y=\"-134.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
995       "<text text-anchor=\"start\" x=\"333.5\" y=\"-119.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
996       "</g>\n",
997       "<!-- 3&#45;&gt;3 -->\n",
998       "<g id=\"edge9\" class=\"edge\">\n",
999       "<title>3&#45;&gt;3</title>\n",
1000       "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n",
1001       "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n",
1002       "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
1003       "<text text-anchor=\"start\" x=\"465\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1004       "<text text-anchor=\"start\" x=\"481\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
1005       "</g>\n",
1006       "<!-- 1&#45;&gt;0 -->\n",
1007       "<g id=\"edge5\" class=\"edge\">\n",
1008       "<title>1&#45;&gt;0</title>\n",
1009       "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n",
1010       "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n",
1011       "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
1012       "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1013       "</g>\n",
1014       "<!-- 1&#45;&gt;2 -->\n",
1015       "<g id=\"edge4\" class=\"edge\">\n",
1016       "<title>1&#45;&gt;2</title>\n",
1017       "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n",
1018       "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n",
1019       "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1020       "</g>\n",
1021       "<!-- 1&#45;&gt;3 -->\n",
1022       "<g id=\"edge6\" class=\"edge\">\n",
1023       "<title>1&#45;&gt;3</title>\n",
1024       "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n",
1025       "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n",
1026       "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1027       "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
1028       "</g>\n",
1029       "</g>\n",
1030       "</svg>\n",
1031       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1032       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1033       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1034       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1035       " -->\n",
1036       "<!-- Pages: 1 -->\n",
1037       "<svg width=\"514pt\" height=\"192pt\"\n",
1038       " viewBox=\"0.00 0.00 513.50 191.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1039       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 187.93)\">\n",
1040       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-187.93 509.5,-187.93 509.5,4 -4,4\"/>\n",
1041       "<text text-anchor=\"start\" x=\"107.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
1042       "<text text-anchor=\"start\" x=\"130.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1043       "<text text-anchor=\"start\" x=\"146.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1044       "<text text-anchor=\"start\" x=\"192.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1045       "<text text-anchor=\"start\" x=\"208.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1046       "<text text-anchor=\"start\" x=\"250.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1047       "<text text-anchor=\"start\" x=\"266.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1048       "<text text-anchor=\"start\" x=\"312.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1049       "<text text-anchor=\"start\" x=\"328.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
1050       "<text text-anchor=\"start\" x=\"366.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
1051       "<text text-anchor=\"start\" x=\"382.25\" y=\"-169.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
1052       "<text text-anchor=\"start\" x=\"198.75\" y=\"-155.73\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n",
1053       "<!-- I -->\n",
1054       "<!-- 0 -->\n",
1055       "<g id=\"node2\" class=\"node\">\n",
1056       "<title>0</title>\n",
1057       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n",
1058       "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1059       "</g>\n",
1060       "<!-- I&#45;&gt;0 -->\n",
1061       "<g id=\"edge1\" class=\"edge\">\n",
1062       "<title>I&#45;&gt;0</title>\n",
1063       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n",
1064       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n",
1065       "</g>\n",
1066       "<!-- 2 -->\n",
1067       "<g id=\"node3\" class=\"node\">\n",
1068       "<title>2</title>\n",
1069       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n",
1070       "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
1071       "</g>\n",
1072       "<!-- 0&#45;&gt;2 -->\n",
1073       "<g id=\"edge2\" class=\"edge\">\n",
1074       "<title>0&#45;&gt;2</title>\n",
1075       "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n",
1076       "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n",
1077       "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1078       "</g>\n",
1079       "<!-- 3 -->\n",
1080       "<g id=\"node4\" class=\"node\">\n",
1081       "<title>3</title>\n",
1082       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
1083       "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
1084       "</g>\n",
1085       "<!-- 0&#45;&gt;3 -->\n",
1086       "<g id=\"edge3\" class=\"edge\">\n",
1087       "<title>0&#45;&gt;3</title>\n",
1088       "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n",
1089       "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n",
1090       "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1091       "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1092       "</g>\n",
1093       "<!-- 2&#45;&gt;2 -->\n",
1094       "<g id=\"edge7\" class=\"edge\">\n",
1095       "<title>2&#45;&gt;2</title>\n",
1096       "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n",
1097       "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n",
1098       "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
1099       "</g>\n",
1100       "<!-- 1 -->\n",
1101       "<g id=\"node5\" class=\"node\">\n",
1102       "<title>1</title>\n",
1103       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
1104       "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1105       "</g>\n",
1106       "<!-- 2&#45;&gt;1 -->\n",
1107       "<g id=\"edge8\" class=\"edge\">\n",
1108       "<title>2&#45;&gt;1</title>\n",
1109       "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n",
1110       "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n",
1111       "<text text-anchor=\"start\" x=\"238\" y=\"-104.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1112       "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1113       "</g>\n",
1114       "<!-- 3&#45;&gt;2 -->\n",
1115       "<g id=\"edge10\" class=\"edge\">\n",
1116       "<title>3&#45;&gt;2</title>\n",
1117       "<path fill=\"none\" stroke=\"black\" d=\"M469.12,-71.88C462.83,-78.98 454.33,-87.1 445,-91.93 384.77,-123.11 362.53,-113.68 295,-119.93 269.77,-122.27 262.36,-126.88 238,-119.93 229.62,-117.54 221.28,-113.03 214.18,-108.36\"/>\n",
1118       "<polygon fill=\"black\" stroke=\"black\" points=\"208.04,-104.09 215.59,-105.5 210.92,-106.09 213.79,-108.09 213.79,-108.09 213.79,-108.09 210.92,-106.09 211.99,-110.68 208.04,-104.09 208.04,-104.09\"/>\n",
1119       "<text text-anchor=\"start\" x=\"313\" y=\"-136.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1120       "<text text-anchor=\"start\" x=\"333.5\" y=\"-121.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1121       "</g>\n",
1122       "<!-- 3&#45;&gt;3 -->\n",
1123       "<g id=\"edge9\" class=\"edge\">\n",
1124       "<title>3&#45;&gt;3</title>\n",
1125       "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n",
1126       "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n",
1127       "<text text-anchor=\"start\" x=\"456.5\" y=\"-112.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
1128       "<text text-anchor=\"start\" x=\"473\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1129       "</g>\n",
1130       "<!-- 1&#45;&gt;0 -->\n",
1131       "<g id=\"edge5\" class=\"edge\">\n",
1132       "<title>1&#45;&gt;0</title>\n",
1133       "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n",
1134       "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n",
1135       "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
1136       "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1137       "</g>\n",
1138       "<!-- 1&#45;&gt;2 -->\n",
1139       "<g id=\"edge4\" class=\"edge\">\n",
1140       "<title>1&#45;&gt;2</title>\n",
1141       "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n",
1142       "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n",
1143       "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1144       "</g>\n",
1145       "<!-- 1&#45;&gt;3 -->\n",
1146       "<g id=\"edge6\" class=\"edge\">\n",
1147       "<title>1&#45;&gt;3</title>\n",
1148       "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n",
1149       "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n",
1150       "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1151       "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1152       "</g>\n",
1153       "</g>\n",
1154       "</svg>\n",
1155       "</div>"
1156      ],
1157      "text/plain": [
1158       "<IPython.core.display.HTML object>"
1159      ]
1160     },
1161     "metadata": {},
1162     "output_type": "display_data"
1163    }
1164   ],
1165   "source": [
1166    "display2(maxodd5, spot.change_parity(maxodd5, spot.parity_kind_min, spot.parity_style_any))"
1167   ]
1168  },
1169  {
1170   "cell_type": "markdown",
1171   "metadata": {},
1172   "source": [
1173    "###  max odd 4 → min even 4\n",
1174    "\n",
1175    "When the number of colors is even, the style is changed too."
1176   ]
1177  },
1178  {
1179   "cell_type": "code",
1180   "execution_count": 15,
1181   "metadata": {},
1182   "outputs": [
1183    {
1184     "data": {
1185      "text/html": [
1186       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1187       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1188       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1189       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1190       " -->\n",
1191       "<!-- Pages: 1 -->\n",
1192       "<svg width=\"490pt\" height=\"169pt\"\n",
1193       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1194       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
1195       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
1196       "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
1197       "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1198       "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1199       "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1200       "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1201       "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1202       "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
1203       "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1204       "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
1205       "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n",
1206       "<!-- I -->\n",
1207       "<!-- 0 -->\n",
1208       "<g id=\"node2\" class=\"node\">\n",
1209       "<title>0</title>\n",
1210       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
1211       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1212       "</g>\n",
1213       "<!-- I&#45;&gt;0 -->\n",
1214       "<g id=\"edge1\" class=\"edge\">\n",
1215       "<title>I&#45;&gt;0</title>\n",
1216       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
1217       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
1218       "</g>\n",
1219       "<!-- 2 -->\n",
1220       "<g id=\"node3\" class=\"node\">\n",
1221       "<title>2</title>\n",
1222       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
1223       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
1224       "</g>\n",
1225       "<!-- 0&#45;&gt;2 -->\n",
1226       "<g id=\"edge2\" class=\"edge\">\n",
1227       "<title>0&#45;&gt;2</title>\n",
1228       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
1229       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
1230       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1231       "</g>\n",
1232       "<!-- 3 -->\n",
1233       "<g id=\"node4\" class=\"node\">\n",
1234       "<title>3</title>\n",
1235       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
1236       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
1237       "</g>\n",
1238       "<!-- 0&#45;&gt;3 -->\n",
1239       "<g id=\"edge3\" class=\"edge\">\n",
1240       "<title>0&#45;&gt;3</title>\n",
1241       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
1242       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
1243       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1244       "</g>\n",
1245       "<!-- 1 -->\n",
1246       "<g id=\"node5\" class=\"node\">\n",
1247       "<title>1</title>\n",
1248       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
1249       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1250       "</g>\n",
1251       "<!-- 2&#45;&gt;1 -->\n",
1252       "<g id=\"edge6\" class=\"edge\">\n",
1253       "<title>2&#45;&gt;1</title>\n",
1254       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
1255       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
1256       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1257       "</g>\n",
1258       "<!-- 3&#45;&gt;0 -->\n",
1259       "<g id=\"edge8\" class=\"edge\">\n",
1260       "<title>3&#45;&gt;0</title>\n",
1261       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
1262       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
1263       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
1264       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1265       "</g>\n",
1266       "<!-- 3&#45;&gt;2 -->\n",
1267       "<g id=\"edge7\" class=\"edge\">\n",
1268       "<title>3&#45;&gt;2</title>\n",
1269       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
1270       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
1271       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1272       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1273       "</g>\n",
1274       "<!-- 3&#45;&gt;3 -->\n",
1275       "<g id=\"edge9\" class=\"edge\">\n",
1276       "<title>3&#45;&gt;3</title>\n",
1277       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
1278       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
1279       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1280       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1281       "</g>\n",
1282       "<!-- 1&#45;&gt;0 -->\n",
1283       "<g id=\"edge4\" class=\"edge\">\n",
1284       "<title>1&#45;&gt;0</title>\n",
1285       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
1286       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
1287       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1288       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1289       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1290       "</g>\n",
1291       "<!-- 1&#45;&gt;2 -->\n",
1292       "<g id=\"edge5\" class=\"edge\">\n",
1293       "<title>1&#45;&gt;2</title>\n",
1294       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
1295       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
1296       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1297       "</g>\n",
1298       "</g>\n",
1299       "</svg>\n",
1300       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1301       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1302       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1303       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1304       " -->\n",
1305       "<!-- Pages: 1 -->\n",
1306       "<svg width=\"490pt\" height=\"172pt\"\n",
1307       " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1308       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n",
1309       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n",
1310       "<text text-anchor=\"start\" x=\"129.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
1311       "<text text-anchor=\"start\" x=\"150.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1312       "<text text-anchor=\"start\" x=\"166.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1313       "<text text-anchor=\"start\" x=\"208.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1314       "<text text-anchor=\"start\" x=\"224.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1315       "<text text-anchor=\"start\" x=\"270.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1316       "<text text-anchor=\"start\" x=\"286.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
1317       "<text text-anchor=\"start\" x=\"324.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1318       "<text text-anchor=\"start\" x=\"340.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
1319       "<text text-anchor=\"start\" x=\"184\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min even 4]</text>\n",
1320       "<!-- I -->\n",
1321       "<!-- 0 -->\n",
1322       "<g id=\"node2\" class=\"node\">\n",
1323       "<title>0</title>\n",
1324       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
1325       "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1326       "</g>\n",
1327       "<!-- I&#45;&gt;0 -->\n",
1328       "<g id=\"edge1\" class=\"edge\">\n",
1329       "<title>I&#45;&gt;0</title>\n",
1330       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n",
1331       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n",
1332       "</g>\n",
1333       "<!-- 2 -->\n",
1334       "<g id=\"node3\" class=\"node\">\n",
1335       "<title>2</title>\n",
1336       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n",
1337       "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
1338       "</g>\n",
1339       "<!-- 0&#45;&gt;2 -->\n",
1340       "<g id=\"edge2\" class=\"edge\">\n",
1341       "<title>0&#45;&gt;2</title>\n",
1342       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n",
1343       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n",
1344       "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1345       "</g>\n",
1346       "<!-- 3 -->\n",
1347       "<g id=\"node4\" class=\"node\">\n",
1348       "<title>3</title>\n",
1349       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
1350       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
1351       "</g>\n",
1352       "<!-- 0&#45;&gt;3 -->\n",
1353       "<g id=\"edge3\" class=\"edge\">\n",
1354       "<title>0&#45;&gt;3</title>\n",
1355       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n",
1356       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n",
1357       "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1358       "</g>\n",
1359       "<!-- 1 -->\n",
1360       "<g id=\"node5\" class=\"node\">\n",
1361       "<title>1</title>\n",
1362       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n",
1363       "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1364       "</g>\n",
1365       "<!-- 2&#45;&gt;1 -->\n",
1366       "<g id=\"edge6\" class=\"edge\">\n",
1367       "<title>2&#45;&gt;1</title>\n",
1368       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n",
1369       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n",
1370       "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1371       "</g>\n",
1372       "<!-- 3&#45;&gt;0 -->\n",
1373       "<g id=\"edge8\" class=\"edge\">\n",
1374       "<title>3&#45;&gt;0</title>\n",
1375       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n",
1376       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n",
1377       "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
1378       "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1379       "</g>\n",
1380       "<!-- 3&#45;&gt;2 -->\n",
1381       "<g id=\"edge7\" class=\"edge\">\n",
1382       "<title>3&#45;&gt;2</title>\n",
1383       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n",
1384       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n",
1385       "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1386       "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1387       "</g>\n",
1388       "<!-- 3&#45;&gt;3 -->\n",
1389       "<g id=\"edge9\" class=\"edge\">\n",
1390       "<title>3&#45;&gt;3</title>\n",
1391       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n",
1392       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n",
1393       "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1394       "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1395       "</g>\n",
1396       "<!-- 1&#45;&gt;0 -->\n",
1397       "<g id=\"edge4\" class=\"edge\">\n",
1398       "<title>1&#45;&gt;0</title>\n",
1399       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n",
1400       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n",
1401       "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1402       "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1403       "</g>\n",
1404       "<!-- 1&#45;&gt;2 -->\n",
1405       "<g id=\"edge5\" class=\"edge\">\n",
1406       "<title>1&#45;&gt;2</title>\n",
1407       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n",
1408       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n",
1409       "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1410       "</g>\n",
1411       "</g>\n",
1412       "</svg>\n",
1413       "</div>"
1414      ],
1415      "text/plain": [
1416       "<IPython.core.display.HTML object>"
1417      ]
1418     },
1419     "metadata": {},
1420     "output_type": "display_data"
1421    }
1422   ],
1423   "source": [
1424    "display2(maxodd4, spot.change_parity(maxodd4, spot.parity_kind_min, spot.parity_style_any))"
1425   ]
1426  },
1427  {
1428   "cell_type": "markdown",
1429   "metadata": {},
1430   "source": [
1431    "### max odd 4 → min odd 5\n",
1432    "\n",
1433    "In this case, to keep the same **style**, a new color would be introduced."
1434   ]
1435  },
1436  {
1437   "cell_type": "code",
1438   "execution_count": 16,
1439   "metadata": {},
1440   "outputs": [
1441    {
1442     "data": {
1443      "text/html": [
1444       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1445       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1446       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1447       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1448       " -->\n",
1449       "<!-- Pages: 1 -->\n",
1450       "<svg width=\"490pt\" height=\"169pt\"\n",
1451       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1452       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
1453       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
1454       "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
1455       "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1456       "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1457       "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1458       "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1459       "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1460       "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
1461       "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1462       "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
1463       "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n",
1464       "<!-- I -->\n",
1465       "<!-- 0 -->\n",
1466       "<g id=\"node2\" class=\"node\">\n",
1467       "<title>0</title>\n",
1468       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
1469       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1470       "</g>\n",
1471       "<!-- I&#45;&gt;0 -->\n",
1472       "<g id=\"edge1\" class=\"edge\">\n",
1473       "<title>I&#45;&gt;0</title>\n",
1474       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
1475       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
1476       "</g>\n",
1477       "<!-- 2 -->\n",
1478       "<g id=\"node3\" class=\"node\">\n",
1479       "<title>2</title>\n",
1480       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
1481       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
1482       "</g>\n",
1483       "<!-- 0&#45;&gt;2 -->\n",
1484       "<g id=\"edge2\" class=\"edge\">\n",
1485       "<title>0&#45;&gt;2</title>\n",
1486       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
1487       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
1488       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1489       "</g>\n",
1490       "<!-- 3 -->\n",
1491       "<g id=\"node4\" class=\"node\">\n",
1492       "<title>3</title>\n",
1493       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
1494       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
1495       "</g>\n",
1496       "<!-- 0&#45;&gt;3 -->\n",
1497       "<g id=\"edge3\" class=\"edge\">\n",
1498       "<title>0&#45;&gt;3</title>\n",
1499       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
1500       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
1501       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1502       "</g>\n",
1503       "<!-- 1 -->\n",
1504       "<g id=\"node5\" class=\"node\">\n",
1505       "<title>1</title>\n",
1506       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
1507       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1508       "</g>\n",
1509       "<!-- 2&#45;&gt;1 -->\n",
1510       "<g id=\"edge6\" class=\"edge\">\n",
1511       "<title>2&#45;&gt;1</title>\n",
1512       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
1513       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
1514       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1515       "</g>\n",
1516       "<!-- 3&#45;&gt;0 -->\n",
1517       "<g id=\"edge8\" class=\"edge\">\n",
1518       "<title>3&#45;&gt;0</title>\n",
1519       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
1520       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
1521       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
1522       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1523       "</g>\n",
1524       "<!-- 3&#45;&gt;2 -->\n",
1525       "<g id=\"edge7\" class=\"edge\">\n",
1526       "<title>3&#45;&gt;2</title>\n",
1527       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
1528       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
1529       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1530       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1531       "</g>\n",
1532       "<!-- 3&#45;&gt;3 -->\n",
1533       "<g id=\"edge9\" class=\"edge\">\n",
1534       "<title>3&#45;&gt;3</title>\n",
1535       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
1536       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
1537       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1538       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1539       "</g>\n",
1540       "<!-- 1&#45;&gt;0 -->\n",
1541       "<g id=\"edge4\" class=\"edge\">\n",
1542       "<title>1&#45;&gt;0</title>\n",
1543       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
1544       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
1545       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1546       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1547       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1548       "</g>\n",
1549       "<!-- 1&#45;&gt;2 -->\n",
1550       "<g id=\"edge5\" class=\"edge\">\n",
1551       "<title>1&#45;&gt;2</title>\n",
1552       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
1553       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
1554       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1555       "</g>\n",
1556       "</g>\n",
1557       "</svg>\n",
1558       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1559       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1560       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1561       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1562       " -->\n",
1563       "<!-- Pages: 1 -->\n",
1564       "<svg width=\"490pt\" height=\"172pt\"\n",
1565       " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1566       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n",
1567       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n",
1568       "<text text-anchor=\"start\" x=\"95.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
1569       "<text text-anchor=\"start\" x=\"118.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1570       "<text text-anchor=\"start\" x=\"134.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1571       "<text text-anchor=\"start\" x=\"180.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1572       "<text text-anchor=\"start\" x=\"196.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1573       "<text text-anchor=\"start\" x=\"238.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1574       "<text text-anchor=\"start\" x=\"254.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1575       "<text text-anchor=\"start\" x=\"300.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1576       "<text text-anchor=\"start\" x=\"316.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
1577       "<text text-anchor=\"start\" x=\"354.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
1578       "<text text-anchor=\"start\" x=\"370.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
1579       "<text text-anchor=\"start\" x=\"187\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n",
1580       "<!-- I -->\n",
1581       "<!-- 0 -->\n",
1582       "<g id=\"node2\" class=\"node\">\n",
1583       "<title>0</title>\n",
1584       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
1585       "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1586       "</g>\n",
1587       "<!-- I&#45;&gt;0 -->\n",
1588       "<g id=\"edge1\" class=\"edge\">\n",
1589       "<title>I&#45;&gt;0</title>\n",
1590       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n",
1591       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n",
1592       "</g>\n",
1593       "<!-- 2 -->\n",
1594       "<g id=\"node3\" class=\"node\">\n",
1595       "<title>2</title>\n",
1596       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n",
1597       "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
1598       "</g>\n",
1599       "<!-- 0&#45;&gt;2 -->\n",
1600       "<g id=\"edge2\" class=\"edge\">\n",
1601       "<title>0&#45;&gt;2</title>\n",
1602       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n",
1603       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n",
1604       "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1605       "</g>\n",
1606       "<!-- 3 -->\n",
1607       "<g id=\"node4\" class=\"node\">\n",
1608       "<title>3</title>\n",
1609       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
1610       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
1611       "</g>\n",
1612       "<!-- 0&#45;&gt;3 -->\n",
1613       "<g id=\"edge3\" class=\"edge\">\n",
1614       "<title>0&#45;&gt;3</title>\n",
1615       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n",
1616       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n",
1617       "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1618       "</g>\n",
1619       "<!-- 1 -->\n",
1620       "<g id=\"node5\" class=\"node\">\n",
1621       "<title>1</title>\n",
1622       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n",
1623       "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1624       "</g>\n",
1625       "<!-- 2&#45;&gt;1 -->\n",
1626       "<g id=\"edge6\" class=\"edge\">\n",
1627       "<title>2&#45;&gt;1</title>\n",
1628       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n",
1629       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n",
1630       "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1631       "</g>\n",
1632       "<!-- 3&#45;&gt;0 -->\n",
1633       "<g id=\"edge8\" class=\"edge\">\n",
1634       "<title>3&#45;&gt;0</title>\n",
1635       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n",
1636       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n",
1637       "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
1638       "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1639       "</g>\n",
1640       "<!-- 3&#45;&gt;2 -->\n",
1641       "<g id=\"edge7\" class=\"edge\">\n",
1642       "<title>3&#45;&gt;2</title>\n",
1643       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n",
1644       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n",
1645       "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1646       "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1647       "</g>\n",
1648       "<!-- 3&#45;&gt;3 -->\n",
1649       "<g id=\"edge9\" class=\"edge\">\n",
1650       "<title>3&#45;&gt;3</title>\n",
1651       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n",
1652       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n",
1653       "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1654       "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1655       "</g>\n",
1656       "<!-- 1&#45;&gt;0 -->\n",
1657       "<g id=\"edge4\" class=\"edge\">\n",
1658       "<title>1&#45;&gt;0</title>\n",
1659       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n",
1660       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n",
1661       "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1662       "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1663       "</g>\n",
1664       "<!-- 1&#45;&gt;2 -->\n",
1665       "<g id=\"edge5\" class=\"edge\">\n",
1666       "<title>1&#45;&gt;2</title>\n",
1667       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n",
1668       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n",
1669       "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1670       "</g>\n",
1671       "</g>\n",
1672       "</svg>\n",
1673       "</div>"
1674      ],
1675      "text/plain": [
1676       "<IPython.core.display.HTML object>"
1677      ]
1678     },
1679     "metadata": {},
1680     "output_type": "display_data"
1681    }
1682   ],
1683   "source": [
1684    "display2(maxodd4, spot.change_parity(maxodd4, spot.parity_kind_min, spot.parity_style_same))"
1685   ]
1686  },
1687  {
1688   "cell_type": "markdown",
1689   "metadata": {},
1690   "source": [
1691    "# Colorize parity\n",
1692    "\n",
1693    "People working with parity automata usually expect all states (or edges) to have exactly one color.  This constraint, which comes in addition to the use of a parity acceptance, is what the HOA format calls \"colored\".\n",
1694    "\n",
1695    "A *parity automaton* is a *colored* automaton with *parity acceptance*.\n",
1696    "\n",
1697    "Coloring an automaton can be done with the `colorize_parity()` function.  This function is not very smart: it will not attempt to simplify the acceptance before colorizing it.\n",
1698    "\n",
1699    "## Parity max\n",
1700    "Transitions with multiple colors are purified by keeping only the set with the greatest index.\n",
1701    "<br>\n",
1702    "If there are uncolored transitions, they get assigned to color 0, and all original colors are shifted by one, toggling the style.  If the style must be preserved (second argument set to True), we can shift all colors once more.\n",
1703    "\n",
1704    "#### Colorize parity max odd 4"
1705   ]
1706  },
1707  {
1708   "cell_type": "code",
1709   "execution_count": 17,
1710   "metadata": {},
1711   "outputs": [
1712    {
1713     "data": {
1714      "text/html": [
1715       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1716       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1717       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1718       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1719       " -->\n",
1720       "<!-- Pages: 1 -->\n",
1721       "<svg width=\"490pt\" height=\"169pt\"\n",
1722       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1723       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
1724       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
1725       "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
1726       "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1727       "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1728       "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1729       "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1730       "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1731       "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
1732       "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1733       "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
1734       "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n",
1735       "<!-- I -->\n",
1736       "<!-- 0 -->\n",
1737       "<g id=\"node2\" class=\"node\">\n",
1738       "<title>0</title>\n",
1739       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
1740       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1741       "</g>\n",
1742       "<!-- I&#45;&gt;0 -->\n",
1743       "<g id=\"edge1\" class=\"edge\">\n",
1744       "<title>I&#45;&gt;0</title>\n",
1745       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
1746       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
1747       "</g>\n",
1748       "<!-- 2 -->\n",
1749       "<g id=\"node3\" class=\"node\">\n",
1750       "<title>2</title>\n",
1751       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
1752       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
1753       "</g>\n",
1754       "<!-- 0&#45;&gt;2 -->\n",
1755       "<g id=\"edge2\" class=\"edge\">\n",
1756       "<title>0&#45;&gt;2</title>\n",
1757       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
1758       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
1759       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1760       "</g>\n",
1761       "<!-- 3 -->\n",
1762       "<g id=\"node4\" class=\"node\">\n",
1763       "<title>3</title>\n",
1764       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
1765       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
1766       "</g>\n",
1767       "<!-- 0&#45;&gt;3 -->\n",
1768       "<g id=\"edge3\" class=\"edge\">\n",
1769       "<title>0&#45;&gt;3</title>\n",
1770       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
1771       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
1772       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1773       "</g>\n",
1774       "<!-- 1 -->\n",
1775       "<g id=\"node5\" class=\"node\">\n",
1776       "<title>1</title>\n",
1777       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
1778       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1779       "</g>\n",
1780       "<!-- 2&#45;&gt;1 -->\n",
1781       "<g id=\"edge6\" class=\"edge\">\n",
1782       "<title>2&#45;&gt;1</title>\n",
1783       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
1784       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
1785       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1786       "</g>\n",
1787       "<!-- 3&#45;&gt;0 -->\n",
1788       "<g id=\"edge8\" class=\"edge\">\n",
1789       "<title>3&#45;&gt;0</title>\n",
1790       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
1791       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
1792       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
1793       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1794       "</g>\n",
1795       "<!-- 3&#45;&gt;2 -->\n",
1796       "<g id=\"edge7\" class=\"edge\">\n",
1797       "<title>3&#45;&gt;2</title>\n",
1798       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
1799       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
1800       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1801       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1802       "</g>\n",
1803       "<!-- 3&#45;&gt;3 -->\n",
1804       "<g id=\"edge9\" class=\"edge\">\n",
1805       "<title>3&#45;&gt;3</title>\n",
1806       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
1807       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
1808       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1809       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1810       "</g>\n",
1811       "<!-- 1&#45;&gt;0 -->\n",
1812       "<g id=\"edge4\" class=\"edge\">\n",
1813       "<title>1&#45;&gt;0</title>\n",
1814       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
1815       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
1816       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1817       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1818       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1819       "</g>\n",
1820       "<!-- 1&#45;&gt;2 -->\n",
1821       "<g id=\"edge5\" class=\"edge\">\n",
1822       "<title>1&#45;&gt;2</title>\n",
1823       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
1824       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
1825       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1826       "</g>\n",
1827       "</g>\n",
1828       "</svg>\n",
1829       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1830       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1831       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1832       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1833       " -->\n",
1834       "<!-- Pages: 1 -->\n",
1835       "<svg width=\"490pt\" height=\"183pt\"\n",
1836       " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1837       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n",
1838       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n",
1839       "<text text-anchor=\"start\" x=\"96.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
1840       "<text text-anchor=\"start\" x=\"117.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
1841       "<text text-anchor=\"start\" x=\"133.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1842       "<text text-anchor=\"start\" x=\"175.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1843       "<text text-anchor=\"start\" x=\"191.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1844       "<text text-anchor=\"start\" x=\"237.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1845       "<text text-anchor=\"start\" x=\"253.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1846       "<text text-anchor=\"start\" x=\"295.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1847       "<text text-anchor=\"start\" x=\"311.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
1848       "<text text-anchor=\"start\" x=\"353.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1849       "<text text-anchor=\"start\" x=\"369.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
1850       "<text text-anchor=\"start\" x=\"182.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 5]</text>\n",
1851       "<!-- I -->\n",
1852       "<!-- 0 -->\n",
1853       "<g id=\"node2\" class=\"node\">\n",
1854       "<title>0</title>\n",
1855       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
1856       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1857       "</g>\n",
1858       "<!-- I&#45;&gt;0 -->\n",
1859       "<g id=\"edge1\" class=\"edge\">\n",
1860       "<title>I&#45;&gt;0</title>\n",
1861       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
1862       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
1863       "</g>\n",
1864       "<!-- 2 -->\n",
1865       "<g id=\"node3\" class=\"node\">\n",
1866       "<title>2</title>\n",
1867       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
1868       "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
1869       "</g>\n",
1870       "<!-- 0&#45;&gt;2 -->\n",
1871       "<g id=\"edge2\" class=\"edge\">\n",
1872       "<title>0&#45;&gt;2</title>\n",
1873       "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n",
1874       "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n",
1875       "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1876       "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1877       "</g>\n",
1878       "<!-- 3 -->\n",
1879       "<g id=\"node4\" class=\"node\">\n",
1880       "<title>3</title>\n",
1881       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
1882       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
1883       "</g>\n",
1884       "<!-- 0&#45;&gt;3 -->\n",
1885       "<g id=\"edge3\" class=\"edge\">\n",
1886       "<title>0&#45;&gt;3</title>\n",
1887       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
1888       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
1889       "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1890       "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1891       "</g>\n",
1892       "<!-- 1 -->\n",
1893       "<g id=\"node5\" class=\"node\">\n",
1894       "<title>1</title>\n",
1895       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
1896       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
1897       "</g>\n",
1898       "<!-- 2&#45;&gt;1 -->\n",
1899       "<g id=\"edge6\" class=\"edge\">\n",
1900       "<title>2&#45;&gt;1</title>\n",
1901       "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n",
1902       "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n",
1903       "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1904       "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1905       "</g>\n",
1906       "<!-- 3&#45;&gt;0 -->\n",
1907       "<g id=\"edge8\" class=\"edge\">\n",
1908       "<title>3&#45;&gt;0</title>\n",
1909       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
1910       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
1911       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
1912       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1913       "</g>\n",
1914       "<!-- 3&#45;&gt;2 -->\n",
1915       "<g id=\"edge7\" class=\"edge\">\n",
1916       "<title>3&#45;&gt;2</title>\n",
1917       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n",
1918       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n",
1919       "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1920       "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
1921       "</g>\n",
1922       "<!-- 3&#45;&gt;3 -->\n",
1923       "<g id=\"edge9\" class=\"edge\">\n",
1924       "<title>3&#45;&gt;3</title>\n",
1925       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
1926       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
1927       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1928       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1929       "</g>\n",
1930       "<!-- 1&#45;&gt;0 -->\n",
1931       "<g id=\"edge4\" class=\"edge\">\n",
1932       "<title>1&#45;&gt;0</title>\n",
1933       "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
1934       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
1935       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
1936       "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1937       "</g>\n",
1938       "<!-- 1&#45;&gt;2 -->\n",
1939       "<g id=\"edge5\" class=\"edge\">\n",
1940       "<title>1&#45;&gt;2</title>\n",
1941       "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n",
1942       "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n",
1943       "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
1944       "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1945       "</g>\n",
1946       "</g>\n",
1947       "</svg>\n",
1948       "</div>"
1949      ],
1950      "text/plain": [
1951       "<IPython.core.display.HTML object>"
1952      ]
1953     },
1954     "metadata": {},
1955     "output_type": "display_data"
1956    },
1957    {
1958     "data": {
1959      "text/html": [
1960       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
1961       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
1962       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
1963       "<!-- Generated by graphviz version 2.43.0 (0)\n",
1964       " -->\n",
1965       "<!-- Pages: 1 -->\n",
1966       "<svg width=\"490pt\" height=\"169pt\"\n",
1967       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
1968       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
1969       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
1970       "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
1971       "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
1972       "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
1973       "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
1974       "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
1975       "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
1976       "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
1977       "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
1978       "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
1979       "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n",
1980       "<!-- I -->\n",
1981       "<!-- 0 -->\n",
1982       "<g id=\"node2\" class=\"node\">\n",
1983       "<title>0</title>\n",
1984       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
1985       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
1986       "</g>\n",
1987       "<!-- I&#45;&gt;0 -->\n",
1988       "<g id=\"edge1\" class=\"edge\">\n",
1989       "<title>I&#45;&gt;0</title>\n",
1990       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
1991       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
1992       "</g>\n",
1993       "<!-- 2 -->\n",
1994       "<g id=\"node3\" class=\"node\">\n",
1995       "<title>2</title>\n",
1996       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
1997       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
1998       "</g>\n",
1999       "<!-- 0&#45;&gt;2 -->\n",
2000       "<g id=\"edge2\" class=\"edge\">\n",
2001       "<title>0&#45;&gt;2</title>\n",
2002       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
2003       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
2004       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2005       "</g>\n",
2006       "<!-- 3 -->\n",
2007       "<g id=\"node4\" class=\"node\">\n",
2008       "<title>3</title>\n",
2009       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
2010       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
2011       "</g>\n",
2012       "<!-- 0&#45;&gt;3 -->\n",
2013       "<g id=\"edge3\" class=\"edge\">\n",
2014       "<title>0&#45;&gt;3</title>\n",
2015       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
2016       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
2017       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2018       "</g>\n",
2019       "<!-- 1 -->\n",
2020       "<g id=\"node5\" class=\"node\">\n",
2021       "<title>1</title>\n",
2022       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
2023       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
2024       "</g>\n",
2025       "<!-- 2&#45;&gt;1 -->\n",
2026       "<g id=\"edge6\" class=\"edge\">\n",
2027       "<title>2&#45;&gt;1</title>\n",
2028       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
2029       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
2030       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2031       "</g>\n",
2032       "<!-- 3&#45;&gt;0 -->\n",
2033       "<g id=\"edge8\" class=\"edge\">\n",
2034       "<title>3&#45;&gt;0</title>\n",
2035       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
2036       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
2037       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
2038       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2039       "</g>\n",
2040       "<!-- 3&#45;&gt;2 -->\n",
2041       "<g id=\"edge7\" class=\"edge\">\n",
2042       "<title>3&#45;&gt;2</title>\n",
2043       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
2044       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
2045       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2046       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2047       "</g>\n",
2048       "<!-- 3&#45;&gt;3 -->\n",
2049       "<g id=\"edge9\" class=\"edge\">\n",
2050       "<title>3&#45;&gt;3</title>\n",
2051       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
2052       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
2053       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2054       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2055       "</g>\n",
2056       "<!-- 1&#45;&gt;0 -->\n",
2057       "<g id=\"edge4\" class=\"edge\">\n",
2058       "<title>1&#45;&gt;0</title>\n",
2059       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
2060       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
2061       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2062       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2063       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2064       "</g>\n",
2065       "<!-- 1&#45;&gt;2 -->\n",
2066       "<g id=\"edge5\" class=\"edge\">\n",
2067       "<title>1&#45;&gt;2</title>\n",
2068       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
2069       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
2070       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2071       "</g>\n",
2072       "</g>\n",
2073       "</svg>\n",
2074       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
2075       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
2076       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
2077       "<!-- Generated by graphviz version 2.43.0 (0)\n",
2078       " -->\n",
2079       "<!-- Pages: 1 -->\n",
2080       "<svg width=\"490pt\" height=\"183pt\"\n",
2081       " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
2082       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n",
2083       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n",
2084       "<text text-anchor=\"start\" x=\"66\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
2085       "<text text-anchor=\"start\" x=\"87\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
2086       "<text text-anchor=\"start\" x=\"103\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2087       "<text text-anchor=\"start\" x=\"145\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2088       "<text text-anchor=\"start\" x=\"161\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2089       "<text text-anchor=\"start\" x=\"207\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2090       "<text text-anchor=\"start\" x=\"223\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2091       "<text text-anchor=\"start\" x=\"265\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2092       "<text text-anchor=\"start\" x=\"281\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2093       "<text text-anchor=\"start\" x=\"327\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2094       "<text text-anchor=\"start\" x=\"343\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
2095       "<text text-anchor=\"start\" x=\"381\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2096       "<text text-anchor=\"start\" x=\"397\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n",
2097       "<text text-anchor=\"start\" x=\"185.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 6]</text>\n",
2098       "<!-- I -->\n",
2099       "<!-- 0 -->\n",
2100       "<g id=\"node2\" class=\"node\">\n",
2101       "<title>0</title>\n",
2102       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
2103       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
2104       "</g>\n",
2105       "<!-- I&#45;&gt;0 -->\n",
2106       "<g id=\"edge1\" class=\"edge\">\n",
2107       "<title>I&#45;&gt;0</title>\n",
2108       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
2109       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
2110       "</g>\n",
2111       "<!-- 2 -->\n",
2112       "<g id=\"node3\" class=\"node\">\n",
2113       "<title>2</title>\n",
2114       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
2115       "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
2116       "</g>\n",
2117       "<!-- 0&#45;&gt;2 -->\n",
2118       "<g id=\"edge2\" class=\"edge\">\n",
2119       "<title>0&#45;&gt;2</title>\n",
2120       "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n",
2121       "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n",
2122       "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2123       "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2124       "</g>\n",
2125       "<!-- 3 -->\n",
2126       "<g id=\"node4\" class=\"node\">\n",
2127       "<title>3</title>\n",
2128       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
2129       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
2130       "</g>\n",
2131       "<!-- 0&#45;&gt;3 -->\n",
2132       "<g id=\"edge3\" class=\"edge\">\n",
2133       "<title>0&#45;&gt;3</title>\n",
2134       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
2135       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
2136       "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2137       "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2138       "</g>\n",
2139       "<!-- 1 -->\n",
2140       "<g id=\"node5\" class=\"node\">\n",
2141       "<title>1</title>\n",
2142       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
2143       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
2144       "</g>\n",
2145       "<!-- 2&#45;&gt;1 -->\n",
2146       "<g id=\"edge6\" class=\"edge\">\n",
2147       "<title>2&#45;&gt;1</title>\n",
2148       "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n",
2149       "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n",
2150       "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2151       "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2152       "</g>\n",
2153       "<!-- 3&#45;&gt;0 -->\n",
2154       "<g id=\"edge8\" class=\"edge\">\n",
2155       "<title>3&#45;&gt;0</title>\n",
2156       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
2157       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
2158       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
2159       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2160       "</g>\n",
2161       "<!-- 3&#45;&gt;2 -->\n",
2162       "<g id=\"edge7\" class=\"edge\">\n",
2163       "<title>3&#45;&gt;2</title>\n",
2164       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n",
2165       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n",
2166       "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2167       "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
2168       "</g>\n",
2169       "<!-- 3&#45;&gt;3 -->\n",
2170       "<g id=\"edge9\" class=\"edge\">\n",
2171       "<title>3&#45;&gt;3</title>\n",
2172       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
2173       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
2174       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2175       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2176       "</g>\n",
2177       "<!-- 1&#45;&gt;0 -->\n",
2178       "<g id=\"edge4\" class=\"edge\">\n",
2179       "<title>1&#45;&gt;0</title>\n",
2180       "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
2181       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
2182       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2183       "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2184       "</g>\n",
2185       "<!-- 1&#45;&gt;2 -->\n",
2186       "<g id=\"edge5\" class=\"edge\">\n",
2187       "<title>1&#45;&gt;2</title>\n",
2188       "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n",
2189       "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n",
2190       "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2191       "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2192       "</g>\n",
2193       "</g>\n",
2194       "</svg>\n",
2195       "</div>"
2196      ],
2197      "text/plain": [
2198       "<IPython.core.display.HTML object>"
2199      ]
2200     },
2201     "metadata": {},
2202     "output_type": "display_data"
2203    }
2204   ],
2205   "source": [
2206    "display2(maxodd4, spot.colorize_parity(maxodd4, False))\n",
2207    "display2(maxodd4, spot.colorize_parity(maxodd4, True))"
2208   ]
2209  },
2210  {
2211   "cell_type": "markdown",
2212   "metadata": {},
2213   "source": [
2214    "#### Colorize parity max even 4"
2215   ]
2216  },
2217  {
2218   "cell_type": "code",
2219   "execution_count": 18,
2220   "metadata": {},
2221   "outputs": [
2222    {
2223     "data": {
2224      "text/html": [
2225       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
2226       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
2227       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
2228       "<!-- Generated by graphviz version 2.43.0 (0)\n",
2229       " -->\n",
2230       "<!-- Pages: 1 -->\n",
2231       "<svg width=\"490pt\" height=\"169pt\"\n",
2232       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
2233       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
2234       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
2235       "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
2236       "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2237       "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2238       "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2239       "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2240       "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2241       "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
2242       "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2243       "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
2244       "<text text-anchor=\"start\" x=\"182.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 4]</text>\n",
2245       "<!-- I -->\n",
2246       "<!-- 0 -->\n",
2247       "<g id=\"node2\" class=\"node\">\n",
2248       "<title>0</title>\n",
2249       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
2250       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
2251       "</g>\n",
2252       "<!-- I&#45;&gt;0 -->\n",
2253       "<g id=\"edge1\" class=\"edge\">\n",
2254       "<title>I&#45;&gt;0</title>\n",
2255       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
2256       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
2257       "</g>\n",
2258       "<!-- 2 -->\n",
2259       "<g id=\"node3\" class=\"node\">\n",
2260       "<title>2</title>\n",
2261       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
2262       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
2263       "</g>\n",
2264       "<!-- 0&#45;&gt;2 -->\n",
2265       "<g id=\"edge2\" class=\"edge\">\n",
2266       "<title>0&#45;&gt;2</title>\n",
2267       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
2268       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
2269       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2270       "</g>\n",
2271       "<!-- 3 -->\n",
2272       "<g id=\"node4\" class=\"node\">\n",
2273       "<title>3</title>\n",
2274       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
2275       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
2276       "</g>\n",
2277       "<!-- 0&#45;&gt;3 -->\n",
2278       "<g id=\"edge3\" class=\"edge\">\n",
2279       "<title>0&#45;&gt;3</title>\n",
2280       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
2281       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
2282       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2283       "</g>\n",
2284       "<!-- 1 -->\n",
2285       "<g id=\"node5\" class=\"node\">\n",
2286       "<title>1</title>\n",
2287       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
2288       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
2289       "</g>\n",
2290       "<!-- 2&#45;&gt;1 -->\n",
2291       "<g id=\"edge6\" class=\"edge\">\n",
2292       "<title>2&#45;&gt;1</title>\n",
2293       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
2294       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
2295       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2296       "</g>\n",
2297       "<!-- 3&#45;&gt;0 -->\n",
2298       "<g id=\"edge8\" class=\"edge\">\n",
2299       "<title>3&#45;&gt;0</title>\n",
2300       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
2301       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
2302       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
2303       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2304       "</g>\n",
2305       "<!-- 3&#45;&gt;2 -->\n",
2306       "<g id=\"edge7\" class=\"edge\">\n",
2307       "<title>3&#45;&gt;2</title>\n",
2308       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
2309       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
2310       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2311       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2312       "</g>\n",
2313       "<!-- 3&#45;&gt;3 -->\n",
2314       "<g id=\"edge9\" class=\"edge\">\n",
2315       "<title>3&#45;&gt;3</title>\n",
2316       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
2317       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
2318       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2319       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2320       "</g>\n",
2321       "<!-- 1&#45;&gt;0 -->\n",
2322       "<g id=\"edge4\" class=\"edge\">\n",
2323       "<title>1&#45;&gt;0</title>\n",
2324       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
2325       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
2326       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2327       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2328       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2329       "</g>\n",
2330       "<!-- 1&#45;&gt;2 -->\n",
2331       "<g id=\"edge5\" class=\"edge\">\n",
2332       "<title>1&#45;&gt;2</title>\n",
2333       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
2334       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
2335       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2336       "</g>\n",
2337       "</g>\n",
2338       "</svg>\n",
2339       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
2340       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
2341       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
2342       "<!-- Generated by graphviz version 2.43.0 (0)\n",
2343       " -->\n",
2344       "<!-- Pages: 1 -->\n",
2345       "<svg width=\"490pt\" height=\"183pt\"\n",
2346       " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
2347       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n",
2348       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n",
2349       "<text text-anchor=\"start\" x=\"95.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
2350       "<text text-anchor=\"start\" x=\"118.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2351       "<text text-anchor=\"start\" x=\"134.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2352       "<text text-anchor=\"start\" x=\"180.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2353       "<text text-anchor=\"start\" x=\"196.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2354       "<text text-anchor=\"start\" x=\"238.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2355       "<text text-anchor=\"start\" x=\"254.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2356       "<text text-anchor=\"start\" x=\"300.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2357       "<text text-anchor=\"start\" x=\"316.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
2358       "<text text-anchor=\"start\" x=\"354.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2359       "<text text-anchor=\"start\" x=\"370.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
2360       "<text text-anchor=\"start\" x=\"185.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n",
2361       "<!-- I -->\n",
2362       "<!-- 0 -->\n",
2363       "<g id=\"node2\" class=\"node\">\n",
2364       "<title>0</title>\n",
2365       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
2366       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
2367       "</g>\n",
2368       "<!-- I&#45;&gt;0 -->\n",
2369       "<g id=\"edge1\" class=\"edge\">\n",
2370       "<title>I&#45;&gt;0</title>\n",
2371       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
2372       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
2373       "</g>\n",
2374       "<!-- 2 -->\n",
2375       "<g id=\"node3\" class=\"node\">\n",
2376       "<title>2</title>\n",
2377       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
2378       "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
2379       "</g>\n",
2380       "<!-- 0&#45;&gt;2 -->\n",
2381       "<g id=\"edge2\" class=\"edge\">\n",
2382       "<title>0&#45;&gt;2</title>\n",
2383       "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n",
2384       "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n",
2385       "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2386       "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2387       "</g>\n",
2388       "<!-- 3 -->\n",
2389       "<g id=\"node4\" class=\"node\">\n",
2390       "<title>3</title>\n",
2391       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
2392       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
2393       "</g>\n",
2394       "<!-- 0&#45;&gt;3 -->\n",
2395       "<g id=\"edge3\" class=\"edge\">\n",
2396       "<title>0&#45;&gt;3</title>\n",
2397       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
2398       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
2399       "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2400       "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2401       "</g>\n",
2402       "<!-- 1 -->\n",
2403       "<g id=\"node5\" class=\"node\">\n",
2404       "<title>1</title>\n",
2405       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
2406       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
2407       "</g>\n",
2408       "<!-- 2&#45;&gt;1 -->\n",
2409       "<g id=\"edge6\" class=\"edge\">\n",
2410       "<title>2&#45;&gt;1</title>\n",
2411       "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n",
2412       "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n",
2413       "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2414       "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2415       "</g>\n",
2416       "<!-- 3&#45;&gt;0 -->\n",
2417       "<g id=\"edge8\" class=\"edge\">\n",
2418       "<title>3&#45;&gt;0</title>\n",
2419       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
2420       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
2421       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
2422       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2423       "</g>\n",
2424       "<!-- 3&#45;&gt;2 -->\n",
2425       "<g id=\"edge7\" class=\"edge\">\n",
2426       "<title>3&#45;&gt;2</title>\n",
2427       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n",
2428       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n",
2429       "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2430       "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2431       "</g>\n",
2432       "<!-- 3&#45;&gt;3 -->\n",
2433       "<g id=\"edge9\" class=\"edge\">\n",
2434       "<title>3&#45;&gt;3</title>\n",
2435       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
2436       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
2437       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2438       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2439       "</g>\n",
2440       "<!-- 1&#45;&gt;0 -->\n",
2441       "<g id=\"edge4\" class=\"edge\">\n",
2442       "<title>1&#45;&gt;0</title>\n",
2443       "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
2444       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
2445       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2446       "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2447       "</g>\n",
2448       "<!-- 1&#45;&gt;2 -->\n",
2449       "<g id=\"edge5\" class=\"edge\">\n",
2450       "<title>1&#45;&gt;2</title>\n",
2451       "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n",
2452       "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n",
2453       "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2454       "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2455       "</g>\n",
2456       "</g>\n",
2457       "</svg>\n",
2458       "</div>"
2459      ],
2460      "text/plain": [
2461       "<IPython.core.display.HTML object>"
2462      ]
2463     },
2464     "metadata": {},
2465     "output_type": "display_data"
2466    },
2467    {
2468     "data": {
2469      "text/html": [
2470       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
2471       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
2472       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
2473       "<!-- Generated by graphviz version 2.43.0 (0)\n",
2474       " -->\n",
2475       "<!-- Pages: 1 -->\n",
2476       "<svg width=\"490pt\" height=\"169pt\"\n",
2477       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
2478       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
2479       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
2480       "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
2481       "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2482       "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2483       "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2484       "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2485       "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2486       "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
2487       "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2488       "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
2489       "<text text-anchor=\"start\" x=\"182.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 4]</text>\n",
2490       "<!-- I -->\n",
2491       "<!-- 0 -->\n",
2492       "<g id=\"node2\" class=\"node\">\n",
2493       "<title>0</title>\n",
2494       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
2495       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
2496       "</g>\n",
2497       "<!-- I&#45;&gt;0 -->\n",
2498       "<g id=\"edge1\" class=\"edge\">\n",
2499       "<title>I&#45;&gt;0</title>\n",
2500       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
2501       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
2502       "</g>\n",
2503       "<!-- 2 -->\n",
2504       "<g id=\"node3\" class=\"node\">\n",
2505       "<title>2</title>\n",
2506       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
2507       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
2508       "</g>\n",
2509       "<!-- 0&#45;&gt;2 -->\n",
2510       "<g id=\"edge2\" class=\"edge\">\n",
2511       "<title>0&#45;&gt;2</title>\n",
2512       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
2513       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
2514       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2515       "</g>\n",
2516       "<!-- 3 -->\n",
2517       "<g id=\"node4\" class=\"node\">\n",
2518       "<title>3</title>\n",
2519       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
2520       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
2521       "</g>\n",
2522       "<!-- 0&#45;&gt;3 -->\n",
2523       "<g id=\"edge3\" class=\"edge\">\n",
2524       "<title>0&#45;&gt;3</title>\n",
2525       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
2526       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
2527       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2528       "</g>\n",
2529       "<!-- 1 -->\n",
2530       "<g id=\"node5\" class=\"node\">\n",
2531       "<title>1</title>\n",
2532       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
2533       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
2534       "</g>\n",
2535       "<!-- 2&#45;&gt;1 -->\n",
2536       "<g id=\"edge6\" class=\"edge\">\n",
2537       "<title>2&#45;&gt;1</title>\n",
2538       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
2539       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
2540       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2541       "</g>\n",
2542       "<!-- 3&#45;&gt;0 -->\n",
2543       "<g id=\"edge8\" class=\"edge\">\n",
2544       "<title>3&#45;&gt;0</title>\n",
2545       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
2546       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
2547       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
2548       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2549       "</g>\n",
2550       "<!-- 3&#45;&gt;2 -->\n",
2551       "<g id=\"edge7\" class=\"edge\">\n",
2552       "<title>3&#45;&gt;2</title>\n",
2553       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
2554       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
2555       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2556       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2557       "</g>\n",
2558       "<!-- 3&#45;&gt;3 -->\n",
2559       "<g id=\"edge9\" class=\"edge\">\n",
2560       "<title>3&#45;&gt;3</title>\n",
2561       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
2562       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
2563       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2564       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2565       "</g>\n",
2566       "<!-- 1&#45;&gt;0 -->\n",
2567       "<g id=\"edge4\" class=\"edge\">\n",
2568       "<title>1&#45;&gt;0</title>\n",
2569       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
2570       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
2571       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2572       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2573       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2574       "</g>\n",
2575       "<!-- 1&#45;&gt;2 -->\n",
2576       "<g id=\"edge5\" class=\"edge\">\n",
2577       "<title>1&#45;&gt;2</title>\n",
2578       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
2579       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
2580       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2581       "</g>\n",
2582       "</g>\n",
2583       "</svg>\n",
2584       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
2585       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
2586       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
2587       "<!-- Generated by graphviz version 2.43.0 (0)\n",
2588       " -->\n",
2589       "<!-- Pages: 1 -->\n",
2590       "<svg width=\"490pt\" height=\"183pt\"\n",
2591       " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
2592       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n",
2593       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n",
2594       "<text text-anchor=\"start\" x=\"63\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
2595       "<text text-anchor=\"start\" x=\"86\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
2596       "<text text-anchor=\"start\" x=\"102\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2597       "<text text-anchor=\"start\" x=\"148\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2598       "<text text-anchor=\"start\" x=\"164\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2599       "<text text-anchor=\"start\" x=\"206\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2600       "<text text-anchor=\"start\" x=\"222\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2601       "<text text-anchor=\"start\" x=\"268\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2602       "<text text-anchor=\"start\" x=\"284\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2603       "<text text-anchor=\"start\" x=\"326\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2604       "<text text-anchor=\"start\" x=\"342\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
2605       "<text text-anchor=\"start\" x=\"384\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2606       "<text text-anchor=\"start\" x=\"400\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">)))))</text>\n",
2607       "<text text-anchor=\"start\" x=\"182.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 6]</text>\n",
2608       "<!-- I -->\n",
2609       "<!-- 0 -->\n",
2610       "<g id=\"node2\" class=\"node\">\n",
2611       "<title>0</title>\n",
2612       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
2613       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
2614       "</g>\n",
2615       "<!-- I&#45;&gt;0 -->\n",
2616       "<g id=\"edge1\" class=\"edge\">\n",
2617       "<title>I&#45;&gt;0</title>\n",
2618       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
2619       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
2620       "</g>\n",
2621       "<!-- 2 -->\n",
2622       "<g id=\"node3\" class=\"node\">\n",
2623       "<title>2</title>\n",
2624       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
2625       "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
2626       "</g>\n",
2627       "<!-- 0&#45;&gt;2 -->\n",
2628       "<g id=\"edge2\" class=\"edge\">\n",
2629       "<title>0&#45;&gt;2</title>\n",
2630       "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n",
2631       "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n",
2632       "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2633       "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2634       "</g>\n",
2635       "<!-- 3 -->\n",
2636       "<g id=\"node4\" class=\"node\">\n",
2637       "<title>3</title>\n",
2638       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
2639       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
2640       "</g>\n",
2641       "<!-- 0&#45;&gt;3 -->\n",
2642       "<g id=\"edge3\" class=\"edge\">\n",
2643       "<title>0&#45;&gt;3</title>\n",
2644       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
2645       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
2646       "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2647       "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2648       "</g>\n",
2649       "<!-- 1 -->\n",
2650       "<g id=\"node5\" class=\"node\">\n",
2651       "<title>1</title>\n",
2652       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
2653       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
2654       "</g>\n",
2655       "<!-- 2&#45;&gt;1 -->\n",
2656       "<g id=\"edge6\" class=\"edge\">\n",
2657       "<title>2&#45;&gt;1</title>\n",
2658       "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n",
2659       "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n",
2660       "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2661       "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2662       "</g>\n",
2663       "<!-- 3&#45;&gt;0 -->\n",
2664       "<g id=\"edge8\" class=\"edge\">\n",
2665       "<title>3&#45;&gt;0</title>\n",
2666       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
2667       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
2668       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
2669       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2670       "</g>\n",
2671       "<!-- 3&#45;&gt;2 -->\n",
2672       "<g id=\"edge7\" class=\"edge\">\n",
2673       "<title>3&#45;&gt;2</title>\n",
2674       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n",
2675       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n",
2676       "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2677       "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
2678       "</g>\n",
2679       "<!-- 3&#45;&gt;3 -->\n",
2680       "<g id=\"edge9\" class=\"edge\">\n",
2681       "<title>3&#45;&gt;3</title>\n",
2682       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
2683       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
2684       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2685       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2686       "</g>\n",
2687       "<!-- 1&#45;&gt;0 -->\n",
2688       "<g id=\"edge4\" class=\"edge\">\n",
2689       "<title>1&#45;&gt;0</title>\n",
2690       "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
2691       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
2692       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2693       "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2694       "</g>\n",
2695       "<!-- 1&#45;&gt;2 -->\n",
2696       "<g id=\"edge5\" class=\"edge\">\n",
2697       "<title>1&#45;&gt;2</title>\n",
2698       "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n",
2699       "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n",
2700       "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2701       "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2702       "</g>\n",
2703       "</g>\n",
2704       "</svg>\n",
2705       "</div>"
2706      ],
2707      "text/plain": [
2708       "<IPython.core.display.HTML object>"
2709      ]
2710     },
2711     "metadata": {},
2712     "output_type": "display_data"
2713    }
2714   ],
2715   "source": [
2716    "display2(maxeven4, spot.colorize_parity(maxeven4, False))\n",
2717    "display2(maxeven4, spot.colorize_parity(maxeven4, True))"
2718   ]
2719  },
2720  {
2721   "cell_type": "markdown",
2722   "metadata": {},
2723   "source": [
2724    "## Parity min\n",
2725    "Transitions with multiple colors are simplified by keeping only the color with the lowest index.\n",
2726    "<br>\n",
2727    "An extra color may be introduced at the end of the range, without changing the acceptance style (so the second argument of `colorize_parity()` is useless in this case).\n",
2728    "\n",
2729    "#### Colorize parity min odd 4"
2730   ]
2731  },
2732  {
2733   "cell_type": "code",
2734   "execution_count": 19,
2735   "metadata": {},
2736   "outputs": [
2737    {
2738     "data": {
2739      "text/html": [
2740       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
2741       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
2742       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
2743       "<!-- Generated by graphviz version 2.43.0 (0)\n",
2744       " -->\n",
2745       "<!-- Pages: 1 -->\n",
2746       "<svg width=\"490pt\" height=\"169pt\"\n",
2747       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
2748       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
2749       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
2750       "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
2751       "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2752       "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2753       "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2754       "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2755       "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2756       "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
2757       "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2758       "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
2759       "<text text-anchor=\"start\" x=\"187\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n",
2760       "<!-- I -->\n",
2761       "<!-- 0 -->\n",
2762       "<g id=\"node2\" class=\"node\">\n",
2763       "<title>0</title>\n",
2764       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
2765       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
2766       "</g>\n",
2767       "<!-- I&#45;&gt;0 -->\n",
2768       "<g id=\"edge1\" class=\"edge\">\n",
2769       "<title>I&#45;&gt;0</title>\n",
2770       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
2771       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
2772       "</g>\n",
2773       "<!-- 2 -->\n",
2774       "<g id=\"node3\" class=\"node\">\n",
2775       "<title>2</title>\n",
2776       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
2777       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
2778       "</g>\n",
2779       "<!-- 0&#45;&gt;2 -->\n",
2780       "<g id=\"edge2\" class=\"edge\">\n",
2781       "<title>0&#45;&gt;2</title>\n",
2782       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
2783       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
2784       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2785       "</g>\n",
2786       "<!-- 3 -->\n",
2787       "<g id=\"node4\" class=\"node\">\n",
2788       "<title>3</title>\n",
2789       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
2790       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
2791       "</g>\n",
2792       "<!-- 0&#45;&gt;3 -->\n",
2793       "<g id=\"edge3\" class=\"edge\">\n",
2794       "<title>0&#45;&gt;3</title>\n",
2795       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
2796       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
2797       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2798       "</g>\n",
2799       "<!-- 1 -->\n",
2800       "<g id=\"node5\" class=\"node\">\n",
2801       "<title>1</title>\n",
2802       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
2803       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
2804       "</g>\n",
2805       "<!-- 2&#45;&gt;1 -->\n",
2806       "<g id=\"edge6\" class=\"edge\">\n",
2807       "<title>2&#45;&gt;1</title>\n",
2808       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
2809       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
2810       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2811       "</g>\n",
2812       "<!-- 3&#45;&gt;0 -->\n",
2813       "<g id=\"edge8\" class=\"edge\">\n",
2814       "<title>3&#45;&gt;0</title>\n",
2815       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
2816       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
2817       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
2818       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2819       "</g>\n",
2820       "<!-- 3&#45;&gt;2 -->\n",
2821       "<g id=\"edge7\" class=\"edge\">\n",
2822       "<title>3&#45;&gt;2</title>\n",
2823       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
2824       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
2825       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2826       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2827       "</g>\n",
2828       "<!-- 3&#45;&gt;3 -->\n",
2829       "<g id=\"edge9\" class=\"edge\">\n",
2830       "<title>3&#45;&gt;3</title>\n",
2831       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
2832       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
2833       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2834       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2835       "</g>\n",
2836       "<!-- 1&#45;&gt;0 -->\n",
2837       "<g id=\"edge4\" class=\"edge\">\n",
2838       "<title>1&#45;&gt;0</title>\n",
2839       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
2840       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
2841       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2842       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2843       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2844       "</g>\n",
2845       "<!-- 1&#45;&gt;2 -->\n",
2846       "<g id=\"edge5\" class=\"edge\">\n",
2847       "<title>1&#45;&gt;2</title>\n",
2848       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
2849       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
2850       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2851       "</g>\n",
2852       "</g>\n",
2853       "</svg>\n",
2854       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
2855       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
2856       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
2857       "<!-- Generated by graphviz version 2.43.0 (0)\n",
2858       " -->\n",
2859       "<!-- Pages: 1 -->\n",
2860       "<svg width=\"490pt\" height=\"183pt\"\n",
2861       " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
2862       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n",
2863       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n",
2864       "<text text-anchor=\"start\" x=\"95.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
2865       "<text text-anchor=\"start\" x=\"118.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2866       "<text text-anchor=\"start\" x=\"134.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2867       "<text text-anchor=\"start\" x=\"180.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
2868       "<text text-anchor=\"start\" x=\"196.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
2869       "<text text-anchor=\"start\" x=\"238.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2870       "<text text-anchor=\"start\" x=\"254.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
2871       "<text text-anchor=\"start\" x=\"300.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2872       "<text text-anchor=\"start\" x=\"316.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
2873       "<text text-anchor=\"start\" x=\"354.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2874       "<text text-anchor=\"start\" x=\"370.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
2875       "<text text-anchor=\"start\" x=\"187\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 5]</text>\n",
2876       "<!-- I -->\n",
2877       "<!-- 0 -->\n",
2878       "<g id=\"node2\" class=\"node\">\n",
2879       "<title>0</title>\n",
2880       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
2881       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
2882       "</g>\n",
2883       "<!-- I&#45;&gt;0 -->\n",
2884       "<g id=\"edge1\" class=\"edge\">\n",
2885       "<title>I&#45;&gt;0</title>\n",
2886       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
2887       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
2888       "</g>\n",
2889       "<!-- 2 -->\n",
2890       "<g id=\"node3\" class=\"node\">\n",
2891       "<title>2</title>\n",
2892       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
2893       "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
2894       "</g>\n",
2895       "<!-- 0&#45;&gt;2 -->\n",
2896       "<g id=\"edge2\" class=\"edge\">\n",
2897       "<title>0&#45;&gt;2</title>\n",
2898       "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n",
2899       "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n",
2900       "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2901       "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2902       "</g>\n",
2903       "<!-- 3 -->\n",
2904       "<g id=\"node4\" class=\"node\">\n",
2905       "<title>3</title>\n",
2906       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
2907       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
2908       "</g>\n",
2909       "<!-- 0&#45;&gt;3 -->\n",
2910       "<g id=\"edge3\" class=\"edge\">\n",
2911       "<title>0&#45;&gt;3</title>\n",
2912       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
2913       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
2914       "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2915       "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2916       "</g>\n",
2917       "<!-- 1 -->\n",
2918       "<g id=\"node5\" class=\"node\">\n",
2919       "<title>1</title>\n",
2920       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
2921       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
2922       "</g>\n",
2923       "<!-- 2&#45;&gt;1 -->\n",
2924       "<g id=\"edge6\" class=\"edge\">\n",
2925       "<title>2&#45;&gt;1</title>\n",
2926       "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n",
2927       "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n",
2928       "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2929       "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2930       "</g>\n",
2931       "<!-- 3&#45;&gt;0 -->\n",
2932       "<g id=\"edge8\" class=\"edge\">\n",
2933       "<title>3&#45;&gt;0</title>\n",
2934       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
2935       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
2936       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
2937       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2938       "</g>\n",
2939       "<!-- 3&#45;&gt;2 -->\n",
2940       "<g id=\"edge7\" class=\"edge\">\n",
2941       "<title>3&#45;&gt;2</title>\n",
2942       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n",
2943       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n",
2944       "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2945       "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
2946       "</g>\n",
2947       "<!-- 3&#45;&gt;3 -->\n",
2948       "<g id=\"edge9\" class=\"edge\">\n",
2949       "<title>3&#45;&gt;3</title>\n",
2950       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
2951       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
2952       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2953       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
2954       "</g>\n",
2955       "<!-- 1&#45;&gt;0 -->\n",
2956       "<g id=\"edge4\" class=\"edge\">\n",
2957       "<title>1&#45;&gt;0</title>\n",
2958       "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
2959       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
2960       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
2961       "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
2962       "</g>\n",
2963       "<!-- 1&#45;&gt;2 -->\n",
2964       "<g id=\"edge5\" class=\"edge\">\n",
2965       "<title>1&#45;&gt;2</title>\n",
2966       "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n",
2967       "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n",
2968       "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
2969       "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
2970       "</g>\n",
2971       "</g>\n",
2972       "</svg>\n",
2973       "</div>"
2974      ],
2975      "text/plain": [
2976       "<IPython.core.display.HTML object>"
2977      ]
2978     },
2979     "metadata": {},
2980     "output_type": "display_data"
2981    }
2982   ],
2983   "source": [
2984    "display2(minodd4, spot.colorize_parity(minodd4))"
2985   ]
2986  },
2987  {
2988   "cell_type": "markdown",
2989   "metadata": {},
2990   "source": [
2991    "## Degenerate cases\n",
2992    "\n",
2993    "### max odd 1\n",
2994    "\n",
2995    "This is just another name for co-Büchi."
2996   ]
2997  },
2998  {
2999   "cell_type": "code",
3000   "execution_count": 20,
3001   "metadata": {},
3002   "outputs": [
3003    {
3004     "data": {
3005      "text/html": [
3006       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3007       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3008       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3009       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3010       " -->\n",
3011       "<!-- Pages: 1 -->\n",
3012       "<svg width=\"499pt\" height=\"140pt\"\n",
3013       " viewBox=\"0.00 0.00 498.50 140.34\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3014       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 136.34)\">\n",
3015       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-136.34 494.5,-136.34 494.5,4 -4,4\"/>\n",
3016       "<text text-anchor=\"start\" x=\"213.75\" y=\"-102.14\" font-family=\"Lato\" font-size=\"14.00\">[co&#45;Büchi]</text>\n",
3017       "<!-- I -->\n",
3018       "<!-- 0 -->\n",
3019       "<g id=\"node2\" class=\"node\">\n",
3020       "<title>0</title>\n",
3021       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n",
3022       "<text text-anchor=\"middle\" x=\"56\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
3023       "</g>\n",
3024       "<!-- I&#45;&gt;0 -->\n",
3025       "<g id=\"edge1\" class=\"edge\">\n",
3026       "<title>I&#45;&gt;0</title>\n",
3027       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.54C2.79,-23.54 17.15,-23.54 30.63,-23.54\"/>\n",
3028       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.54 30.94,-26.69 34.44,-23.54 30.94,-23.54 30.94,-23.54 30.94,-23.54 34.44,-23.54 30.94,-20.39 37.94,-23.54 37.94,-23.54\"/>\n",
3029       "</g>\n",
3030       "<!-- 2 -->\n",
3031       "<g id=\"node3\" class=\"node\">\n",
3032       "<title>2</title>\n",
3033       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-74.54\" rx=\"18\" ry=\"18\"/>\n",
3034       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-70.84\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
3035       "</g>\n",
3036       "<!-- 0&#45;&gt;2 -->\n",
3037       "<g id=\"edge2\" class=\"edge\">\n",
3038       "<title>0&#45;&gt;2</title>\n",
3039       "<path fill=\"none\" stroke=\"black\" d=\"M72.99,-30.07C78.94,-32.46 85.76,-35.17 92,-37.54 119.17,-47.87 150.64,-59.13 171.47,-66.48\"/>\n",
3040       "<polygon fill=\"black\" stroke=\"black\" points=\"178.1,-68.82 170.46,-69.46 174.8,-67.65 171.5,-66.49 171.5,-66.49 171.5,-66.49 174.8,-67.65 172.55,-63.52 178.1,-68.82 178.1,-68.82\"/>\n",
3041       "<text text-anchor=\"start\" x=\"92\" y=\"-61.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3042       "</g>\n",
3043       "<!-- 1 -->\n",
3044       "<g id=\"node4\" class=\"node\">\n",
3045       "<title>1</title>\n",
3046       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"331\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n",
3047       "<text text-anchor=\"middle\" x=\"331\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
3048       "</g>\n",
3049       "<!-- 0&#45;&gt;1 -->\n",
3050       "<g id=\"edge3\" class=\"edge\">\n",
3051       "<title>0&#45;&gt;1</title>\n",
3052       "<path fill=\"none\" stroke=\"black\" d=\"M74.08,-23.54C120.9,-23.54 251.44,-23.54 305.78,-23.54\"/>\n",
3053       "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-23.54 305.93,-26.69 309.43,-23.54 305.93,-23.54 305.93,-23.54 305.93,-23.54 309.43,-23.54 305.93,-20.39 312.93,-23.54 312.93,-23.54\"/>\n",
3054       "<text text-anchor=\"start\" x=\"167\" y=\"-27.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3055       "</g>\n",
3056       "<!-- 2&#45;&gt;1 -->\n",
3057       "<g id=\"edge6\" class=\"edge\">\n",
3058       "<title>2&#45;&gt;1</title>\n",
3059       "<path fill=\"none\" stroke=\"black\" d=\"M212.58,-68.62C232.11,-61.4 266.05,-48.77 295,-37.54 298.99,-35.99 303.22,-34.33 307.31,-32.7\"/>\n",
3060       "<polygon fill=\"black\" stroke=\"black\" points=\"314,-30.02 308.67,-35.55 310.75,-31.32 307.5,-32.62 307.5,-32.62 307.5,-32.62 310.75,-31.32 306.33,-29.7 314,-30.02 314,-30.02\"/>\n",
3061       "<text text-anchor=\"start\" x=\"242\" y=\"-60.34\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
3062       "</g>\n",
3063       "<!-- 1&#45;&gt;0 -->\n",
3064       "<g id=\"edge4\" class=\"edge\">\n",
3065       "<title>1&#45;&gt;0</title>\n",
3066       "<path fill=\"none\" stroke=\"black\" d=\"M313.23,-19.58C292.44,-14.9 255.84,-7.37 224,-4.54 198.77,-2.3 192.24,-2.38 167,-4.54 136.99,-7.11 102.87,-13.57 80.7,-18.24\"/>\n",
3067       "<polygon fill=\"black\" stroke=\"black\" points=\"73.66,-19.75 79.84,-15.2 77.08,-19.01 80.5,-18.28 80.5,-18.28 80.5,-18.28 77.08,-19.01 81.16,-21.36 73.66,-19.75 73.66,-19.75\"/>\n",
3068       "<text text-anchor=\"start\" x=\"169\" y=\"-8.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3069       "</g>\n",
3070       "<!-- 3 -->\n",
3071       "<g id=\"node5\" class=\"node\">\n",
3072       "<title>3</title>\n",
3073       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n",
3074       "<ellipse fill=\"none\" stroke=\"black\" cx=\"464\" cy=\"-23.54\" rx=\"22\" ry=\"22\"/>\n",
3075       "<text text-anchor=\"middle\" x=\"464\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
3076       "</g>\n",
3077       "<!-- 1&#45;&gt;3 -->\n",
3078       "<g id=\"edge5\" class=\"edge\">\n",
3079       "<title>1&#45;&gt;3</title>\n",
3080       "<path fill=\"none\" stroke=\"black\" d=\"M349.13,-23.54C370.93,-23.54 408.9,-23.54 434.96,-23.54\"/>\n",
3081       "<polygon fill=\"black\" stroke=\"black\" points=\"441.97,-23.54 434.97,-26.69 438.47,-23.54 434.97,-23.54 434.97,-23.54 434.97,-23.54 438.47,-23.54 434.97,-20.39 441.97,-23.54 441.97,-23.54\"/>\n",
3082       "<text text-anchor=\"start\" x=\"371\" y=\"-27.34\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
3083       "</g>\n",
3084       "<!-- 3&#45;&gt;1 -->\n",
3085       "<g id=\"edge8\" class=\"edge\">\n",
3086       "<title>3&#45;&gt;1</title>\n",
3087       "<path fill=\"none\" stroke=\"black\" d=\"M444.6,-12.46C438.29,-9.24 431.05,-6.17 424,-4.54 399.31,1.15 391.55,1.69 367,-4.54 362.14,-5.78 357.22,-7.84 352.67,-10.16\"/>\n",
3088       "<polygon fill=\"black\" stroke=\"black\" points=\"346.31,-13.68 350.91,-7.53 349.37,-11.98 352.44,-10.29 352.44,-10.29 352.44,-10.29 349.37,-11.98 353.96,-13.04 346.31,-13.68 346.31,-13.68\"/>\n",
3089       "<text text-anchor=\"start\" x=\"367\" y=\"-8.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3090       "</g>\n",
3091       "<!-- 3&#45;&gt;3 -->\n",
3092       "<g id=\"edge7\" class=\"edge\">\n",
3093       "<title>3&#45;&gt;3</title>\n",
3094       "<path fill=\"none\" stroke=\"black\" d=\"M452.05,-42.06C449.39,-53.12 453.38,-63.54 464,-63.54 472.3,-63.54 476.55,-57.18 476.74,-49.12\"/>\n",
3095       "<polygon fill=\"black\" stroke=\"black\" points=\"475.95,-42.06 479.86,-48.66 476.34,-45.53 476.73,-49.01 476.73,-49.01 476.73,-49.01 476.34,-45.53 473.6,-49.36 475.95,-42.06 475.95,-42.06\"/>\n",
3096       "<text text-anchor=\"start\" x=\"437.5\" y=\"-67.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3097       "</g>\n",
3098       "</g>\n",
3099       "</svg>\n",
3100       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3101       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3102       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3103       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3104       " -->\n",
3105       "<!-- Pages: 1 -->\n",
3106       "<svg width=\"495pt\" height=\"139pt\"\n",
3107       " viewBox=\"0.00 0.00 494.50 138.68\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3108       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 134.68)\">\n",
3109       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-134.68 490.5,-134.68 490.5,4 -4,4\"/>\n",
3110       "<text text-anchor=\"start\" x=\"192.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
3111       "<text text-anchor=\"start\" x=\"215.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3112       "<text text-anchor=\"start\" x=\"231.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
3113       "<text text-anchor=\"start\" x=\"273.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3114       "<text text-anchor=\"start\" x=\"289.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
3115       "<text text-anchor=\"start\" x=\"184.75\" y=\"-102.48\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 2]</text>\n",
3116       "<!-- I -->\n",
3117       "<!-- 0 -->\n",
3118       "<g id=\"node2\" class=\"node\">\n",
3119       "<title>0</title>\n",
3120       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M62,-42.68C62,-42.68 50,-42.68 50,-42.68 44,-42.68 38,-36.68 38,-30.68 38,-30.68 38,-16.68 38,-16.68 38,-10.68 44,-4.68 50,-4.68 50,-4.68 62,-4.68 62,-4.68 68,-4.68 74,-10.68 74,-16.68 74,-16.68 74,-30.68 74,-30.68 74,-36.68 68,-42.68 62,-42.68\"/>\n",
3121       "<text text-anchor=\"start\" x=\"51.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
3122       "<text text-anchor=\"start\" x=\"48\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3123       "</g>\n",
3124       "<!-- I&#45;&gt;0 -->\n",
3125       "<g id=\"edge1\" class=\"edge\">\n",
3126       "<title>I&#45;&gt;0</title>\n",
3127       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.68C2.79,-23.68 17.15,-23.68 30.63,-23.68\"/>\n",
3128       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.68 30.94,-26.83 34.44,-23.68 30.94,-23.68 30.94,-23.68 30.94,-23.68 34.44,-23.68 30.94,-20.53 37.94,-23.68 37.94,-23.68\"/>\n",
3129       "</g>\n",
3130       "<!-- 2 -->\n",
3131       "<g id=\"node3\" class=\"node\">\n",
3132       "<title>2</title>\n",
3133       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M201.5,-94.68C201.5,-94.68 189.5,-94.68 189.5,-94.68 183.5,-94.68 177.5,-88.68 177.5,-82.68 177.5,-82.68 177.5,-68.68 177.5,-68.68 177.5,-62.68 183.5,-56.68 189.5,-56.68 189.5,-56.68 201.5,-56.68 201.5,-56.68 207.5,-56.68 213.5,-62.68 213.5,-68.68 213.5,-68.68 213.5,-82.68 213.5,-82.68 213.5,-88.68 207.5,-94.68 201.5,-94.68\"/>\n",
3134       "<text text-anchor=\"start\" x=\"191\" y=\"-79.48\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
3135       "<text text-anchor=\"start\" x=\"187.5\" y=\"-64.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3136       "</g>\n",
3137       "<!-- 0&#45;&gt;2 -->\n",
3138       "<g id=\"edge2\" class=\"edge\">\n",
3139       "<title>0&#45;&gt;2</title>\n",
3140       "<path fill=\"none\" stroke=\"black\" d=\"M74.06,-30.6C79.75,-32.88 86.14,-35.42 92,-37.68 118.89,-48.04 149.94,-59.47 170.76,-67.07\"/>\n",
3141       "<polygon fill=\"black\" stroke=\"black\" points=\"177.4,-69.49 169.75,-70.05 174.11,-68.29 170.82,-67.09 170.82,-67.09 170.82,-67.09 174.11,-68.29 171.9,-64.13 177.4,-69.49 177.4,-69.49\"/>\n",
3142       "<text text-anchor=\"start\" x=\"92\" y=\"-61.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3143       "</g>\n",
3144       "<!-- 1 -->\n",
3145       "<g id=\"node4\" class=\"node\">\n",
3146       "<title>1</title>\n",
3147       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M337,-42.68C337,-42.68 325,-42.68 325,-42.68 319,-42.68 313,-36.68 313,-30.68 313,-30.68 313,-16.68 313,-16.68 313,-10.68 319,-4.68 325,-4.68 325,-4.68 337,-4.68 337,-4.68 343,-4.68 349,-10.68 349,-16.68 349,-16.68 349,-30.68 349,-30.68 349,-36.68 343,-42.68 337,-42.68\"/>\n",
3148       "<text text-anchor=\"start\" x=\"326.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
3149       "<text text-anchor=\"start\" x=\"323\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3150       "</g>\n",
3151       "<!-- 0&#45;&gt;1 -->\n",
3152       "<g id=\"edge3\" class=\"edge\">\n",
3153       "<title>0&#45;&gt;1</title>\n",
3154       "<path fill=\"none\" stroke=\"black\" d=\"M74.08,-23.68C120.9,-23.68 251.44,-23.68 305.78,-23.68\"/>\n",
3155       "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-23.68 305.93,-26.83 309.43,-23.68 305.93,-23.68 305.93,-23.68 305.93,-23.68 309.43,-23.68 305.93,-20.53 312.93,-23.68 312.93,-23.68\"/>\n",
3156       "<text text-anchor=\"start\" x=\"167\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3157       "</g>\n",
3158       "<!-- 2&#45;&gt;1 -->\n",
3159       "<g id=\"edge6\" class=\"edge\">\n",
3160       "<title>2&#45;&gt;1</title>\n",
3161       "<path fill=\"none\" stroke=\"black\" d=\"M213.61,-69.15C233.27,-61.63 266.51,-48.87 295,-37.68 298.65,-36.24 302.52,-34.71 306.29,-33.2\"/>\n",
3162       "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-30.55 307.6,-36.08 309.68,-31.85 306.43,-33.15 306.43,-33.15 306.43,-33.15 309.68,-31.85 305.26,-30.23 312.93,-30.55 312.93,-30.55\"/>\n",
3163       "<text text-anchor=\"start\" x=\"242\" y=\"-60.48\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
3164       "</g>\n",
3165       "<!-- 1&#45;&gt;0 -->\n",
3166       "<g id=\"edge4\" class=\"edge\">\n",
3167       "<title>1&#45;&gt;0</title>\n",
3168       "<path fill=\"none\" stroke=\"black\" d=\"M312.87,-19.64C292.01,-14.95 255.66,-7.49 224,-4.68 198.77,-2.43 192.24,-2.51 167,-4.68 137.16,-7.23 103.26,-13.63 81.08,-18.29\"/>\n",
3169       "<polygon fill=\"black\" stroke=\"black\" points=\"74.03,-19.8 80.22,-15.26 77.45,-19.07 80.88,-18.34 80.88,-18.34 80.88,-18.34 77.45,-19.07 81.53,-21.42 74.03,-19.8 74.03,-19.8\"/>\n",
3170       "<text text-anchor=\"start\" x=\"169\" y=\"-8.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3171       "</g>\n",
3172       "<!-- 3 -->\n",
3173       "<g id=\"node5\" class=\"node\">\n",
3174       "<title>3</title>\n",
3175       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M466,-42.68C466,-42.68 454,-42.68 454,-42.68 448,-42.68 442,-36.68 442,-30.68 442,-30.68 442,-16.68 442,-16.68 442,-10.68 448,-4.68 454,-4.68 454,-4.68 466,-4.68 466,-4.68 472,-4.68 478,-10.68 478,-16.68 478,-16.68 478,-30.68 478,-30.68 478,-36.68 472,-42.68 466,-42.68\"/>\n",
3176       "<text text-anchor=\"start\" x=\"455.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
3177       "<text text-anchor=\"start\" x=\"452\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3178       "</g>\n",
3179       "<!-- 1&#45;&gt;3 -->\n",
3180       "<g id=\"edge5\" class=\"edge\">\n",
3181       "<title>1&#45;&gt;3</title>\n",
3182       "<path fill=\"none\" stroke=\"black\" d=\"M349.13,-23.68C371.19,-23.68 409.67,-23.68 434.74,-23.68\"/>\n",
3183       "<polygon fill=\"black\" stroke=\"black\" points=\"441.74,-23.68 434.74,-26.83 438.24,-23.68 434.74,-23.68 434.74,-23.68 434.74,-23.68 438.24,-23.68 434.74,-20.53 441.74,-23.68 441.74,-23.68\"/>\n",
3184       "<text text-anchor=\"start\" x=\"371\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
3185       "</g>\n",
3186       "<!-- 3&#45;&gt;1 -->\n",
3187       "<g id=\"edge8\" class=\"edge\">\n",
3188       "<title>3&#45;&gt;1</title>\n",
3189       "<path fill=\"none\" stroke=\"black\" d=\"M441.9,-12.2C436.42,-9.14 430.17,-6.24 424,-4.68 399.45,1.56 391.55,1.56 367,-4.68 363.15,-5.65 359.26,-7.15 355.55,-8.89\"/>\n",
3190       "<polygon fill=\"black\" stroke=\"black\" points=\"349.1,-12.2 353.88,-6.2 352.21,-10.6 355.32,-9 355.32,-9 355.32,-9 352.21,-10.6 356.76,-11.8 349.1,-12.2 349.1,-12.2\"/>\n",
3191       "<text text-anchor=\"start\" x=\"367\" y=\"-8.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3192       "</g>\n",
3193       "<!-- 3&#45;&gt;3 -->\n",
3194       "<g id=\"edge7\" class=\"edge\">\n",
3195       "<title>3&#45;&gt;3</title>\n",
3196       "<path fill=\"none\" stroke=\"black\" d=\"M448.35,-42.71C446.74,-52.21 450.62,-60.68 460,-60.68 466.88,-60.68 470.81,-56.11 471.77,-49.92\"/>\n",
3197       "<polygon fill=\"black\" stroke=\"black\" points=\"471.65,-42.71 474.91,-49.66 471.7,-46.21 471.76,-49.71 471.76,-49.71 471.76,-49.71 471.7,-46.21 468.61,-49.77 471.65,-42.71 471.65,-42.71\"/>\n",
3198       "<text text-anchor=\"start\" x=\"433.5\" y=\"-64.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3199       "</g>\n",
3200       "</g>\n",
3201       "</svg>\n",
3202       "</div>"
3203      ],
3204      "text/plain": [
3205       "<IPython.core.display.HTML object>"
3206      ]
3207     },
3208     "metadata": {},
3209     "output_type": "display_data"
3210    }
3211   ],
3212   "source": [
3213    "maxodd1 = spot.automaton(\"randaut -A 'parity max odd 1' -Q4 2|\")\n",
3214    "display2(maxodd1, spot.colorize_parity(maxodd1))"
3215   ]
3216  },
3217  {
3218   "cell_type": "markdown",
3219   "metadata": {},
3220   "source": [
3221    "### max even 1\n",
3222    "\n",
3223    "Another name for Büchi"
3224   ]
3225  },
3226  {
3227   "cell_type": "code",
3228   "execution_count": 21,
3229   "metadata": {},
3230   "outputs": [
3231    {
3232     "data": {
3233      "text/html": [
3234       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3235       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3236       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3237       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3238       " -->\n",
3239       "<!-- Pages: 1 -->\n",
3240       "<svg width=\"499pt\" height=\"140pt\"\n",
3241       " viewBox=\"0.00 0.00 498.50 140.34\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3242       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 136.34)\">\n",
3243       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-136.34 494.5,-136.34 494.5,4 -4,4\"/>\n",
3244       "<text text-anchor=\"start\" x=\"223.75\" y=\"-102.14\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
3245       "<!-- I -->\n",
3246       "<!-- 0 -->\n",
3247       "<g id=\"node2\" class=\"node\">\n",
3248       "<title>0</title>\n",
3249       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n",
3250       "<text text-anchor=\"middle\" x=\"56\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
3251       "</g>\n",
3252       "<!-- I&#45;&gt;0 -->\n",
3253       "<g id=\"edge1\" class=\"edge\">\n",
3254       "<title>I&#45;&gt;0</title>\n",
3255       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.54C2.79,-23.54 17.15,-23.54 30.63,-23.54\"/>\n",
3256       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.54 30.94,-26.69 34.44,-23.54 30.94,-23.54 30.94,-23.54 30.94,-23.54 34.44,-23.54 30.94,-20.39 37.94,-23.54 37.94,-23.54\"/>\n",
3257       "</g>\n",
3258       "<!-- 2 -->\n",
3259       "<g id=\"node3\" class=\"node\">\n",
3260       "<title>2</title>\n",
3261       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-74.54\" rx=\"18\" ry=\"18\"/>\n",
3262       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-70.84\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
3263       "</g>\n",
3264       "<!-- 0&#45;&gt;2 -->\n",
3265       "<g id=\"edge2\" class=\"edge\">\n",
3266       "<title>0&#45;&gt;2</title>\n",
3267       "<path fill=\"none\" stroke=\"black\" d=\"M72.99,-30.07C78.94,-32.46 85.76,-35.17 92,-37.54 119.17,-47.87 150.64,-59.13 171.47,-66.48\"/>\n",
3268       "<polygon fill=\"black\" stroke=\"black\" points=\"178.1,-68.82 170.46,-69.46 174.8,-67.65 171.5,-66.49 171.5,-66.49 171.5,-66.49 174.8,-67.65 172.55,-63.52 178.1,-68.82 178.1,-68.82\"/>\n",
3269       "<text text-anchor=\"start\" x=\"92\" y=\"-61.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3270       "</g>\n",
3271       "<!-- 1 -->\n",
3272       "<g id=\"node4\" class=\"node\">\n",
3273       "<title>1</title>\n",
3274       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"331\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n",
3275       "<text text-anchor=\"middle\" x=\"331\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
3276       "</g>\n",
3277       "<!-- 0&#45;&gt;1 -->\n",
3278       "<g id=\"edge3\" class=\"edge\">\n",
3279       "<title>0&#45;&gt;1</title>\n",
3280       "<path fill=\"none\" stroke=\"black\" d=\"M74.08,-23.54C120.9,-23.54 251.44,-23.54 305.78,-23.54\"/>\n",
3281       "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-23.54 305.93,-26.69 309.43,-23.54 305.93,-23.54 305.93,-23.54 305.93,-23.54 309.43,-23.54 305.93,-20.39 312.93,-23.54 312.93,-23.54\"/>\n",
3282       "<text text-anchor=\"start\" x=\"167\" y=\"-27.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3283       "</g>\n",
3284       "<!-- 2&#45;&gt;1 -->\n",
3285       "<g id=\"edge6\" class=\"edge\">\n",
3286       "<title>2&#45;&gt;1</title>\n",
3287       "<path fill=\"none\" stroke=\"black\" d=\"M212.58,-68.62C232.11,-61.4 266.05,-48.77 295,-37.54 298.99,-35.99 303.22,-34.33 307.31,-32.7\"/>\n",
3288       "<polygon fill=\"black\" stroke=\"black\" points=\"314,-30.02 308.67,-35.55 310.75,-31.32 307.5,-32.62 307.5,-32.62 307.5,-32.62 310.75,-31.32 306.33,-29.7 314,-30.02 314,-30.02\"/>\n",
3289       "<text text-anchor=\"start\" x=\"242\" y=\"-60.34\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
3290       "</g>\n",
3291       "<!-- 1&#45;&gt;0 -->\n",
3292       "<g id=\"edge4\" class=\"edge\">\n",
3293       "<title>1&#45;&gt;0</title>\n",
3294       "<path fill=\"none\" stroke=\"black\" d=\"M313.23,-19.58C292.44,-14.9 255.84,-7.37 224,-4.54 198.77,-2.3 192.24,-2.38 167,-4.54 136.99,-7.11 102.87,-13.57 80.7,-18.24\"/>\n",
3295       "<polygon fill=\"black\" stroke=\"black\" points=\"73.66,-19.75 79.84,-15.2 77.08,-19.01 80.5,-18.28 80.5,-18.28 80.5,-18.28 77.08,-19.01 81.16,-21.36 73.66,-19.75 73.66,-19.75\"/>\n",
3296       "<text text-anchor=\"start\" x=\"169\" y=\"-8.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3297       "</g>\n",
3298       "<!-- 3 -->\n",
3299       "<g id=\"node5\" class=\"node\">\n",
3300       "<title>3</title>\n",
3301       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-23.54\" rx=\"18\" ry=\"18\"/>\n",
3302       "<ellipse fill=\"none\" stroke=\"black\" cx=\"464\" cy=\"-23.54\" rx=\"22\" ry=\"22\"/>\n",
3303       "<text text-anchor=\"middle\" x=\"464\" y=\"-19.84\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
3304       "</g>\n",
3305       "<!-- 1&#45;&gt;3 -->\n",
3306       "<g id=\"edge5\" class=\"edge\">\n",
3307       "<title>1&#45;&gt;3</title>\n",
3308       "<path fill=\"none\" stroke=\"black\" d=\"M349.13,-23.54C370.93,-23.54 408.9,-23.54 434.96,-23.54\"/>\n",
3309       "<polygon fill=\"black\" stroke=\"black\" points=\"441.97,-23.54 434.97,-26.69 438.47,-23.54 434.97,-23.54 434.97,-23.54 434.97,-23.54 438.47,-23.54 434.97,-20.39 441.97,-23.54 441.97,-23.54\"/>\n",
3310       "<text text-anchor=\"start\" x=\"371\" y=\"-27.34\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
3311       "</g>\n",
3312       "<!-- 3&#45;&gt;1 -->\n",
3313       "<g id=\"edge8\" class=\"edge\">\n",
3314       "<title>3&#45;&gt;1</title>\n",
3315       "<path fill=\"none\" stroke=\"black\" d=\"M444.6,-12.46C438.29,-9.24 431.05,-6.17 424,-4.54 399.31,1.15 391.55,1.69 367,-4.54 362.14,-5.78 357.22,-7.84 352.67,-10.16\"/>\n",
3316       "<polygon fill=\"black\" stroke=\"black\" points=\"346.31,-13.68 350.91,-7.53 349.37,-11.98 352.44,-10.29 352.44,-10.29 352.44,-10.29 349.37,-11.98 353.96,-13.04 346.31,-13.68 346.31,-13.68\"/>\n",
3317       "<text text-anchor=\"start\" x=\"367\" y=\"-8.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3318       "</g>\n",
3319       "<!-- 3&#45;&gt;3 -->\n",
3320       "<g id=\"edge7\" class=\"edge\">\n",
3321       "<title>3&#45;&gt;3</title>\n",
3322       "<path fill=\"none\" stroke=\"black\" d=\"M452.05,-42.06C449.39,-53.12 453.38,-63.54 464,-63.54 472.3,-63.54 476.55,-57.18 476.74,-49.12\"/>\n",
3323       "<polygon fill=\"black\" stroke=\"black\" points=\"475.95,-42.06 479.86,-48.66 476.34,-45.53 476.73,-49.01 476.73,-49.01 476.73,-49.01 476.34,-45.53 473.6,-49.36 475.95,-42.06 475.95,-42.06\"/>\n",
3324       "<text text-anchor=\"start\" x=\"437.5\" y=\"-67.34\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3325       "</g>\n",
3326       "</g>\n",
3327       "</svg>\n",
3328       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3329       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3330       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3331       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3332       " -->\n",
3333       "<!-- Pages: 1 -->\n",
3334       "<svg width=\"495pt\" height=\"139pt\"\n",
3335       " viewBox=\"0.00 0.00 494.50 138.68\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3336       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 134.68)\">\n",
3337       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-134.68 490.5,-134.68 490.5,4 -4,4\"/>\n",
3338       "<text text-anchor=\"start\" x=\"195.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
3339       "<text text-anchor=\"start\" x=\"216.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3340       "<text text-anchor=\"start\" x=\"232.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
3341       "<text text-anchor=\"start\" x=\"270.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3342       "<text text-anchor=\"start\" x=\"286.75\" y=\"-116.48\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
3343       "<text text-anchor=\"start\" x=\"211.75\" y=\"-102.48\" font-family=\"Lato\" font-size=\"14.00\">[Streett 1]</text>\n",
3344       "<!-- I -->\n",
3345       "<!-- 0 -->\n",
3346       "<g id=\"node2\" class=\"node\">\n",
3347       "<title>0</title>\n",
3348       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M62,-42.68C62,-42.68 50,-42.68 50,-42.68 44,-42.68 38,-36.68 38,-30.68 38,-30.68 38,-16.68 38,-16.68 38,-10.68 44,-4.68 50,-4.68 50,-4.68 62,-4.68 62,-4.68 68,-4.68 74,-10.68 74,-16.68 74,-16.68 74,-30.68 74,-30.68 74,-36.68 68,-42.68 62,-42.68\"/>\n",
3349       "<text text-anchor=\"start\" x=\"51.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
3350       "<text text-anchor=\"start\" x=\"48\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3351       "</g>\n",
3352       "<!-- I&#45;&gt;0 -->\n",
3353       "<g id=\"edge1\" class=\"edge\">\n",
3354       "<title>I&#45;&gt;0</title>\n",
3355       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-23.68C2.79,-23.68 17.15,-23.68 30.63,-23.68\"/>\n",
3356       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-23.68 30.94,-26.83 34.44,-23.68 30.94,-23.68 30.94,-23.68 30.94,-23.68 34.44,-23.68 30.94,-20.53 37.94,-23.68 37.94,-23.68\"/>\n",
3357       "</g>\n",
3358       "<!-- 2 -->\n",
3359       "<g id=\"node3\" class=\"node\">\n",
3360       "<title>2</title>\n",
3361       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M201.5,-94.68C201.5,-94.68 189.5,-94.68 189.5,-94.68 183.5,-94.68 177.5,-88.68 177.5,-82.68 177.5,-82.68 177.5,-68.68 177.5,-68.68 177.5,-62.68 183.5,-56.68 189.5,-56.68 189.5,-56.68 201.5,-56.68 201.5,-56.68 207.5,-56.68 213.5,-62.68 213.5,-68.68 213.5,-68.68 213.5,-82.68 213.5,-82.68 213.5,-88.68 207.5,-94.68 201.5,-94.68\"/>\n",
3362       "<text text-anchor=\"start\" x=\"191\" y=\"-79.48\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
3363       "<text text-anchor=\"start\" x=\"187.5\" y=\"-64.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3364       "</g>\n",
3365       "<!-- 0&#45;&gt;2 -->\n",
3366       "<g id=\"edge2\" class=\"edge\">\n",
3367       "<title>0&#45;&gt;2</title>\n",
3368       "<path fill=\"none\" stroke=\"black\" d=\"M74.06,-30.6C79.75,-32.88 86.14,-35.42 92,-37.68 118.89,-48.04 149.94,-59.47 170.76,-67.07\"/>\n",
3369       "<polygon fill=\"black\" stroke=\"black\" points=\"177.4,-69.49 169.75,-70.05 174.11,-68.29 170.82,-67.09 170.82,-67.09 170.82,-67.09 174.11,-68.29 171.9,-64.13 177.4,-69.49 177.4,-69.49\"/>\n",
3370       "<text text-anchor=\"start\" x=\"92\" y=\"-61.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3371       "</g>\n",
3372       "<!-- 1 -->\n",
3373       "<g id=\"node4\" class=\"node\">\n",
3374       "<title>1</title>\n",
3375       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M337,-42.68C337,-42.68 325,-42.68 325,-42.68 319,-42.68 313,-36.68 313,-30.68 313,-30.68 313,-16.68 313,-16.68 313,-10.68 319,-4.68 325,-4.68 325,-4.68 337,-4.68 337,-4.68 343,-4.68 349,-10.68 349,-16.68 349,-16.68 349,-30.68 349,-30.68 349,-36.68 343,-42.68 337,-42.68\"/>\n",
3376       "<text text-anchor=\"start\" x=\"326.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
3377       "<text text-anchor=\"start\" x=\"323\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3378       "</g>\n",
3379       "<!-- 0&#45;&gt;1 -->\n",
3380       "<g id=\"edge3\" class=\"edge\">\n",
3381       "<title>0&#45;&gt;1</title>\n",
3382       "<path fill=\"none\" stroke=\"black\" d=\"M74.08,-23.68C120.9,-23.68 251.44,-23.68 305.78,-23.68\"/>\n",
3383       "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-23.68 305.93,-26.83 309.43,-23.68 305.93,-23.68 305.93,-23.68 305.93,-23.68 309.43,-23.68 305.93,-20.53 312.93,-23.68 312.93,-23.68\"/>\n",
3384       "<text text-anchor=\"start\" x=\"167\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3385       "</g>\n",
3386       "<!-- 2&#45;&gt;1 -->\n",
3387       "<g id=\"edge6\" class=\"edge\">\n",
3388       "<title>2&#45;&gt;1</title>\n",
3389       "<path fill=\"none\" stroke=\"black\" d=\"M213.61,-69.15C233.27,-61.63 266.51,-48.87 295,-37.68 298.65,-36.24 302.52,-34.71 306.29,-33.2\"/>\n",
3390       "<polygon fill=\"black\" stroke=\"black\" points=\"312.93,-30.55 307.6,-36.08 309.68,-31.85 306.43,-33.15 306.43,-33.15 306.43,-33.15 309.68,-31.85 305.26,-30.23 312.93,-30.55 312.93,-30.55\"/>\n",
3391       "<text text-anchor=\"start\" x=\"242\" y=\"-60.48\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
3392       "</g>\n",
3393       "<!-- 1&#45;&gt;0 -->\n",
3394       "<g id=\"edge4\" class=\"edge\">\n",
3395       "<title>1&#45;&gt;0</title>\n",
3396       "<path fill=\"none\" stroke=\"black\" d=\"M312.87,-19.64C292.01,-14.95 255.66,-7.49 224,-4.68 198.77,-2.43 192.24,-2.51 167,-4.68 137.16,-7.23 103.26,-13.63 81.08,-18.29\"/>\n",
3397       "<polygon fill=\"black\" stroke=\"black\" points=\"74.03,-19.8 80.22,-15.26 77.45,-19.07 80.88,-18.34 80.88,-18.34 80.88,-18.34 77.45,-19.07 81.53,-21.42 74.03,-19.8 74.03,-19.8\"/>\n",
3398       "<text text-anchor=\"start\" x=\"169\" y=\"-8.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3399       "</g>\n",
3400       "<!-- 3 -->\n",
3401       "<g id=\"node5\" class=\"node\">\n",
3402       "<title>3</title>\n",
3403       "<path fill=\"#ffffaa\" stroke=\"black\" d=\"M466,-42.68C466,-42.68 454,-42.68 454,-42.68 448,-42.68 442,-36.68 442,-30.68 442,-30.68 442,-16.68 442,-16.68 442,-10.68 448,-4.68 454,-4.68 454,-4.68 466,-4.68 466,-4.68 472,-4.68 478,-10.68 478,-16.68 478,-16.68 478,-30.68 478,-30.68 478,-36.68 472,-42.68 466,-42.68\"/>\n",
3404       "<text text-anchor=\"start\" x=\"455.5\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
3405       "<text text-anchor=\"start\" x=\"452\" y=\"-12.48\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3406       "</g>\n",
3407       "<!-- 1&#45;&gt;3 -->\n",
3408       "<g id=\"edge5\" class=\"edge\">\n",
3409       "<title>1&#45;&gt;3</title>\n",
3410       "<path fill=\"none\" stroke=\"black\" d=\"M349.13,-23.68C371.19,-23.68 409.67,-23.68 434.74,-23.68\"/>\n",
3411       "<polygon fill=\"black\" stroke=\"black\" points=\"441.74,-23.68 434.74,-26.83 438.24,-23.68 434.74,-23.68 434.74,-23.68 434.74,-23.68 438.24,-23.68 434.74,-20.53 441.74,-23.68 441.74,-23.68\"/>\n",
3412       "<text text-anchor=\"start\" x=\"371\" y=\"-27.48\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
3413       "</g>\n",
3414       "<!-- 3&#45;&gt;1 -->\n",
3415       "<g id=\"edge8\" class=\"edge\">\n",
3416       "<title>3&#45;&gt;1</title>\n",
3417       "<path fill=\"none\" stroke=\"black\" d=\"M441.9,-12.2C436.42,-9.14 430.17,-6.24 424,-4.68 399.45,1.56 391.55,1.56 367,-4.68 363.15,-5.65 359.26,-7.15 355.55,-8.89\"/>\n",
3418       "<polygon fill=\"black\" stroke=\"black\" points=\"349.1,-12.2 353.88,-6.2 352.21,-10.6 355.32,-9 355.32,-9 355.32,-9 352.21,-10.6 356.76,-11.8 349.1,-12.2 349.1,-12.2\"/>\n",
3419       "<text text-anchor=\"start\" x=\"367\" y=\"-8.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3420       "</g>\n",
3421       "<!-- 3&#45;&gt;3 -->\n",
3422       "<g id=\"edge7\" class=\"edge\">\n",
3423       "<title>3&#45;&gt;3</title>\n",
3424       "<path fill=\"none\" stroke=\"black\" d=\"M448.35,-42.71C446.74,-52.21 450.62,-60.68 460,-60.68 466.88,-60.68 470.81,-56.11 471.77,-49.92\"/>\n",
3425       "<polygon fill=\"black\" stroke=\"black\" points=\"471.65,-42.71 474.91,-49.66 471.7,-46.21 471.76,-49.71 471.76,-49.71 471.76,-49.71 471.7,-46.21 468.61,-49.77 471.65,-42.71 471.65,-42.71\"/>\n",
3426       "<text text-anchor=\"start\" x=\"433.5\" y=\"-64.48\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3427       "</g>\n",
3428       "</g>\n",
3429       "</svg>\n",
3430       "</div>"
3431      ],
3432      "text/plain": [
3433       "<IPython.core.display.HTML object>"
3434      ]
3435     },
3436     "metadata": {},
3437     "output_type": "display_data"
3438    }
3439   ],
3440   "source": [
3441    "maxeven1 = spot.automaton(\"randaut -A 'parity max even 1' -Q4 2|\")\n",
3442    "display2(maxeven1, spot.colorize_parity(maxeven1))"
3443   ]
3444  },
3445  {
3446   "cell_type": "markdown",
3447   "metadata": {},
3448   "source": [
3449    "Here `Streett 1` is just a synonym for `parity max odd 2`.  (Spot's automaton printer cannot guess which name should be prefered.)"
3450   ]
3451  },
3452  {
3453   "cell_type": "code",
3454   "execution_count": 22,
3455   "metadata": {},
3456   "outputs": [
3457    {
3458     "data": {
3459      "text/plain": [
3460       "'Streett 1'"
3461      ]
3462     },
3463     "execution_count": 22,
3464     "metadata": {},
3465     "output_type": "execute_result"
3466    }
3467   ],
3468   "source": [
3469    "spot.acc_cond(\"parity max odd 2\").name()"
3470   ]
3471  },
3472  {
3473   "cell_type": "markdown",
3474   "metadata": {},
3475   "source": [
3476    "# Cleanup parity\n",
3477    "\n",
3478    "The `cleanup_parity()` function removes useless colors of an automaton with parity acceptance.\n",
3479    "This function is just looking at colors that do not occur in the automaton to perform the simplification.\n",
3480    "For a stronger simplification, see [`reduce_parity()`](#Reduce-parity) below."
3481   ]
3482  },
3483  {
3484   "cell_type": "code",
3485   "execution_count": 23,
3486   "metadata": {},
3487   "outputs": [
3488    {
3489     "data": {
3490      "text/html": [
3491       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3492       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3493       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3494       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3495       " -->\n",
3496       "<!-- Pages: 1 -->\n",
3497       "<svg width=\"490pt\" height=\"169pt\"\n",
3498       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3499       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
3500       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
3501       "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
3502       "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3503       "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
3504       "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3505       "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
3506       "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
3507       "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
3508       "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
3509       "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
3510       "<text text-anchor=\"start\" x=\"187\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n",
3511       "<!-- I -->\n",
3512       "<!-- 0 -->\n",
3513       "<g id=\"node2\" class=\"node\">\n",
3514       "<title>0</title>\n",
3515       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
3516       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
3517       "</g>\n",
3518       "<!-- I&#45;&gt;0 -->\n",
3519       "<g id=\"edge1\" class=\"edge\">\n",
3520       "<title>I&#45;&gt;0</title>\n",
3521       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
3522       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
3523       "</g>\n",
3524       "<!-- 2 -->\n",
3525       "<g id=\"node3\" class=\"node\">\n",
3526       "<title>2</title>\n",
3527       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
3528       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
3529       "</g>\n",
3530       "<!-- 0&#45;&gt;2 -->\n",
3531       "<g id=\"edge2\" class=\"edge\">\n",
3532       "<title>0&#45;&gt;2</title>\n",
3533       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
3534       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
3535       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3536       "</g>\n",
3537       "<!-- 3 -->\n",
3538       "<g id=\"node4\" class=\"node\">\n",
3539       "<title>3</title>\n",
3540       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
3541       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
3542       "</g>\n",
3543       "<!-- 0&#45;&gt;3 -->\n",
3544       "<g id=\"edge3\" class=\"edge\">\n",
3545       "<title>0&#45;&gt;3</title>\n",
3546       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
3547       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
3548       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3549       "</g>\n",
3550       "<!-- 1 -->\n",
3551       "<g id=\"node5\" class=\"node\">\n",
3552       "<title>1</title>\n",
3553       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
3554       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
3555       "</g>\n",
3556       "<!-- 2&#45;&gt;1 -->\n",
3557       "<g id=\"edge6\" class=\"edge\">\n",
3558       "<title>2&#45;&gt;1</title>\n",
3559       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
3560       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
3561       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3562       "</g>\n",
3563       "<!-- 3&#45;&gt;0 -->\n",
3564       "<g id=\"edge8\" class=\"edge\">\n",
3565       "<title>3&#45;&gt;0</title>\n",
3566       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
3567       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
3568       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
3569       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
3570       "</g>\n",
3571       "<!-- 3&#45;&gt;2 -->\n",
3572       "<g id=\"edge7\" class=\"edge\">\n",
3573       "<title>3&#45;&gt;2</title>\n",
3574       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
3575       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
3576       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3577       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
3578       "</g>\n",
3579       "<!-- 3&#45;&gt;3 -->\n",
3580       "<g id=\"edge9\" class=\"edge\">\n",
3581       "<title>3&#45;&gt;3</title>\n",
3582       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
3583       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
3584       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3585       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
3586       "</g>\n",
3587       "<!-- 1&#45;&gt;0 -->\n",
3588       "<g id=\"edge4\" class=\"edge\">\n",
3589       "<title>1&#45;&gt;0</title>\n",
3590       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
3591       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
3592       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3593       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3594       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
3595       "</g>\n",
3596       "<!-- 1&#45;&gt;2 -->\n",
3597       "<g id=\"edge5\" class=\"edge\">\n",
3598       "<title>1&#45;&gt;2</title>\n",
3599       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
3600       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
3601       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3602       "</g>\n",
3603       "</g>\n",
3604       "</svg>\n",
3605       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3606       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3607       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3608       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3609       " -->\n",
3610       "<!-- Pages: 1 -->\n",
3611       "<svg width=\"490pt\" height=\"172pt\"\n",
3612       " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3613       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n",
3614       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n",
3615       "<text text-anchor=\"start\" x=\"190.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
3616       "<text text-anchor=\"start\" x=\"213.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3617       "<text text-anchor=\"start\" x=\"229.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
3618       "<text text-anchor=\"start\" x=\"271.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3619       "<text text-anchor=\"start\" x=\"287.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
3620       "<text text-anchor=\"start\" x=\"213.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
3621       "<!-- I -->\n",
3622       "<!-- 0 -->\n",
3623       "<g id=\"node2\" class=\"node\">\n",
3624       "<title>0</title>\n",
3625       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
3626       "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
3627       "</g>\n",
3628       "<!-- I&#45;&gt;0 -->\n",
3629       "<g id=\"edge1\" class=\"edge\">\n",
3630       "<title>I&#45;&gt;0</title>\n",
3631       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n",
3632       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n",
3633       "</g>\n",
3634       "<!-- 2 -->\n",
3635       "<g id=\"node3\" class=\"node\">\n",
3636       "<title>2</title>\n",
3637       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n",
3638       "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
3639       "</g>\n",
3640       "<!-- 0&#45;&gt;2 -->\n",
3641       "<g id=\"edge2\" class=\"edge\">\n",
3642       "<title>0&#45;&gt;2</title>\n",
3643       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n",
3644       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n",
3645       "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3646       "</g>\n",
3647       "<!-- 3 -->\n",
3648       "<g id=\"node4\" class=\"node\">\n",
3649       "<title>3</title>\n",
3650       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
3651       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
3652       "</g>\n",
3653       "<!-- 0&#45;&gt;3 -->\n",
3654       "<g id=\"edge3\" class=\"edge\">\n",
3655       "<title>0&#45;&gt;3</title>\n",
3656       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n",
3657       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n",
3658       "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3659       "</g>\n",
3660       "<!-- 1 -->\n",
3661       "<g id=\"node5\" class=\"node\">\n",
3662       "<title>1</title>\n",
3663       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n",
3664       "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
3665       "</g>\n",
3666       "<!-- 2&#45;&gt;1 -->\n",
3667       "<g id=\"edge6\" class=\"edge\">\n",
3668       "<title>2&#45;&gt;1</title>\n",
3669       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n",
3670       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n",
3671       "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3672       "</g>\n",
3673       "<!-- 3&#45;&gt;0 -->\n",
3674       "<g id=\"edge8\" class=\"edge\">\n",
3675       "<title>3&#45;&gt;0</title>\n",
3676       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n",
3677       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n",
3678       "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
3679       "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3680       "</g>\n",
3681       "<!-- 3&#45;&gt;2 -->\n",
3682       "<g id=\"edge7\" class=\"edge\">\n",
3683       "<title>3&#45;&gt;2</title>\n",
3684       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n",
3685       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n",
3686       "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3687       "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3688       "</g>\n",
3689       "<!-- 3&#45;&gt;3 -->\n",
3690       "<g id=\"edge9\" class=\"edge\">\n",
3691       "<title>3&#45;&gt;3</title>\n",
3692       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n",
3693       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n",
3694       "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3695       "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3696       "</g>\n",
3697       "<!-- 1&#45;&gt;0 -->\n",
3698       "<g id=\"edge4\" class=\"edge\">\n",
3699       "<title>1&#45;&gt;0</title>\n",
3700       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n",
3701       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n",
3702       "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
3703       "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3704       "</g>\n",
3705       "<!-- 1&#45;&gt;2 -->\n",
3706       "<g id=\"edge5\" class=\"edge\">\n",
3707       "<title>1&#45;&gt;2</title>\n",
3708       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n",
3709       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n",
3710       "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3711       "</g>\n",
3712       "</g>\n",
3713       "</svg>\n",
3714       "</div>"
3715      ],
3716      "text/plain": [
3717       "<IPython.core.display.HTML object>"
3718      ]
3719     },
3720     "metadata": {},
3721     "output_type": "display_data"
3722    },
3723    {
3724     "data": {
3725      "text/html": [
3726       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3727       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3728       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3729       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3730       " -->\n",
3731       "<!-- Pages: 1 -->\n",
3732       "<svg width=\"514pt\" height=\"190pt\"\n",
3733       " viewBox=\"0.00 0.00 513.50 189.93\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3734       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 185.93)\">\n",
3735       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-185.93 509.5,-185.93 509.5,4 -4,4\"/>\n",
3736       "<text text-anchor=\"start\" x=\"107.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
3737       "<text text-anchor=\"start\" x=\"130.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
3738       "<text text-anchor=\"start\" x=\"146.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
3739       "<text text-anchor=\"start\" x=\"192.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
3740       "<text text-anchor=\"start\" x=\"208.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
3741       "<text text-anchor=\"start\" x=\"250.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
3742       "<text text-anchor=\"start\" x=\"266.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
3743       "<text text-anchor=\"start\" x=\"312.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3744       "<text text-anchor=\"start\" x=\"328.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
3745       "<text text-anchor=\"start\" x=\"366.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3746       "<text text-anchor=\"start\" x=\"382.25\" y=\"-167.73\" font-family=\"Lato\" font-size=\"14.00\">))))</text>\n",
3747       "<text text-anchor=\"start\" x=\"197.25\" y=\"-153.73\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 5]</text>\n",
3748       "<!-- I -->\n",
3749       "<!-- 0 -->\n",
3750       "<g id=\"node2\" class=\"node\">\n",
3751       "<title>0</title>\n",
3752       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-24.93\" rx=\"18\" ry=\"18\"/>\n",
3753       "<text text-anchor=\"middle\" x=\"56\" y=\"-21.23\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
3754       "</g>\n",
3755       "<!-- I&#45;&gt;0 -->\n",
3756       "<g id=\"edge1\" class=\"edge\">\n",
3757       "<title>I&#45;&gt;0</title>\n",
3758       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-24.93C2.79,-24.93 17.15,-24.93 30.63,-24.93\"/>\n",
3759       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-24.93 30.94,-28.08 34.44,-24.93 30.94,-24.93 30.94,-24.93 30.94,-24.93 34.44,-24.93 30.94,-21.78 37.94,-24.93 37.94,-24.93\"/>\n",
3760       "</g>\n",
3761       "<!-- 2 -->\n",
3762       "<g id=\"node3\" class=\"node\">\n",
3763       "<title>2</title>\n",
3764       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-92.93\" rx=\"18\" ry=\"18\"/>\n",
3765       "<text text-anchor=\"middle\" x=\"193.5\" y=\"-89.23\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
3766       "</g>\n",
3767       "<!-- 0&#45;&gt;2 -->\n",
3768       "<g id=\"edge2\" class=\"edge\">\n",
3769       "<title>0&#45;&gt;2</title>\n",
3770       "<path fill=\"none\" stroke=\"black\" d=\"M72.54,-32.73C96.64,-44.83 143.09,-68.14 170.58,-81.93\"/>\n",
3771       "<polygon fill=\"black\" stroke=\"black\" points=\"177.14,-85.22 169.47,-84.9 174.01,-83.65 170.88,-82.08 170.88,-82.08 170.88,-82.08 174.01,-83.65 172.29,-79.27 177.14,-85.22 177.14,-85.22\"/>\n",
3772       "<text text-anchor=\"start\" x=\"92\" y=\"-74.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3773       "</g>\n",
3774       "<!-- 3 -->\n",
3775       "<g id=\"node4\" class=\"node\">\n",
3776       "<title>3</title>\n",
3777       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
3778       "<text text-anchor=\"middle\" x=\"481\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
3779       "</g>\n",
3780       "<!-- 0&#45;&gt;3 -->\n",
3781       "<g id=\"edge3\" class=\"edge\">\n",
3782       "<title>0&#45;&gt;3</title>\n",
3783       "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-20.81C112.82,-11.81 212.46,7.87 295,-3.93 354.99,-12.51 422.69,-35.98 457.17,-48.98\"/>\n",
3784       "<polygon fill=\"black\" stroke=\"black\" points=\"464.01,-51.58 456.35,-52.03 460.74,-50.33 457.47,-49.09 457.47,-49.09 457.47,-49.09 460.74,-50.33 458.59,-46.15 464.01,-51.58 464.01,-51.58\"/>\n",
3785       "<text text-anchor=\"start\" x=\"238\" y=\"-22.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3786       "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
3787       "</g>\n",
3788       "<!-- 2&#45;&gt;2 -->\n",
3789       "<g id=\"edge7\" class=\"edge\">\n",
3790       "<title>2&#45;&gt;2</title>\n",
3791       "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-106.97C177.35,-117.85 181.27,-128.93 193.5,-128.93 203.06,-128.93 207.54,-122.17 206.95,-114.02\"/>\n",
3792       "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-106.97 209.95,-113.05 206.07,-110.38 206.89,-113.78 206.89,-113.78 206.89,-113.78 206.07,-110.38 203.83,-114.52 205.26,-106.97 205.26,-106.97\"/>\n",
3793       "<text text-anchor=\"start\" x=\"169\" y=\"-132.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
3794       "</g>\n",
3795       "<!-- 1 -->\n",
3796       "<g id=\"node5\" class=\"node\">\n",
3797       "<title>1</title>\n",
3798       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-57.93\" rx=\"18\" ry=\"18\"/>\n",
3799       "<text text-anchor=\"middle\" x=\"341.5\" y=\"-54.23\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
3800       "</g>\n",
3801       "<!-- 2&#45;&gt;1 -->\n",
3802       "<g id=\"edge8\" class=\"edge\">\n",
3803       "<title>2&#45;&gt;1</title>\n",
3804       "<path fill=\"none\" stroke=\"black\" d=\"M211.39,-90.54C231.5,-87.51 266.02,-81.72 295,-73.93 302.4,-71.94 310.32,-69.33 317.45,-66.8\"/>\n",
3805       "<polygon fill=\"black\" stroke=\"black\" points=\"324.26,-64.32 318.76,-69.67 320.97,-65.51 317.68,-66.71 317.68,-66.71 317.68,-66.71 320.97,-65.51 316.61,-63.75 324.26,-64.32 324.26,-64.32\"/>\n",
3806       "<text text-anchor=\"start\" x=\"238\" y=\"-103.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3807       "<text text-anchor=\"start\" x=\"242.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3808       "<text text-anchor=\"start\" x=\"258.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
3809       "<text text-anchor=\"start\" x=\"274.5\" y=\"-89.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
3810       "</g>\n",
3811       "<!-- 3&#45;&gt;2 -->\n",
3812       "<g id=\"edge10\" class=\"edge\">\n",
3813       "<title>3&#45;&gt;2</title>\n",
3814       "<path fill=\"none\" stroke=\"black\" d=\"M469.15,-71.93C462.86,-79.04 454.36,-87.16 445,-91.93 384.71,-122.65 362.41,-112.13 295,-117.93 269.76,-120.1 262.48,-124.47 238,-117.93 229.88,-115.77 221.7,-111.68 214.67,-107.43\"/>\n",
3815       "<polygon fill=\"black\" stroke=\"black\" points=\"208.56,-103.54 216.15,-104.65 211.51,-105.42 214.46,-107.3 214.46,-107.3 214.46,-107.3 211.51,-105.42 212.76,-109.96 208.56,-103.54 208.56,-103.54\"/>\n",
3816       "<text text-anchor=\"start\" x=\"313\" y=\"-134.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3817       "<text text-anchor=\"start\" x=\"333.5\" y=\"-119.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3818       "</g>\n",
3819       "<!-- 3&#45;&gt;3 -->\n",
3820       "<g id=\"edge9\" class=\"edge\">\n",
3821       "<title>3&#45;&gt;3</title>\n",
3822       "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-72.72C466.81,-83.35 470.38,-93.93 481,-93.93 489.13,-93.93 493.13,-87.73 493,-80.05\"/>\n",
3823       "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-72.72 496.02,-79.07 492.31,-76.17 492.92,-79.62 492.92,-79.62 492.92,-79.62 492.31,-76.17 489.82,-80.16 491.71,-72.72 491.71,-72.72\"/>\n",
3824       "<text text-anchor=\"start\" x=\"456.5\" y=\"-111.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
3825       "<text text-anchor=\"start\" x=\"465\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
3826       "<text text-anchor=\"start\" x=\"481\" y=\"-97.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
3827       "</g>\n",
3828       "<!-- 1&#45;&gt;0 -->\n",
3829       "<g id=\"edge5\" class=\"edge\">\n",
3830       "<title>1&#45;&gt;0</title>\n",
3831       "<path fill=\"none\" stroke=\"black\" d=\"M323.69,-54C315.13,-52.05 304.54,-49.74 295,-47.93 261.83,-41.64 253.54,-39.74 220,-35.93 170.95,-30.37 113.25,-27.28 81.34,-25.88\"/>\n",
3832       "<polygon fill=\"black\" stroke=\"black\" points=\"74.18,-25.58 81.31,-22.73 77.67,-25.72 81.17,-25.87 81.17,-25.87 81.17,-25.87 77.67,-25.72 81.04,-29.02 74.18,-25.58 74.18,-25.58\"/>\n",
3833       "<text text-anchor=\"start\" x=\"167\" y=\"-54.73\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
3834       "<text text-anchor=\"start\" x=\"185.5\" y=\"-39.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3835       "</g>\n",
3836       "<!-- 1&#45;&gt;2 -->\n",
3837       "<g id=\"edge4\" class=\"edge\">\n",
3838       "<title>1&#45;&gt;2</title>\n",
3839       "<path fill=\"none\" stroke=\"black\" d=\"M323.6,-54.87C302.81,-51.81 266.72,-48.88 238,-58.93 228.34,-62.31 219.17,-68.79 211.76,-75.19\"/>\n",
3840       "<polygon fill=\"black\" stroke=\"black\" points=\"206.46,-80.02 209.52,-72.97 209.05,-77.66 211.64,-75.3 211.64,-75.3 211.64,-75.3 209.05,-77.66 213.76,-77.63 206.46,-80.02 206.46,-80.02\"/>\n",
3841       "<text text-anchor=\"start\" x=\"238\" y=\"-62.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3842       "</g>\n",
3843       "<!-- 1&#45;&gt;3 -->\n",
3844       "<g id=\"edge6\" class=\"edge\">\n",
3845       "<title>1&#45;&gt;3</title>\n",
3846       "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-57.93C383.72,-57.93 427.72,-57.93 455.33,-57.93\"/>\n",
3847       "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-57.93 455.65,-61.08 459.15,-57.93 455.65,-57.93 455.65,-57.93 455.65,-57.93 459.15,-57.93 455.65,-54.78 462.65,-57.93 462.65,-57.93\"/>\n",
3848       "<text text-anchor=\"start\" x=\"388\" y=\"-76.73\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3849       "<text text-anchor=\"start\" x=\"408.5\" y=\"-61.73\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
3850       "</g>\n",
3851       "</g>\n",
3852       "</svg>\n",
3853       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3854       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3855       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3856       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3857       " -->\n",
3858       "<!-- Pages: 1 -->\n",
3859       "<svg width=\"514pt\" height=\"178pt\"\n",
3860       " viewBox=\"0.00 0.00 513.50 177.79\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3861       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 173.79)\">\n",
3862       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-173.79 509.5,-173.79 509.5,4 -4,4\"/>\n",
3863       "<text text-anchor=\"start\" x=\"231.25\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
3864       "<text text-anchor=\"start\" x=\"254.25\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3865       "<text text-anchor=\"start\" x=\"270.25\" y=\"-155.59\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
3866       "<text text-anchor=\"start\" x=\"221.25\" y=\"-141.59\" font-family=\"Lato\" font-size=\"14.00\">[co&#45;Büchi]</text>\n",
3867       "<!-- I -->\n",
3868       "<!-- 0 -->\n",
3869       "<g id=\"node2\" class=\"node\">\n",
3870       "<title>0</title>\n",
3871       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-21.79\" rx=\"18\" ry=\"18\"/>\n",
3872       "<text text-anchor=\"middle\" x=\"56\" y=\"-18.09\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
3873       "</g>\n",
3874       "<!-- I&#45;&gt;0 -->\n",
3875       "<g id=\"edge1\" class=\"edge\">\n",
3876       "<title>I&#45;&gt;0</title>\n",
3877       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-21.79C2.79,-21.79 17.15,-21.79 30.63,-21.79\"/>\n",
3878       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-21.79 30.94,-24.94 34.44,-21.79 30.94,-21.79 30.94,-21.79 30.94,-21.79 34.44,-21.79 30.94,-18.64 37.94,-21.79 37.94,-21.79\"/>\n",
3879       "</g>\n",
3880       "<!-- 2 -->\n",
3881       "<g id=\"node3\" class=\"node\">\n",
3882       "<title>2</title>\n",
3883       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"193.5\" cy=\"-82.79\" rx=\"18\" ry=\"18\"/>\n",
3884       "<text text-anchor=\"middle\" x=\"193.5\" y=\"-79.09\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
3885       "</g>\n",
3886       "<!-- 0&#45;&gt;2 -->\n",
3887       "<g id=\"edge2\" class=\"edge\">\n",
3888       "<title>0&#45;&gt;2</title>\n",
3889       "<path fill=\"none\" stroke=\"black\" d=\"M72.81,-28.91C96.88,-39.75 142.81,-60.42 170.24,-72.77\"/>\n",
3890       "<polygon fill=\"black\" stroke=\"black\" points=\"176.79,-75.72 169.12,-75.72 173.6,-74.29 170.41,-72.85 170.41,-72.85 170.41,-72.85 173.6,-74.29 171.7,-69.98 176.79,-75.72 176.79,-75.72\"/>\n",
3891       "<text text-anchor=\"start\" x=\"92\" y=\"-66.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3892       "</g>\n",
3893       "<!-- 3 -->\n",
3894       "<g id=\"node4\" class=\"node\">\n",
3895       "<title>3</title>\n",
3896       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"481\" cy=\"-54.79\" rx=\"18\" ry=\"18\"/>\n",
3897       "<text text-anchor=\"middle\" x=\"481\" y=\"-51.09\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
3898       "</g>\n",
3899       "<!-- 0&#45;&gt;3 -->\n",
3900       "<g id=\"edge3\" class=\"edge\">\n",
3901       "<title>0&#45;&gt;3</title>\n",
3902       "<path fill=\"none\" stroke=\"black\" d=\"M73.81,-18.11C112.81,-10.09 212.46,7.37 295,-3.79 354.8,-11.89 422.58,-34.06 457.12,-46.33\"/>\n",
3903       "<polygon fill=\"black\" stroke=\"black\" points=\"463.97,-48.79 456.32,-49.39 460.68,-47.61 457.39,-46.43 457.39,-46.43 457.39,-46.43 460.68,-47.61 458.45,-43.46 463.97,-48.79 463.97,-48.79\"/>\n",
3904       "<text text-anchor=\"start\" x=\"238\" y=\"-22.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3905       "<text text-anchor=\"start\" x=\"258.5\" y=\"-7.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3906       "</g>\n",
3907       "<!-- 2&#45;&gt;2 -->\n",
3908       "<g id=\"edge7\" class=\"edge\">\n",
3909       "<title>2&#45;&gt;2</title>\n",
3910       "<path fill=\"none\" stroke=\"black\" d=\"M181.74,-96.84C177.35,-107.71 181.27,-118.79 193.5,-118.79 203.06,-118.79 207.54,-112.03 206.95,-103.88\"/>\n",
3911       "<polygon fill=\"black\" stroke=\"black\" points=\"205.26,-96.84 209.95,-102.91 206.07,-100.24 206.89,-103.64 206.89,-103.64 206.89,-103.64 206.07,-100.24 203.83,-104.38 205.26,-96.84 205.26,-96.84\"/>\n",
3912       "<text text-anchor=\"start\" x=\"169\" y=\"-122.59\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
3913       "</g>\n",
3914       "<!-- 1 -->\n",
3915       "<g id=\"node5\" class=\"node\">\n",
3916       "<title>1</title>\n",
3917       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.5\" cy=\"-54.79\" rx=\"18\" ry=\"18\"/>\n",
3918       "<text text-anchor=\"middle\" x=\"341.5\" y=\"-51.09\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
3919       "</g>\n",
3920       "<!-- 2&#45;&gt;1 -->\n",
3921       "<g id=\"edge8\" class=\"edge\">\n",
3922       "<title>2&#45;&gt;1</title>\n",
3923       "<path fill=\"none\" stroke=\"black\" d=\"M211.77,-81.89C231.95,-80.56 266.25,-77.48 295,-70.79 302.46,-69.06 310.4,-66.52 317.53,-63.97\"/>\n",
3924       "<polygon fill=\"black\" stroke=\"black\" points=\"324.33,-61.45 318.86,-66.84 321.05,-62.67 317.77,-63.89 317.77,-63.89 317.77,-63.89 321.05,-62.67 316.67,-60.93 324.33,-61.45 324.33,-61.45\"/>\n",
3925       "<text text-anchor=\"start\" x=\"238\" y=\"-97.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3926       "<text text-anchor=\"start\" x=\"258.5\" y=\"-82.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3927       "</g>\n",
3928       "<!-- 3&#45;&gt;2 -->\n",
3929       "<g id=\"edge10\" class=\"edge\">\n",
3930       "<title>3&#45;&gt;2</title>\n",
3931       "<path fill=\"none\" stroke=\"black\" d=\"M469.17,-68.84C462.9,-75.96 454.39,-84.09 445,-88.79 384.65,-119.06 362.3,-107.44 295,-112.79 269.75,-114.8 262.19,-120.33 238,-112.79 229.1,-110.02 220.42,-104.73 213.18,-99.35\"/>\n",
3932       "<polygon fill=\"black\" stroke=\"black\" points=\"207.46,-94.87 214.92,-96.71 210.22,-97.03 212.97,-99.19 212.97,-99.19 212.97,-99.19 210.22,-97.03 211.03,-101.67 207.46,-94.87 207.46,-94.87\"/>\n",
3933       "<text text-anchor=\"start\" x=\"313\" y=\"-114.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3934       "</g>\n",
3935       "<!-- 3&#45;&gt;3 -->\n",
3936       "<g id=\"edge9\" class=\"edge\">\n",
3937       "<title>3&#45;&gt;3</title>\n",
3938       "<path fill=\"none\" stroke=\"black\" d=\"M470.29,-69.59C466.81,-80.21 470.38,-90.79 481,-90.79 489.13,-90.79 493.13,-84.59 493,-76.91\"/>\n",
3939       "<polygon fill=\"black\" stroke=\"black\" points=\"491.71,-69.59 496.02,-75.93 492.31,-73.03 492.92,-76.48 492.92,-76.48 492.92,-76.48 492.31,-73.03 489.82,-77.03 491.71,-69.59 491.71,-69.59\"/>\n",
3940       "<text text-anchor=\"start\" x=\"456.5\" y=\"-109.59\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; p1</text>\n",
3941       "<text text-anchor=\"start\" x=\"473\" y=\"-94.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3942       "</g>\n",
3943       "<!-- 1&#45;&gt;0 -->\n",
3944       "<g id=\"edge5\" class=\"edge\">\n",
3945       "<title>1&#45;&gt;0</title>\n",
3946       "<path fill=\"none\" stroke=\"black\" d=\"M323.71,-51.08C315.15,-49.28 304.56,-47.22 295,-45.79 217.31,-34.22 124.5,-26.65 81.32,-23.48\"/>\n",
3947       "<polygon fill=\"black\" stroke=\"black\" points=\"74.1,-22.96 81.3,-20.32 77.59,-23.21 81.08,-23.46 81.08,-23.46 81.08,-23.46 77.59,-23.21 80.85,-26.61 74.1,-22.96 74.1,-22.96\"/>\n",
3948       "<text text-anchor=\"start\" x=\"167\" y=\"-39.59\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
3949       "</g>\n",
3950       "<!-- 1&#45;&gt;2 -->\n",
3951       "<g id=\"edge4\" class=\"edge\">\n",
3952       "<title>1&#45;&gt;2</title>\n",
3953       "<path fill=\"none\" stroke=\"black\" d=\"M323.41,-52.2C302.72,-49.69 267.05,-47.36 238,-55.79 229.63,-58.22 221.3,-62.75 214.2,-67.41\"/>\n",
3954       "<polygon fill=\"black\" stroke=\"black\" points=\"208.06,-71.67 212.01,-65.1 210.93,-69.68 213.81,-67.68 213.81,-67.68 213.81,-67.68 210.93,-69.68 215.6,-70.27 208.06,-71.67 208.06,-71.67\"/>\n",
3955       "<text text-anchor=\"start\" x=\"238\" y=\"-59.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3956       "</g>\n",
3957       "<!-- 1&#45;&gt;3 -->\n",
3958       "<g id=\"edge6\" class=\"edge\">\n",
3959       "<title>1&#45;&gt;3</title>\n",
3960       "<path fill=\"none\" stroke=\"black\" d=\"M359.64,-54.79C383.72,-54.79 427.72,-54.79 455.33,-54.79\"/>\n",
3961       "<polygon fill=\"black\" stroke=\"black\" points=\"462.65,-54.79 455.65,-57.94 459.15,-54.79 455.65,-54.79 455.65,-54.79 455.65,-54.79 459.15,-54.79 455.65,-51.64 462.65,-54.79 462.65,-54.79\"/>\n",
3962       "<text text-anchor=\"start\" x=\"388\" y=\"-73.59\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
3963       "<text text-anchor=\"start\" x=\"408.5\" y=\"-58.59\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3964       "</g>\n",
3965       "</g>\n",
3966       "</svg>\n",
3967       "</div>"
3968      ],
3969      "text/plain": [
3970       "<IPython.core.display.HTML object>"
3971      ]
3972     },
3973     "metadata": {},
3974     "output_type": "display_data"
3975    },
3976    {
3977     "data": {
3978      "text/html": [
3979       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
3980       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
3981       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
3982       "<!-- Generated by graphviz version 2.43.0 (0)\n",
3983       " -->\n",
3984       "<!-- Pages: 1 -->\n",
3985       "<svg width=\"490pt\" height=\"169pt\"\n",
3986       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
3987       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
3988       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
3989       "<text text-anchor=\"start\" x=\"129.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
3990       "<text text-anchor=\"start\" x=\"150.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
3991       "<text text-anchor=\"start\" x=\"166.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
3992       "<text text-anchor=\"start\" x=\"208.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
3993       "<text text-anchor=\"start\" x=\"224.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
3994       "<text text-anchor=\"start\" x=\"270.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
3995       "<text text-anchor=\"start\" x=\"286.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
3996       "<text text-anchor=\"start\" x=\"324.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
3997       "<text text-anchor=\"start\" x=\"340.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
3998       "<text text-anchor=\"start\" x=\"185.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 4]</text>\n",
3999       "<!-- I -->\n",
4000       "<!-- 0 -->\n",
4001       "<g id=\"node2\" class=\"node\">\n",
4002       "<title>0</title>\n",
4003       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
4004       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4005       "</g>\n",
4006       "<!-- I&#45;&gt;0 -->\n",
4007       "<g id=\"edge1\" class=\"edge\">\n",
4008       "<title>I&#45;&gt;0</title>\n",
4009       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
4010       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
4011       "</g>\n",
4012       "<!-- 2 -->\n",
4013       "<g id=\"node3\" class=\"node\">\n",
4014       "<title>2</title>\n",
4015       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
4016       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4017       "</g>\n",
4018       "<!-- 0&#45;&gt;2 -->\n",
4019       "<g id=\"edge2\" class=\"edge\">\n",
4020       "<title>0&#45;&gt;2</title>\n",
4021       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
4022       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
4023       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4024       "</g>\n",
4025       "<!-- 3 -->\n",
4026       "<g id=\"node4\" class=\"node\">\n",
4027       "<title>3</title>\n",
4028       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
4029       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
4030       "</g>\n",
4031       "<!-- 0&#45;&gt;3 -->\n",
4032       "<g id=\"edge3\" class=\"edge\">\n",
4033       "<title>0&#45;&gt;3</title>\n",
4034       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
4035       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
4036       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4037       "</g>\n",
4038       "<!-- 1 -->\n",
4039       "<g id=\"node5\" class=\"node\">\n",
4040       "<title>1</title>\n",
4041       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
4042       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
4043       "</g>\n",
4044       "<!-- 2&#45;&gt;1 -->\n",
4045       "<g id=\"edge6\" class=\"edge\">\n",
4046       "<title>2&#45;&gt;1</title>\n",
4047       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
4048       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
4049       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4050       "</g>\n",
4051       "<!-- 3&#45;&gt;0 -->\n",
4052       "<g id=\"edge8\" class=\"edge\">\n",
4053       "<title>3&#45;&gt;0</title>\n",
4054       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
4055       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
4056       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
4057       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4058       "</g>\n",
4059       "<!-- 3&#45;&gt;2 -->\n",
4060       "<g id=\"edge7\" class=\"edge\">\n",
4061       "<title>3&#45;&gt;2</title>\n",
4062       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
4063       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
4064       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4065       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
4066       "</g>\n",
4067       "<!-- 3&#45;&gt;3 -->\n",
4068       "<g id=\"edge9\" class=\"edge\">\n",
4069       "<title>3&#45;&gt;3</title>\n",
4070       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
4071       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
4072       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4073       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4074       "</g>\n",
4075       "<!-- 1&#45;&gt;0 -->\n",
4076       "<g id=\"edge4\" class=\"edge\">\n",
4077       "<title>1&#45;&gt;0</title>\n",
4078       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
4079       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
4080       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4081       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4082       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4083       "</g>\n",
4084       "<!-- 1&#45;&gt;2 -->\n",
4085       "<g id=\"edge5\" class=\"edge\">\n",
4086       "<title>1&#45;&gt;2</title>\n",
4087       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
4088       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
4089       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4090       "</g>\n",
4091       "</g>\n",
4092       "</svg>\n",
4093       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
4094       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
4095       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
4096       "<!-- Generated by graphviz version 2.43.0 (0)\n",
4097       " -->\n",
4098       "<!-- Pages: 1 -->\n",
4099       "<svg width=\"490pt\" height=\"172pt\"\n",
4100       " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
4101       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n",
4102       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n",
4103       "<text text-anchor=\"start\" x=\"193.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
4104       "<text text-anchor=\"start\" x=\"214.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
4105       "<text text-anchor=\"start\" x=\"230.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
4106       "<text text-anchor=\"start\" x=\"268.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4107       "<text text-anchor=\"start\" x=\"284.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
4108       "<text text-anchor=\"start\" x=\"209.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[Streett 1]</text>\n",
4109       "<!-- I -->\n",
4110       "<!-- 0 -->\n",
4111       "<g id=\"node2\" class=\"node\">\n",
4112       "<title>0</title>\n",
4113       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
4114       "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4115       "</g>\n",
4116       "<!-- I&#45;&gt;0 -->\n",
4117       "<g id=\"edge1\" class=\"edge\">\n",
4118       "<title>I&#45;&gt;0</title>\n",
4119       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n",
4120       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n",
4121       "</g>\n",
4122       "<!-- 2 -->\n",
4123       "<g id=\"node3\" class=\"node\">\n",
4124       "<title>2</title>\n",
4125       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n",
4126       "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4127       "</g>\n",
4128       "<!-- 0&#45;&gt;2 -->\n",
4129       "<g id=\"edge2\" class=\"edge\">\n",
4130       "<title>0&#45;&gt;2</title>\n",
4131       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n",
4132       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n",
4133       "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4134       "</g>\n",
4135       "<!-- 3 -->\n",
4136       "<g id=\"node4\" class=\"node\">\n",
4137       "<title>3</title>\n",
4138       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
4139       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
4140       "</g>\n",
4141       "<!-- 0&#45;&gt;3 -->\n",
4142       "<g id=\"edge3\" class=\"edge\">\n",
4143       "<title>0&#45;&gt;3</title>\n",
4144       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n",
4145       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n",
4146       "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4147       "</g>\n",
4148       "<!-- 1 -->\n",
4149       "<g id=\"node5\" class=\"node\">\n",
4150       "<title>1</title>\n",
4151       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n",
4152       "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
4153       "</g>\n",
4154       "<!-- 2&#45;&gt;1 -->\n",
4155       "<g id=\"edge6\" class=\"edge\">\n",
4156       "<title>2&#45;&gt;1</title>\n",
4157       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n",
4158       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n",
4159       "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4160       "</g>\n",
4161       "<!-- 3&#45;&gt;0 -->\n",
4162       "<g id=\"edge8\" class=\"edge\">\n",
4163       "<title>3&#45;&gt;0</title>\n",
4164       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n",
4165       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n",
4166       "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
4167       "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4168       "</g>\n",
4169       "<!-- 3&#45;&gt;2 -->\n",
4170       "<g id=\"edge7\" class=\"edge\">\n",
4171       "<title>3&#45;&gt;2</title>\n",
4172       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n",
4173       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n",
4174       "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4175       "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
4176       "</g>\n",
4177       "<!-- 3&#45;&gt;3 -->\n",
4178       "<g id=\"edge9\" class=\"edge\">\n",
4179       "<title>3&#45;&gt;3</title>\n",
4180       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n",
4181       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n",
4182       "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4183       "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4184       "</g>\n",
4185       "<!-- 1&#45;&gt;0 -->\n",
4186       "<g id=\"edge4\" class=\"edge\">\n",
4187       "<title>1&#45;&gt;0</title>\n",
4188       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n",
4189       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n",
4190       "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4191       "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4192       "</g>\n",
4193       "<!-- 1&#45;&gt;2 -->\n",
4194       "<g id=\"edge5\" class=\"edge\">\n",
4195       "<title>1&#45;&gt;2</title>\n",
4196       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n",
4197       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n",
4198       "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4199       "</g>\n",
4200       "</g>\n",
4201       "</svg>\n",
4202       "</div>"
4203      ],
4204      "text/plain": [
4205       "<IPython.core.display.HTML object>"
4206      ]
4207     },
4208     "metadata": {},
4209     "output_type": "display_data"
4210    }
4211   ],
4212   "source": [
4213    "display2(minodd4, spot.cleanup_parity(minodd4))\n",
4214    "display2(maxodd5, spot.cleanup_parity(maxodd5))\n",
4215    "display2(maxodd4, spot.cleanup_parity(maxodd4))"
4216   ]
4217  },
4218  {
4219   "cell_type": "markdown",
4220   "metadata": {},
4221   "source": [
4222    "Here Rabin 1, co-Büchi, and Streett 1, are respectively the same as \"min odd 2\", \"max odd 1\", \"max odd 2\".\n",
4223    "\n",
4224    "# Reduce parity\n",
4225    "\n",
4226    "The `reduce_parity()` function is a more elaborate version of `cleanup_parity()`.  It implements an algorithm by Carton and Maceiras (*Computing the Rabin index of a parity automaton*, Informatique théorique et applications, 1999), to obtain the minimal parity acceptance condition for a given automaton.  Why the original algorithm assume *max odd* parity, this version with work with the four types of parity acceptance.  It will only try to preserve the kind (max/min) and may change the style if it allows saving one color.  Furthermore, it can colorize (or uncolorize) automata at the same time,\n",
4227    "making it a very nice replacement for both `cleanup_parity()` and `colorize_parity()`.\n",
4228    "\n",
4229    "It takes two arguments:\n",
4230    "1. the automaton whose parity acceptance condition should be reduced\n",
4231    "2. a Boolean indicating whether the output should be colored (`True`), or if transition with no color can be used (`False`).\n",
4232    "\n",
4233    "By default, the second argument is `False`, because acceptance sets is a scarse ressource in Spot."
4234   ]
4235  },
4236  {
4237   "cell_type": "code",
4238   "execution_count": 24,
4239   "metadata": {},
4240   "outputs": [
4241    {
4242     "data": {
4243      "text/html": [
4244       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
4245       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
4246       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
4247       "<!-- Generated by graphviz version 2.43.0 (0)\n",
4248       " -->\n",
4249       "<!-- Pages: 1 -->\n",
4250       "<svg width=\"490pt\" height=\"169pt\"\n",
4251       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
4252       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
4253       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
4254       "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
4255       "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4256       "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
4257       "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
4258       "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
4259       "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4260       "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
4261       "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
4262       "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
4263       "<text text-anchor=\"start\" x=\"187\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n",
4264       "<!-- I -->\n",
4265       "<!-- 0 -->\n",
4266       "<g id=\"node2\" class=\"node\">\n",
4267       "<title>0</title>\n",
4268       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
4269       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4270       "</g>\n",
4271       "<!-- I&#45;&gt;0 -->\n",
4272       "<g id=\"edge1\" class=\"edge\">\n",
4273       "<title>I&#45;&gt;0</title>\n",
4274       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
4275       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
4276       "</g>\n",
4277       "<!-- 2 -->\n",
4278       "<g id=\"node3\" class=\"node\">\n",
4279       "<title>2</title>\n",
4280       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
4281       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4282       "</g>\n",
4283       "<!-- 0&#45;&gt;2 -->\n",
4284       "<g id=\"edge2\" class=\"edge\">\n",
4285       "<title>0&#45;&gt;2</title>\n",
4286       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
4287       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
4288       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4289       "</g>\n",
4290       "<!-- 3 -->\n",
4291       "<g id=\"node4\" class=\"node\">\n",
4292       "<title>3</title>\n",
4293       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
4294       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
4295       "</g>\n",
4296       "<!-- 0&#45;&gt;3 -->\n",
4297       "<g id=\"edge3\" class=\"edge\">\n",
4298       "<title>0&#45;&gt;3</title>\n",
4299       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
4300       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
4301       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4302       "</g>\n",
4303       "<!-- 1 -->\n",
4304       "<g id=\"node5\" class=\"node\">\n",
4305       "<title>1</title>\n",
4306       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
4307       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
4308       "</g>\n",
4309       "<!-- 2&#45;&gt;1 -->\n",
4310       "<g id=\"edge6\" class=\"edge\">\n",
4311       "<title>2&#45;&gt;1</title>\n",
4312       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
4313       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
4314       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4315       "</g>\n",
4316       "<!-- 3&#45;&gt;0 -->\n",
4317       "<g id=\"edge8\" class=\"edge\">\n",
4318       "<title>3&#45;&gt;0</title>\n",
4319       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
4320       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
4321       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
4322       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4323       "</g>\n",
4324       "<!-- 3&#45;&gt;2 -->\n",
4325       "<g id=\"edge7\" class=\"edge\">\n",
4326       "<title>3&#45;&gt;2</title>\n",
4327       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
4328       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
4329       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4330       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
4331       "</g>\n",
4332       "<!-- 3&#45;&gt;3 -->\n",
4333       "<g id=\"edge9\" class=\"edge\">\n",
4334       "<title>3&#45;&gt;3</title>\n",
4335       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
4336       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
4337       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4338       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4339       "</g>\n",
4340       "<!-- 1&#45;&gt;0 -->\n",
4341       "<g id=\"edge4\" class=\"edge\">\n",
4342       "<title>1&#45;&gt;0</title>\n",
4343       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
4344       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
4345       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4346       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4347       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4348       "</g>\n",
4349       "<!-- 1&#45;&gt;2 -->\n",
4350       "<g id=\"edge5\" class=\"edge\">\n",
4351       "<title>1&#45;&gt;2</title>\n",
4352       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
4353       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
4354       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4355       "</g>\n",
4356       "</g>\n",
4357       "</svg>\n",
4358       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
4359       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
4360       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
4361       "<!-- Generated by graphviz version 2.43.0 (0)\n",
4362       " -->\n",
4363       "<!-- Pages: 1 -->\n",
4364       "<svg width=\"490pt\" height=\"155pt\"\n",
4365       " viewBox=\"0.00 0.00 490.00 155.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
4366       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 151)\">\n",
4367       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-151 486,-151 486,4 -4,4\"/>\n",
4368       "<text text-anchor=\"start\" x=\"238\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\">f</text>\n",
4369       "<text text-anchor=\"start\" x=\"221.5\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">[none]</text>\n",
4370       "<!-- I -->\n",
4371       "<!-- 0 -->\n",
4372       "<g id=\"node2\" class=\"node\">\n",
4373       "<title>0</title>\n",
4374       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43\" rx=\"18\" ry=\"18\"/>\n",
4375       "<text text-anchor=\"middle\" x=\"56\" y=\"-39.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4376       "</g>\n",
4377       "<!-- I&#45;&gt;0 -->\n",
4378       "<g id=\"edge1\" class=\"edge\">\n",
4379       "<title>I&#45;&gt;0</title>\n",
4380       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43C2.79,-43 17.15,-43 30.63,-43\"/>\n",
4381       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43 30.94,-46.15 34.44,-43 30.94,-43 30.94,-43 30.94,-43 34.44,-43 30.94,-39.85 37.94,-43 37.94,-43\"/>\n",
4382       "</g>\n",
4383       "<!-- 2 -->\n",
4384       "<g id=\"node3\" class=\"node\">\n",
4385       "<title>2</title>\n",
4386       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
4387       "<text text-anchor=\"middle\" x=\"335\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4388       "</g>\n",
4389       "<!-- 0&#45;&gt;2 -->\n",
4390       "<g id=\"edge2\" class=\"edge\">\n",
4391       "<title>0&#45;&gt;2</title>\n",
4392       "<path fill=\"none\" stroke=\"black\" d=\"M71.95,-52.16C92.48,-64.11 130.95,-84.27 167,-91 191.9,-95.65 199.07,-95.5 224,-91 255.67,-85.29 290.13,-71.02 311.88,-60.93\"/>\n",
4393       "<polygon fill=\"black\" stroke=\"black\" points=\"318.47,-57.82 313.49,-63.65 315.31,-59.31 312.14,-60.8 312.14,-60.8 312.14,-60.8 315.31,-59.31 310.8,-57.96 318.47,-57.82 318.47,-57.82\"/>\n",
4394       "<text text-anchor=\"start\" x=\"167\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4395       "</g>\n",
4396       "<!-- 3 -->\n",
4397       "<g id=\"node4\" class=\"node\">\n",
4398       "<title>3</title>\n",
4399       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
4400       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
4401       "</g>\n",
4402       "<!-- 0&#45;&gt;3 -->\n",
4403       "<g id=\"edge3\" class=\"edge\">\n",
4404       "<title>0&#45;&gt;3</title>\n",
4405       "<path fill=\"none\" stroke=\"black\" d=\"M74.02,-43.27C92.53,-43.37 122.96,-42.98 149,-40 156.05,-39.19 163.64,-37.88 170.56,-36.49\"/>\n",
4406       "<polygon fill=\"black\" stroke=\"black\" points=\"177.75,-34.99 171.54,-39.51 174.32,-35.71 170.9,-36.42 170.9,-36.42 170.9,-36.42 174.32,-35.71 170.25,-33.34 177.75,-34.99 177.75,-34.99\"/>\n",
4407       "<text text-anchor=\"start\" x=\"92\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4408       "</g>\n",
4409       "<!-- 1 -->\n",
4410       "<g id=\"node5\" class=\"node\">\n",
4411       "<title>1</title>\n",
4412       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
4413       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
4414       "</g>\n",
4415       "<!-- 2&#45;&gt;1 -->\n",
4416       "<g id=\"edge6\" class=\"edge\">\n",
4417       "<title>2&#45;&gt;1</title>\n",
4418       "<path fill=\"none\" stroke=\"black\" d=\"M353.27,-48.34C371.99,-46.22 402.6,-41.87 428,-34 432.36,-32.65 436.88,-30.88 441.16,-29.02\"/>\n",
4419       "<polygon fill=\"black\" stroke=\"black\" points=\"447.66,-26.05 442.6,-31.82 444.47,-27.5 441.29,-28.96 441.29,-28.96 441.29,-28.96 444.47,-27.5 439.98,-26.1 447.66,-26.05 447.66,-26.05\"/>\n",
4420       "<text text-anchor=\"start\" x=\"373\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4421       "</g>\n",
4422       "<!-- 3&#45;&gt;0 -->\n",
4423       "<g id=\"edge8\" class=\"edge\">\n",
4424       "<title>3&#45;&gt;0</title>\n",
4425       "<path fill=\"none\" stroke=\"black\" d=\"M178.18,-25.73C157.66,-19.93 121.55,-12.48 92,-21 86.57,-22.57 81.17,-25.25 76.29,-28.22\"/>\n",
4426       "<polygon fill=\"black\" stroke=\"black\" points=\"70.43,-32.06 74.56,-25.59 73.36,-30.14 76.28,-28.22 76.28,-28.22 76.28,-28.22 73.36,-30.14 78.01,-30.85 70.43,-32.06 70.43,-32.06\"/>\n",
4427       "<text text-anchor=\"start\" x=\"94\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
4428       "</g>\n",
4429       "<!-- 3&#45;&gt;2 -->\n",
4430       "<g id=\"edge7\" class=\"edge\">\n",
4431       "<title>3&#45;&gt;2</title>\n",
4432       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.33C237.59,-36.68 282.36,-42.86 310.02,-46.69\"/>\n",
4433       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-47.65 309.64,-49.81 313.53,-47.17 310.07,-46.69 310.07,-46.69 310.07,-46.69 313.53,-47.17 310.5,-43.57 317,-47.65 317,-47.65\"/>\n",
4434       "<text text-anchor=\"start\" x=\"242\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4435       "</g>\n",
4436       "<!-- 3&#45;&gt;3 -->\n",
4437       "<g id=\"edge9\" class=\"edge\">\n",
4438       "<title>3&#45;&gt;3</title>\n",
4439       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
4440       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
4441       "<text text-anchor=\"start\" x=\"169\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4442       "</g>\n",
4443       "<!-- 1&#45;&gt;0 -->\n",
4444       "<g id=\"edge4\" class=\"edge\">\n",
4445       "<title>1&#45;&gt;0</title>\n",
4446       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 370.5,0.63 234.56,0.04 167,-4 133.49,-6 122.74,0.51 92,-13 85.54,-15.84 79.38,-20.28 74.08,-24.88\"/>\n",
4447       "<polygon fill=\"black\" stroke=\"black\" points=\"68.69,-29.87 71.69,-22.8 71.26,-27.49 73.83,-25.11 73.83,-25.11 73.83,-25.11 71.26,-27.49 75.97,-27.42 68.69,-29.87 68.69,-29.87\"/>\n",
4448       "<text text-anchor=\"start\" x=\"244\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4449       "</g>\n",
4450       "<!-- 1&#45;&gt;2 -->\n",
4451       "<g id=\"edge5\" class=\"edge\">\n",
4452       "<title>1&#45;&gt;2</title>\n",
4453       "<path fill=\"none\" stroke=\"black\" d=\"M446.06,-14.75C427.08,-11.87 395.74,-9.46 371,-19 364.07,-21.67 357.62,-26.39 352.2,-31.36\"/>\n",
4454       "<polygon fill=\"black\" stroke=\"black\" points=\"347.13,-36.34 349.92,-29.18 349.63,-33.88 352.13,-31.43 352.13,-31.43 352.13,-31.43 349.63,-33.88 354.33,-33.68 347.13,-36.34 347.13,-36.34\"/>\n",
4455       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4456       "</g>\n",
4457       "</g>\n",
4458       "</svg>\n",
4459       "</div>"
4460      ],
4461      "text/plain": [
4462       "<IPython.core.display.HTML object>"
4463      ]
4464     },
4465     "metadata": {},
4466     "output_type": "display_data"
4467    },
4468    {
4469     "data": {
4470      "text/html": [
4471       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
4472       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
4473       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
4474       "<!-- Generated by graphviz version 2.43.0 (0)\n",
4475       " -->\n",
4476       "<!-- Pages: 1 -->\n",
4477       "<svg width=\"490pt\" height=\"169pt\"\n",
4478       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
4479       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
4480       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
4481       "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
4482       "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4483       "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
4484       "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
4485       "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
4486       "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4487       "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
4488       "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
4489       "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
4490       "<text text-anchor=\"start\" x=\"187\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity min odd 4]</text>\n",
4491       "<!-- I -->\n",
4492       "<!-- 0 -->\n",
4493       "<g id=\"node2\" class=\"node\">\n",
4494       "<title>0</title>\n",
4495       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
4496       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4497       "</g>\n",
4498       "<!-- I&#45;&gt;0 -->\n",
4499       "<g id=\"edge1\" class=\"edge\">\n",
4500       "<title>I&#45;&gt;0</title>\n",
4501       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
4502       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
4503       "</g>\n",
4504       "<!-- 2 -->\n",
4505       "<g id=\"node3\" class=\"node\">\n",
4506       "<title>2</title>\n",
4507       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
4508       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4509       "</g>\n",
4510       "<!-- 0&#45;&gt;2 -->\n",
4511       "<g id=\"edge2\" class=\"edge\">\n",
4512       "<title>0&#45;&gt;2</title>\n",
4513       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
4514       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
4515       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4516       "</g>\n",
4517       "<!-- 3 -->\n",
4518       "<g id=\"node4\" class=\"node\">\n",
4519       "<title>3</title>\n",
4520       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
4521       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
4522       "</g>\n",
4523       "<!-- 0&#45;&gt;3 -->\n",
4524       "<g id=\"edge3\" class=\"edge\">\n",
4525       "<title>0&#45;&gt;3</title>\n",
4526       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
4527       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
4528       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4529       "</g>\n",
4530       "<!-- 1 -->\n",
4531       "<g id=\"node5\" class=\"node\">\n",
4532       "<title>1</title>\n",
4533       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
4534       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
4535       "</g>\n",
4536       "<!-- 2&#45;&gt;1 -->\n",
4537       "<g id=\"edge6\" class=\"edge\">\n",
4538       "<title>2&#45;&gt;1</title>\n",
4539       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
4540       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
4541       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4542       "</g>\n",
4543       "<!-- 3&#45;&gt;0 -->\n",
4544       "<g id=\"edge8\" class=\"edge\">\n",
4545       "<title>3&#45;&gt;0</title>\n",
4546       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
4547       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
4548       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
4549       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4550       "</g>\n",
4551       "<!-- 3&#45;&gt;2 -->\n",
4552       "<g id=\"edge7\" class=\"edge\">\n",
4553       "<title>3&#45;&gt;2</title>\n",
4554       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
4555       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
4556       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4557       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
4558       "</g>\n",
4559       "<!-- 3&#45;&gt;3 -->\n",
4560       "<g id=\"edge9\" class=\"edge\">\n",
4561       "<title>3&#45;&gt;3</title>\n",
4562       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
4563       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
4564       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4565       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4566       "</g>\n",
4567       "<!-- 1&#45;&gt;0 -->\n",
4568       "<g id=\"edge4\" class=\"edge\">\n",
4569       "<title>1&#45;&gt;0</title>\n",
4570       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
4571       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
4572       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4573       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4574       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4575       "</g>\n",
4576       "<!-- 1&#45;&gt;2 -->\n",
4577       "<g id=\"edge5\" class=\"edge\">\n",
4578       "<title>1&#45;&gt;2</title>\n",
4579       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
4580       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
4581       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4582       "</g>\n",
4583       "</g>\n",
4584       "</svg>\n",
4585       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
4586       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
4587       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
4588       "<!-- Generated by graphviz version 2.43.0 (0)\n",
4589       " -->\n",
4590       "<!-- Pages: 1 -->\n",
4591       "<svg width=\"490pt\" height=\"183pt\"\n",
4592       " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
4593       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n",
4594       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n",
4595       "<text text-anchor=\"start\" x=\"219.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
4596       "<text text-anchor=\"start\" x=\"242.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4597       "<text text-anchor=\"start\" x=\"258.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
4598       "<text text-anchor=\"start\" x=\"209.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[co&#45;Büchi]</text>\n",
4599       "<!-- I -->\n",
4600       "<!-- 0 -->\n",
4601       "<g id=\"node2\" class=\"node\">\n",
4602       "<title>0</title>\n",
4603       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
4604       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4605       "</g>\n",
4606       "<!-- I&#45;&gt;0 -->\n",
4607       "<g id=\"edge1\" class=\"edge\">\n",
4608       "<title>I&#45;&gt;0</title>\n",
4609       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
4610       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
4611       "</g>\n",
4612       "<!-- 2 -->\n",
4613       "<g id=\"node3\" class=\"node\">\n",
4614       "<title>2</title>\n",
4615       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
4616       "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4617       "</g>\n",
4618       "<!-- 0&#45;&gt;2 -->\n",
4619       "<g id=\"edge2\" class=\"edge\">\n",
4620       "<title>0&#45;&gt;2</title>\n",
4621       "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n",
4622       "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n",
4623       "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4624       "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4625       "</g>\n",
4626       "<!-- 3 -->\n",
4627       "<g id=\"node4\" class=\"node\">\n",
4628       "<title>3</title>\n",
4629       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
4630       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
4631       "</g>\n",
4632       "<!-- 0&#45;&gt;3 -->\n",
4633       "<g id=\"edge3\" class=\"edge\">\n",
4634       "<title>0&#45;&gt;3</title>\n",
4635       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
4636       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
4637       "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4638       "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4639       "</g>\n",
4640       "<!-- 1 -->\n",
4641       "<g id=\"node5\" class=\"node\">\n",
4642       "<title>1</title>\n",
4643       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
4644       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
4645       "</g>\n",
4646       "<!-- 2&#45;&gt;1 -->\n",
4647       "<g id=\"edge6\" class=\"edge\">\n",
4648       "<title>2&#45;&gt;1</title>\n",
4649       "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n",
4650       "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n",
4651       "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4652       "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4653       "</g>\n",
4654       "<!-- 3&#45;&gt;0 -->\n",
4655       "<g id=\"edge8\" class=\"edge\">\n",
4656       "<title>3&#45;&gt;0</title>\n",
4657       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
4658       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
4659       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
4660       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4661       "</g>\n",
4662       "<!-- 3&#45;&gt;2 -->\n",
4663       "<g id=\"edge7\" class=\"edge\">\n",
4664       "<title>3&#45;&gt;2</title>\n",
4665       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n",
4666       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n",
4667       "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4668       "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4669       "</g>\n",
4670       "<!-- 3&#45;&gt;3 -->\n",
4671       "<g id=\"edge9\" class=\"edge\">\n",
4672       "<title>3&#45;&gt;3</title>\n",
4673       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
4674       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
4675       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4676       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4677       "</g>\n",
4678       "<!-- 1&#45;&gt;0 -->\n",
4679       "<g id=\"edge4\" class=\"edge\">\n",
4680       "<title>1&#45;&gt;0</title>\n",
4681       "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
4682       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
4683       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4684       "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4685       "</g>\n",
4686       "<!-- 1&#45;&gt;2 -->\n",
4687       "<g id=\"edge5\" class=\"edge\">\n",
4688       "<title>1&#45;&gt;2</title>\n",
4689       "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n",
4690       "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n",
4691       "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4692       "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4693       "</g>\n",
4694       "</g>\n",
4695       "</svg>\n",
4696       "</div>"
4697      ],
4698      "text/plain": [
4699       "<IPython.core.display.HTML object>"
4700      ]
4701     },
4702     "metadata": {},
4703     "output_type": "display_data"
4704    }
4705   ],
4706   "source": [
4707    "display2(minodd4, spot.reduce_parity(minodd4))\n",
4708    "display2(minodd4, spot.reduce_parity(minodd4, True))"
4709   ]
4710  },
4711  {
4712   "cell_type": "code",
4713   "execution_count": 25,
4714   "metadata": {},
4715   "outputs": [
4716    {
4717     "data": {
4718      "text/html": [
4719       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
4720       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
4721       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
4722       "<!-- Generated by graphviz version 2.43.0 (0)\n",
4723       " -->\n",
4724       "<!-- Pages: 1 -->\n",
4725       "<svg width=\"490pt\" height=\"169pt\"\n",
4726       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
4727       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
4728       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
4729       "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
4730       "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
4731       "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
4732       "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4733       "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
4734       "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
4735       "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
4736       "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4737       "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
4738       "<text text-anchor=\"start\" x=\"182.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 4]</text>\n",
4739       "<!-- I -->\n",
4740       "<!-- 0 -->\n",
4741       "<g id=\"node2\" class=\"node\">\n",
4742       "<title>0</title>\n",
4743       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
4744       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4745       "</g>\n",
4746       "<!-- I&#45;&gt;0 -->\n",
4747       "<g id=\"edge1\" class=\"edge\">\n",
4748       "<title>I&#45;&gt;0</title>\n",
4749       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
4750       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
4751       "</g>\n",
4752       "<!-- 2 -->\n",
4753       "<g id=\"node3\" class=\"node\">\n",
4754       "<title>2</title>\n",
4755       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
4756       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4757       "</g>\n",
4758       "<!-- 0&#45;&gt;2 -->\n",
4759       "<g id=\"edge2\" class=\"edge\">\n",
4760       "<title>0&#45;&gt;2</title>\n",
4761       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
4762       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
4763       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4764       "</g>\n",
4765       "<!-- 3 -->\n",
4766       "<g id=\"node4\" class=\"node\">\n",
4767       "<title>3</title>\n",
4768       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
4769       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
4770       "</g>\n",
4771       "<!-- 0&#45;&gt;3 -->\n",
4772       "<g id=\"edge3\" class=\"edge\">\n",
4773       "<title>0&#45;&gt;3</title>\n",
4774       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
4775       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
4776       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4777       "</g>\n",
4778       "<!-- 1 -->\n",
4779       "<g id=\"node5\" class=\"node\">\n",
4780       "<title>1</title>\n",
4781       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
4782       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
4783       "</g>\n",
4784       "<!-- 2&#45;&gt;1 -->\n",
4785       "<g id=\"edge6\" class=\"edge\">\n",
4786       "<title>2&#45;&gt;1</title>\n",
4787       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
4788       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
4789       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4790       "</g>\n",
4791       "<!-- 3&#45;&gt;0 -->\n",
4792       "<g id=\"edge8\" class=\"edge\">\n",
4793       "<title>3&#45;&gt;0</title>\n",
4794       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
4795       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
4796       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
4797       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4798       "</g>\n",
4799       "<!-- 3&#45;&gt;2 -->\n",
4800       "<g id=\"edge7\" class=\"edge\">\n",
4801       "<title>3&#45;&gt;2</title>\n",
4802       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
4803       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
4804       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4805       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
4806       "</g>\n",
4807       "<!-- 3&#45;&gt;3 -->\n",
4808       "<g id=\"edge9\" class=\"edge\">\n",
4809       "<title>3&#45;&gt;3</title>\n",
4810       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
4811       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
4812       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4813       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4814       "</g>\n",
4815       "<!-- 1&#45;&gt;0 -->\n",
4816       "<g id=\"edge4\" class=\"edge\">\n",
4817       "<title>1&#45;&gt;0</title>\n",
4818       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
4819       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
4820       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4821       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4822       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4823       "</g>\n",
4824       "<!-- 1&#45;&gt;2 -->\n",
4825       "<g id=\"edge5\" class=\"edge\">\n",
4826       "<title>1&#45;&gt;2</title>\n",
4827       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
4828       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
4829       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4830       "</g>\n",
4831       "</g>\n",
4832       "</svg>\n",
4833       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
4834       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
4835       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
4836       "<!-- Generated by graphviz version 2.43.0 (0)\n",
4837       " -->\n",
4838       "<!-- Pages: 1 -->\n",
4839       "<svg width=\"490pt\" height=\"172pt\"\n",
4840       " viewBox=\"0.00 0.00 490.00 172.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
4841       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 168)\">\n",
4842       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-168 486,-168 486,4 -4,4\"/>\n",
4843       "<text text-anchor=\"start\" x=\"190.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
4844       "<text text-anchor=\"start\" x=\"213.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
4845       "<text text-anchor=\"start\" x=\"229.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
4846       "<text text-anchor=\"start\" x=\"271.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4847       "<text text-anchor=\"start\" x=\"287.5\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
4848       "<text text-anchor=\"start\" x=\"182.5\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 2]</text>\n",
4849       "<!-- I -->\n",
4850       "<!-- 0 -->\n",
4851       "<g id=\"node2\" class=\"node\">\n",
4852       "<title>0</title>\n",
4853       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-53\" rx=\"18\" ry=\"18\"/>\n",
4854       "<text text-anchor=\"middle\" x=\"56\" y=\"-49.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4855       "</g>\n",
4856       "<!-- I&#45;&gt;0 -->\n",
4857       "<g id=\"edge1\" class=\"edge\">\n",
4858       "<title>I&#45;&gt;0</title>\n",
4859       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-53C2.79,-53 17.15,-53 30.63,-53\"/>\n",
4860       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-53 30.94,-56.15 34.44,-53 30.94,-53 30.94,-53 30.94,-53 34.44,-53 30.94,-49.85 37.94,-53 37.94,-53\"/>\n",
4861       "</g>\n",
4862       "<!-- 2 -->\n",
4863       "<g id=\"node3\" class=\"node\">\n",
4864       "<title>2</title>\n",
4865       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-54\" rx=\"18\" ry=\"18\"/>\n",
4866       "<text text-anchor=\"middle\" x=\"335\" y=\"-50.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4867       "</g>\n",
4868       "<!-- 0&#45;&gt;2 -->\n",
4869       "<g id=\"edge2\" class=\"edge\">\n",
4870       "<title>0&#45;&gt;2</title>\n",
4871       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-64.48C76.33,-69.68 84.24,-75.64 92,-80 123.14,-97.55 131.87,-102.45 167,-109 225.87,-119.99 246.74,-111.24 299,-82 304.66,-78.84 310.35,-74.76 315.44,-70.71\"/>\n",
4872       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-66.01 317.73,-72.9 318.42,-68.24 315.72,-70.48 315.72,-70.48 315.72,-70.48 318.42,-68.24 313.71,-68.05 321.11,-66.01 321.11,-66.01\"/>\n",
4873       "<text text-anchor=\"start\" x=\"167\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4874       "</g>\n",
4875       "<!-- 3 -->\n",
4876       "<g id=\"node4\" class=\"node\">\n",
4877       "<title>3</title>\n",
4878       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-34\" rx=\"18\" ry=\"18\"/>\n",
4879       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-30.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
4880       "</g>\n",
4881       "<!-- 0&#45;&gt;3 -->\n",
4882       "<g id=\"edge3\" class=\"edge\">\n",
4883       "<title>0&#45;&gt;3</title>\n",
4884       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-56.86C92.57,-60.44 123.38,-64.35 149,-58 157.5,-55.9 166.15,-51.89 173.61,-47.74\"/>\n",
4885       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-43.94 175.63,-50.21 177.05,-45.72 174.04,-47.49 174.04,-47.49 174.04,-47.49 177.05,-45.72 172.44,-44.77 180.07,-43.94 180.07,-43.94\"/>\n",
4886       "<text text-anchor=\"start\" x=\"92\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4887       "</g>\n",
4888       "<!-- 1 -->\n",
4889       "<g id=\"node5\" class=\"node\">\n",
4890       "<title>1</title>\n",
4891       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-21\" rx=\"18\" ry=\"18\"/>\n",
4892       "<text text-anchor=\"middle\" x=\"464\" y=\"-17.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
4893       "</g>\n",
4894       "<!-- 2&#45;&gt;1 -->\n",
4895       "<g id=\"edge6\" class=\"edge\">\n",
4896       "<title>2&#45;&gt;1</title>\n",
4897       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-52.15C371.61,-49.8 402.44,-45.07 428,-37 432.35,-35.63 436.87,-33.85 441.15,-31.98\"/>\n",
4898       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-29.02 442.59,-34.79 444.46,-30.47 441.28,-31.93 441.28,-31.93 441.28,-31.93 444.46,-30.47 439.97,-29.06 447.64,-29.02 447.64,-29.02\"/>\n",
4899       "<text text-anchor=\"start\" x=\"373\" y=\"-52.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4900       "</g>\n",
4901       "<!-- 3&#45;&gt;0 -->\n",
4902       "<g id=\"edge8\" class=\"edge\">\n",
4903       "<title>3&#45;&gt;0</title>\n",
4904       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-28.22C157.68,-21.77 121.1,-13.52 92,-24 85.46,-26.36 79.27,-30.53 73.97,-34.99\"/>\n",
4905       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-39.87 71.67,-32.83 71.19,-37.51 73.78,-35.16 73.78,-35.16 73.78,-35.16 71.19,-37.51 75.9,-37.5 68.6,-39.87 68.6,-39.87\"/>\n",
4906       "<text text-anchor=\"start\" x=\"94\" y=\"-42.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
4907       "<text text-anchor=\"start\" x=\"112.5\" y=\"-27.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4908       "</g>\n",
4909       "<!-- 3&#45;&gt;2 -->\n",
4910       "<g id=\"edge7\" class=\"edge\">\n",
4911       "<title>3&#45;&gt;2</title>\n",
4912       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-36.46C237.59,-39.98 282.36,-46.49 310.02,-50.52\"/>\n",
4913       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-51.53 309.62,-53.64 313.54,-51.03 310.07,-50.52 310.07,-50.52 310.07,-50.52 313.54,-51.03 310.53,-47.41 317,-51.53 317,-51.53\"/>\n",
4914       "<text text-anchor=\"start\" x=\"242\" y=\"-66.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4915       "<text text-anchor=\"start\" x=\"262.5\" y=\"-51.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
4916       "</g>\n",
4917       "<!-- 3&#45;&gt;3 -->\n",
4918       "<g id=\"edge9\" class=\"edge\">\n",
4919       "<title>3&#45;&gt;3</title>\n",
4920       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-47.67C178.81,-58.66 182.78,-70 195.5,-70 205.44,-70 210.04,-63.08 209.3,-54.81\"/>\n",
4921       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-47.67 212.25,-53.64 208.31,-51.06 209.2,-54.44 209.2,-54.44 209.2,-54.44 208.31,-51.06 206.15,-55.24 207.42,-47.67 207.42,-47.67\"/>\n",
4922       "<text text-anchor=\"start\" x=\"169\" y=\"-88.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4923       "<text text-anchor=\"start\" x=\"187.5\" y=\"-73.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4924       "</g>\n",
4925       "<!-- 1&#45;&gt;0 -->\n",
4926       "<g id=\"edge4\" class=\"edge\">\n",
4927       "<title>1&#45;&gt;0</title>\n",
4928       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-15.47C440.95,-13.72 434.24,-11.98 428,-11 313.37,6.87 282.89,-1.61 167,-7 133.56,-8.56 121.91,1.04 92,-14 83.75,-18.16 76.53,-25.15 70.83,-32.08\"/>\n",
4929       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-37.83 68.19,-30.36 68.55,-35.05 70.68,-32.28 70.68,-32.28 70.68,-32.28 68.55,-35.05 73.18,-34.2 66.41,-37.83 66.41,-37.83\"/>\n",
4930       "<text text-anchor=\"start\" x=\"244\" y=\"-20.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
4931       "<text text-anchor=\"start\" x=\"262.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4932       "</g>\n",
4933       "<!-- 1&#45;&gt;2 -->\n",
4934       "<g id=\"edge5\" class=\"edge\">\n",
4935       "<title>1&#45;&gt;2</title>\n",
4936       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-17.68C427.03,-14.74 395.67,-12.27 371,-22 363.88,-24.81 357.31,-29.81 351.84,-35.02\"/>\n",
4937       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-40.24 349.38,-33.03 349.19,-37.74 351.63,-35.23 351.63,-35.23 351.63,-35.23 349.19,-37.74 353.89,-37.43 346.75,-40.24 346.75,-40.24\"/>\n",
4938       "<text text-anchor=\"start\" x=\"371\" y=\"-25.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4939       "</g>\n",
4940       "</g>\n",
4941       "</svg>\n",
4942       "</div>"
4943      ],
4944      "text/plain": [
4945       "<IPython.core.display.HTML object>"
4946      ]
4947     },
4948     "metadata": {},
4949     "output_type": "display_data"
4950    },
4951    {
4952     "data": {
4953      "text/html": [
4954       "<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
4955       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
4956       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
4957       "<!-- Generated by graphviz version 2.43.0 (0)\n",
4958       " -->\n",
4959       "<!-- Pages: 1 -->\n",
4960       "<svg width=\"490pt\" height=\"169pt\"\n",
4961       " viewBox=\"0.00 0.00 490.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
4962       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 165)\">\n",
4963       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-165 486,-165 486,4 -4,4\"/>\n",
4964       "<text text-anchor=\"start\" x=\"126.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
4965       "<text text-anchor=\"start\" x=\"149.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
4966       "<text text-anchor=\"start\" x=\"165.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
4967       "<text text-anchor=\"start\" x=\"211.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
4968       "<text text-anchor=\"start\" x=\"227.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) | (Fin(</text>\n",
4969       "<text text-anchor=\"start\" x=\"269.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
4970       "<text text-anchor=\"start\" x=\"285.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
4971       "<text text-anchor=\"start\" x=\"327.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
4972       "<text text-anchor=\"start\" x=\"343.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">)))</text>\n",
4973       "<text text-anchor=\"start\" x=\"182.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max even 4]</text>\n",
4974       "<!-- I -->\n",
4975       "<!-- 0 -->\n",
4976       "<g id=\"node2\" class=\"node\">\n",
4977       "<title>0</title>\n",
4978       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
4979       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
4980       "</g>\n",
4981       "<!-- I&#45;&gt;0 -->\n",
4982       "<g id=\"edge1\" class=\"edge\">\n",
4983       "<title>I&#45;&gt;0</title>\n",
4984       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
4985       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
4986       "</g>\n",
4987       "<!-- 2 -->\n",
4988       "<g id=\"node3\" class=\"node\">\n",
4989       "<title>2</title>\n",
4990       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
4991       "<text text-anchor=\"middle\" x=\"335\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
4992       "</g>\n",
4993       "<!-- 0&#45;&gt;2 -->\n",
4994       "<g id=\"edge2\" class=\"edge\">\n",
4995       "<title>0&#45;&gt;2</title>\n",
4996       "<path fill=\"none\" stroke=\"black\" d=\"M69.99,-61.47C76.33,-66.68 84.24,-72.63 92,-77 123.14,-94.54 131.87,-99.44 167,-106 225.87,-116.98 246.74,-108.24 299,-79 304.66,-75.83 310.35,-71.76 315.44,-67.7\"/>\n",
4997       "<polygon fill=\"black\" stroke=\"black\" points=\"321.11,-63.01 317.73,-69.9 318.42,-65.24 315.72,-67.47 315.72,-67.47 315.72,-67.47 318.42,-65.24 313.71,-65.05 321.11,-63.01 321.11,-63.01\"/>\n",
4998       "<text text-anchor=\"start\" x=\"167\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
4999       "</g>\n",
5000       "<!-- 3 -->\n",
5001       "<g id=\"node4\" class=\"node\">\n",
5002       "<title>3</title>\n",
5003       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
5004       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
5005       "</g>\n",
5006       "<!-- 0&#45;&gt;3 -->\n",
5007       "<g id=\"edge3\" class=\"edge\">\n",
5008       "<title>0&#45;&gt;3</title>\n",
5009       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
5010       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
5011       "<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
5012       "</g>\n",
5013       "<!-- 1 -->\n",
5014       "<g id=\"node5\" class=\"node\">\n",
5015       "<title>1</title>\n",
5016       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
5017       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
5018       "</g>\n",
5019       "<!-- 2&#45;&gt;1 -->\n",
5020       "<g id=\"edge6\" class=\"edge\">\n",
5021       "<title>2&#45;&gt;1</title>\n",
5022       "<path fill=\"none\" stroke=\"black\" d=\"M352.92,-49.14C371.61,-46.8 402.44,-42.07 428,-34 432.35,-32.63 436.87,-30.85 441.15,-28.98\"/>\n",
5023       "<polygon fill=\"black\" stroke=\"black\" points=\"447.64,-26.01 442.59,-31.79 444.46,-27.47 441.28,-28.92 441.28,-28.92 441.28,-28.92 444.46,-27.47 439.97,-26.06 447.64,-26.01 447.64,-26.01\"/>\n",
5024       "<text text-anchor=\"start\" x=\"373\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
5025       "</g>\n",
5026       "<!-- 3&#45;&gt;0 -->\n",
5027       "<g id=\"edge8\" class=\"edge\">\n",
5028       "<title>3&#45;&gt;0</title>\n",
5029       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
5030       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
5031       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
5032       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
5033       "</g>\n",
5034       "<!-- 3&#45;&gt;2 -->\n",
5035       "<g id=\"edge7\" class=\"edge\">\n",
5036       "<title>3&#45;&gt;2</title>\n",
5037       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-33.45C237.59,-36.98 282.36,-43.49 310.02,-47.51\"/>\n",
5038       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-48.53 309.62,-50.64 313.54,-48.02 310.07,-47.52 310.07,-47.52 310.07,-47.52 313.54,-48.02 310.53,-44.4 317,-48.53 317,-48.53\"/>\n",
5039       "<text text-anchor=\"start\" x=\"242\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
5040       "<text text-anchor=\"start\" x=\"262.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
5041       "</g>\n",
5042       "<!-- 3&#45;&gt;3 -->\n",
5043       "<g id=\"edge9\" class=\"edge\">\n",
5044       "<title>3&#45;&gt;3</title>\n",
5045       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
5046       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
5047       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
5048       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
5049       "</g>\n",
5050       "<!-- 1&#45;&gt;0 -->\n",
5051       "<g id=\"edge4\" class=\"edge\">\n",
5052       "<title>1&#45;&gt;0</title>\n",
5053       "<path fill=\"none\" stroke=\"black\" d=\"M446.81,-12.43C440.96,-10.67 434.25,-8.94 428,-8 386.76,-1.81 239.1,-0.64 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
5054       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
5055       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
5056       "<text text-anchor=\"start\" x=\"254.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
5057       "<text text-anchor=\"start\" x=\"270.5\" y=\"-5.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
5058       "</g>\n",
5059       "<!-- 1&#45;&gt;2 -->\n",
5060       "<g id=\"edge5\" class=\"edge\">\n",
5061       "<title>1&#45;&gt;2</title>\n",
5062       "<path fill=\"none\" stroke=\"black\" d=\"M446.03,-14.68C427.03,-11.74 395.67,-9.27 371,-19 363.88,-21.81 357.31,-26.8 351.84,-32.02\"/>\n",
5063       "<polygon fill=\"black\" stroke=\"black\" points=\"346.75,-37.24 349.38,-30.03 349.19,-34.73 351.63,-32.23 351.63,-32.23 351.63,-32.23 349.19,-34.73 353.89,-34.43 346.75,-37.24 346.75,-37.24\"/>\n",
5064       "<text text-anchor=\"start\" x=\"371\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
5065       "</g>\n",
5066       "</g>\n",
5067       "</svg>\n",
5068       "</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
5069       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
5070       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
5071       "<!-- Generated by graphviz version 2.43.0 (0)\n",
5072       " -->\n",
5073       "<!-- Pages: 1 -->\n",
5074       "<svg width=\"490pt\" height=\"183pt\"\n",
5075       " viewBox=\"0.00 0.00 490.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
5076       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 179)\">\n",
5077       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-179 486,-179 486,4 -4,4\"/>\n",
5078       "<text text-anchor=\"start\" x=\"159.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
5079       "<text text-anchor=\"start\" x=\"182.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
5080       "<text text-anchor=\"start\" x=\"198.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; (Inf(</text>\n",
5081       "<text text-anchor=\"start\" x=\"244.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
5082       "<text text-anchor=\"start\" x=\"260.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">) | Fin(</text>\n",
5083       "<text text-anchor=\"start\" x=\"298.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
5084       "<text text-anchor=\"start\" x=\"314.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\">))</text>\n",
5085       "<text text-anchor=\"start\" x=\"185.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">[parity max odd 3]</text>\n",
5086       "<!-- I -->\n",
5087       "<!-- 0 -->\n",
5088       "<g id=\"node2\" class=\"node\">\n",
5089       "<title>0</title>\n",
5090       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
5091       "<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
5092       "</g>\n",
5093       "<!-- I&#45;&gt;0 -->\n",
5094       "<g id=\"edge1\" class=\"edge\">\n",
5095       "<title>I&#45;&gt;0</title>\n",
5096       "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-50C2.79,-50 17.15,-50 30.63,-50\"/>\n",
5097       "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-50 30.94,-53.15 34.44,-50 30.94,-50 30.94,-50 30.94,-50 34.44,-50 30.94,-46.85 37.94,-50 37.94,-50\"/>\n",
5098       "</g>\n",
5099       "<!-- 2 -->\n",
5100       "<g id=\"node3\" class=\"node\">\n",
5101       "<title>2</title>\n",
5102       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"335\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
5103       "<text text-anchor=\"middle\" x=\"335\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
5104       "</g>\n",
5105       "<!-- 0&#45;&gt;2 -->\n",
5106       "<g id=\"edge2\" class=\"edge\">\n",
5107       "<title>0&#45;&gt;2</title>\n",
5108       "<path fill=\"none\" stroke=\"black\" d=\"M65.79,-65.14C71.95,-74.36 81.03,-85.57 92,-92 121.25,-109.15 133.24,-102.88 167,-106 226.02,-111.46 245.23,-111.93 299,-87 304.43,-84.48 309.89,-81.09 314.83,-77.62\"/>\n",
5109       "<polygon fill=\"black\" stroke=\"black\" points=\"320.77,-73.24 317.01,-79.93 317.95,-75.32 315.14,-77.39 315.14,-77.39 315.14,-77.39 317.95,-75.32 313.27,-74.86 320.77,-73.24 320.77,-73.24\"/>\n",
5110       "<text text-anchor=\"start\" x=\"167\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
5111       "<text text-anchor=\"start\" x=\"187.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
5112       "</g>\n",
5113       "<!-- 3 -->\n",
5114       "<g id=\"node4\" class=\"node\">\n",
5115       "<title>3</title>\n",
5116       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"195.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
5117       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
5118       "</g>\n",
5119       "<!-- 0&#45;&gt;3 -->\n",
5120       "<g id=\"edge3\" class=\"edge\">\n",
5121       "<title>0&#45;&gt;3</title>\n",
5122       "<path fill=\"none\" stroke=\"black\" d=\"M73.9,-53.85C92.57,-57.43 123.38,-61.34 149,-55 157.5,-52.9 166.15,-48.89 173.61,-44.74\"/>\n",
5123       "<polygon fill=\"black\" stroke=\"black\" points=\"180.07,-40.94 175.63,-47.2 177.05,-42.71 174.04,-44.49 174.04,-44.49 174.04,-44.49 177.05,-42.71 172.44,-41.77 180.07,-40.94 180.07,-40.94\"/>\n",
5124       "<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
5125       "<text text-anchor=\"start\" x=\"112.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
5126       "</g>\n",
5127       "<!-- 1 -->\n",
5128       "<g id=\"node5\" class=\"node\">\n",
5129       "<title>1</title>\n",
5130       "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"464\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
5131       "<text text-anchor=\"middle\" x=\"464\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
5132       "</g>\n",
5133       "<!-- 2&#45;&gt;1 -->\n",
5134       "<g id=\"edge6\" class=\"edge\">\n",
5135       "<title>2&#45;&gt;1</title>\n",
5136       "<path fill=\"none\" stroke=\"black\" d=\"M353.1,-62.47C372.22,-62.36 403.69,-60.23 428,-49 434.74,-45.89 441.14,-41.04 446.57,-36.09\"/>\n",
5137       "<polygon fill=\"black\" stroke=\"black\" points=\"451.66,-31.18 448.81,-38.31 449.14,-33.61 446.63,-36.04 446.63,-36.04 446.63,-36.04 449.14,-33.61 444.44,-33.77 451.66,-31.18 451.66,-31.18\"/>\n",
5138       "<text text-anchor=\"start\" x=\"373\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
5139       "<text text-anchor=\"start\" x=\"391.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
5140       "</g>\n",
5141       "<!-- 3&#45;&gt;0 -->\n",
5142       "<g id=\"edge8\" class=\"edge\">\n",
5143       "<title>3&#45;&gt;0</title>\n",
5144       "<path fill=\"none\" stroke=\"black\" d=\"M178.34,-25.22C157.68,-18.77 121.1,-10.51 92,-21 85.46,-23.36 79.27,-27.53 73.97,-31.99\"/>\n",
5145       "<polygon fill=\"black\" stroke=\"black\" points=\"68.6,-36.86 71.67,-29.83 71.19,-34.51 73.78,-32.16 73.78,-32.16 73.78,-32.16 71.19,-34.51 75.9,-34.49 68.6,-36.86 68.6,-36.86\"/>\n",
5146       "<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\">p0 &amp; !p1</text>\n",
5147       "<text text-anchor=\"start\" x=\"112.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
5148       "</g>\n",
5149       "<!-- 3&#45;&gt;2 -->\n",
5150       "<g id=\"edge7\" class=\"edge\">\n",
5151       "<title>3&#45;&gt;2</title>\n",
5152       "<path fill=\"none\" stroke=\"black\" d=\"M213.36,-34.8C237.59,-40.26 282.36,-50.36 310.02,-56.59\"/>\n",
5153       "<polygon fill=\"black\" stroke=\"black\" points=\"317,-58.17 309.48,-59.7 313.59,-57.4 310.17,-56.63 310.17,-56.63 310.17,-56.63 313.59,-57.4 310.87,-53.56 317,-58.17 317,-58.17\"/>\n",
5154       "<text text-anchor=\"start\" x=\"242\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
5155       "<text text-anchor=\"start\" x=\"262.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
5156       "</g>\n",
5157       "<!-- 3&#45;&gt;3 -->\n",
5158       "<g id=\"edge9\" class=\"edge\">\n",
5159       "<title>3&#45;&gt;3</title>\n",
5160       "<path fill=\"none\" stroke=\"black\" d=\"M183.58,-44.67C178.81,-55.66 182.78,-67 195.5,-67 205.44,-67 210.04,-60.08 209.3,-51.81\"/>\n",
5161       "<polygon fill=\"black\" stroke=\"black\" points=\"207.42,-44.67 212.25,-50.64 208.31,-48.05 209.2,-51.44 209.2,-51.44 209.2,-51.44 208.31,-48.05 206.15,-52.24 207.42,-44.67 207.42,-44.67\"/>\n",
5162       "<text text-anchor=\"start\" x=\"169\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
5163       "<text text-anchor=\"start\" x=\"187.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
5164       "</g>\n",
5165       "<!-- 1&#45;&gt;0 -->\n",
5166       "<g id=\"edge4\" class=\"edge\">\n",
5167       "<title>1&#45;&gt;0</title>\n",
5168       "<path fill=\"none\" stroke=\"black\" d=\"M447.25,-11.4C441.33,-9.24 434.46,-7.11 428,-6 377.52,2.67 236.49,-0.76 167,-4 133.56,-5.56 121.91,4.05 92,-11 83.75,-15.15 76.53,-22.15 70.83,-29.08\"/>\n",
5169       "<polygon fill=\"black\" stroke=\"black\" points=\"66.41,-34.82 68.19,-27.35 68.55,-32.05 70.68,-29.27 70.68,-29.27 70.68,-29.27 68.55,-32.05 73.18,-31.2 66.41,-34.82 66.41,-34.82\"/>\n",
5170       "<text text-anchor=\"start\" x=\"244\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; p1</text>\n",
5171       "<text text-anchor=\"start\" x=\"262.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
5172       "</g>\n",
5173       "<!-- 1&#45;&gt;2 -->\n",
5174       "<g id=\"edge5\" class=\"edge\">\n",
5175       "<title>1&#45;&gt;2</title>\n",
5176       "<path fill=\"none\" stroke=\"black\" d=\"M446.09,-14.08C426.86,-10.52 395.03,-7.42 371,-19 361.6,-23.53 353.89,-31.93 348.12,-40.11\"/>\n",
5177       "<polygon fill=\"black\" stroke=\"black\" points=\"344.09,-46.26 345.29,-38.68 346.01,-43.33 347.93,-40.41 347.93,-40.41 347.93,-40.41 346.01,-43.33 350.56,-42.13 344.09,-46.26 344.09,-46.26\"/>\n",
5178       "<text text-anchor=\"start\" x=\"371\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\">!p0 &amp; !p1</text>\n",
5179       "<text text-anchor=\"start\" x=\"391.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
5180       "</g>\n",
5181       "</g>\n",
5182       "</svg>\n",
5183       "</div>"
5184      ],
5185      "text/plain": [
5186       "<IPython.core.display.HTML object>"
5187      ]
5188     },
5189     "metadata": {},
5190     "output_type": "display_data"
5191    }
5192   ],
5193   "source": [
5194    "display2(maxeven4, spot.reduce_parity(maxeven4))\n",
5195    "display2(maxeven4, spot.reduce_parity(maxeven4, True))"
5196   ]
5197  }
5198 ],
5199 "metadata": {
5200  "kernelspec": {
5201   "display_name": "Python 3",
5202   "language": "python",
5203   "name": "python3"
5204  },
5205  "language_info": {
5206   "codemirror_mode": {
5207    "name": "ipython",
5208    "version": 3
5209   },
5210   "file_extension": ".py",
5211   "mimetype": "text/x-python",
5212   "name": "python",
5213   "nbconvert_exporter": "python",
5214   "pygments_lexer": "ipython3",
5215   "version": "3.8.2"
5216  }
5217 },
5218 "nbformat": 4,
5219 "nbformat_minor": 2
5220}
5221