spot/tests/python/parity.ipynb
Alexandre Duret-Lutz ebfa3a377a parity: introduce reduce_parity()
* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here.
* tests/core/parity.cc: Add test case.
* tests/python/parity.ipynb, NEWS: More documentation.
2019-06-12 22:05:02 +02:00

5220 lines
410 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import spot\n",
"spot.setup()\n",
"from spot.jupyter import display_inline\n",
"def display2(*args):\n",
" display_inline(*args, per_row=2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Definitions and examples for parity acceptance"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In Spot a **parity acceptance** is defined by a **kind**, a **style** and a **numsets**:\n",
"+ The **kind** can be either **max** or **min**.\n",
"+ The **style** can be either **odd** or **even**.\n",
"+ The **numsets** is the number of acceptance sets (a.k.a. colors) used by the parity acceptance.\n",
" \n",
"Here are some examples:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"parity min odd 1 = Fin(0)\n",
"parity min odd 2 = Fin(0) & Inf(1)\n",
"parity min odd 3 = Fin(0) & (Inf(1) | Fin(2))\n",
"parity min odd 4 = Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))\n",
"parity min even 1 = Inf(0)\n",
"parity min even 2 = Inf(0) | Fin(1)\n",
"parity min even 3 = Inf(0) | (Fin(1) & Inf(2))\n",
"parity min even 4 = Inf(0) | (Fin(1) & (Inf(2) | Fin(3)))\n",
"parity max odd 1 = Fin(0)\n",
"parity max odd 2 = Inf(1) | Fin(0)\n",
"parity max odd 3 = Fin(2) & (Inf(1) | Fin(0))\n",
"parity max odd 4 = Inf(3) | (Fin(2) & (Inf(1) | Fin(0)))\n",
"parity max even 1 = Inf(0)\n",
"parity max even 2 = Fin(1) & Inf(0)\n",
"parity max even 3 = Inf(2) | (Fin(1) & Inf(0))\n",
"parity max even 4 = Fin(3) & (Inf(2) | (Fin(1) & Inf(0)))\n"
]
}
],
"source": [
"for kind in ['min', 'max']:\n",
" for style in ['odd', 'even']:\n",
" for sets in range(1, 5):\n",
" name = 'parity {} {} {}'.format(kind, style, sets)\n",
" print('{:17} = {}'.format(name, spot.acc_code(name)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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",
"\n",
"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*."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Generate a few random automata for the upcoming examples.\n",
"maxodd4, maxodd5, minodd4, minodd5, maxeven4 = spot.automata(\"\"\"\n",
"randaut -A 'parity max odd 4' -Q4 -e.4 2;\n",
"randaut -A 'parity max odd 5' -Q4 -e.4 2;\n",
"randaut -A 'parity min odd 4' -Q4 -e.4 2;\n",
"randaut -A 'parity min odd 5' -Q4 -e.4 2;\n",
"randaut -A 'parity max even 4' -Q4 -e.4 2|\"\"\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Testing parity and colored\n",
"\n",
"`is_parity()` is a method of `spot.acc_cond` that returns three Boolean values: \n",
"1. whether the condition is a parity condition,\n",
"2. whether it has `max` kind,\n",
"3. whether it has `odd` style."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[True, True, True]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"maxodd4.acc().is_parity()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[True, True, False]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"maxeven4.acc().is_parity()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[True, False, True]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"minodd5.acc().is_parity()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))\n"
]
}
],
"source": [
"print(spot.acc_code(\"parity min odd 4\"))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[False, False, True]\n"
]
}
],
"source": [
"testacc = spot.acc_cond(\"(Fin(0) & Inf(1)) | (Fin(0) & Fin(2) & Inf(3))\")\n",
"print(testacc.is_parity())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To test logical equivalence to a Parity condition, pass a `True` argument to `is_parity()`."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[True, False, True]\n"
]
}
],
"source": [
"print(testacc.is_parity(True))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"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."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.is_colored(minodd4)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.is_colored(spot.colorize_parity(minodd4)) # See below for `colorize_parity()`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Functions for altering automata with parity acceptance\n",
"\n",
"- [`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",
"- [`colorize_parity()`](#Colorize-parity) transforms an automaton with parity acceptance into a colored automaton with parity acceptance (a.k.a., parity automaton).\n",
"- [`cleanup_parity()`](#Cleanup-parity) remove from the acceptance condition colors that are unused in the automaton, while keeping it a parity acceptance.\n",
"- [`reduce_parity()`](#Reduce-parity) minimize the number of colors used in the automaton, producing the smallest parity acceptance condition possible for this automaton."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Change parity\n",
"\n",
"This section describes the `change_parity()` method, that allows switching between different kinds and styles.\n",
"Its takes three arguments:\n",
"1. the automaton to modify\n",
"2. the desired kind (`spot.parity_kind_any`, `spot.parity_kind_same`, `spot.parity_kind_max`, `spot.parity_kind_min`)\n",
"3. the desired style (`spot.parity_style_any`, `spot.parity_style_same`, `spot.parity_style_odd`, `spot.parity_style_even`)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Changing the **style**\n",
"\n",
"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",
"\n",
"When the acceptance is a parity `max`, all the transitions that do not belong to any acceptance set will have the new color.\n",
"\n",
"### max odd 5 → max even 6"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"525pt\" height=\"189pt\"\n",
" viewBox=\"0.00 0.00 525.00 188.94\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184.945)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184.945 521,-184.945 521,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"109.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"197.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"213.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"272.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"319.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"335.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"375.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"391.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-152.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-24.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-24.945C4.178,-24.945 17.9448,-24.945 30.9241,-24.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-24.945 30.9808,-28.0951 34.4807,-24.945 30.9807,-24.9451 30.9807,-24.9451 30.9807,-24.9451 34.4807,-24.945 30.9807,-21.7951 37.9807,-24.945 37.9807,-24.945\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196.5\" cy=\"-92.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196.5\" y=\"-89.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.3921,-32.8785C97.4557,-45.0089 145.3776,-68.2024 173.7796,-81.9486\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.2123,-85.062 172.5392,-84.8478 177.0619,-83.5372 173.9115,-82.0124 173.9115,-82.0124 173.9115,-82.0124 177.0619,-83.5372 175.2838,-79.177 180.2123,-85.062 180.2123,-85.062\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-72.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.5991,-20.7462C113.957,-11.7044 216.2243,7.8682 301,-3.945 362.4542,-12.5084 431.9524,-35.9424 467.4246,-48.9484\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"474.0528,-51.4031 466.3945,-51.926 470.7707,-50.1876 467.4885,-48.972 467.4885,-48.972 467.4885,-48.972 470.7707,-50.1876 468.5825,-46.0181 474.0528,-51.4031 474.0528,-51.4031\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-22.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-7.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.5762,-106.612C179.8066,-117.6012 183.7813,-128.945 196.5,-128.945 206.4365,-128.945 211.036,-122.0213 210.2986,-113.7521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"208.4238,-106.612 213.2483,-112.5825 209.3127,-109.9972 210.2016,-113.3825 210.2016,-113.3825 210.2016,-113.3825 209.3127,-109.9972 207.1549,-114.1825 208.4238,-106.612 208.4238,-106.612\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-132.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.4212,-90.4954C235.3723,-87.4459 271.0025,-81.6807 301,-73.945 308.8705,-71.9153 317.3213,-69.2367 324.881,-66.6529\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.531,-64.3281 325.9627,-69.6118 328.227,-65.4832 324.9231,-66.6383 324.9231,-66.6383 324.9231,-66.6383 328.227,-65.4832 323.8835,-63.6648 331.531,-64.3281 331.531,-64.3281\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-102.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"247.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"279.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.4643,-72.3208C473.0199,-79.3597 464.4031,-87.2993 455,-91.945 392.833,-122.6592 370.1161,-111.3714 301,-116.945 274.8626,-119.0527 267.4538,-123.2466 242,-116.945 233.7697,-114.9074 225.3863,-111.0804 218.0951,-107.0714\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"211.742,-103.3846 219.3775,-104.1736 214.7692,-105.1413 217.7964,-106.8981 217.7964,-106.8981 217.7964,-106.8981 214.7692,-105.1413 216.2154,-109.6226 211.742,-103.3846 211.742,-103.3846\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-133.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"340.5\" y=\"-118.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M480.292,-72.7366C476.8057,-83.3615 480.375,-93.945 491,-93.945 499.1348,-93.945 503.1336,-87.7411 502.9966,-80.0647\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.708,-72.7366 506.0228,-79.0853 502.3142,-76.1837 502.9204,-79.6309 502.9204,-79.6309 502.9204,-79.6309 502.3142,-76.1837 499.818,-80.1764 501.708,-72.7366 501.708,-72.7366\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-111.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"475\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"491\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.4998,-53.9212C321.6379,-52.0001 310.7817,-49.7355 301,-47.945 266.9308,-41.7085 258.426,-39.7469 224,-35.945 173.4918,-30.367 114.1052,-27.292 81.1926,-25.893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.1947,-25.6039 81.3188,-22.7456 77.6917,-25.7484 81.1887,-25.8929 81.1887,-25.8929 81.1887,-25.8929 77.6917,-25.7484 81.0587,-29.0402 74.1947,-25.6039 74.1947,-25.6039\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-54.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-39.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.6016,-54.8038C308.9744,-51.749 271.7825,-48.8911 242,-58.945 232.0233,-62.3129 222.4532,-68.7866 214.6862,-75.1893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.1214,-80.019 212.3433,-73.0518 211.7647,-77.7249 214.408,-75.4307 214.408,-75.4307 214.408,-75.4307 211.7647,-77.7249 216.4727,-77.8097 209.1214,-80.019 209.1214,-80.019\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-62.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.5477,-57.945C391.5722,-57.945 436.9394,-57.945 465.439,-57.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.6487,-57.945 465.6488,-61.0951 469.1487,-57.945 465.6487,-57.9451 465.6487,-57.9451 465.6487,-57.9451 469.1487,-57.945 465.6487,-54.7951 472.6487,-57.945 472.6487,-57.945\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-76.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"417.5\" y=\"-61.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"525pt\" height=\"211pt\"\n",
" viewBox=\"0.00 0.00 525.00 210.94\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 206.945)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-206.945 521,-206.945 521,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"77\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"102\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"<text text-anchor=\"start\" x=\"118\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"224\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"240\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"287\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"303\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"405\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"421\" y=\"-188.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))))</text>\n",
"<text text-anchor=\"start\" x=\"198\" y=\"-174.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 6]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-24.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-24.945C4.178,-24.945 17.9448,-24.945 30.9241,-24.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-24.945 30.9808,-28.0951 34.4807,-24.945 30.9807,-24.9451 30.9807,-24.9451 30.9807,-24.9451 34.4807,-24.945 30.9807,-21.7951 37.9807,-24.945 37.9807,-24.945\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196.5\" cy=\"-100.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196.5\" y=\"-97.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M71.844,-33.5154C96.8254,-47.0285 145.4576,-73.3348 174.0346,-88.7928\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.4983,-92.2893 172.8426,-91.7294 177.4198,-90.624 174.3413,-88.9587 174.3413,-88.9587 174.3413,-88.9587 177.4198,-90.624 175.8401,-86.1881 180.4983,-92.2893 180.4983,-92.2893\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-92.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-77.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.5991,-20.7462C113.957,-11.7044 216.2243,7.8682 301,-3.945 362.4542,-12.5084 431.9524,-35.9424 467.4246,-48.9484\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"474.0528,-51.4031 466.3945,-51.926 470.7707,-50.1876 467.4885,-48.972 467.4885,-48.972 467.4885,-48.972 470.7707,-50.1876 468.5825,-46.0181 474.0528,-51.4031 474.0528,-51.4031\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-22.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-7.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.5762,-114.612C179.8066,-125.6012 183.7813,-136.945 196.5,-136.945 206.4365,-136.945 211.036,-130.0213 210.2986,-121.7521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"208.4238,-114.612 213.2483,-120.5825 209.3127,-117.9972 210.2016,-121.3825 210.2016,-121.3825 210.2016,-121.3825 209.3127,-117.9972 207.1549,-122.1825 208.4238,-114.612 208.4238,-114.612\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-155.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-140.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.825,-101.3571C236.1554,-101.2716 272.1416,-99.3575 301,-88.945 310.7434,-85.4294 320.4992,-79.5691 328.6124,-73.8845\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"334.469,-69.6135 330.6693,-76.2832 331.6411,-71.6758 328.8132,-73.7381 328.8132,-73.7381 328.8132,-73.7381 331.6411,-71.6758 326.9571,-71.193 334.469,-69.6135 334.469,-69.6135\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-118.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-103.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.2526,-71.9193C472.7503,-78.8483 464.1455,-86.8108 455,-91.945 393.1373,-126.6738 371.3165,-124.5283 301,-133.945 275.0098,-137.4255 266.9422,-142.0377 242,-133.945 232.2367,-130.7771 222.8149,-124.6412 215.1023,-118.5111\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.5603,-113.8737 216.9502,-115.9501 212.2445,-116.1198 214.9288,-118.3659 214.9288,-118.3659 214.9288,-118.3659 212.2445,-116.1198 212.9073,-120.7817 209.5603,-113.8737 209.5603,-113.8737\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-149.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"340.5\" y=\"-134.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M480.292,-72.7366C476.8057,-83.3615 480.375,-93.945 491,-93.945 499.1348,-93.945 503.1336,-87.7411 502.9966,-80.0647\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.708,-72.7366 506.0228,-79.0853 502.3142,-76.1837 502.9204,-79.6309 502.9204,-79.6309 502.9204,-79.6309 502.3142,-76.1837 499.818,-80.1764 501.708,-72.7366 501.708,-72.7366\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-112.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"483\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M331.0487,-52.8153C322.1317,-50.3788 311.0656,-47.6363 301,-45.945 221.6028,-32.6035 126.2256,-27.5222 81.5012,-25.7712\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.2606,-25.4998 81.3737,-22.6143 77.7581,-25.6309 81.2557,-25.7621 81.2557,-25.7621 81.2557,-25.7621 77.7581,-25.6309 81.1376,-28.9099 74.2606,-25.4998 74.2606,-25.4998\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-53.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-38.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.795,-54.3489C309.0375,-50.7613 271.3934,-47.2932 242,-58.945 230.6322,-63.4512 220.3834,-72.2452 212.5035,-80.6267\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"207.4421,-86.3057 209.748,-78.9841 209.7708,-83.6928 212.0996,-81.08 212.0996,-81.08 212.0996,-81.08 209.7708,-83.6928 214.4511,-83.1758 207.4421,-86.3057 207.4421,-86.3057\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-77.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-62.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.5477,-57.945C391.5722,-57.945 436.9394,-57.945 465.439,-57.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.6487,-57.945 465.6488,-61.0951 469.1487,-57.945 465.6487,-57.9451 465.6487,-57.9451 465.6487,-57.9451 469.1487,-57.945 465.6487,-54.7951 472.6487,-57.945 472.6487,-57.945\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-76.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"417.5\" y=\"-61.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(maxodd5, spot.change_parity(maxodd5, spot.parity_kind_any, spot.parity_style_even))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### min odd 5 → min even 6\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"525pt\" height=\"189pt\"\n",
" viewBox=\"0.00 0.00 525.00 188.94\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184.945)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184.945 521,-184.945 521,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"109.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"197.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"213.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"272.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"319.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"335.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"375.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"391.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"201.5\" y=\"-152.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-24.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-24.945C4.178,-24.945 17.9448,-24.945 30.9241,-24.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-24.945 30.9808,-28.0951 34.4807,-24.945 30.9807,-24.9451 30.9807,-24.9451 30.9807,-24.9451 34.4807,-24.945 30.9807,-21.7951 37.9807,-24.945 37.9807,-24.945\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196.5\" cy=\"-92.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196.5\" y=\"-89.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.3921,-32.8785C97.4557,-45.0089 145.3776,-68.2024 173.7796,-81.9486\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.2123,-85.062 172.5392,-84.8478 177.0619,-83.5372 173.9115,-82.0124 173.9115,-82.0124 173.9115,-82.0124 177.0619,-83.5372 175.2838,-79.177 180.2123,-85.062 180.2123,-85.062\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-72.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.5991,-20.7462C113.957,-11.7044 216.2243,7.8682 301,-3.945 362.4542,-12.5084 431.9524,-35.9424 467.4246,-48.9484\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"474.0528,-51.4031 466.3945,-51.926 470.7707,-50.1876 467.4885,-48.972 467.4885,-48.972 467.4885,-48.972 470.7707,-50.1876 468.5825,-46.0181 474.0528,-51.4031 474.0528,-51.4031\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-22.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-7.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.5762,-106.612C179.8066,-117.6012 183.7813,-128.945 196.5,-128.945 206.4365,-128.945 211.036,-122.0213 210.2986,-113.7521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"208.4238,-106.612 213.2483,-112.5825 209.3127,-109.9972 210.2016,-113.3825 210.2016,-113.3825 210.2016,-113.3825 209.3127,-109.9972 207.1549,-114.1825 208.4238,-106.612 208.4238,-106.612\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-132.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.4212,-90.4954C235.3723,-87.4459 271.0025,-81.6807 301,-73.945 308.8705,-71.9153 317.3213,-69.2367 324.881,-66.6529\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.531,-64.3281 325.9627,-69.6118 328.227,-65.4832 324.9231,-66.6383 324.9231,-66.6383 324.9231,-66.6383 328.227,-65.4832 323.8835,-63.6648 331.531,-64.3281 331.531,-64.3281\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-102.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"247.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"279.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.4643,-72.3208C473.0199,-79.3597 464.4031,-87.2993 455,-91.945 392.833,-122.6592 370.1161,-111.3714 301,-116.945 274.8626,-119.0527 267.4538,-123.2466 242,-116.945 233.7697,-114.9074 225.3863,-111.0804 218.0951,-107.0714\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"211.742,-103.3846 219.3775,-104.1736 214.7692,-105.1413 217.7964,-106.8981 217.7964,-106.8981 217.7964,-106.8981 214.7692,-105.1413 216.2154,-109.6226 211.742,-103.3846 211.742,-103.3846\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-133.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"340.5\" y=\"-118.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M480.292,-72.7366C476.8057,-83.3615 480.375,-93.945 491,-93.945 499.1348,-93.945 503.1336,-87.7411 502.9966,-80.0647\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.708,-72.7366 506.0228,-79.0853 502.3142,-76.1837 502.9204,-79.6309 502.9204,-79.6309 502.9204,-79.6309 502.3142,-76.1837 499.818,-80.1764 501.708,-72.7366 501.708,-72.7366\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-111.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"475\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"491\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.4998,-53.9212C321.6379,-52.0001 310.7817,-49.7355 301,-47.945 266.9308,-41.7085 258.426,-39.7469 224,-35.945 173.4918,-30.367 114.1052,-27.292 81.1926,-25.893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.1947,-25.6039 81.3188,-22.7456 77.6917,-25.7484 81.1887,-25.8929 81.1887,-25.8929 81.1887,-25.8929 77.6917,-25.7484 81.0587,-29.0402 74.1947,-25.6039 74.1947,-25.6039\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-54.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-39.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.6016,-54.8038C308.9744,-51.749 271.7825,-48.8911 242,-58.945 232.0233,-62.3129 222.4532,-68.7866 214.6862,-75.1893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.1214,-80.019 212.3433,-73.0518 211.7647,-77.7249 214.408,-75.4307 214.408,-75.4307 214.408,-75.4307 211.7647,-77.7249 216.4727,-77.8097 209.1214,-80.019 209.1214,-80.019\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-62.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.5477,-57.945C391.5722,-57.945 436.9394,-57.945 465.439,-57.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.6487,-57.945 465.6488,-61.0951 469.1487,-57.945 465.6487,-57.9451 465.6487,-57.9451 465.6487,-57.9451 469.1487,-57.945 465.6487,-54.7951 472.6487,-57.945 472.6487,-57.945\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-76.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"417.5\" y=\"-61.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"525pt\" height=\"191pt\"\n",
" viewBox=\"0.00 0.00 525.00 190.94\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 186.945)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-186.945 521,-186.945 521,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"80\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"102\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"118\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"224\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"240\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"283\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"299\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"346\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"402\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"<text text-anchor=\"start\" x=\"418\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))))</text>\n",
"<text text-anchor=\"start\" x=\"198.5\" y=\"-154.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min even 6]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-24.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-24.945C4.178,-24.945 17.9448,-24.945 30.9241,-24.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-24.945 30.9808,-28.0951 34.4807,-24.945 30.9807,-24.9451 30.9807,-24.9451 30.9807,-24.9451 34.4807,-24.945 30.9807,-21.7951 37.9807,-24.945 37.9807,-24.945\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196.5\" cy=\"-92.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196.5\" y=\"-89.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.3921,-32.8785C97.4557,-45.0089 145.3776,-68.2024 173.7796,-81.9486\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.2123,-85.062 172.5392,-84.8478 177.0619,-83.5372 173.9115,-82.0124 173.9115,-82.0124 173.9115,-82.0124 177.0619,-83.5372 175.2838,-79.177 180.2123,-85.062 180.2123,-85.062\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-72.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.5991,-20.7462C113.957,-11.7044 216.2243,7.8682 301,-3.945 362.4542,-12.5084 431.9524,-35.9424 467.4246,-48.9484\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"474.0528,-51.4031 466.3945,-51.926 470.7707,-50.1876 467.4885,-48.972 467.4885,-48.972 467.4885,-48.972 470.7707,-50.1876 468.5825,-46.0181 474.0528,-51.4031 474.0528,-51.4031\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-22.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-7.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.5762,-106.612C179.8066,-117.6012 183.7813,-128.945 196.5,-128.945 206.4365,-128.945 211.036,-122.0213 210.2986,-113.7521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"208.4238,-106.612 213.2483,-112.5825 209.3127,-109.9972 210.2016,-113.3825 210.2016,-113.3825 210.2016,-113.3825 209.3127,-109.9972 207.1549,-114.1825 208.4238,-106.612 208.4238,-106.612\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-132.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.4212,-90.4954C235.3723,-87.4459 271.0025,-81.6807 301,-73.945 308.8705,-71.9153 317.3213,-69.2367 324.881,-66.6529\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.531,-64.3281 325.9627,-69.6118 328.227,-65.4832 324.9231,-66.6383 324.9231,-66.6383 324.9231,-66.6383 328.227,-65.4832 323.8835,-63.6648 331.531,-64.3281 331.531,-64.3281\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-103.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.44,-72.2721C472.989,-79.2977 464.3736,-87.24 455,-91.945 392.8959,-123.1174 370.2269,-112.9223 301,-118.945 274.8765,-121.2177 267.3438,-125.6754 242,-118.945 233.3441,-116.6463 224.6175,-112.2711 217.1544,-107.7562\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"211.2118,-103.9734 218.8085,-105.0751 214.1644,-105.8529 217.1169,-107.7324 217.1169,-107.7324 217.1169,-107.7324 214.1644,-105.8529 215.4254,-110.3897 211.2118,-103.9734 211.2118,-103.9734\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-135.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"340.5\" y=\"-120.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M480.292,-72.7366C476.8057,-83.3615 480.375,-93.945 491,-93.945 499.1348,-93.945 503.1336,-87.7411 502.9966,-80.0647\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.708,-72.7366 506.0228,-79.0853 502.3142,-76.1837 502.9204,-79.6309 502.9204,-79.6309 502.9204,-79.6309 502.3142,-76.1837 499.818,-80.1764 501.708,-72.7366 501.708,-72.7366\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-112.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"483\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.4998,-53.9212C321.6379,-52.0001 310.7817,-49.7355 301,-47.945 266.9308,-41.7085 258.426,-39.7469 224,-35.945 173.4918,-30.367 114.1052,-27.292 81.1926,-25.893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.1947,-25.6039 81.3188,-22.7456 77.6917,-25.7484 81.1887,-25.8929 81.1887,-25.8929 81.1887,-25.8929 77.6917,-25.7484 81.0587,-29.0402 74.1947,-25.6039 74.1947,-25.6039\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-54.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-39.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.6016,-54.8038C308.9744,-51.749 271.7825,-48.8911 242,-58.945 232.0233,-62.3129 222.4532,-68.7866 214.6862,-75.1893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.1214,-80.019 212.3433,-73.0518 211.7647,-77.7249 214.408,-75.4307 214.408,-75.4307 214.408,-75.4307 211.7647,-77.7249 216.4727,-77.8097 209.1214,-80.019 209.1214,-80.019\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-62.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.5477,-57.945C391.5722,-57.945 436.9394,-57.945 465.439,-57.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.6487,-57.945 465.6488,-61.0951 469.1487,-57.945 465.6487,-57.9451 465.6487,-57.9451 465.6487,-57.9451 469.1487,-57.945 465.6487,-54.7951 472.6487,-57.945 472.6487,-57.945\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-76.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"417.5\" y=\"-61.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(minodd5, spot.change_parity(minodd5, spot.parity_kind_any, spot.parity_style_even))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Changing the **kind**\n",
"\n",
"Generaly to go from `parity max` to `parity min`, it suffices to reverse the order of vertices.\n",
"\n",
"### max odd 5 → min odd 5:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"525pt\" height=\"189pt\"\n",
" viewBox=\"0.00 0.00 525.00 188.94\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184.945)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184.945 521,-184.945 521,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"109.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"197.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"213.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"272.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"319.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"335.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"375.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"391.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-152.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-24.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-24.945C4.178,-24.945 17.9448,-24.945 30.9241,-24.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-24.945 30.9808,-28.0951 34.4807,-24.945 30.9807,-24.9451 30.9807,-24.9451 30.9807,-24.9451 34.4807,-24.945 30.9807,-21.7951 37.9807,-24.945 37.9807,-24.945\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196.5\" cy=\"-92.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196.5\" y=\"-89.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.3921,-32.8785C97.4557,-45.0089 145.3776,-68.2024 173.7796,-81.9486\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.2123,-85.062 172.5392,-84.8478 177.0619,-83.5372 173.9115,-82.0124 173.9115,-82.0124 173.9115,-82.0124 177.0619,-83.5372 175.2838,-79.177 180.2123,-85.062 180.2123,-85.062\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-72.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.5991,-20.7462C113.957,-11.7044 216.2243,7.8682 301,-3.945 362.4542,-12.5084 431.9524,-35.9424 467.4246,-48.9484\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"474.0528,-51.4031 466.3945,-51.926 470.7707,-50.1876 467.4885,-48.972 467.4885,-48.972 467.4885,-48.972 470.7707,-50.1876 468.5825,-46.0181 474.0528,-51.4031 474.0528,-51.4031\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-22.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-7.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.5762,-106.612C179.8066,-117.6012 183.7813,-128.945 196.5,-128.945 206.4365,-128.945 211.036,-122.0213 210.2986,-113.7521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"208.4238,-106.612 213.2483,-112.5825 209.3127,-109.9972 210.2016,-113.3825 210.2016,-113.3825 210.2016,-113.3825 209.3127,-109.9972 207.1549,-114.1825 208.4238,-106.612 208.4238,-106.612\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-132.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.4212,-90.4954C235.3723,-87.4459 271.0025,-81.6807 301,-73.945 308.8705,-71.9153 317.3213,-69.2367 324.881,-66.6529\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.531,-64.3281 325.9627,-69.6118 328.227,-65.4832 324.9231,-66.6383 324.9231,-66.6383 324.9231,-66.6383 328.227,-65.4832 323.8835,-63.6648 331.531,-64.3281 331.531,-64.3281\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-102.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"247.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"279.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.4643,-72.3208C473.0199,-79.3597 464.4031,-87.2993 455,-91.945 392.833,-122.6592 370.1161,-111.3714 301,-116.945 274.8626,-119.0527 267.4538,-123.2466 242,-116.945 233.7697,-114.9074 225.3863,-111.0804 218.0951,-107.0714\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"211.742,-103.3846 219.3775,-104.1736 214.7692,-105.1413 217.7964,-106.8981 217.7964,-106.8981 217.7964,-106.8981 214.7692,-105.1413 216.2154,-109.6226 211.742,-103.3846 211.742,-103.3846\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-133.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"340.5\" y=\"-118.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M480.292,-72.7366C476.8057,-83.3615 480.375,-93.945 491,-93.945 499.1348,-93.945 503.1336,-87.7411 502.9966,-80.0647\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.708,-72.7366 506.0228,-79.0853 502.3142,-76.1837 502.9204,-79.6309 502.9204,-79.6309 502.9204,-79.6309 502.3142,-76.1837 499.818,-80.1764 501.708,-72.7366 501.708,-72.7366\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-111.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"475\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"491\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.4998,-53.9212C321.6379,-52.0001 310.7817,-49.7355 301,-47.945 266.9308,-41.7085 258.426,-39.7469 224,-35.945 173.4918,-30.367 114.1052,-27.292 81.1926,-25.893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.1947,-25.6039 81.3188,-22.7456 77.6917,-25.7484 81.1887,-25.8929 81.1887,-25.8929 81.1887,-25.8929 77.6917,-25.7484 81.0587,-29.0402 74.1947,-25.6039 74.1947,-25.6039\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-54.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-39.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.6016,-54.8038C308.9744,-51.749 271.7825,-48.8911 242,-58.945 232.0233,-62.3129 222.4532,-68.7866 214.6862,-75.1893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.1214,-80.019 212.3433,-73.0518 211.7647,-77.7249 214.408,-75.4307 214.408,-75.4307 214.408,-75.4307 211.7647,-77.7249 216.4727,-77.8097 209.1214,-80.019 209.1214,-80.019\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-62.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.5477,-57.945C391.5722,-57.945 436.9394,-57.945 465.439,-57.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.6487,-57.945 465.6488,-61.0951 469.1487,-57.945 465.6487,-57.9451 465.6487,-57.9451 465.6487,-57.9451 469.1487,-57.945 465.6487,-54.7951 472.6487,-57.945 472.6487,-57.945\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-76.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"417.5\" y=\"-61.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"525pt\" height=\"191pt\"\n",
" viewBox=\"0.00 0.00 525.00 190.94\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 186.945)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-186.945 521,-186.945 521,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"109.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"197.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"213.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"272.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"319.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"335.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"375.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"391.5\" y=\"-168.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"201.5\" y=\"-154.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-24.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-24.945C4.178,-24.945 17.9448,-24.945 30.9241,-24.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-24.945 30.9808,-28.0951 34.4807,-24.945 30.9807,-24.9451 30.9807,-24.9451 30.9807,-24.9451 34.4807,-24.945 30.9807,-21.7951 37.9807,-24.945 37.9807,-24.945\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196.5\" cy=\"-92.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196.5\" y=\"-89.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.3921,-32.8785C97.4557,-45.0089 145.3776,-68.2024 173.7796,-81.9486\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.2123,-85.062 172.5392,-84.8478 177.0619,-83.5372 173.9115,-82.0124 173.9115,-82.0124 173.9115,-82.0124 177.0619,-83.5372 175.2838,-79.177 180.2123,-85.062 180.2123,-85.062\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-72.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.5991,-20.7462C113.957,-11.7044 216.2243,7.8682 301,-3.945 362.4542,-12.5084 431.9524,-35.9424 467.4246,-48.9484\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"474.0528,-51.4031 466.3945,-51.926 470.7707,-50.1876 467.4885,-48.972 467.4885,-48.972 467.4885,-48.972 470.7707,-50.1876 468.5825,-46.0181 474.0528,-51.4031 474.0528,-51.4031\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-22.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-7.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.5762,-106.612C179.8066,-117.6012 183.7813,-128.945 196.5,-128.945 206.4365,-128.945 211.036,-122.0213 210.2986,-113.7521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"208.4238,-106.612 213.2483,-112.5825 209.3127,-109.9972 210.2016,-113.3825 210.2016,-113.3825 210.2016,-113.3825 209.3127,-109.9972 207.1549,-114.1825 208.4238,-106.612 208.4238,-106.612\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-132.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.4212,-90.4954C235.3723,-87.4459 271.0025,-81.6807 301,-73.945 308.8705,-71.9153 317.3213,-69.2367 324.881,-66.6529\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.531,-64.3281 325.9627,-69.6118 328.227,-65.4832 324.9231,-66.6383 324.9231,-66.6383 324.9231,-66.6383 328.227,-65.4832 323.8835,-63.6648 331.531,-64.3281 331.531,-64.3281\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-103.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.44,-72.2721C472.989,-79.2977 464.3736,-87.24 455,-91.945 392.8959,-123.1174 370.2269,-112.9223 301,-118.945 274.8765,-121.2177 267.3438,-125.6754 242,-118.945 233.3441,-116.6463 224.6175,-112.2711 217.1544,-107.7562\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"211.2118,-103.9734 218.8085,-105.0751 214.1644,-105.8529 217.1169,-107.7324 217.1169,-107.7324 217.1169,-107.7324 214.1644,-105.8529 215.4254,-110.3897 211.2118,-103.9734 211.2118,-103.9734\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-135.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"340.5\" y=\"-120.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M480.292,-72.7366C476.8057,-83.3615 480.375,-93.945 491,-93.945 499.1348,-93.945 503.1336,-87.7411 502.9966,-80.0647\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.708,-72.7366 506.0228,-79.0853 502.3142,-76.1837 502.9204,-79.6309 502.9204,-79.6309 502.9204,-79.6309 502.3142,-76.1837 499.818,-80.1764 501.708,-72.7366 501.708,-72.7366\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-112.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"483\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.4998,-53.9212C321.6379,-52.0001 310.7817,-49.7355 301,-47.945 266.9308,-41.7085 258.426,-39.7469 224,-35.945 173.4918,-30.367 114.1052,-27.292 81.1926,-25.893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.1947,-25.6039 81.3188,-22.7456 77.6917,-25.7484 81.1887,-25.8929 81.1887,-25.8929 81.1887,-25.8929 77.6917,-25.7484 81.0587,-29.0402 74.1947,-25.6039 74.1947,-25.6039\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-54.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-39.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.6016,-54.8038C308.9744,-51.749 271.7825,-48.8911 242,-58.945 232.0233,-62.3129 222.4532,-68.7866 214.6862,-75.1893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.1214,-80.019 212.3433,-73.0518 211.7647,-77.7249 214.408,-75.4307 214.408,-75.4307 214.408,-75.4307 211.7647,-77.7249 216.4727,-77.8097 209.1214,-80.019 209.1214,-80.019\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-62.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.5477,-57.945C391.5722,-57.945 436.9394,-57.945 465.439,-57.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.6487,-57.945 465.6488,-61.0951 469.1487,-57.945 465.6487,-57.9451 465.6487,-57.9451 465.6487,-57.9451 469.1487,-57.945 465.6487,-54.7951 472.6487,-57.945 472.6487,-57.945\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-76.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"417.5\" y=\"-61.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(maxodd5, spot.change_parity(maxodd5, spot.parity_kind_min, spot.parity_style_any))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### max odd 4 → min even 4\n",
"\n",
"When the number of colors is even, the style is changed too."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"212\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"331\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"347\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"173pt\"\n",
" viewBox=\"0.00 0.00 498.00 173.06\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 169.063)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-169.063 494,-169.063 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"212\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"331\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"347\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-136.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min even 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-54.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-50.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-54.063C4.178,-54.063 17.9448,-54.063 30.9241,-54.063\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-54.063 30.9808,-57.2131 34.4807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 34.4807,-54.0631 30.9807,-50.9131 37.9807,-54.063 37.9807,-54.063\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-55.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-51.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-65.8145C76.199,-70.9559 84.1919,-76.7787 92,-81.063 124.0598,-98.6543 133.0226,-103.5126 169,-110.063 229.6274,-121.1014 250.8946,-112.5611 305,-83.063 310.6962,-79.9575 316.434,-75.9715 321.6032,-71.9868\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-67.3626 323.8811,-74.1981 324.6425,-69.5513 321.9113,-71.74 321.9113,-71.74 321.9113,-71.74 324.6425,-69.5513 319.9415,-69.2818 327.3738,-67.3626 327.3738,-67.3626\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-117.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-35.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-31.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-57.9687C93.0741,-61.5237 124.6517,-65.3415 151,-59.063 159.9877,-56.9214 169.2017,-52.7908 177.0938,-48.5519\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-45.007 178.8289,-51.1898 180.3298,-46.7266 177.2813,-48.4462 177.2813,-48.4462 177.2813,-48.4462 180.3298,-46.7266 175.7337,-45.7025 183.3782,-45.007 183.3782,-45.007\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-65.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-22.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-18.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-53.1336C378.5155,-50.7744 409.8902,-46.0725 436,-38.063 440.3769,-36.7204 444.9261,-34.9859 449.2584,-33.1564\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-30.2458 450.7065,-35.9603 452.6314,-31.6629 449.4311,-33.08 449.4311,-33.08 449.4311,-33.08 452.6314,-31.6629 448.1557,-30.1998 455.8317,-30.2458 455.8317,-30.2458\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-53.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-29.1081C159.8443,-22.6052 122.1234,-14.4391 92,-25.063 85.4412,-27.3762 79.1978,-31.4462 73.8077,-35.8187\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-40.6132 71.5187,-33.6356 70.9552,-38.3105 73.5911,-36.0079 73.5911,-36.0079 73.5911,-36.0079 70.9552,-38.3105 75.6635,-38.3802 68.3193,-40.6132 68.3193,-40.6132\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-43.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-28.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-37.596C241.7097,-41.1275 287.4385,-47.5456 315.9073,-51.5412\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-52.5506 315.7289,-54.697 319.6328,-52.0641 316.1668,-51.5776 316.1668,-51.5776 316.1668,-51.5776 319.6328,-52.0641 316.6046,-48.4581 323.0988,-52.5506 323.0988,-52.5506\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-67.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-52.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-48.73C181.3555,-59.7193 185.4375,-71.063 198.5,-71.063 208.7051,-71.063 213.4289,-64.1393 212.6715,-55.8702\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-48.73 215.61,-54.6684 211.6574,-52.1093 212.5687,-55.4886 212.5687,-55.4886 212.5687,-55.4886 211.6574,-52.1093 209.5273,-56.3088 210.7461,-48.73 210.7461,-48.73\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-89.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-74.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0135,-15.8288C449.0806,-13.9324 442.323,-12.0816 436,-11.063 318.8364,7.8113 287.5523,-2.6854 169,-8.063 134.672,-9.6202 122.8215,.1315 92,-15.063 83.6061,-19.2011 76.2062,-26.1941 70.3328,-33.1255\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-38.8694 67.6576,-31.429 67.947,-36.1289 70.1241,-33.3883 70.1241,-33.3883 70.1241,-33.3883 67.947,-36.1289 72.5905,-35.3477 65.7699,-38.8694 65.7699,-38.8694\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-21.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-6.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-18.6353C434.5137,-15.6765 402.3872,-13.2576 377,-23.063 369.8625,-25.8198 363.2281,-30.6939 357.6491,-35.8196\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-40.9601 355.2106,-33.8005 354.933,-38.5011 357.4237,-36.0422 357.4237,-36.0422 357.4237,-36.0422 354.933,-38.5011 359.6368,-38.2838 352.4423,-40.9601 352.4423,-40.9601\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-26.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(maxodd4, spot.change_parity(maxodd4, spot.parity_kind_min, spot.parity_style_any))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### max odd 4 → min odd 5\n",
"\n",
"In this case, to keep the same **style**, a new color would be introduced."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"212\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"331\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"347\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"173pt\"\n",
" viewBox=\"0.00 0.00 498.00 173.06\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 169.063)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-169.063 494,-169.063 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"243\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"259\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"306\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"322\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"378\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-136.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-54.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-50.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-54.063C4.178,-54.063 17.9448,-54.063 30.9241,-54.063\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-54.063 30.9808,-57.2131 34.4807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 34.4807,-54.0631 30.9807,-50.9131 37.9807,-54.063 37.9807,-54.063\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-55.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-51.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-65.8145C76.199,-70.9559 84.1919,-76.7787 92,-81.063 124.0598,-98.6543 133.0226,-103.5126 169,-110.063 229.6274,-121.1014 250.8946,-112.5611 305,-83.063 310.6962,-79.9575 316.434,-75.9715 321.6032,-71.9868\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-67.3626 323.8811,-74.1981 324.6425,-69.5513 321.9113,-71.74 321.9113,-71.74 321.9113,-71.74 324.6425,-69.5513 319.9415,-69.2818 327.3738,-67.3626 327.3738,-67.3626\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-117.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-35.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-31.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-57.9687C93.0741,-61.5237 124.6517,-65.3415 151,-59.063 159.9877,-56.9214 169.2017,-52.7908 177.0938,-48.5519\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-45.007 178.8289,-51.1898 180.3298,-46.7266 177.2813,-48.4462 177.2813,-48.4462 177.2813,-48.4462 180.3298,-46.7266 175.7337,-45.7025 183.3782,-45.007 183.3782,-45.007\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-65.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-22.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-18.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-53.1336C378.5155,-50.7744 409.8902,-46.0725 436,-38.063 440.3769,-36.7204 444.9261,-34.9859 449.2584,-33.1564\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-30.2458 450.7065,-35.9603 452.6314,-31.6629 449.4311,-33.08 449.4311,-33.08 449.4311,-33.08 452.6314,-31.6629 448.1557,-30.1998 455.8317,-30.2458 455.8317,-30.2458\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-53.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-29.1081C159.8443,-22.6052 122.1234,-14.4391 92,-25.063 85.4412,-27.3762 79.1978,-31.4462 73.8077,-35.8187\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-40.6132 71.5187,-33.6356 70.9552,-38.3105 73.5911,-36.0079 73.5911,-36.0079 73.5911,-36.0079 70.9552,-38.3105 75.6635,-38.3802 68.3193,-40.6132 68.3193,-40.6132\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-43.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-28.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-37.596C241.7097,-41.1275 287.4385,-47.5456 315.9073,-51.5412\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-52.5506 315.7289,-54.697 319.6328,-52.0641 316.1668,-51.5776 316.1668,-51.5776 316.1668,-51.5776 319.6328,-52.0641 316.6046,-48.4581 323.0988,-52.5506 323.0988,-52.5506\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-67.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-52.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-48.73C181.3555,-59.7193 185.4375,-71.063 198.5,-71.063 208.7051,-71.063 213.4289,-64.1393 212.6715,-55.8702\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-48.73 215.61,-54.6684 211.6574,-52.1093 212.5687,-55.4886 212.5687,-55.4886 212.5687,-55.4886 211.6574,-52.1093 209.5273,-56.3088 210.7461,-48.73 210.7461,-48.73\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-89.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-74.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0135,-15.8288C449.0806,-13.9324 442.323,-12.0816 436,-11.063 318.8364,7.8113 287.5523,-2.6854 169,-8.063 134.672,-9.6202 122.8215,.1315 92,-15.063 83.6061,-19.2011 76.2062,-26.1941 70.3328,-33.1255\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-38.8694 67.6576,-31.429 67.947,-36.1289 70.1241,-33.3883 70.1241,-33.3883 70.1241,-33.3883 67.947,-36.1289 72.5905,-35.3477 65.7699,-38.8694 65.7699,-38.8694\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-21.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-6.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-18.6353C434.5137,-15.6765 402.3872,-13.2576 377,-23.063 369.8625,-25.8198 363.2281,-30.6939 357.6491,-35.8196\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-40.9601 355.2106,-33.8005 354.933,-38.5011 357.4237,-36.0422 357.4237,-36.0422 357.4237,-36.0422 354.933,-38.5011 359.6368,-38.2838 352.4423,-40.9601 352.4423,-40.9601\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-26.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(maxodd4, spot.change_parity(maxodd4, spot.parity_kind_min, spot.parity_style_same))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Colorize parity\n",
"\n",
"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",
"\n",
"A *parity automaton* is a *colored* automaton with *parity acceptance*.\n",
"\n",
"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",
"\n",
"## Parity max\n",
"Transitions with multiple colors are purified by keeping only the set with the greatest index.\n",
"<br>\n",
"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",
"\n",
"#### Colorize parity max odd 4"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"212\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"331\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"347\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"183pt\"\n",
" viewBox=\"0.00 0.00 498.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 179)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-179 494,-179 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"179\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"195\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"258\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"301\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"317\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"360\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"376\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.4177,-65.5746C71.7774,-74.7207 81.0051,-85.69 92,-92 122.1681,-109.3137 134.3573,-102.8763 169,-106 229.7849,-111.481 249.3842,-112.1342 305,-87 310.5819,-84.4774 316.213,-81.0693 321.3104,-77.5819\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.0143,-73.5001 323.155,-80.1355 324.168,-75.537 321.3218,-77.5738 321.3218,-77.5738 321.3218,-77.5738 324.168,-75.537 319.4886,-75.0122 327.0143,-73.5001 327.0143,-73.5001\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.3459,-62.5164C379.1227,-62.3983 411.1106,-60.2182 436,-49 442.7675,-45.9498 449.226,-41.2127 454.7564,-36.352\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"459.9545,-31.5078 456.981,-38.5846 457.394,-33.894 454.8335,-36.2802 454.8335,-36.2802 454.8335,-36.2802 457.394,-33.894 452.6859,-33.9757 459.9545,-31.5078 459.9545,-31.5078\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.2596,-34.8635C241.433,-40.3398 287.5999,-50.3831 316.1587,-56.5959\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0166,-58.0878 315.5069,-59.6777 319.5966,-57.3438 316.1766,-56.5997 316.1766,-56.5997 316.1766,-56.5997 319.5966,-57.3438 316.8462,-53.5217 323.0166,-58.0878 323.0166,-58.0878\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0647,-11.1461C449.136,-9.0729 442.3679,-7.0648 436,-6 385.7726,2.3988 239.7685,-.7899 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.2068,-13.9399C434.345,-10.3421 401.747,-7.2845 377,-19 367.6034,-23.4485 359.7823,-31.6672 353.8572,-39.737\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"349.7011,-45.8141 351.0526,-38.2578 351.6769,-42.9251 353.6527,-40.0361 353.6527,-40.0361 353.6527,-40.0361 351.6769,-42.9251 356.2528,-41.8143 349.7011,-45.8141 349.7011,-45.8141\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"212\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"331\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"347\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"183pt\"\n",
" viewBox=\"0.00 0.00 498.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 179)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-179 494,-179 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"88.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"147.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"163.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"210.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"226.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"269.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"285.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"348.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"388.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"404.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))))</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 6]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.4177,-65.5746C71.7774,-74.7207 81.0051,-85.69 92,-92 122.1681,-109.3137 134.3573,-102.8763 169,-106 229.7849,-111.481 249.3842,-112.1342 305,-87 310.5819,-84.4774 316.213,-81.0693 321.3104,-77.5819\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.0143,-73.5001 323.155,-80.1355 324.168,-75.537 321.3218,-77.5738 321.3218,-77.5738 321.3218,-77.5738 324.168,-75.537 319.4886,-75.0122 327.0143,-73.5001 327.0143,-73.5001\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.3459,-62.5164C379.1227,-62.3983 411.1106,-60.2182 436,-49 442.7675,-45.9498 449.226,-41.2127 454.7564,-36.352\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"459.9545,-31.5078 456.981,-38.5846 457.394,-33.894 454.8335,-36.2802 454.8335,-36.2802 454.8335,-36.2802 457.394,-33.894 452.6859,-33.9757 459.9545,-31.5078 459.9545,-31.5078\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.2596,-34.8635C241.433,-40.3398 287.5999,-50.3831 316.1587,-56.5959\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0166,-58.0878 315.5069,-59.6777 319.5966,-57.3438 316.1766,-56.5997 316.1766,-56.5997 316.1766,-56.5997 319.5966,-57.3438 316.8462,-53.5217 323.0166,-58.0878 323.0166,-58.0878\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0647,-11.1461C449.136,-9.0729 442.3679,-7.0648 436,-6 385.7726,2.3988 239.7685,-.7899 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.2068,-13.9399C434.345,-10.3421 401.747,-7.2845 377,-19 367.6034,-23.4485 359.7823,-31.6672 353.8572,-39.737\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"349.7011,-45.8141 351.0526,-38.2578 351.6769,-42.9251 353.6527,-40.0361 353.6527,-40.0361 353.6527,-40.0361 351.6769,-42.9251 356.2528,-41.8143 349.7011,-45.8141 349.7011,-45.8141\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(maxodd4, spot.colorize_parity(maxodd4, False))\n",
"display2(maxodd4, spot.colorize_parity(maxodd4, True))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Colorize parity max even 4"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"183pt\"\n",
" viewBox=\"0.00 0.00 498.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 179)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-179 494,-179 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"243\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"259\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"306\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"322\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"378\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.4177,-65.5746C71.7774,-74.7207 81.0051,-85.69 92,-92 122.1681,-109.3137 134.3573,-102.8763 169,-106 229.7849,-111.481 249.3842,-112.1342 305,-87 310.5819,-84.4774 316.213,-81.0693 321.3104,-77.5819\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.0143,-73.5001 323.155,-80.1355 324.168,-75.537 321.3218,-77.5738 321.3218,-77.5738 321.3218,-77.5738 324.168,-75.537 319.4886,-75.0122 327.0143,-73.5001 327.0143,-73.5001\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.3459,-62.5164C379.1227,-62.3983 411.1106,-60.2182 436,-49 442.7675,-45.9498 449.226,-41.2127 454.7564,-36.352\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"459.9545,-31.5078 456.981,-38.5846 457.394,-33.894 454.8335,-36.2802 454.8335,-36.2802 454.8335,-36.2802 457.394,-33.894 452.6859,-33.9757 459.9545,-31.5078 459.9545,-31.5078\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.2596,-34.8635C241.433,-40.3398 287.5999,-50.3831 316.1587,-56.5959\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0166,-58.0878 315.5069,-59.6777 319.5966,-57.3438 316.1766,-56.5997 316.1766,-56.5997 316.1766,-56.5997 319.5966,-57.3438 316.8462,-53.5217 323.0166,-58.0878 323.0166,-58.0878\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0647,-11.1461C449.136,-9.0729 442.3679,-7.0648 436,-6 385.7726,2.3988 239.7685,-.7899 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.2068,-13.9399C434.345,-10.3421 401.747,-7.2845 377,-19 367.6034,-23.4485 359.7823,-31.6672 353.8572,-39.737\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"349.7011,-45.8141 351.0526,-38.2578 351.6769,-42.9251 353.6527,-40.0361 353.6527,-40.0361 353.6527,-40.0361 351.6769,-42.9251 356.2528,-41.8143 349.7011,-45.8141 349.7011,-45.8141\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"183pt\"\n",
" viewBox=\"0.00 0.00 498.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 179)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-179 494,-179 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"63.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"88.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"151.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"167.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"210.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"226.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"273.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"289.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"348.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"391.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"407.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))))</text>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 6]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.4177,-65.5746C71.7774,-74.7207 81.0051,-85.69 92,-92 122.1681,-109.3137 134.3573,-102.8763 169,-106 229.7849,-111.481 249.3842,-112.1342 305,-87 310.5819,-84.4774 316.213,-81.0693 321.3104,-77.5819\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.0143,-73.5001 323.155,-80.1355 324.168,-75.537 321.3218,-77.5738 321.3218,-77.5738 321.3218,-77.5738 324.168,-75.537 319.4886,-75.0122 327.0143,-73.5001 327.0143,-73.5001\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.3459,-62.5164C379.1227,-62.3983 411.1106,-60.2182 436,-49 442.7675,-45.9498 449.226,-41.2127 454.7564,-36.352\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"459.9545,-31.5078 456.981,-38.5846 457.394,-33.894 454.8335,-36.2802 454.8335,-36.2802 454.8335,-36.2802 457.394,-33.894 452.6859,-33.9757 459.9545,-31.5078 459.9545,-31.5078\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.2596,-34.8635C241.433,-40.3398 287.5999,-50.3831 316.1587,-56.5959\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0166,-58.0878 315.5069,-59.6777 319.5966,-57.3438 316.1766,-56.5997 316.1766,-56.5997 316.1766,-56.5997 319.5966,-57.3438 316.8462,-53.5217 323.0166,-58.0878 323.0166,-58.0878\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#e31a1c\">❺</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0647,-11.1461C449.136,-9.0729 442.3679,-7.0648 436,-6 385.7726,2.3988 239.7685,-.7899 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.2068,-13.9399C434.345,-10.3421 401.747,-7.2845 377,-19 367.6034,-23.4485 359.7823,-31.6672 353.8572,-39.737\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"349.7011,-45.8141 351.0526,-38.2578 351.6769,-42.9251 353.6527,-40.0361 353.6527,-40.0361 353.6527,-40.0361 351.6769,-42.9251 356.2528,-41.8143 349.7011,-45.8141 349.7011,-45.8141\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(maxeven4, spot.colorize_parity(maxeven4, False))\n",
"display2(maxeven4, spot.colorize_parity(maxeven4, True))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Parity min\n",
"Transitions with multiple colors are simplified by keeping only the color with the lowest index.\n",
"<br>\n",
"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",
"\n",
"#### Colorize parity min odd 4"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"183pt\"\n",
" viewBox=\"0.00 0.00 498.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 179)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-179 494,-179 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"137\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"200\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"243\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"259\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"306\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"322\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"378\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.4177,-65.5746C71.7774,-74.7207 81.0051,-85.69 92,-92 122.1681,-109.3137 134.3573,-102.8763 169,-106 229.7849,-111.481 249.3842,-112.1342 305,-87 310.5819,-84.4774 316.213,-81.0693 321.3104,-77.5819\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.0143,-73.5001 323.155,-80.1355 324.168,-75.537 321.3218,-77.5738 321.3218,-77.5738 321.3218,-77.5738 324.168,-75.537 319.4886,-75.0122 327.0143,-73.5001 327.0143,-73.5001\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.3459,-62.5164C379.1227,-62.3983 411.1106,-60.2182 436,-49 442.7675,-45.9498 449.226,-41.2127 454.7564,-36.352\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"459.9545,-31.5078 456.981,-38.5846 457.394,-33.894 454.8335,-36.2802 454.8335,-36.2802 454.8335,-36.2802 457.394,-33.894 452.6859,-33.9757 459.9545,-31.5078 459.9545,-31.5078\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.2596,-34.8635C241.433,-40.3398 287.5999,-50.3831 316.1587,-56.5959\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0166,-58.0878 315.5069,-59.6777 319.5966,-57.3438 316.1766,-56.5997 316.1766,-56.5997 316.1766,-56.5997 319.5966,-57.3438 316.8462,-53.5217 323.0166,-58.0878 323.0166,-58.0878\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0647,-11.1461C449.136,-9.0729 442.3679,-7.0648 436,-6 385.7726,2.3988 239.7685,-.7899 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.2068,-13.9399C434.345,-10.3421 401.747,-7.2845 377,-19 367.6034,-23.4485 359.7823,-31.6672 353.8572,-39.737\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"349.7011,-45.8141 351.0526,-38.2578 351.6769,-42.9251 353.6527,-40.0361 353.6527,-40.0361 353.6527,-40.0361 351.6769,-42.9251 356.2528,-41.8143 349.7011,-45.8141 349.7011,-45.8141\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(minodd4, spot.colorize_parity(minodd4))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Degenerate cases\n",
"\n",
"### max odd 1\n",
"\n",
"This is just another name for co-Büchi."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"508pt\" height=\"140pt\"\n",
" viewBox=\"0.00 0.00 507.50 140.39\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 136.394)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-136.394 503.5,-136.394 503.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"217.25\" y=\"-102.194\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-23.594\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-19.894\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-23.594C4.178,-23.594 17.9448,-23.594 30.9241,-23.594\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-23.594 30.9808,-26.7441 34.4807,-23.594 30.9807,-23.5941 30.9807,-23.5941 30.9807,-23.5941 34.4807,-23.594 30.9807,-20.4441 37.9807,-23.594 37.9807,-23.594\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-74.594\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-70.894\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.8012,-30.2741C78.8368,-32.6351 85.7067,-35.2779 92,-37.594 120.0561,-47.919 152.5437,-59.0941 174.1883,-66.4297\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"181.0909,-68.7635 173.4507,-69.5055 177.7753,-67.6425 174.4596,-66.5214 174.4596,-66.5214 174.4596,-66.5214 177.7753,-67.6425 175.4686,-63.5373 181.0909,-68.7635 181.0909,-68.7635\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"337\" cy=\"-23.594\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"337\" y=\"-19.894\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.0053,-23.594C122.4629,-23.594 255.7487,-23.594 311.7237,-23.594\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"318.781,-23.594 311.781,-26.7441 315.281,-23.594 311.781,-23.5941 311.781,-23.5941 311.781,-23.5941 315.281,-23.594 311.781,-20.4441 318.781,-23.594 318.781,-23.594\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-27.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M215.5949,-68.5672C235.9809,-61.347 271.0613,-48.817 301,-37.594 305.0227,-36.086 309.2864,-34.4561 313.4187,-32.8596\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"320.1832,-30.2319 314.7988,-35.7029 316.9207,-31.4993 313.6581,-32.7666 313.6581,-32.7666 313.6581,-32.7666 316.9207,-31.4993 312.5175,-29.8304 320.1832,-30.2319 320.1832,-30.2319\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-60.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M319.3762,-19.5548C297.9253,-14.8634 260.5337,-7.4083 228,-4.594 201.8753,-2.3341 195.1313,-2.4124 169,-4.594 138.4107,-7.1477 103.644,-13.5255 80.8485,-18.1899\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.8885,-19.637 80.1006,-15.1279 77.3152,-18.9245 80.7419,-18.212 80.7419,-18.212 80.7419,-18.212 77.3152,-18.9245 81.3832,-21.296 73.8885,-19.637 73.8885,-19.637\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-8.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-23.594\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"472\" cy=\"-23.594\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-19.894\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M355.2067,-23.594C377.574,-23.594 415.8192,-23.594 442.4257,-23.594\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"449.5986,-23.594 442.5987,-26.7441 446.0986,-23.594 442.5986,-23.5941 442.5986,-23.5941 442.5986,-23.5941 446.0986,-23.594 442.5986,-20.4441 449.5986,-23.594 449.5986,-23.594\"/>\n",
"<text text-anchor=\"start\" x=\"376.5\" y=\"-27.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M452.688,-12.3071C446.3155,-9.1671 439.0499,-6.1832 432,-4.594 406.4197,1.1726 398.453,1.7107 373,-4.594 368.1146,-5.8041 363.1612,-7.8114 358.5558,-10.0787\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.1057,-13.5239 356.7959,-7.4474 355.1929,-11.8749 358.2801,-10.2259 358.2801,-10.2259 358.2801,-10.2259 355.1929,-11.8749 359.7642,-13.0044 352.1057,-13.5239 352.1057,-13.5239\"/>\n",
"<text text-anchor=\"start\" x=\"373\" y=\"-8.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M460.0469,-42.1096C457.3906,-53.1773 461.375,-63.594 472,-63.594 480.3008,-63.594 484.5484,-57.2361 484.743,-49.1771\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"483.9531,-42.1096 487.8612,-48.7164 484.3419,-45.5879 484.7307,-49.0663 484.7307,-49.0663 484.7307,-49.0663 484.3419,-45.5879 481.6002,-49.4162 483.9531,-42.1096 483.9531,-42.1096\"/>\n",
"<text text-anchor=\"start\" x=\"444.5\" y=\"-67.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"548pt\" height=\"158pt\"\n",
" viewBox=\"0.00 0.00 547.85 157.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 153.7401)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-153.7401 543.8503,-153.7401 543.8503,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"217.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"242.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"258.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"301.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"317.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"209.4251\" y=\"-121.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-26.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-15.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2229,-26.8701C4.3751,-26.8701 17.3629,-26.8701 30.7917,-26.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-26.8701 30.8046,-30.0202 34.3045,-26.8701 30.8045,-26.8702 30.8045,-26.8702 30.8045,-26.8702 34.3045,-26.8701 30.8045,-23.7202 37.8045,-26.8701 37.8045,-26.8701\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"216.2401\" cy=\"-86.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"211.7401\" y=\"-90.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"208.2401\" y=\"-75.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M89.8657,-36.7778C115.8306,-47.0698 156.526,-63.2006 184.6895,-74.364\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"191.2073,-76.9476 183.5391,-77.2964 187.9536,-75.6578 184.6999,-74.3681 184.6999,-74.3681 184.6999,-74.3681 187.9536,-75.6578 185.8606,-71.4397 191.2073,-76.9476 191.2073,-76.9476\"/>\n",
"<text text-anchor=\"start\" x=\"109.7401\" y=\"-70.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"363.6102\" cy=\"-26.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"359.1102\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"355.6102\" y=\"-15.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M91.9081,-26.8701C146.3143,-26.8701 268.9369,-26.8701 329.0572,-26.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"336.4179,-26.8701 329.418,-30.0202 332.9179,-26.8701 329.4179,-26.8702 329.4179,-26.8702 329.4179,-26.8702 332.9179,-26.8701 329.4179,-23.7202 336.4179,-26.8701 336.4179,-26.8701\"/>\n",
"<text text-anchor=\"start\" x=\"186.7401\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M241.2394,-76.6919C266.2218,-66.5206 304.7188,-50.847 331.8504,-39.8007\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"338.4882,-37.0982 333.1928,-42.6553 335.2466,-38.418 332.005,-39.7378 332.005,-39.7378 332.005,-39.7378 335.2466,-38.418 330.8171,-36.8203 338.4882,-37.0982 338.4882,-37.0982\"/>\n",
"<text text-anchor=\"start\" x=\"263.7401\" y=\"-70.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M337.0739,-21.3473C313.2804,-16.6938 277.3523,-10.4016 245.7401,-7.8701 219.6016,-5.7769 212.884,-5.8443 186.7401,-7.8701 156.6213,-10.2038 122.6883,-15.7353 98.2913,-20.2315\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"91.3581,-21.5287 97.6594,-17.145 94.7984,-20.885 98.2387,-20.2413 98.2387,-20.2413 98.2387,-20.2413 94.7984,-20.885 98.818,-23.3376 91.3581,-21.5287 91.3581,-21.5287\"/>\n",
"<text text-anchor=\"start\" x=\"188.7401\" y=\"-11.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"512.3503\" cy=\"-26.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"507.8503\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"504.3503\" y=\"-15.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M390.5459,-26.8701C415.0329,-26.8701 451.2951,-26.8701 477.8865,-26.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"485.1123,-26.8701 478.1124,-30.0202 481.6123,-26.8701 478.1123,-26.8702 478.1123,-26.8702 478.1123,-26.8702 481.6123,-26.8701 478.1123,-23.7202 485.1123,-26.8701 485.1123,-26.8701\"/>\n",
"<text text-anchor=\"start\" x=\"411.9802\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M488.2338,-14.579C481.6691,-11.8153 474.4442,-9.2837 467.4802,-7.8701 441.7821,-2.6534 434.1783,-2.6534 408.4802,-7.8701 403.8013,-8.8199 399.0046,-10.2743 394.3695,-11.9648\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"387.7267,-14.579 393.0868,-9.0843 390.9835,-13.2973 394.2404,-12.0155 394.2404,-12.0155 394.2404,-12.0155 390.9835,-13.2973 395.394,-14.9467 387.7267,-14.579 387.7267,-14.579\"/>\n",
"<text text-anchor=\"start\" x=\"408.4802\" y=\"-11.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M498.814,-50.4165C497.1429,-61.7422 501.655,-71.7401 512.3503,-71.7401 520.706,-71.7401 525.2878,-65.6379 526.0956,-57.5676\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"525.8865,-50.4165 529.2398,-57.3214 525.9889,-53.915 526.0912,-57.4135 526.0912,-57.4135 526.0912,-57.4135 525.9889,-53.915 522.9425,-57.5056 525.8865,-50.4165 525.8865,-50.4165\"/>\n",
"<text text-anchor=\"start\" x=\"484.8503\" y=\"-75.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"maxodd1 = spot.automaton(\"randaut -A 'parity max odd 1' -Q4 2|\")\n",
"display2(maxodd1, spot.colorize_parity(maxodd1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### max even 1\n",
"\n",
"Another name for Büchi"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"508pt\" height=\"140pt\"\n",
" viewBox=\"0.00 0.00 507.50 140.39\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 136.394)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-136.394 503.5,-136.394 503.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"226.75\" y=\"-102.194\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-23.594\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-19.894\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-23.594C4.178,-23.594 17.9448,-23.594 30.9241,-23.594\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-23.594 30.9808,-26.7441 34.4807,-23.594 30.9807,-23.5941 30.9807,-23.5941 30.9807,-23.5941 34.4807,-23.594 30.9807,-20.4441 37.9807,-23.594 37.9807,-23.594\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-74.594\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-70.894\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.8012,-30.2741C78.8368,-32.6351 85.7067,-35.2779 92,-37.594 120.0561,-47.919 152.5437,-59.0941 174.1883,-66.4297\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"181.0909,-68.7635 173.4507,-69.5055 177.7753,-67.6425 174.4596,-66.5214 174.4596,-66.5214 174.4596,-66.5214 177.7753,-67.6425 175.4686,-63.5373 181.0909,-68.7635 181.0909,-68.7635\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"337\" cy=\"-23.594\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"337\" y=\"-19.894\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.0053,-23.594C122.4629,-23.594 255.7487,-23.594 311.7237,-23.594\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"318.781,-23.594 311.781,-26.7441 315.281,-23.594 311.781,-23.5941 311.781,-23.5941 311.781,-23.5941 315.281,-23.594 311.781,-20.4441 318.781,-23.594 318.781,-23.594\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-27.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M215.5949,-68.5672C235.9809,-61.347 271.0613,-48.817 301,-37.594 305.0227,-36.086 309.2864,-34.4561 313.4187,-32.8596\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"320.1832,-30.2319 314.7988,-35.7029 316.9207,-31.4993 313.6581,-32.7666 313.6581,-32.7666 313.6581,-32.7666 316.9207,-31.4993 312.5175,-29.8304 320.1832,-30.2319 320.1832,-30.2319\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-60.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M319.3762,-19.5548C297.9253,-14.8634 260.5337,-7.4083 228,-4.594 201.8753,-2.3341 195.1313,-2.4124 169,-4.594 138.4107,-7.1477 103.644,-13.5255 80.8485,-18.1899\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"73.8885,-19.637 80.1006,-15.1279 77.3152,-18.9245 80.7419,-18.212 80.7419,-18.212 80.7419,-18.212 77.3152,-18.9245 81.3832,-21.296 73.8885,-19.637 73.8885,-19.637\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-8.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-23.594\" rx=\"18\" ry=\"18\"/>\n",
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"472\" cy=\"-23.594\" rx=\"22\" ry=\"22\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-19.894\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M355.2067,-23.594C377.574,-23.594 415.8192,-23.594 442.4257,-23.594\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"449.5986,-23.594 442.5987,-26.7441 446.0986,-23.594 442.5986,-23.5941 442.5986,-23.5941 442.5986,-23.5941 446.0986,-23.594 442.5986,-20.4441 449.5986,-23.594 449.5986,-23.594\"/>\n",
"<text text-anchor=\"start\" x=\"376.5\" y=\"-27.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M452.688,-12.3071C446.3155,-9.1671 439.0499,-6.1832 432,-4.594 406.4197,1.1726 398.453,1.7107 373,-4.594 368.1146,-5.8041 363.1612,-7.8114 358.5558,-10.0787\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.1057,-13.5239 356.7959,-7.4474 355.1929,-11.8749 358.2801,-10.2259 358.2801,-10.2259 358.2801,-10.2259 355.1929,-11.8749 359.7642,-13.0044 352.1057,-13.5239 352.1057,-13.5239\"/>\n",
"<text text-anchor=\"start\" x=\"373\" y=\"-8.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M460.0469,-42.1096C457.3906,-53.1773 461.375,-63.594 472,-63.594 480.3008,-63.594 484.5484,-57.2361 484.743,-49.1771\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"483.9531,-42.1096 487.8612,-48.7164 484.3419,-45.5879 484.7307,-49.0663 484.7307,-49.0663 484.7307,-49.0663 484.3419,-45.5879 481.6002,-49.4162 483.9531,-42.1096 483.9531,-42.1096\"/>\n",
"<text text-anchor=\"start\" x=\"444.5\" y=\"-67.394\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"548pt\" height=\"158pt\"\n",
" viewBox=\"0.00 0.00 547.85 157.74\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 153.7401)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-153.7401 543.8503,-153.7401 543.8503,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"220.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"242.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"258.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"298.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"314.9251\" y=\"-135.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"237.9251\" y=\"-121.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Streett 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"64.8701\" cy=\"-26.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"60.3701\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"<text text-anchor=\"start\" x=\"56.8701\" y=\"-15.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2229,-26.8701C4.3751,-26.8701 17.3629,-26.8701 30.7917,-26.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8045,-26.8701 30.8046,-30.0202 34.3045,-26.8701 30.8045,-26.8702 30.8045,-26.8702 30.8045,-26.8702 34.3045,-26.8701 30.8045,-23.7202 37.8045,-26.8701 37.8045,-26.8701\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"216.2401\" cy=\"-86.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"211.7401\" y=\"-90.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"<text text-anchor=\"start\" x=\"208.2401\" y=\"-75.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M89.8657,-36.7778C115.8306,-47.0698 156.526,-63.2006 184.6895,-74.364\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"191.2073,-76.9476 183.5391,-77.2964 187.9536,-75.6578 184.6999,-74.3681 184.6999,-74.3681 184.6999,-74.3681 187.9536,-75.6578 185.8606,-71.4397 191.2073,-76.9476 191.2073,-76.9476\"/>\n",
"<text text-anchor=\"start\" x=\"109.7401\" y=\"-70.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"363.6102\" cy=\"-26.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"359.1102\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"355.6102\" y=\"-15.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M91.9081,-26.8701C146.3143,-26.8701 268.9369,-26.8701 329.0572,-26.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"336.4179,-26.8701 329.418,-30.0202 332.9179,-26.8701 329.4179,-26.8702 329.4179,-26.8702 329.4179,-26.8702 332.9179,-26.8701 329.4179,-23.7202 336.4179,-26.8701 336.4179,-26.8701\"/>\n",
"<text text-anchor=\"start\" x=\"186.7401\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M241.2394,-76.6919C266.2218,-66.5206 304.7188,-50.847 331.8504,-39.8007\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"338.4882,-37.0982 333.1928,-42.6553 335.2466,-38.418 332.005,-39.7378 332.005,-39.7378 332.005,-39.7378 335.2466,-38.418 330.8171,-36.8203 338.4882,-37.0982 338.4882,-37.0982\"/>\n",
"<text text-anchor=\"start\" x=\"263.7401\" y=\"-70.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M337.0739,-21.3473C313.2804,-16.6938 277.3523,-10.4016 245.7401,-7.8701 219.6016,-5.7769 212.884,-5.8443 186.7401,-7.8701 156.6213,-10.2038 122.6883,-15.7353 98.2913,-20.2315\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"91.3581,-21.5287 97.6594,-17.145 94.7984,-20.885 98.2387,-20.2413 98.2387,-20.2413 98.2387,-20.2413 94.7984,-20.885 98.818,-23.3376 91.3581,-21.5287 91.3581,-21.5287\"/>\n",
"<text text-anchor=\"start\" x=\"188.7401\" y=\"-11.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"512.3503\" cy=\"-26.8701\" rx=\"26.7407\" ry=\"26.7407\"/>\n",
"<text text-anchor=\"start\" x=\"507.8503\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"<text text-anchor=\"start\" x=\"504.3503\" y=\"-15.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M390.5459,-26.8701C415.0329,-26.8701 451.2951,-26.8701 477.8865,-26.8701\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"485.1123,-26.8701 478.1124,-30.0202 481.6123,-26.8701 478.1123,-26.8702 478.1123,-26.8702 478.1123,-26.8702 481.6123,-26.8701 478.1123,-23.7202 485.1123,-26.8701 485.1123,-26.8701\"/>\n",
"<text text-anchor=\"start\" x=\"411.9802\" y=\"-30.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M488.2338,-14.579C481.6691,-11.8153 474.4442,-9.2837 467.4802,-7.8701 441.7821,-2.6534 434.1783,-2.6534 408.4802,-7.8701 403.8013,-8.8199 399.0046,-10.2743 394.3695,-11.9648\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"387.7267,-14.579 393.0868,-9.0843 390.9835,-13.2973 394.2404,-12.0155 394.2404,-12.0155 394.2404,-12.0155 390.9835,-13.2973 395.394,-14.9467 387.7267,-14.579 387.7267,-14.579\"/>\n",
"<text text-anchor=\"start\" x=\"408.4802\" y=\"-11.6701\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M498.814,-50.4165C497.1429,-61.7422 501.655,-71.7401 512.3503,-71.7401 520.706,-71.7401 525.2878,-65.6379 526.0956,-57.5676\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"525.8865,-50.4165 529.2398,-57.3214 525.9889,-53.915 526.0912,-57.4135 526.0912,-57.4135 526.0912,-57.4135 525.9889,-53.915 522.9425,-57.5056 525.8865,-50.4165 525.8865,-50.4165\"/>\n",
"<text text-anchor=\"start\" x=\"484.8503\" y=\"-75.5401\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"maxeven1 = spot.automaton(\"randaut -A 'parity max even 1' -Q4 2|\")\n",
"display2(maxeven1, spot.colorize_parity(maxeven1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here `Streett 1` is just a synonym for `parity max odd 2`. (Spot's automaton printer cannot guess which name should be prefered.)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Streett 1'"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"spot.acc_cond(\"parity max odd 2\").name()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cleanup parity\n",
"\n",
"The `cleanup_parity()` function removes useless colors of an automaton with parity acceptance.\n",
"This function is just looking at colors that do not occur in the automaton to perform the simplification.\n",
"For a stronger simplification, see [`reduce_parity()`](#Reduce-parity) below."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"173pt\"\n",
" viewBox=\"0.00 0.00 498.00 173.06\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 169.063)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-169.063 494,-169.063 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"193\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"218\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"277\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"293\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-136.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-54.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-50.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-54.063C4.178,-54.063 17.9448,-54.063 30.9241,-54.063\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-54.063 30.9808,-57.2131 34.4807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 34.4807,-54.0631 30.9807,-50.9131 37.9807,-54.063 37.9807,-54.063\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-55.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-51.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-65.8145C76.199,-70.9559 84.1919,-76.7787 92,-81.063 124.0598,-98.6543 133.0226,-103.5126 169,-110.063 229.6274,-121.1014 250.8946,-112.5611 305,-83.063 310.6962,-79.9575 316.434,-75.9715 321.6032,-71.9868\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-67.3626 323.8811,-74.1981 324.6425,-69.5513 321.9113,-71.74 321.9113,-71.74 321.9113,-71.74 324.6425,-69.5513 319.9415,-69.2818 327.3738,-67.3626 327.3738,-67.3626\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-117.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-35.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-31.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-57.9687C93.0741,-61.5237 124.6517,-65.3415 151,-59.063 159.9877,-56.9214 169.2017,-52.7908 177.0938,-48.5519\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-45.007 178.8289,-51.1898 180.3298,-46.7266 177.2813,-48.4462 177.2813,-48.4462 177.2813,-48.4462 180.3298,-46.7266 175.7337,-45.7025 183.3782,-45.007 183.3782,-45.007\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-65.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-22.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-18.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-53.1336C378.5155,-50.7744 409.8902,-46.0725 436,-38.063 440.3769,-36.7204 444.9261,-34.9859 449.2584,-33.1564\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-30.2458 450.7065,-35.9603 452.6314,-31.6629 449.4311,-33.08 449.4311,-33.08 449.4311,-33.08 452.6314,-31.6629 448.1557,-30.1998 455.8317,-30.2458 455.8317,-30.2458\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-53.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-29.1081C159.8443,-22.6052 122.1234,-14.4391 92,-25.063 85.4412,-27.3762 79.1978,-31.4462 73.8077,-35.8187\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-40.6132 71.5187,-33.6356 70.9552,-38.3105 73.5911,-36.0079 73.5911,-36.0079 73.5911,-36.0079 70.9552,-38.3105 75.6635,-38.3802 68.3193,-40.6132 68.3193,-40.6132\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-43.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-28.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-37.596C241.7097,-41.1275 287.4385,-47.5456 315.9073,-51.5412\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-52.5506 315.7289,-54.697 319.6328,-52.0641 316.1668,-51.5776 316.1668,-51.5776 316.1668,-51.5776 319.6328,-52.0641 316.6046,-48.4581 323.0988,-52.5506 323.0988,-52.5506\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-67.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-52.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-48.73C181.3555,-59.7193 185.4375,-71.063 198.5,-71.063 208.7051,-71.063 213.4289,-64.1393 212.6715,-55.8702\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-48.73 215.61,-54.6684 211.6574,-52.1093 212.5687,-55.4886 212.5687,-55.4886 212.5687,-55.4886 211.6574,-52.1093 209.5273,-56.3088 210.7461,-48.73 210.7461,-48.73\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-89.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-74.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0135,-15.8288C449.0806,-13.9324 442.323,-12.0816 436,-11.063 318.8364,7.8113 287.5523,-2.6854 169,-8.063 134.672,-9.6202 122.8215,.1315 92,-15.063 83.6061,-19.2011 76.2062,-26.1941 70.3328,-33.1255\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-38.8694 67.6576,-31.429 67.947,-36.1289 70.1241,-33.3883 70.1241,-33.3883 70.1241,-33.3883 67.947,-36.1289 72.5905,-35.3477 65.7699,-38.8694 65.7699,-38.8694\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-21.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-6.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-18.6353C434.5137,-15.6765 402.3872,-13.2576 377,-23.063 369.8625,-25.8198 363.2281,-30.6939 357.6491,-35.8196\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-40.9601 355.2106,-33.8005 354.933,-38.5011 357.4237,-36.0422 357.4237,-36.0422 357.4237,-36.0422 354.933,-38.5011 359.6368,-38.2838 352.4423,-40.9601 352.4423,-40.9601\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-26.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"525pt\" height=\"189pt\"\n",
" viewBox=\"0.00 0.00 525.00 188.94\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184.945)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184.945 521,-184.945 521,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"109.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"134.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"197.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"213.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"272.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"319.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"335.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"375.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"391.5\" y=\"-166.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
"<text text-anchor=\"start\" x=\"201\" y=\"-152.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 5]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-24.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-21.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-24.945C4.178,-24.945 17.9448,-24.945 30.9241,-24.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-24.945 30.9808,-28.0951 34.4807,-24.945 30.9807,-24.9451 30.9807,-24.9451 30.9807,-24.9451 34.4807,-24.945 30.9807,-21.7951 37.9807,-24.945 37.9807,-24.945\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196.5\" cy=\"-92.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196.5\" y=\"-89.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.3921,-32.8785C97.4557,-45.0089 145.3776,-68.2024 173.7796,-81.9486\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.2123,-85.062 172.5392,-84.8478 177.0619,-83.5372 173.9115,-82.0124 173.9115,-82.0124 173.9115,-82.0124 177.0619,-83.5372 175.2838,-79.177 180.2123,-85.062 180.2123,-85.062\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-72.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.5991,-20.7462C113.957,-11.7044 216.2243,7.8682 301,-3.945 362.4542,-12.5084 431.9524,-35.9424 467.4246,-48.9484\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"474.0528,-51.4031 466.3945,-51.926 470.7707,-50.1876 467.4885,-48.972 467.4885,-48.972 467.4885,-48.972 470.7707,-50.1876 468.5825,-46.0181 474.0528,-51.4031 474.0528,-51.4031\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-22.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-7.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.5762,-106.612C179.8066,-117.6012 183.7813,-128.945 196.5,-128.945 206.4365,-128.945 211.036,-122.0213 210.2986,-113.7521\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"208.4238,-106.612 213.2483,-112.5825 209.3127,-109.9972 210.2016,-113.3825 210.2016,-113.3825 210.2016,-113.3825 209.3127,-109.9972 207.1549,-114.1825 208.4238,-106.612 208.4238,-106.612\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-132.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-57.945\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-54.245\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.4212,-90.4954C235.3723,-87.4459 271.0025,-81.6807 301,-73.945 308.8705,-71.9153 317.3213,-69.2367 324.881,-66.6529\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.531,-64.3281 325.9627,-69.6118 328.227,-65.4832 324.9231,-66.6383 324.9231,-66.6383 324.9231,-66.6383 328.227,-65.4832 323.8835,-63.6648 331.531,-64.3281 331.531,-64.3281\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-102.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"247.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"279.5\" y=\"-88.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.4643,-72.3208C473.0199,-79.3597 464.4031,-87.2993 455,-91.945 392.833,-122.6592 370.1161,-111.3714 301,-116.945 274.8626,-119.0527 267.4538,-123.2466 242,-116.945 233.7697,-114.9074 225.3863,-111.0804 218.0951,-107.0714\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"211.742,-103.3846 219.3775,-104.1736 214.7692,-105.1413 217.7964,-106.8981 217.7964,-106.8981 217.7964,-106.8981 214.7692,-105.1413 216.2154,-109.6226 211.742,-103.3846 211.742,-103.3846\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-133.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"340.5\" y=\"-118.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M480.292,-72.7366C476.8057,-83.3615 480.375,-93.945 491,-93.945 499.1348,-93.945 503.1336,-87.7411 502.9966,-80.0647\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.708,-72.7366 506.0228,-79.0853 502.3142,-76.1837 502.9204,-79.6309 502.9204,-79.6309 502.9204,-79.6309 502.3142,-76.1837 499.818,-80.1764 501.708,-72.7366 501.708,-72.7366\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-111.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"475\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"491\" y=\"-97.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.4998,-53.9212C321.6379,-52.0001 310.7817,-49.7355 301,-47.945 266.9308,-41.7085 258.426,-39.7469 224,-35.945 173.4918,-30.367 114.1052,-27.292 81.1926,-25.893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.1947,-25.6039 81.3188,-22.7456 77.6917,-25.7484 81.1887,-25.8929 81.1887,-25.8929 81.1887,-25.8929 77.6917,-25.7484 81.0587,-29.0402 74.1947,-25.6039 74.1947,-25.6039\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-54.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-39.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.6016,-54.8038C308.9744,-51.749 271.7825,-48.8911 242,-58.945 232.0233,-62.3129 222.4532,-68.7866 214.6862,-75.1893\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.1214,-80.019 212.3433,-73.0518 211.7647,-77.7249 214.408,-75.4307 214.408,-75.4307 214.408,-75.4307 211.7647,-77.7249 216.4727,-77.8097 209.1214,-80.019 209.1214,-80.019\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-62.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.5477,-57.945C391.5722,-57.945 436.9394,-57.945 465.439,-57.945\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.6487,-57.945 465.6488,-61.0951 469.1487,-57.945 465.6487,-57.9451 465.6487,-57.9451 465.6487,-57.9451 469.1487,-57.945 465.6487,-54.7951 472.6487,-57.945 472.6487,-57.945\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-76.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"417.5\" y=\"-61.745\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"525pt\" height=\"178pt\"\n",
" viewBox=\"0.00 0.00 525.00 177.80\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 173.8004)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-173.8004 521,-173.8004 521,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"236\" y=\"-155.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"261\" y=\"-155.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"277\" y=\"-155.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"226\" y=\"-141.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-21.8004\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.1004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-21.8004C4.178,-21.8004 17.9448,-21.8004 30.9241,-21.8004\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-21.8004 30.9808,-24.9505 34.4807,-21.8005 30.9807,-21.8005 30.9807,-21.8005 30.9807,-21.8005 34.4807,-21.8005 30.9807,-18.6505 37.9807,-21.8004 37.9807,-21.8004\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"196.5\" cy=\"-82.8004\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"196.5\" y=\"-79.1004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.6689,-29.0375C97.7025,-39.9061 145.0854,-60.4781 173.4253,-72.7822\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"179.8528,-75.5728 172.1773,-75.6744 176.6423,-74.1789 173.4318,-72.785 173.4318,-72.785 173.4318,-72.785 176.6423,-74.1789 174.6863,-69.8956 179.8528,-75.5728 179.8528,-75.5728\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-64.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"491\" cy=\"-54.8004\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"491\" y=\"-51.1004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.9019,-17.9923C114.466,-9.9076 216.4335,7.3519 301,-3.8004 362.2665,-11.88 431.8424,-34.0155 467.3762,-46.3016\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"474.0165,-48.6204 466.3693,-49.2865 470.7121,-47.4665 467.4078,-46.3126 467.4078,-46.3126 467.4078,-46.3126 470.7121,-47.4665 468.4463,-43.3387 474.0165,-48.6204 474.0165,-48.6204\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-22.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-7.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.5762,-96.4674C179.8066,-107.4567 183.7813,-118.8004 196.5,-118.8004 206.4365,-118.8004 211.036,-111.8767 210.2986,-103.6076\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"208.4238,-96.4674 213.2483,-102.4379 209.3127,-99.8527 210.2016,-103.2379 210.2016,-103.2379 210.2016,-103.2379 209.3127,-99.8527 207.1549,-104.0379 208.4238,-96.4674 208.4238,-96.4674\"/>\n",
"<text text-anchor=\"start\" x=\"170.5\" y=\"-122.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-54.8004\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-51.1004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.8167,-81.8668C235.8343,-80.5267 271.2357,-77.4444 301,-70.8004 308.9328,-69.0297 317.4004,-66.421 324.9564,-63.8217\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.5978,-61.4615 326.0568,-66.7737 328.2999,-62.6335 325.0019,-63.8056 325.0019,-63.8056 325.0019,-63.8056 328.2999,-62.6335 323.9471,-60.8374 331.5978,-61.4615 331.5978,-61.4615\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-97.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-82.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M479.4763,-69.2008C473.0352,-76.2464 464.4178,-84.1845 455,-88.8004 392.7988,-119.2869 370.0638,-107.4511 301,-112.8004 274.8561,-114.8254 267.1163,-120.3353 242,-112.8004 232.7956,-110.0391 223.7331,-104.747 216.1486,-99.3667\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.1546,-94.8802 217.6463,-96.553 212.9566,-96.9775 215.7587,-99.0749 215.7587,-99.0749 215.7587,-99.0749 212.9566,-96.9775 213.8711,-101.5967 210.1546,-94.8802 210.1546,-94.8802\"/>\n",
"<text text-anchor=\"start\" x=\"319\" y=\"-114.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M480.292,-69.5921C476.8057,-80.2169 480.375,-90.8004 491,-90.8004 499.1348,-90.8004 503.1336,-84.5966 502.9966,-76.9201\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"501.708,-69.5921 506.0228,-75.9407 502.3142,-73.0392 502.9204,-76.4863 502.9204,-76.4863 502.9204,-76.4863 502.3142,-73.0392 499.818,-77.0319 501.708,-69.5921 501.708,-69.5921\"/>\n",
"<text text-anchor=\"start\" x=\"465\" y=\"-109.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"483\" y=\"-94.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.519,-50.9999C321.6616,-49.2285 310.8037,-47.2065 301,-45.8004 221.2163,-34.3577 126.022,-26.7495 81.4208,-23.5361\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"74.2008,-23.0227 81.4067,-20.3772 77.692,-23.271 81.1832,-23.5193 81.1832,-23.5193 81.1832,-23.5193 77.692,-23.271 80.9597,-26.6614 74.2008,-23.0227 74.2008,-23.0227\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-39.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M330.3876,-52.1547C308.8692,-49.6488 272.096,-47.3909 242,-55.8004 233.1535,-58.2724 224.2755,-62.933 216.7406,-67.6952\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7573,-71.6735 214.8423,-65.1745 213.6719,-69.7356 216.5864,-67.7976 216.5864,-67.7976 216.5864,-67.7976 213.6719,-69.7356 218.3305,-70.4207 210.7573,-71.6735 210.7573,-71.6735\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-59.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.5477,-54.8004C391.5722,-54.8004 436.9394,-54.8004 465.439,-54.8004\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"472.6487,-54.8004 465.6488,-57.9505 469.1487,-54.8005 465.6487,-54.8005 465.6487,-54.8005 465.6487,-54.8005 469.1487,-54.8005 465.6487,-51.6505 472.6487,-54.8004 472.6487,-54.8004\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-73.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"417.5\" y=\"-58.6004\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"131\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"212\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"331\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"347\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"173pt\"\n",
" viewBox=\"0.00 0.00 498.00 173.06\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 169.063)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-169.063 494,-169.063 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"196\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"218\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"274\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"290\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"213\" y=\"-136.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Streett 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-54.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-50.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-54.063C4.178,-54.063 17.9448,-54.063 30.9241,-54.063\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-54.063 30.9808,-57.2131 34.4807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 34.4807,-54.0631 30.9807,-50.9131 37.9807,-54.063 37.9807,-54.063\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-55.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-51.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-65.8145C76.199,-70.9559 84.1919,-76.7787 92,-81.063 124.0598,-98.6543 133.0226,-103.5126 169,-110.063 229.6274,-121.1014 250.8946,-112.5611 305,-83.063 310.6962,-79.9575 316.434,-75.9715 321.6032,-71.9868\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-67.3626 323.8811,-74.1981 324.6425,-69.5513 321.9113,-71.74 321.9113,-71.74 321.9113,-71.74 324.6425,-69.5513 319.9415,-69.2818 327.3738,-67.3626 327.3738,-67.3626\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-117.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-35.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-31.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-57.9687C93.0741,-61.5237 124.6517,-65.3415 151,-59.063 159.9877,-56.9214 169.2017,-52.7908 177.0938,-48.5519\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-45.007 178.8289,-51.1898 180.3298,-46.7266 177.2813,-48.4462 177.2813,-48.4462 177.2813,-48.4462 180.3298,-46.7266 175.7337,-45.7025 183.3782,-45.007 183.3782,-45.007\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-65.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-22.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-18.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-53.1336C378.5155,-50.7744 409.8902,-46.0725 436,-38.063 440.3769,-36.7204 444.9261,-34.9859 449.2584,-33.1564\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-30.2458 450.7065,-35.9603 452.6314,-31.6629 449.4311,-33.08 449.4311,-33.08 449.4311,-33.08 452.6314,-31.6629 448.1557,-30.1998 455.8317,-30.2458 455.8317,-30.2458\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-53.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-29.1081C159.8443,-22.6052 122.1234,-14.4391 92,-25.063 85.4412,-27.3762 79.1978,-31.4462 73.8077,-35.8187\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-40.6132 71.5187,-33.6356 70.9552,-38.3105 73.5911,-36.0079 73.5911,-36.0079 73.5911,-36.0079 70.9552,-38.3105 75.6635,-38.3802 68.3193,-40.6132 68.3193,-40.6132\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-43.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-28.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-37.596C241.7097,-41.1275 287.4385,-47.5456 315.9073,-51.5412\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-52.5506 315.7289,-54.697 319.6328,-52.0641 316.1668,-51.5776 316.1668,-51.5776 316.1668,-51.5776 319.6328,-52.0641 316.6046,-48.4581 323.0988,-52.5506 323.0988,-52.5506\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-67.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-52.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-48.73C181.3555,-59.7193 185.4375,-71.063 198.5,-71.063 208.7051,-71.063 213.4289,-64.1393 212.6715,-55.8702\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-48.73 215.61,-54.6684 211.6574,-52.1093 212.5687,-55.4886 212.5687,-55.4886 212.5687,-55.4886 211.6574,-52.1093 209.5273,-56.3088 210.7461,-48.73 210.7461,-48.73\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-89.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-74.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0135,-15.8288C449.0806,-13.9324 442.323,-12.0816 436,-11.063 318.8364,7.8113 287.5523,-2.6854 169,-8.063 134.672,-9.6202 122.8215,.1315 92,-15.063 83.6061,-19.2011 76.2062,-26.1941 70.3328,-33.1255\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-38.8694 67.6576,-31.429 67.947,-36.1289 70.1241,-33.3883 70.1241,-33.3883 70.1241,-33.3883 67.947,-36.1289 72.5905,-35.3477 65.7699,-38.8694 65.7699,-38.8694\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-21.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-6.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-18.6353C434.5137,-15.6765 402.3872,-13.2576 377,-23.063 369.8625,-25.8198 363.2281,-30.6939 357.6491,-35.8196\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-40.9601 355.2106,-33.8005 354.933,-38.5011 357.4237,-36.0422 357.4237,-36.0422 357.4237,-36.0422 354.933,-38.5011 359.6368,-38.2838 352.4423,-40.9601 352.4423,-40.9601\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-26.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(minodd4, spot.cleanup_parity(minodd4))\n",
"display2(maxodd5, spot.cleanup_parity(maxodd5))\n",
"display2(maxodd4, spot.cleanup_parity(maxodd4))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here Rabin 1, co-Büchi, and Streett 1, are respectively the same as \"min odd 2\", \"max odd 1\", \"max odd 2\".\n",
"\n",
"# Reduce parity\n",
"\n",
"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",
"making it a very nice replacement for both `cleanup_parity()` and `colorize_parity()`.\n",
"\n",
"It takes two arguments:\n",
"1. the automaton whose parity acceptance condition should be reduced\n",
"2. a Boolean indicating whether the output should be colored (`True`), or if transition with no color can be used (`False`).\n",
"\n",
"By default, the second argument is `False`, because acceptance sets is a scarse ressource in Spot."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"155pt\"\n",
" viewBox=\"0.00 0.00 498.00 155.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 151)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-151 494,-151 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">f</text>\n",
"<text text-anchor=\"start\" x=\"225\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[none]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-43\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-43C4.178,-43 17.9448,-43 30.9241,-43\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-43 30.9808,-46.1501 34.4807,-43 30.9807,-43.0001 30.9807,-43.0001 30.9807,-43.0001 34.4807,-43 30.9807,-39.8501 37.9807,-43 37.9807,-43\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M71.7578,-52.3686C92.9726,-64.3415 132.3027,-84.3186 169,-91 194.7981,-95.697 202.1739,-95.5405 228,-91 260.4115,-85.3018 295.7681,-71.0674 318.1442,-60.9748\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"324.6541,-57.9896 319.6042,-63.7707 321.4727,-59.4485 318.2912,-60.9074 318.2912,-60.9074 318.2912,-60.9074 321.4727,-59.4485 316.9782,-58.0441 324.6541,-57.9896 324.6541,-57.9896\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.2714,-43.2643C93.4431,-43.345 124.4278,-42.919 151,-40 158.3836,-39.1889 166.3389,-37.863 173.5882,-36.4752\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"180.5548,-35.0835 174.3076,-39.5438 177.1226,-35.7692 173.6904,-36.4548 173.6904,-36.4548 173.6904,-36.4548 177.1226,-35.7692 173.0733,-33.3659 180.5548,-35.0835 180.5548,-35.0835\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-46.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.168,-48.3122C378.5198,-46.1988 409.896,-41.862 436,-34 440.3837,-32.6797 444.9362,-30.956 449.2695,-29.13\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.843,-26.2198 450.7174,-31.934 452.6426,-27.6368 449.4422,-29.0537 449.4422,-29.0537 449.4422,-29.0537 452.6426,-27.6368 448.167,-26.1733 455.843,-26.2198 455.843,-26.2198\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.1839,-25.5801C159.8183,-19.7501 122.5693,-12.3989 92,-21 86.5466,-22.5344 81.1023,-25.1498 76.1595,-28.0529\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"70.2038,-31.8244 74.4325,-25.418 73.1608,-29.9518 76.1178,-28.0793 76.1178,-28.0793 76.1178,-28.0793 73.1608,-29.9518 77.8031,-30.7406 70.2038,-31.8244 70.2038,-31.8244\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.4064C241.7097,-36.7613 287.4385,-42.8585 315.9073,-46.6543\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-47.6132 315.7439,-49.8103 319.6295,-47.1506 316.1602,-46.6879 316.1602,-46.6879 316.1602,-46.6879 319.6295,-47.1506 316.5766,-43.5656 323.0988,-47.6132 323.0988,-47.6132\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.6114,-12.2191C448.7647,-10.5317 442.1618,-8.9003 436,-8 379.103,.3135 237.9047,.0132 169,-4 134.6031,-6.0034 123.6604,.5933 92,-13 85.5218,-15.7814 79.3043,-20.1173 73.9134,-24.6365\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.4149,-29.5475 71.5374,-22.5352 71.0253,-27.216 73.6357,-24.8846 73.6357,-24.8846 73.6357,-24.8846 71.0253,-27.216 75.7341,-27.2339 68.4149,-29.5475 68.4149,-29.5475\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1747,-14.6481C434.568,-11.7557 402.4636,-9.3946 377,-19 370.0546,-21.62 363.5432,-26.2292 358.0191,-31.1053\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.8446,-36.0065 355.7606,-28.9057 355.3857,-33.5996 357.9268,-31.1927 357.9268,-31.1927 357.9268,-31.1927 355.3857,-33.5996 360.093,-33.4797 352.8446,-36.0065 352.8446,-36.0065\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"188\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity min odd 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"183pt\"\n",
" viewBox=\"0.00 0.00 498.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 179)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-179 494,-179 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"222.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"247.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"263.5\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"212.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[co&#45;Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.4177,-65.5746C71.7774,-74.7207 81.0051,-85.69 92,-92 122.1681,-109.3137 134.3573,-102.8763 169,-106 229.7849,-111.481 249.3842,-112.1342 305,-87 310.5819,-84.4774 316.213,-81.0693 321.3104,-77.5819\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.0143,-73.5001 323.155,-80.1355 324.168,-75.537 321.3218,-77.5738 321.3218,-77.5738 321.3218,-77.5738 324.168,-75.537 319.4886,-75.0122 327.0143,-73.5001 327.0143,-73.5001\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.3459,-62.5164C379.1227,-62.3983 411.1106,-60.2182 436,-49 442.7675,-45.9498 449.226,-41.2127 454.7564,-36.352\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"459.9545,-31.5078 456.981,-38.5846 457.394,-33.894 454.8335,-36.2802 454.8335,-36.2802 454.8335,-36.2802 457.394,-33.894 452.6859,-33.9757 459.9545,-31.5078 459.9545,-31.5078\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.2596,-34.8635C241.433,-40.3398 287.5999,-50.3831 316.1587,-56.5959\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0166,-58.0878 315.5069,-59.6777 319.5966,-57.3438 316.1766,-56.5997 316.1766,-56.5997 316.1766,-56.5997 319.5966,-57.3438 316.8462,-53.5217 323.0166,-58.0878 323.0166,-58.0878\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0647,-11.1461C449.136,-9.0729 442.3679,-7.0648 436,-6 385.7726,2.3988 239.7685,-.7899 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.2068,-13.9399C434.345,-10.3421 401.747,-7.2845 377,-19 367.6034,-23.4485 359.7823,-31.6672 353.8572,-39.737\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"349.7011,-45.8141 351.0526,-38.2578 351.6769,-42.9251 353.6527,-40.0361 353.6527,-40.0361 353.6527,-40.0361 351.6769,-42.9251 356.2528,-41.8143 349.7011,-45.8141 349.7011,-45.8141\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(minodd4, spot.reduce_parity(minodd4))\n",
"display2(minodd4, spot.reduce_parity(minodd4, True))"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"173pt\"\n",
" viewBox=\"0.00 0.00 498.00 173.06\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 169.063)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-169.063 494,-169.063 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"193\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"218\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"277\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"293\" y=\"-150.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-136.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 2]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-54.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-50.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-54.063C4.178,-54.063 17.9448,-54.063 30.9241,-54.063\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-54.063 30.9808,-57.2131 34.4807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 30.9807,-54.0631 34.4807,-54.0631 30.9807,-50.9131 37.9807,-54.063 37.9807,-54.063\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-55.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-51.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-65.8145C76.199,-70.9559 84.1919,-76.7787 92,-81.063 124.0598,-98.6543 133.0226,-103.5126 169,-110.063 229.6274,-121.1014 250.8946,-112.5611 305,-83.063 310.6962,-79.9575 316.434,-75.9715 321.6032,-71.9868\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-67.3626 323.8811,-74.1981 324.6425,-69.5513 321.9113,-71.74 321.9113,-71.74 321.9113,-71.74 324.6425,-69.5513 319.9415,-69.2818 327.3738,-67.3626 327.3738,-67.3626\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-117.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-35.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-31.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-57.9687C93.0741,-61.5237 124.6517,-65.3415 151,-59.063 159.9877,-56.9214 169.2017,-52.7908 177.0938,-48.5519\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-45.007 178.8289,-51.1898 180.3298,-46.7266 177.2813,-48.4462 177.2813,-48.4462 177.2813,-48.4462 180.3298,-46.7266 175.7337,-45.7025 183.3782,-45.007 183.3782,-45.007\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-65.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-22.063\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-18.363\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-53.1336C378.5155,-50.7744 409.8902,-46.0725 436,-38.063 440.3769,-36.7204 444.9261,-34.9859 449.2584,-33.1564\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-30.2458 450.7065,-35.9603 452.6314,-31.6629 449.4311,-33.08 449.4311,-33.08 449.4311,-33.08 452.6314,-31.6629 448.1557,-30.1998 455.8317,-30.2458 455.8317,-30.2458\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-53.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-29.1081C159.8443,-22.6052 122.1234,-14.4391 92,-25.063 85.4412,-27.3762 79.1978,-31.4462 73.8077,-35.8187\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-40.6132 71.5187,-33.6356 70.9552,-38.3105 73.5911,-36.0079 73.5911,-36.0079 73.5911,-36.0079 70.9552,-38.3105 75.6635,-38.3802 68.3193,-40.6132 68.3193,-40.6132\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-43.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-28.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-37.596C241.7097,-41.1275 287.4385,-47.5456 315.9073,-51.5412\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-52.5506 315.7289,-54.697 319.6328,-52.0641 316.1668,-51.5776 316.1668,-51.5776 316.1668,-51.5776 319.6328,-52.0641 316.6046,-48.4581 323.0988,-52.5506 323.0988,-52.5506\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-67.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-52.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-48.73C181.3555,-59.7193 185.4375,-71.063 198.5,-71.063 208.7051,-71.063 213.4289,-64.1393 212.6715,-55.8702\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-48.73 215.61,-54.6684 211.6574,-52.1093 212.5687,-55.4886 212.5687,-55.4886 212.5687,-55.4886 211.6574,-52.1093 209.5273,-56.3088 210.7461,-48.73 210.7461,-48.73\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-89.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-74.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0135,-15.8288C449.0806,-13.9324 442.323,-12.0816 436,-11.063 318.8364,7.8113 287.5523,-2.6854 169,-8.063 134.672,-9.6202 122.8215,.1315 92,-15.063 83.6061,-19.2011 76.2062,-26.1941 70.3328,-33.1255\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-38.8694 67.6576,-31.429 67.947,-36.1289 70.1241,-33.3883 70.1241,-33.3883 70.1241,-33.3883 67.947,-36.1289 72.5905,-35.3477 65.7699,-38.8694 65.7699,-38.8694\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-21.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-6.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-18.6353C434.5137,-15.6765 402.3872,-13.2576 377,-23.063 369.8625,-25.8198 363.2281,-30.6939 357.6491,-35.8196\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-40.9601 355.2106,-33.8005 354.933,-38.5011 357.4237,-36.0422 357.4237,-36.0422 357.4237,-36.0422 354.933,-38.5011 359.6368,-38.2838 352.4423,-40.9601 352.4423,-40.9601\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-26.863\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"169pt\"\n",
" viewBox=\"0.00 0.00 498.00 169.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 165)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-165 494,-165 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"128\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"153\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"216\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"232\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
"<text text-anchor=\"start\" x=\"275\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"291\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"334\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-132.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max even 4]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-47.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.7342,-61.7514C76.199,-66.8929 84.1919,-72.7157 92,-77 124.0598,-94.5913 133.0226,-99.4496 169,-106 229.6274,-117.0384 250.8946,-108.4981 305,-79 310.6962,-75.8945 316.434,-71.9085 321.6032,-67.9238\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.3738,-63.2995 323.8811,-70.1351 324.6425,-65.4882 321.9113,-67.6769 321.9113,-67.6769 321.9113,-67.6769 324.6425,-65.4882 319.9415,-65.2188 327.3738,-63.2995 327.3738,-63.2995\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.1657,-49.0706C378.5155,-46.7114 409.8902,-42.0095 436,-34 440.3769,-32.6573 444.9261,-30.9229 449.2584,-29.0934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"455.8317,-26.1828 450.7065,-31.8973 452.6314,-27.5999 449.4311,-29.017 449.4311,-29.017 449.4311,-29.017 452.6314,-27.5999 448.1557,-26.1367 455.8317,-26.1828 455.8317,-26.1828\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.5477,-33.533C241.7097,-37.0645 287.4385,-43.4826 315.9073,-47.4782\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0988,-48.4876 315.7289,-50.634 319.6328,-48.0011 316.1668,-47.5145 316.1668,-47.5145 316.1668,-47.5145 319.6328,-48.0011 316.6046,-44.3951 323.0988,-48.4876 323.0988,-48.4876\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-63.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-48.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0183,-11.7352C449.0859,-9.8362 442.3273,-7.9918 436,-7 390.3799,.1509 241.0868,-.7301 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"259.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"275.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1457,-14.5723C434.5137,-11.6135 402.3872,-9.1946 377,-19 369.8625,-21.7568 363.2281,-26.6309 357.6491,-31.7566\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.4423,-36.8971 355.2106,-29.7375 354.933,-34.4381 357.4237,-31.9791 357.4237,-31.9791 357.4237,-31.9791 354.933,-34.4381 359.6368,-34.2208 352.4423,-36.8971 352.4423,-36.8971\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div><div style='vertical-align:text-top;display:inline-block;width:50%;'><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"498pt\" height=\"183pt\"\n",
" viewBox=\"0.00 0.00 498.00 183.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 179)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-179 494,-179 494,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"186\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"<text text-anchor=\"start\" x=\"202\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; (Inf(</text>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"265\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"321\" y=\"-160.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))</text>\n",
"<text text-anchor=\"start\" x=\"187.5\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 3]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-50\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-46.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-50C4.178,-50 17.9448,-50 30.9241,-50\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-50 30.9808,-53.1501 34.4807,-50 30.9807,-50.0001 30.9807,-50.0001 30.9807,-50.0001 34.4807,-50 30.9807,-46.8501 37.9807,-50 37.9807,-50\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"341\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"341\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.4177,-65.5746C71.7774,-74.7207 81.0051,-85.69 92,-92 122.1681,-109.3137 134.3573,-102.8763 169,-106 229.7849,-111.481 249.3842,-112.1342 305,-87 310.5819,-84.4774 316.213,-81.0693 321.3104,-77.5819\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"327.0143,-73.5001 323.155,-80.1355 324.168,-75.537 321.3218,-77.5738 321.3218,-77.5738 321.3218,-77.5738 324.168,-75.537 319.4886,-75.0122 327.0143,-73.5001 327.0143,-73.5001\"/>\n",
"<text text-anchor=\"start\" x=\"169\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"198.5\" cy=\"-31\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"198.5\" y=\"-27.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;3 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.7806,-53.9057C93.0741,-57.4606 124.6517,-61.2785 151,-55 159.9877,-52.8583 169.2017,-48.7277 177.0938,-44.4889\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"183.3782,-40.944 178.8289,-47.1268 180.3298,-42.6636 177.2813,-44.3831 177.2813,-44.3831 177.2813,-44.3831 180.3298,-42.6636 175.7337,-41.6395 183.3782,-40.944 183.3782,-40.944\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-61.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"472\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"472\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>2&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.3459,-62.5164C379.1227,-62.3983 411.1106,-60.2182 436,-49 442.7675,-45.9498 449.226,-41.2127 454.7564,-36.352\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"459.9545,-31.5078 456.981,-38.5846 457.394,-33.894 454.8335,-36.2802 454.8335,-36.2802 454.8335,-36.2802 457.394,-33.894 452.6859,-33.9757 459.9545,-31.5078 459.9545,-31.5078\"/>\n",
"<text text-anchor=\"start\" x=\"379\" y=\"-79.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.3554,-25.0451C159.8443,-18.5422 122.1234,-10.3761 92,-21 85.4412,-23.3131 79.1978,-27.3832 73.8077,-31.7557\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"68.3193,-36.5501 71.5187,-29.5725 70.9552,-34.2475 73.5911,-31.9449 73.5911,-31.9449 73.5911,-31.9449 70.9552,-34.2475 75.6635,-34.3172 68.3193,-36.5501 68.3193,-36.5501\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-39.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"113.5\" y=\"-24.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;2 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>3&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.2596,-34.8635C241.433,-40.3398 287.5999,-50.3831 316.1587,-56.5959\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"323.0166,-58.0878 315.5069,-59.6777 319.5966,-57.3438 316.1766,-56.5997 316.1766,-56.5997 316.1766,-56.5997 319.5966,-57.3438 316.8462,-53.5217 323.0166,-58.0878 323.0166,-58.0878\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-71.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-56.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>3&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M186.2539,-44.667C181.3555,-55.6563 185.4375,-67 198.5,-67 208.7051,-67 213.4289,-60.0763 212.6715,-51.8071\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"210.7461,-44.667 215.61,-50.6054 211.6574,-48.0463 212.5687,-51.4256 212.5687,-51.4256 212.5687,-51.4256 211.6574,-48.0463 209.5273,-52.2457 210.7461,-44.667 210.7461,-44.667\"/>\n",
"<text text-anchor=\"start\" x=\"171\" y=\"-85.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"190.5\" y=\"-70.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M455.0647,-11.1461C449.136,-9.0729 442.3679,-7.0648 436,-6 385.7726,2.3988 239.7685,-.7899 169,-4 134.672,-5.5572 122.8215,4.1945 92,-11 83.6061,-15.138 76.2062,-22.1311 70.3328,-29.0625\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"65.7699,-34.8063 67.6576,-27.3659 67.947,-32.0658 70.1241,-29.3253 70.1241,-29.3253 70.1241,-29.3253 67.947,-32.0658 72.5905,-31.2847 65.7699,-34.8063 65.7699,-34.8063\"/>\n",
"<text text-anchor=\"start\" x=\"248\" y=\"-19.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; p1</text>\n",
"<text text-anchor=\"start\" x=\"267.5\" y=\"-4.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.2068,-13.9399C434.345,-10.3421 401.747,-7.2845 377,-19 367.6034,-23.4485 359.7823,-31.6672 353.8572,-39.737\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"349.7011,-45.8141 351.0526,-38.2578 351.6769,-42.9251 353.6527,-40.0361 353.6527,-40.0361 353.6527,-40.0361 351.6769,-42.9251 356.2528,-41.8143 349.7011,-45.8141 349.7011,-45.8141\"/>\n",
"<text text-anchor=\"start\" x=\"377\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!p0 &amp; !p1</text>\n",
"<text text-anchor=\"start\" x=\"398.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n",
"</div>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display2(maxeven4, spot.reduce_parity(maxeven4))\n",
"display2(maxeven4, spot.reduce_parity(maxeven4, True))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}