diff --git a/info4/kapitel-1/Grammatiken.ipynb b/info4/kapitel-1/Grammatiken.ipynb
index ea71fb552165b1ee6382e718cffff4a86f5ce71e..be926db3ae5ee0fbaa407572335c0b884a098387 100644
--- a/info4/kapitel-1/Grammatiken.ipynb
+++ b/info4/kapitel-1/Grammatiken.ipynb
@@ -29,7 +29,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [
     {
@@ -38,7 +38,7 @@
        "Loaded machine: Grammatik"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 1,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -65,7 +65,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [
     {
@@ -74,7 +74,7 @@
        "Machine constants set up using operation 0: $setup_constants()"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 2,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -85,7 +85,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -103,7 +103,7 @@
        "\tRHS = []"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -121,7 +121,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
@@ -133,7 +133,7 @@
        "{[],[a,S,b]}"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -159,7 +159,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -168,7 +168,7 @@
        "Loaded machine: Grammatik"
       ]
      },
-     "execution_count": 8,
+     "execution_count": 5,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -199,7 +199,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
@@ -208,7 +208,7 @@
        "Machine constants set up using operation 0: $setup_constants()"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -226,7 +226,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
@@ -238,7 +238,7 @@
        "/*@symbolic*/ {u,v∣∃(x,z,p,q)·(p ↦ q ∈ {([S]↦[]),([S]↦[a,S,b])} ∧ u = x ⌒ p ⌒ z ∧ v = x ⌒ q ⌒ z)}"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 7,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -249,7 +249,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -261,7 +261,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 14,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -272,7 +272,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
@@ -284,7 +284,7 @@
        "FALSE"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -295,7 +295,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
@@ -313,7 +313,7 @@
        "\tx = []"
       ]
      },
-     "execution_count": 15,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -331,7 +331,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
@@ -343,7 +343,7 @@
        "{[],[a,S,b]}"
       ]
      },
-     "execution_count": 16,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -354,7 +354,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
@@ -366,7 +366,7 @@
        "{[a,b,S],[a,S,b],[a,S,b,a,S,b],[a,a,S,b,b,S]}"
       ]
      },
-     "execution_count": 18,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -384,7 +384,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -396,7 +396,7 @@
        "{[a,b],[a,a,S,b,b]}"
       ]
      },
-     "execution_count": 19,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -407,7 +407,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
@@ -419,7 +419,7 @@
        "{[a,a,b,b],[a,a,a,S,b,b,b]}"
       ]
      },
-     "execution_count": 20,
+     "execution_count": 14,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -443,7 +443,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 23,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
@@ -455,7 +455,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 23,
+     "execution_count": 15,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -473,7 +473,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 24,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [
     {
@@ -485,7 +485,7 @@
        "{[S]}"
       ]
      },
-     "execution_count": 24,
+     "execution_count": 16,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -496,7 +496,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 25,
+   "execution_count": 17,
    "metadata": {},
    "outputs": [
     {
@@ -508,7 +508,7 @@
        "{[],[a,S,b]}"
       ]
      },
-     "execution_count": 25,
+     "execution_count": 17,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -519,7 +519,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 26,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
@@ -531,7 +531,7 @@
        "{[a,b],[a,a,S,b,b]}"
       ]
      },
-     "execution_count": 26,
+     "execution_count": 18,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -542,7 +542,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 27,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [
     {
@@ -554,7 +554,7 @@
        "{[a,a,b,b],[a,a,a,S,b,b,b]}"
       ]
      },
-     "execution_count": 27,
+     "execution_count": 19,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -565,7 +565,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 28,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [
     {
@@ -577,7 +577,7 @@
        "{[a,a,a,b,b,b],[a,a,a,a,S,b,b,b,b]}"
       ]
      },
-     "execution_count": 28,
+     "execution_count": 20,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -600,7 +600,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 29,
+   "execution_count": 21,
    "metadata": {},
    "outputs": [
     {
@@ -612,7 +612,7 @@
        "{[],[a,b],[S],[a,a,b,b],[a,S,b],[a,a,a,b,b,b],[a,a,S,b,b],[a,a,a,S,b,b,b],[a,a,a,a,S,b,b,b,b]}"
       ]
      },
-     "execution_count": 29,
+     "execution_count": 21,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -630,7 +630,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 22,
    "metadata": {},
    "outputs": [
     {
@@ -642,7 +642,7 @@
        "{[],[a,b],[a,a,b,b],[a,a,a,b,b,b]}"
       ]
      },
-     "execution_count": 30,
+     "execution_count": 22,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -660,7 +660,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 23,
    "metadata": {},
    "outputs": [
     {
@@ -672,7 +672,7 @@
        "{[],[a,b],[S],[a,a,b,b],[a,S,b],[a,a,a,b,b,b],[a,a,S,b,b],[a,a,a,S,b,b,b],[a,a,a,a,S,b,b,b,b]}"
       ]
      },
-     "execution_count": 31,
+     "execution_count": 23,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -683,7 +683,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 32,
+   "execution_count": 24,
    "metadata": {},
    "outputs": [
     {
@@ -692,7 +692,7 @@
        "Preference changed: DOT_DECOMPOSE_NODES = FALSE\n"
       ]
      },
-     "execution_count": 32,
+     "execution_count": 24,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -703,7 +703,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": 25,
    "metadata": {},
    "outputs": [
     {
@@ -712,106 +712,123 @@
        "<?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.28.0 (20110509.1545)\n",
+       "<!-- Generated by graphviz version 2.44.1 (0)\n",
        " -->\n",
        "<!-- Title: state Pages: 1 -->\n",
-       "<svg width=\"354pt\" height=\"404pt\"\n",
-       " viewBox=\"0.00 0.00 354.00 404.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
-       "<g id=\"graph1\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 400)\">\n",
+       "<svg width=\"352pt\" height=\"392pt\"\n",
+       " viewBox=\"0.00 0.00 351.50 392.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 388)\">\n",
        "<title>state</title>\n",
-       "<polygon fill=\"white\" stroke=\"white\" points=\"-4,5 -4,-400 351,-400 351,5 -4,5\"/>\n",
+       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-388 347.5,-388 347.5,4 -4,4\"/>\n",
        "<!-- [a,a,a,S,b,b,b] -->\n",
-       "<g id=\"node1\" class=\"node\"><title>[a,a,a,S,b,b,b]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"160.312,-126 67.6878,-126 67.6878,-90 160.312,-90 160.312,-126\"/>\n",
-       "<text text-anchor=\"middle\" x=\"114\" y=\"-103.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,S,b,b,b]</text>\n",
+       "<g id=\"node1\" class=\"node\">\n",
+       "<title>[a,a,a,S,b,b,b]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"197,-123 82,-123 82,-87 197,-87 197,-123\"/>\n",
+       "<text text-anchor=\"middle\" x=\"139.5\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,S,b,b,b]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,a,S,b,b,b,b] -->\n",
-       "<g id=\"node3\" class=\"node\"><title>[a,a,a,a,S,b,b,b,b]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"112.472,-36 -0.471819,-36 -0.471819,-0 112.472,-0 112.472,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"56\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,a,S,b,b,b,b]</text>\n",
+       "<g id=\"node2\" class=\"node\">\n",
+       "<title>[a,a,a,a,S,b,b,b,b]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"141,-36 0,-36 0,0 141,0 141,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"70.5\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,a,S,b,b,b,b]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,b,b,b]&#45;&gt;[a,a,a,a,S,b,b,b,b] -->\n",
-       "<g id=\"edge2\" class=\"edge\"><title>[a,a,a,S,b,b,b]&#45;&gt;[a,a,a,a,S,b,b,b,b]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M102.541,-89.614C94.0659,-76.7551 82.389,-59.0384 72.8518,-44.5682\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"75.6633,-42.4739 67.2378,-36.0504 69.8186,-46.3261 75.6633,-42.4739\"/>\n",
-       "<text text-anchor=\"middle\" x=\"99.5526\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge1\" class=\"edge\">\n",
+       "<title>[a,a,a,S,b,b,b]&#45;&gt;[a,a,a,a,S,b,b,b,b]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M125.54,-86.8C115.62,-74.59 102.15,-57.99 91.02,-44.28\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"93.46,-41.73 84.44,-36.18 88.03,-46.15 93.46,-41.73\"/>\n",
+       "<text text-anchor=\"middle\" x=\"120.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,a,b,b,b] -->\n",
-       "<g id=\"node5\" class=\"node\"><title>[a,a,a,b,b,b]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"213.349,-36 130.651,-36 130.651,-0 213.349,-0 213.349,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"172\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,b,b,b]</text>\n",
+       "<g id=\"node3\" class=\"node\">\n",
+       "<title>[a,a,a,b,b,b]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"260,-36 159,-36 159,0 260,0 260,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"209.5\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,b,b,b]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,b,b,b]&#45;&gt;[a,a,a,b,b,b] -->\n",
-       "<g id=\"edge4\" class=\"edge\"><title>[a,a,a,S,b,b,b]&#45;&gt;[a,a,a,b,b,b]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M125.459,-89.614C133.934,-76.7551 145.611,-59.0384 155.148,-44.5682\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"158.181,-46.3261 160.762,-36.0504 152.337,-42.4739 158.181,-46.3261\"/>\n",
-       "<text text-anchor=\"middle\" x=\"157.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge2\" class=\"edge\">\n",
+       "<title>[a,a,a,S,b,b,b]&#45;&gt;[a,a,a,b,b,b]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M153.67,-86.8C163.72,-74.59 177.39,-57.99 188.68,-44.28\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"191.7,-46.12 195.36,-36.18 186.3,-41.67 191.7,-46.12\"/>\n",
+       "<text text-anchor=\"middle\" x=\"190.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,S,b,b] -->\n",
-       "<g id=\"node6\" class=\"node\"><title>[a,a,S,b,b]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"222.154,-216 149.846,-216 149.846,-180 222.154,-180 222.154,-216\"/>\n",
-       "<text text-anchor=\"middle\" x=\"186\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,S,b,b]</text>\n",
+       "<g id=\"node4\" class=\"node\">\n",
+       "<title>[a,a,S,b,b]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"240,-210 151,-210 151,-174 240,-174 240,-210\"/>\n",
+       "<text text-anchor=\"middle\" x=\"195.5\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,S,b,b]</text>\n",
        "</g>\n",
        "<!-- [a,a,S,b,b]&#45;&gt;[a,a,a,S,b,b,b] -->\n",
-       "<g id=\"edge6\" class=\"edge\"><title>[a,a,S,b,b]&#45;&gt;[a,a,a,S,b,b,b]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M171.775,-179.614C161.155,-166.634 146.485,-148.704 134.585,-134.16\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"136.992,-131.574 127.95,-126.05 131.574,-136.006 136.992,-131.574\"/>\n",
-       "<text text-anchor=\"middle\" x=\"165.553\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge3\" class=\"edge\">\n",
+       "<title>[a,a,S,b,b]&#45;&gt;[a,a,a,S,b,b,b]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M184.17,-173.8C176.2,-161.7 165.39,-145.3 156.41,-131.67\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"159.24,-129.6 150.82,-123.18 153.39,-133.45 159.24,-129.6\"/>\n",
+       "<text text-anchor=\"middle\" x=\"182.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,b,b] -->\n",
-       "<g id=\"node9\" class=\"node\"><title>[a,a,b,b]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"241.188,-126 178.812,-126 178.812,-90 241.188,-90 241.188,-126\"/>\n",
-       "<text text-anchor=\"middle\" x=\"210\" y=\"-103.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,b,b]</text>\n",
+       "<g id=\"node5\" class=\"node\">\n",
+       "<title>[a,a,b,b]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"290,-123 215,-123 215,-87 290,-87 290,-123\"/>\n",
+       "<text text-anchor=\"middle\" x=\"252.5\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,b,b]</text>\n",
        "</g>\n",
        "<!-- [a,a,S,b,b]&#45;&gt;[a,a,b,b] -->\n",
-       "<g id=\"edge8\" class=\"edge\"><title>[a,a,S,b,b]&#45;&gt;[a,a,b,b]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M190.742,-179.614C194.149,-167.119 198.808,-150.037 202.69,-135.804\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"206.095,-136.619 205.35,-126.05 199.342,-134.777 206.095,-136.619\"/>\n",
-       "<text text-anchor=\"middle\" x=\"209.553\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge4\" class=\"edge\">\n",
+       "<title>[a,a,S,b,b]&#45;&gt;[a,a,b,b]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M207.03,-173.8C215.15,-161.7 226.14,-145.3 235.29,-131.67\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"238.32,-133.43 240.98,-123.18 232.51,-129.53 238.32,-133.43\"/>\n",
+       "<text text-anchor=\"middle\" x=\"238.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,S,b] -->\n",
-       "<g id=\"node10\" class=\"node\"><title>[a,S,b]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"274,-306 220,-306 220,-270 274,-270 274,-306\"/>\n",
-       "<text text-anchor=\"middle\" x=\"247\" y=\"-283.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,S,b]</text>\n",
+       "<g id=\"node6\" class=\"node\">\n",
+       "<title>[a,S,b]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"271.5,-297 209.5,-297 209.5,-261 271.5,-261 271.5,-297\"/>\n",
+       "<text text-anchor=\"middle\" x=\"240.5\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,S,b]</text>\n",
        "</g>\n",
        "<!-- [a,S,b]&#45;&gt;[a,a,S,b,b] -->\n",
-       "<g id=\"edge10\" class=\"edge\"><title>[a,S,b]&#45;&gt;[a,a,S,b,b]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M234.948,-269.614C226.035,-256.755 213.754,-239.038 203.723,-224.568\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"206.393,-222.275 197.819,-216.05 200.64,-226.263 206.393,-222.275\"/>\n",
-       "<text text-anchor=\"middle\" x=\"230.553\" y=\"-238.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge5\" class=\"edge\">\n",
+       "<title>[a,S,b]&#45;&gt;[a,a,S,b,b]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M231.39,-260.8C225.05,-248.82 216.47,-232.62 209.29,-219.06\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"212.37,-217.38 204.59,-210.18 206.18,-220.65 212.37,-217.38\"/>\n",
+       "<text text-anchor=\"middle\" x=\"232.5\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,b] -->\n",
-       "<g id=\"node13\" class=\"node\"><title>[a,b]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"295,-216 241,-216 241,-180 295,-180 295,-216\"/>\n",
-       "<text text-anchor=\"middle\" x=\"268\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,b]</text>\n",
+       "<g id=\"node7\" class=\"node\">\n",
+       "<title>[a,b]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"312.5,-210 258.5,-210 258.5,-174 312.5,-174 312.5,-210\"/>\n",
+       "<text text-anchor=\"middle\" x=\"285.5\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,b]</text>\n",
        "</g>\n",
        "<!-- [a,S,b]&#45;&gt;[a,b] -->\n",
-       "<g id=\"edge12\" class=\"edge\"><title>[a,S,b]&#45;&gt;[a,b]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M251.149,-269.614C254.131,-257.119 258.207,-240.037 261.603,-225.804\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"265.014,-226.59 263.931,-216.05 258.205,-224.965 265.014,-226.59\"/>\n",
-       "<text text-anchor=\"middle\" x=\"268.553\" y=\"-238.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge6\" class=\"edge\">\n",
+       "<title>[a,S,b]&#45;&gt;[a,b]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M249.61,-260.8C255.95,-248.82 264.53,-232.62 271.71,-219.06\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"274.82,-220.65 276.41,-210.18 268.63,-217.38 274.82,-220.65\"/>\n",
+       "<text text-anchor=\"middle\" x=\"277.5\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [S] -->\n",
-       "<g id=\"node14\" class=\"node\"><title>[S]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"318,-396 264,-396 264,-360 318,-360 318,-396\"/>\n",
-       "<text text-anchor=\"middle\" x=\"291\" y=\"-373.8\" font-family=\"Times,serif\" font-size=\"14.00\">[S]</text>\n",
+       "<g id=\"node8\" class=\"node\">\n",
+       "<title>[S]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"305.5,-384 251.5,-384 251.5,-348 305.5,-348 305.5,-384\"/>\n",
+       "<text text-anchor=\"middle\" x=\"278.5\" y=\"-362.3\" font-family=\"Times,serif\" font-size=\"14.00\">[S]</text>\n",
        "</g>\n",
        "<!-- [S]&#45;&gt;[a,S,b] -->\n",
-       "<g id=\"edge14\" class=\"edge\"><title>[S]&#45;&gt;[a,S,b]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M282.307,-359.614C275.999,-346.998 267.353,-329.705 260.195,-315.391\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"263.128,-313.429 255.525,-306.05 256.867,-316.56 263.128,-313.429\"/>\n",
-       "<text text-anchor=\"middle\" x=\"281.553\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge7\" class=\"edge\">\n",
+       "<title>[S]&#45;&gt;[a,S,b]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M270.81,-347.8C265.5,-335.93 258.35,-319.93 252.32,-306.45\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"255.46,-304.88 248.18,-297.18 249.06,-307.73 255.46,-304.88\"/>\n",
+       "<text text-anchor=\"middle\" x=\"273.5\" y=\"-318.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [] -->\n",
-       "<g id=\"node17\" class=\"node\"><title>[]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"346,-306 292,-306 292,-270 346,-270 346,-306\"/>\n",
-       "<text text-anchor=\"middle\" x=\"319\" y=\"-283.8\" font-family=\"Times,serif\" font-size=\"14.00\">[]</text>\n",
+       "<g id=\"node9\" class=\"node\">\n",
+       "<title>[]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"343.5,-297 289.5,-297 289.5,-261 343.5,-261 343.5,-297\"/>\n",
+       "<text text-anchor=\"middle\" x=\"316.5\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">[]</text>\n",
        "</g>\n",
        "<!-- [S]&#45;&gt;[] -->\n",
-       "<g id=\"edge16\" class=\"edge\"><title>[S]&#45;&gt;[]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M296.532,-359.614C300.508,-347.119 305.943,-330.037 310.471,-315.804\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"313.878,-316.641 313.575,-306.05 307.208,-314.518 313.878,-316.641\"/>\n",
-       "<text text-anchor=\"middle\" x=\"316.553\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge8\" class=\"edge\">\n",
+       "<title>[S]&#45;&gt;[]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M286.19,-347.8C291.5,-335.93 298.65,-319.93 304.68,-306.45\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"307.94,-307.73 308.82,-297.18 301.54,-304.88 307.94,-307.73\"/>\n",
+       "<text text-anchor=\"middle\" x=\"310.5\" y=\"-318.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "</g>\n",
        "</svg>"
@@ -820,7 +837,7 @@
        "<Dot visualization: expr_as_graph [SFSF={[],[a,b],[S],[a,a,b,b],[a,S,b],[a,a,a,b,b,b],[a,a,S,b,b],[a,a,a,S,b,b,b],[a,a,a,a,S,b,b,b,b]}(\"abl\",SF<|abl|>SF)]>"
       ]
      },
-     "execution_count": 33,
+     "execution_count": 25,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -838,7 +855,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 34,
+   "execution_count": 26,
    "metadata": {},
    "outputs": [
     {
@@ -847,7 +864,7 @@
        "Loaded machine: Grammatik2"
       ]
      },
-     "execution_count": 34,
+     "execution_count": 26,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -883,7 +900,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 35,
+   "execution_count": 27,
    "metadata": {},
    "outputs": [
     {
@@ -892,7 +909,7 @@
        "Machine constants set up using operation 0: $setup_constants()"
       ]
      },
-     "execution_count": 35,
+     "execution_count": 27,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -903,7 +920,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 36,
+   "execution_count": 28,
    "metadata": {},
    "outputs": [
     {
@@ -915,7 +932,7 @@
        "{[S],[a,b,c],[a,b,C],[a,S,B,C],[a,B,C],[a,a,b,c,B,C],[a,a,b,C,B,C],[a,a,b,B,C,C],[a,a,B,C,B,C],[a,a,B,B,C,C],[a,a,S,B,C,B,C],[a,a,S,B,B,C,C],[a,a,a,S,B,C,B,B,C,C],[a,a,a,S,B,B,C,C,B,C],[a,a,a,S,B,C,B,C,B,C],[a,a,a,B,B,C,C,B,C],[a,a,a,b,C,B,C,B,C],[a,a,a,B,C,B,B,C,C],[a,a,a,B,C,B,C,B,C],[a,a,a,a,B,C,B,C,B,C,B,C],[a,a,a,a,S,B,C,B,C,B,C,B,C]}"
       ]
      },
-     "execution_count": 36,
+     "execution_count": 28,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -926,7 +943,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 37,
+   "execution_count": 29,
    "metadata": {},
    "outputs": [
     {
@@ -938,7 +955,7 @@
        "{[a,b,c]}"
       ]
      },
-     "execution_count": 37,
+     "execution_count": 29,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -949,7 +966,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 38,
+   "execution_count": 30,
    "metadata": {},
    "outputs": [
     {
@@ -958,7 +975,7 @@
        "Preference changed: DOT_DECOMPOSE_NODES = FALSE\n"
       ]
      },
-     "execution_count": 38,
+     "execution_count": 30,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -969,7 +986,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 39,
+   "execution_count": 31,
    "metadata": {},
    "outputs": [
     {
@@ -978,256 +995,300 @@
        "<?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.28.0 (20110509.1545)\n",
+       "<!-- Generated by graphviz version 2.44.1 (0)\n",
        " -->\n",
        "<!-- Title: state Pages: 1 -->\n",
-       "<svg width=\"1329pt\" height=\"404pt\"\n",
-       " viewBox=\"0.00 0.00 1329.00 404.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
-       "<g id=\"graph1\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 400)\">\n",
+       "<svg width=\"1547pt\" height=\"392pt\"\n",
+       " viewBox=\"0.00 0.00 1546.50 392.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 388)\">\n",
        "<title>state</title>\n",
-       "<polygon fill=\"white\" stroke=\"white\" points=\"-4,5 -4,-400 1326,-400 1326,5 -4,5\"/>\n",
+       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-388 1542.5,-388 1542.5,4 -4,4\"/>\n",
        "<!-- [a,a,a,B,C,B,C,B,C] -->\n",
-       "<g id=\"node1\" class=\"node\"><title>[a,a,a,B,C,B,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1031.49,-126 904.511,-126 904.511,-90 1031.49,-90 1031.49,-126\"/>\n",
-       "<text text-anchor=\"middle\" x=\"968\" y=\"-103.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,B,C,B,C,B,C]</text>\n",
+       "<g id=\"node1\" class=\"node\">\n",
+       "<title>[a,a,a,B,C,B,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1202.5,-123 1051.5,-123 1051.5,-87 1202.5,-87 1202.5,-123\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1127\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,B,C,B,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,B,C,B,B,C,C] -->\n",
-       "<g id=\"node3\" class=\"node\"><title>[a,a,a,B,C,B,B,C,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1031.49,-36 904.511,-36 904.511,-0 1031.49,-0 1031.49,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"968\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,B,C,B,B,C,C]</text>\n",
+       "<g id=\"node2\" class=\"node\">\n",
+       "<title>[a,a,a,B,C,B,B,C,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1202.5,-36 1051.5,-36 1051.5,0 1202.5,0 1202.5,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1127\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,B,C,B,B,C,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,B,C,B,B,C,C] -->\n",
-       "<g id=\"edge2\" class=\"edge\"><title>[a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,B,C,B,B,C,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M968,-89.614C968,-77.2403 968,-60.3686 968,-46.2198\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"971.5,-46.0504 968,-36.0504 964.5,-46.0504 971.5,-46.0504\"/>\n",
-       "<text text-anchor=\"middle\" x=\"976.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge1\" class=\"edge\">\n",
+       "<title>[a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,B,C,B,B,C,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1127,-86.8C1127,-75.16 1127,-59.55 1127,-46.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1130.5,-46.18 1127,-36.18 1123.5,-46.18 1130.5,-46.18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1138\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,a,b,C,B,C,B,C] -->\n",
-       "<g id=\"node5\" class=\"node\"><title>[a,a,a,b,C,B,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1175.24,-36 1050.76,-36 1050.76,-0 1175.24,-0 1175.24,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"1113\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,b,C,B,C,B,C]</text>\n",
+       "<g id=\"node3\" class=\"node\">\n",
+       "<title>[a,a,a,b,C,B,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1369.5,-36 1220.5,-36 1220.5,0 1369.5,0 1369.5,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1295\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,b,C,B,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,b,C,B,C,B,C] -->\n",
-       "<g id=\"edge4\" class=\"edge\"><title>[a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,b,C,B,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M996.302,-89.8238C1019.06,-76.0139 1051.2,-56.5033 1076,-41.4559\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1078.04,-44.3132 1084.77,-36.1329 1074.4,-38.3291 1078.04,-44.3132\"/>\n",
-       "<text text-anchor=\"middle\" x=\"1062.55\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge2\" class=\"edge\">\n",
+       "<title>[a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,b,C,B,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1161,-86.8C1187.27,-73.51 1223.8,-55.02 1252.09,-40.71\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1254,-43.67 1261.34,-36.03 1250.84,-37.42 1254,-43.67\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1233\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,a,B,B,C,C,B,C] -->\n",
-       "<g id=\"node7\" class=\"node\"><title>[a,a,a,B,B,C,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1321.49,-36 1194.51,-36 1194.51,-0 1321.49,-0 1321.49,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"1258\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,B,B,C,C,B,C]</text>\n",
+       "<g id=\"node4\" class=\"node\">\n",
+       "<title>[a,a,a,B,B,C,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1538.5,-36 1387.5,-36 1387.5,0 1538.5,0 1538.5,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1463\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,B,B,C,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,B,B,C,C,B,C] -->\n",
-       "<g id=\"edge6\" class=\"edge\"><title>[a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,B,B,C,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1024.26,-89.9284C1072.28,-75.3554 1141.41,-54.379 1192.03,-39.0179\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1193.34,-42.2771 1201.9,-36.0241 1191.31,-35.5787 1193.34,-42.2771\"/>\n",
-       "<text text-anchor=\"middle\" x=\"1147.55\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge3\" class=\"edge\">\n",
+       "<title>[a,a,a,B,C,B,C,B,C]&#45;&gt;[a,a,a,B,B,C,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1194.59,-86.9C1249.84,-72.92 1327.98,-53.16 1385.71,-38.55\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1386.68,-41.92 1395.52,-36.07 1384.96,-35.13 1386.68,-41.92\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1327\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,B,C,B,C,B,C] -->\n",
-       "<g id=\"node8\" class=\"node\"><title>[a,a,a,S,B,C,B,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"716.45,-126 577.55,-126 577.55,-90 716.45,-90 716.45,-126\"/>\n",
-       "<text text-anchor=\"middle\" x=\"647\" y=\"-103.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,S,B,C,B,C,B,C]</text>\n",
+       "<g id=\"node5\" class=\"node\">\n",
+       "<title>[a,a,a,S,B,C,B,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"836,-123 672,-123 672,-87 836,-87 836,-123\"/>\n",
+       "<text text-anchor=\"middle\" x=\"754\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,S,B,C,B,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,a,S,B,C,B,C,B,C,B,C] -->\n",
-       "<g id=\"node10\" class=\"node\"><title>[a,a,a,a,S,B,C,B,C,B,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"546.992,-36 373.008,-36 373.008,-0 546.992,-0 546.992,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"460\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,a,S,B,C,B,C,B,C,B,C]</text>\n",
+       "<g id=\"node6\" class=\"node\">\n",
+       "<title>[a,a,a,a,S,B,C,B,C,B,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"638.5,-36 431.5,-36 431.5,0 638.5,0 638.5,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"535\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,a,S,B,C,B,C,B,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,a,S,B,C,B,C,B,C,B,C] -->\n",
-       "<g id=\"edge8\" class=\"edge\"><title>[a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,a,S,B,C,B,C,B,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M610.501,-89.8238C580.511,-75.7111 537.87,-55.6449 505.629,-40.4725\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"506.946,-37.224 496.407,-36.1329 503.965,-43.5578 506.946,-37.224\"/>\n",
-       "<text text-anchor=\"middle\" x=\"579.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge4\" class=\"edge\">\n",
+       "<title>[a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,a,S,B,C,B,C,B,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M709.95,-86.9C674.97,-73.33 625.94,-54.29 588.67,-39.83\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"589.57,-36.43 578.98,-36.07 587.04,-42.95 589.57,-36.43\"/>\n",
+       "<text text-anchor=\"middle\" x=\"669\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,a,a,B,C,B,C,B,C,B,C] -->\n",
-       "<g id=\"node12\" class=\"node\"><title>[a,a,a,a,B,C,B,C,B,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"728.529,-36 565.471,-36 565.471,-0 728.529,-0 728.529,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"647\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,a,B,C,B,C,B,C,B,C]</text>\n",
+       "<g id=\"node7\" class=\"node\">\n",
+       "<title>[a,a,a,a,B,C,B,C,B,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"851,-36 657,-36 657,0 851,0 851,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"754\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,a,B,C,B,C,B,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,a,B,C,B,C,B,C,B,C] -->\n",
-       "<g id=\"edge10\" class=\"edge\"><title>[a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,a,B,C,B,C,B,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M647,-89.614C647,-77.2403 647,-60.3686 647,-46.2198\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"650.5,-46.0504 647,-36.0504 643.5,-46.0504 650.5,-46.0504\"/>\n",
-       "<text text-anchor=\"middle\" x=\"655.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge5\" class=\"edge\">\n",
+       "<title>[a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,a,B,C,B,C,B,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M754,-86.8C754,-75.16 754,-59.55 754,-46.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"757.5,-46.18 754,-36.18 750.5,-46.18 757.5,-46.18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"765\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,B,B,C,C,B,C] -->\n",
-       "<g id=\"node14\" class=\"node\"><title>[a,a,a,S,B,B,C,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"354.45,-36 215.55,-36 215.55,-0 354.45,-0 354.45,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"285\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,S,B,B,C,C,B,C]</text>\n",
+       "<g id=\"node8\" class=\"node\">\n",
+       "<title>[a,a,a,S,B,B,C,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"413,-36 249,-36 249,0 413,0 413,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"331\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,S,B,B,C,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,S,B,B,C,C,B,C] -->\n",
-       "<g id=\"edge12\" class=\"edge\"><title>[a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,S,B,B,C,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M577.631,-90.1368C516.733,-75.3329 428.176,-53.8051 364.449,-38.3135\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"364.986,-34.8422 354.442,-35.8809 363.332,-41.6441 364.986,-34.8422\"/>\n",
-       "<text text-anchor=\"middle\" x=\"507.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge6\" class=\"edge\">\n",
+       "<title>[a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,S,B,B,C,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M671.94,-87.51C600.55,-73.16 497.18,-52.39 423,-37.49\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"423.69,-34.05 413.19,-35.52 422.31,-40.92 423.69,-34.05\"/>\n",
+       "<text text-anchor=\"middle\" x=\"579\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,B,C,B,B,C,C] -->\n",
-       "<g id=\"node16\" class=\"node\"><title>[a,a,a,S,B,C,B,B,C,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"885.45,-36 746.55,-36 746.55,-0 885.45,-0 885.45,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"816\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,S,B,C,B,B,C,C]</text>\n",
+       "<g id=\"node9\" class=\"node\">\n",
+       "<title>[a,a,a,S,B,C,B,B,C,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1033,-36 869,-36 869,0 1033,0 1033,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"951\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,a,S,B,C,B,B,C,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,S,B,C,B,B,C,C] -->\n",
-       "<g id=\"edge14\" class=\"edge\"><title>[a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,S,B,C,B,B,C,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M679.986,-89.8238C706.856,-75.8322 744.964,-55.9889 774.011,-40.8643\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"775.844,-43.8558 783.097,-36.1329 772.611,-37.647 775.844,-43.8558\"/>\n",
-       "<text text-anchor=\"middle\" x=\"755.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge7\" class=\"edge\">\n",
+       "<title>[a,a,a,S,B,C,B,C,B,C]&#45;&gt;[a,a,a,S,B,C,B,B,C,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M793.87,-86.8C825.08,-73.33 868.63,-54.54 901.98,-40.15\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"903.73,-43.21 911.53,-36.03 900.96,-36.78 903.73,-43.21\"/>\n",
+       "<text text-anchor=\"middle\" x=\"876\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,S,B,B,C,C] -->\n",
-       "<g id=\"node17\" class=\"node\"><title>[a,a,S,B,B,C,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"880.41,-126 777.59,-126 777.59,-90 880.41,-90 880.41,-126\"/>\n",
-       "<text text-anchor=\"middle\" x=\"829\" y=\"-103.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,S,B,B,C,C]</text>\n",
+       "<g id=\"node10\" class=\"node\">\n",
+       "<title>[a,a,S,B,B,C,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1027,-123 905,-123 905,-87 1027,-87 1027,-123\"/>\n",
+       "<text text-anchor=\"middle\" x=\"966\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,S,B,B,C,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,S,B,B,C,C]&#45;&gt;[a,a,a,B,C,B,B,C,C] -->\n",
-       "<g id=\"edge16\" class=\"edge\"><title>[a,a,S,B,B,C,C]&#45;&gt;[a,a,a,B,C,B,B,C,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M856.131,-89.8238C877.848,-76.0745 908.492,-56.6744 932.217,-41.6541\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"934.361,-44.4392 940.938,-36.1329 930.617,-38.5248 934.361,-44.4392\"/>\n",
-       "<text text-anchor=\"middle\" x=\"919.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge8\" class=\"edge\">\n",
+       "<title>[a,a,S,B,B,C,C]&#45;&gt;[a,a,a,B,C,B,B,C,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M998.58,-86.8C1023.76,-73.51 1058.77,-55.02 1085.88,-40.71\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1087.53,-43.79 1094.74,-36.03 1084.27,-37.6 1087.53,-43.79\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1068\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,S,B,B,C,C]&#45;&gt;[a,a,a,S,B,C,B,B,C,C] -->\n",
-       "<g id=\"edge18\" class=\"edge\"><title>[a,a,S,B,B,C,C]&#45;&gt;[a,a,a,S,B,C,B,B,C,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M826.432,-89.614C824.604,-77.2403 822.111,-60.3686 820.021,-46.2198\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"823.443,-45.4315 818.519,-36.0504 816.518,-46.4546 823.443,-45.4315\"/>\n",
-       "<text text-anchor=\"middle\" x=\"832.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge9\" class=\"edge\">\n",
+       "<title>[a,a,S,B,B,C,C]&#45;&gt;[a,a,a,S,B,C,B,B,C,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M962.96,-86.8C960.91,-75.16 958.16,-59.55 955.81,-46.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"959.22,-45.41 954.03,-36.18 952.32,-46.63 959.22,-45.41\"/>\n",
+       "<text text-anchor=\"middle\" x=\"971\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,S,B,C,B,C] -->\n",
-       "<g id=\"node20\" class=\"node\"><title>[a,a,S,B,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"880.41,-216 777.59,-216 777.59,-180 880.41,-180 880.41,-216\"/>\n",
-       "<text text-anchor=\"middle\" x=\"829\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,S,B,C,B,C]</text>\n",
+       "<g id=\"node11\" class=\"node\">\n",
+       "<title>[a,a,S,B,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1027,-210 905,-210 905,-174 1027,-174 1027,-210\"/>\n",
+       "<text text-anchor=\"middle\" x=\"966\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,S,B,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,S,B,C,B,C]&#45;&gt;[a,a,a,B,C,B,C,B,C] -->\n",
-       "<g id=\"edge20\" class=\"edge\"><title>[a,a,S,B,C,B,C]&#45;&gt;[a,a,a,B,C,B,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M856.131,-179.824C877.848,-166.075 908.492,-146.674 932.217,-131.654\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"934.361,-134.439 940.938,-126.133 930.617,-128.525 934.361,-134.439\"/>\n",
-       "<text text-anchor=\"middle\" x=\"919.553\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge10\" class=\"edge\">\n",
+       "<title>[a,a,S,B,C,B,C]&#45;&gt;[a,a,a,B,C,B,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M998.58,-173.8C1023.76,-160.51 1058.77,-142.02 1085.88,-127.71\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1087.53,-130.79 1094.74,-123.03 1084.27,-124.6 1087.53,-130.79\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1068\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,S,B,C,B,C]&#45;&gt;[a,a,a,S,B,C,B,C,B,C] -->\n",
-       "<g id=\"edge22\" class=\"edge\"><title>[a,a,S,B,C,B,C]&#45;&gt;[a,a,a,S,B,C,B,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M793.477,-179.824C764.414,-165.772 723.144,-145.817 691.814,-130.668\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"692.96,-127.335 682.434,-126.133 689.913,-133.637 692.96,-127.335\"/>\n",
-       "<text text-anchor=\"middle\" x=\"763.553\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge11\" class=\"edge\">\n",
+       "<title>[a,a,S,B,C,B,C]&#45;&gt;[a,a,a,S,B,C,B,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M923.35,-173.9C889.5,-160.33 842.03,-141.29 805.96,-126.83\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"807.16,-123.54 796.58,-123.07 804.56,-130.04 807.16,-123.54\"/>\n",
+       "<text text-anchor=\"middle\" x=\"884\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,S,B,C,B,C]&#45;&gt;[a,a,S,B,B,C,C] -->\n",
-       "<g id=\"edge24\" class=\"edge\"><title>[a,a,S,B,C,B,C]&#45;&gt;[a,a,S,B,B,C,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M829,-179.614C829,-167.24 829,-150.369 829,-136.22\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"832.5,-136.05 829,-126.05 825.5,-136.05 832.5,-136.05\"/>\n",
-       "<text text-anchor=\"middle\" x=\"837.553\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge12\" class=\"edge\">\n",
+       "<title>[a,a,S,B,C,B,C]&#45;&gt;[a,a,S,B,B,C,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M966,-173.8C966,-162.16 966,-146.55 966,-133.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"969.5,-133.18 966,-123.18 962.5,-133.18 969.5,-133.18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"977\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,B,B,C,C] -->\n",
-       "<g id=\"node24\" class=\"node\"><title>[a,a,B,B,C,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"91.9491,-126 0.0508791,-126 0.0508791,-90 91.9491,-90 91.9491,-126\"/>\n",
-       "<text text-anchor=\"middle\" x=\"46\" y=\"-103.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,B,B,C,C]</text>\n",
+       "<g id=\"node12\" class=\"node\">\n",
+       "<title>[a,a,B,B,C,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"108,-123 0,-123 0,-87 108,-87 108,-123\"/>\n",
+       "<text text-anchor=\"middle\" x=\"54\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,B,B,C,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,b,B,C,C] -->\n",
-       "<g id=\"node26\" class=\"node\"><title>[a,a,b,B,C,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"92.1953,-36 1.80466,-36 1.80466,-0 92.1953,-0 92.1953,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"47\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,b,B,C,C]</text>\n",
+       "<g id=\"node13\" class=\"node\">\n",
+       "<title>[a,a,b,B,C,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"108.5,-36 1.5,-36 1.5,0 108.5,0 108.5,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"55\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,b,B,C,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,B,B,C,C]&#45;&gt;[a,a,b,B,C,C] -->\n",
-       "<g id=\"edge26\" class=\"edge\"><title>[a,a,B,B,C,C]&#45;&gt;[a,a,b,B,C,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M46.1976,-89.614C46.3382,-77.2403 46.5299,-60.3686 46.6907,-46.2198\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"50.1923,-46.0896 46.8062,-36.0504 43.1927,-46.01 50.1923,-46.0896\"/>\n",
-       "<text text-anchor=\"middle\" x=\"55.5526\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge13\" class=\"edge\">\n",
+       "<title>[a,a,B,B,C,C]&#45;&gt;[a,a,b,B,C,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.2,-86.8C54.34,-75.16 54.52,-59.55 54.68,-46.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"58.18,-46.22 54.8,-36.18 51.18,-46.13 58.18,-46.22\"/>\n",
+       "<text text-anchor=\"middle\" x=\"66\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,B,C,B,C] -->\n",
-       "<g id=\"node27\" class=\"node\"><title>[a,a,B,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"200.949,-216 109.051,-216 109.051,-180 200.949,-180 200.949,-216\"/>\n",
-       "<text text-anchor=\"middle\" x=\"155\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,B,C,B,C]</text>\n",
+       "<g id=\"node14\" class=\"node\">\n",
+       "<title>[a,a,B,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"234,-210 126,-210 126,-174 234,-174 234,-210\"/>\n",
+       "<text text-anchor=\"middle\" x=\"180\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,B,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,B,C,B,C]&#45;&gt;[a,a,B,B,C,C] -->\n",
-       "<g id=\"edge28\" class=\"edge\"><title>[a,a,B,C,B,C]&#45;&gt;[a,a,B,B,C,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M133.725,-179.824C117.07,-166.377 93.72,-147.526 75.2974,-132.653\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"77.2008,-129.691 67.2214,-126.133 72.8036,-135.138 77.2008,-129.691\"/>\n",
-       "<text text-anchor=\"middle\" x=\"119.553\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge14\" class=\"edge\">\n",
+       "<title>[a,a,B,C,B,C]&#45;&gt;[a,a,B,B,C,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M154.5,-173.8C135.29,-160.84 108.76,-142.94 87.78,-128.79\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"89.71,-125.87 79.46,-123.18 85.79,-131.67 89.71,-125.87\"/>\n",
+       "<text text-anchor=\"middle\" x=\"136\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,b,C,B,C] -->\n",
-       "<g id=\"node30\" class=\"node\"><title>[a,a,b,C,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"200.195,-126 109.805,-126 109.805,-90 200.195,-90 200.195,-126\"/>\n",
-       "<text text-anchor=\"middle\" x=\"155\" y=\"-103.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,b,C,B,C]</text>\n",
+       "<g id=\"node15\" class=\"node\">\n",
+       "<title>[a,a,b,C,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"233.5,-123 126.5,-123 126.5,-87 233.5,-87 233.5,-123\"/>\n",
+       "<text text-anchor=\"middle\" x=\"180\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,b,C,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,B,C,B,C]&#45;&gt;[a,a,b,C,B,C] -->\n",
-       "<g id=\"edge30\" class=\"edge\"><title>[a,a,B,C,B,C]&#45;&gt;[a,a,b,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M155,-179.614C155,-167.24 155,-150.369 155,-136.22\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"158.5,-136.05 155,-126.05 151.5,-136.05 158.5,-136.05\"/>\n",
-       "<text text-anchor=\"middle\" x=\"163.553\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge15\" class=\"edge\">\n",
+       "<title>[a,a,B,C,B,C]&#45;&gt;[a,a,b,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M180,-173.8C180,-162.16 180,-146.55 180,-133.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"183.5,-133.18 180,-123.18 176.5,-133.18 183.5,-133.18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"191\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,b,C,B,C]&#45;&gt;[a,a,b,B,C,C] -->\n",
-       "<g id=\"edge32\" class=\"edge\"><title>[a,a,b,C,B,C]&#45;&gt;[a,a,b,B,C,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M133.92,-89.8238C117.418,-76.3774 94.2822,-57.5263 76.0286,-42.6529\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"77.9899,-39.7363 68.0267,-36.1329 73.5682,-45.163 77.9899,-39.7363\"/>\n",
-       "<text text-anchor=\"middle\" x=\"119.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge16\" class=\"edge\">\n",
+       "<title>[a,a,b,C,B,C]&#45;&gt;[a,a,b,B,C,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M154.7,-86.8C135.73,-73.9 109.56,-56.1 88.79,-41.98\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"90.5,-38.9 80.26,-36.18 86.56,-44.69 90.5,-38.9\"/>\n",
+       "<text text-anchor=\"middle\" x=\"136\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,a,b,c,B,C] -->\n",
-       "<g id=\"node33\" class=\"node\"><title>[a,a,b,c,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"197.353,-36 110.647,-36 110.647,-0 197.353,-0 197.353,-36\"/>\n",
-       "<text text-anchor=\"middle\" x=\"154\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,b,c,B,C]</text>\n",
+       "<g id=\"node16\" class=\"node\">\n",
+       "<title>[a,a,b,c,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"231,-36 127,-36 127,0 231,0 231,-36\"/>\n",
+       "<text text-anchor=\"middle\" x=\"179\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,a,b,c,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,a,b,C,B,C]&#45;&gt;[a,a,b,c,B,C] -->\n",
-       "<g id=\"edge34\" class=\"edge\"><title>[a,a,b,C,B,C]&#45;&gt;[a,a,b,c,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M154.802,-89.614C154.662,-77.2403 154.47,-60.3686 154.309,-46.2198\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"157.807,-46.01 154.194,-36.0504 150.808,-46.0896 157.807,-46.01\"/>\n",
-       "<text text-anchor=\"middle\" x=\"163.553\" y=\"-58.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge17\" class=\"edge\">\n",
+       "<title>[a,a,b,C,B,C]&#45;&gt;[a,a,b,c,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M179.8,-86.8C179.66,-75.16 179.48,-59.55 179.32,-46.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"182.82,-46.13 179.2,-36.18 175.82,-46.22 182.82,-46.13\"/>\n",
+       "<text text-anchor=\"middle\" x=\"191\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,B,C] -->\n",
-       "<g id=\"node34\" class=\"node\"><title>[a,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"962.406,-306 905.594,-306 905.594,-270 962.406,-270 962.406,-306\"/>\n",
-       "<text text-anchor=\"middle\" x=\"934\" y=\"-283.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,B,C]</text>\n",
+       "<g id=\"node17\" class=\"node\">\n",
+       "<title>[a,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1140.5,-297 1075.5,-297 1075.5,-261 1140.5,-261 1140.5,-297\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1108\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,b,C] -->\n",
-       "<g id=\"node36\" class=\"node\"><title>[a,b,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1035.15,-216 980.845,-216 980.845,-180 1035.15,-180 1035.15,-216\"/>\n",
-       "<text text-anchor=\"middle\" x=\"1008\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,b,C]</text>\n",
+       "<g id=\"node18\" class=\"node\">\n",
+       "<title>[a,b,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1264,-210 1200,-210 1200,-174 1264,-174 1264,-210\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1232\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,b,C]</text>\n",
        "</g>\n",
        "<!-- [a,B,C]&#45;&gt;[a,b,C] -->\n",
-       "<g id=\"edge36\" class=\"edge\"><title>[a,B,C]&#45;&gt;[a,b,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M948.62,-269.614C959.637,-256.512 974.895,-238.368 987.185,-223.753\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"989.905,-225.957 993.662,-216.05 984.547,-221.451 989.905,-225.957\"/>\n",
-       "<text text-anchor=\"middle\" x=\"986.553\" y=\"-238.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge18\" class=\"edge\">\n",
+       "<title>[a,B,C]&#45;&gt;[a,b,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1133.09,-260.8C1151.92,-247.9 1177.88,-230.1 1198.48,-215.98\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1200.67,-218.72 1206.94,-210.18 1196.72,-212.94 1200.67,-218.72\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1189\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,b,c] -->\n",
-       "<g id=\"node41\" class=\"node\"><title>[a,b,c]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1104,-126 1050,-126 1050,-90 1104,-90 1104,-126\"/>\n",
-       "<text text-anchor=\"middle\" x=\"1077\" y=\"-103.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,b,c]</text>\n",
+       "<g id=\"node20\" class=\"node\">\n",
+       "<title>[a,b,c]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1281.5,-123 1220.5,-123 1220.5,-87 1281.5,-87 1281.5,-123\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1251\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,b,c]</text>\n",
        "</g>\n",
        "<!-- [a,b,C]&#45;&gt;[a,b,c] -->\n",
-       "<g id=\"edge42\" class=\"edge\"><title>[a,b,C]&#45;&gt;[a,b,c]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1021.63,-179.614C1031.81,-166.634 1045.87,-148.704 1057.27,-134.16\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1060.21,-136.079 1063.63,-126.05 1054.71,-131.76 1060.21,-136.079\"/>\n",
-       "<text text-anchor=\"middle\" x=\"1057.55\" y=\"-148.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge21\" class=\"edge\">\n",
+       "<title>[a,b,C]&#45;&gt;[a,b,c]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1235.84,-173.8C1238.45,-162.16 1241.94,-146.55 1244.91,-133.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1248.39,-133.7 1247.16,-123.18 1241.56,-132.17 1248.39,-133.7\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1254\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,S,B,C] -->\n",
-       "<g id=\"node37\" class=\"node\"><title>[a,S,B,C]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"863.37,-306 794.63,-306 794.63,-270 863.37,-270 863.37,-306\"/>\n",
-       "<text text-anchor=\"middle\" x=\"829\" y=\"-283.8\" font-family=\"Times,serif\" font-size=\"14.00\">[a,S,B,C]</text>\n",
+       "<g id=\"node19\" class=\"node\">\n",
+       "<title>[a,S,B,C]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1005.5,-297 926.5,-297 926.5,-261 1005.5,-261 1005.5,-297\"/>\n",
+       "<text text-anchor=\"middle\" x=\"966\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">[a,S,B,C]</text>\n",
        "</g>\n",
        "<!-- [a,S,B,C]&#45;&gt;[a,a,S,B,C,B,C] -->\n",
-       "<g id=\"edge38\" class=\"edge\"><title>[a,S,B,C]&#45;&gt;[a,a,S,B,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M829,-269.614C829,-257.24 829,-240.369 829,-226.22\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"832.5,-226.05 829,-216.05 825.5,-226.05 832.5,-226.05\"/>\n",
-       "<text text-anchor=\"middle\" x=\"837.553\" y=\"-238.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge19\" class=\"edge\">\n",
+       "<title>[a,S,B,C]&#45;&gt;[a,a,S,B,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M966,-260.8C966,-249.16 966,-233.55 966,-220.24\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"969.5,-220.18 966,-210.18 962.5,-220.18 969.5,-220.18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"977\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [a,S,B,C]&#45;&gt;[a,a,B,C,B,C] -->\n",
-       "<g id=\"edge40\" class=\"edge\"><title>[a,S,B,C]&#45;&gt;[a,a,B,C,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M794.65,-282.515C685.626,-268.281 346.654,-224.023 211.481,-206.374\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"211.708,-202.874 201.339,-205.05 210.802,-209.816 211.708,-202.874\"/>\n",
-       "<text text-anchor=\"middle\" x=\"561.553\" y=\"-238.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge20\" class=\"edge\">\n",
+       "<title>[a,S,B,C]&#45;&gt;[a,a,B,C,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M926.48,-273.73C799.46,-259.99 400.78,-216.88 244.12,-199.93\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"244.47,-196.45 234.15,-198.86 243.72,-203.41 244.47,-196.45\"/>\n",
+       "<text text-anchor=\"middle\" x=\"632\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [S] -->\n",
-       "<g id=\"node42\" class=\"node\"><title>[S]</title>\n",
-       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"916,-396 862,-396 862,-360 916,-360 916,-396\"/>\n",
-       "<text text-anchor=\"middle\" x=\"889\" y=\"-373.8\" font-family=\"Times,serif\" font-size=\"14.00\">[S]</text>\n",
+       "<g id=\"node21\" class=\"node\">\n",
+       "<title>[S]</title>\n",
+       "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"1037,-384 983,-384 983,-348 1037,-348 1037,-384\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1010\" y=\"-362.3\" font-family=\"Times,serif\" font-size=\"14.00\">[S]</text>\n",
        "</g>\n",
        "<!-- [S]&#45;&gt;[a,B,C] -->\n",
-       "<g id=\"edge44\" class=\"edge\"><title>[S]&#45;&gt;[a,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M897.891,-359.614C904.404,-346.876 913.355,-329.372 920.715,-314.979\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"923.844,-316.547 925.281,-306.05 917.612,-313.36 923.844,-316.547\"/>\n",
-       "<text text-anchor=\"middle\" x=\"924.553\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge22\" class=\"edge\">\n",
+       "<title>[S]&#45;&gt;[a,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1029.83,-347.8C1044.44,-335.13 1064.5,-317.73 1080.63,-303.74\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"1082.94,-306.37 1088.2,-297.18 1078.35,-301.08 1082.94,-306.37\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1076\" y=\"-318.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "<!-- [S]&#45;&gt;[a,S,B,C] -->\n",
-       "<g id=\"edge46\" class=\"edge\"><title>[S]&#45;&gt;[a,S,B,C]</title>\n",
-       "<path fill=\"none\" stroke=\"firebrick\" d=\"M877.146,-359.614C868.378,-346.755 856.299,-329.038 846.433,-314.568\"/>\n",
-       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"849.15,-312.341 840.625,-306.05 843.367,-316.284 849.15,-312.341\"/>\n",
-       "<text text-anchor=\"middle\" x=\"873.553\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
+       "<g id=\"edge23\" class=\"edge\">\n",
+       "<title>[S]&#45;&gt;[a,S,B,C]</title>\n",
+       "<path fill=\"none\" stroke=\"firebrick\" d=\"M1001.1,-347.8C994.89,-335.82 986.51,-319.62 979.49,-306.06\"/>\n",
+       "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"982.6,-304.45 974.89,-297.18 976.38,-307.67 982.6,-304.45\"/>\n",
+       "<text text-anchor=\"middle\" x=\"1002\" y=\"-318.8\" font-family=\"Times,serif\" font-size=\"14.00\">abl</text>\n",
        "</g>\n",
        "</g>\n",
        "</svg>"
@@ -1236,7 +1297,7 @@
        "<Dot visualization: expr_as_graph [SFSF={[S],[a,b,c],[a,b,C],[a,S,B,C],[a,B,C],[a,a,b,c,B,C],[a,a,b,C,B,C],[a,a,b,B,C,C],[a,a,B,C,B,C],[a,a,B,B,C,C],[a,a,S,B,C,B,C],[a,a,S,B,B,C,C],[a,a,a,S,B,C,B,B,C,C],[a,a,a,S,B,B,C,C,B,C],[a,a,a,S,B,C,B,C,B,C],[a,a,a,B,B,C,C,B,C],[a,a,a,b,C,B,C,B,C],[a,a,a,B,C,B,B,C,C],[a,a,a,B,C,B,C,B,C],[a,a,a,a,B,C,B,C,B,C,B,C],[a,a,a,a,S,B,C,B,C,B,C,B,C]}(\"abl\",SF<|abl|>SF)]>"
       ]
      },
-     "execution_count": 39,
+     "execution_count": 31,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1247,7 +1308,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 40,
+   "execution_count": 32,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -1289,9 +1350,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 33,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\{([a,B]\\mapsto [a,b]),([b,B]\\mapsto [b,b]),([b,C]\\mapsto [b,c]),([c,C]\\mapsto [c,c]),([S]\\mapsto [a,\\mathit{S},\\mathit{B},C]),([S]\\mapsto [a,\\mathit{B},C]),([C,B]\\mapsto [B,C])\\}$"
+      ],
+      "text/plain": [
+       "{([a,B]↦[a,b]),([b,B]↦[b,b]),([b,C]↦[b,c]),([c,C]↦[c,c]),([S]↦[a,S,B,C]),([S]↦[a,B,C]),([C,B]↦[B,C])}"
+      ]
+     },
+     "execution_count": 33,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     "P"
    ]
@@ -1306,7 +1381,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 42,
+   "execution_count": 34,
    "metadata": {},
    "outputs": [
     {
@@ -1318,7 +1393,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 42,
+     "execution_count": 34,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1329,7 +1404,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 41,
+   "execution_count": 35,
    "metadata": {},
    "outputs": [
     {
@@ -1341,7 +1416,7 @@
        "{([a,B]↦[a,b]),([b,B]↦[b,b]),([b,C]↦[b,c]),([c,C]↦[c,c]),([S]↦[a,S,B,C]),([S]↦[a,B,C]),([C,B]↦[B,C])}"
       ]
      },
-     "execution_count": 41,
+     "execution_count": 35,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1359,7 +1434,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 43,
+   "execution_count": 36,
    "metadata": {},
    "outputs": [
     {
@@ -1371,7 +1446,7 @@
        "FALSE"
       ]
      },
-     "execution_count": 43,
+     "execution_count": 36,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1390,7 +1465,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 44,
+   "execution_count": 37,
    "metadata": {},
    "outputs": [
     {
@@ -1417,7 +1492,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 45,
+   "execution_count": 38,
    "metadata": {},
    "outputs": [
     {
@@ -1429,7 +1504,7 @@
        "{([S]↦[]),([S]↦[a,S,b])}"
       ]
      },
-     "execution_count": 45,
+     "execution_count": 38,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1440,7 +1515,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 46,
+   "execution_count": 39,
    "metadata": {},
    "outputs": [
     {
@@ -1458,7 +1533,7 @@
        "\tP1 = {([S]↦[]),([S]↦[a,S,b])}"
       ]
      },
-     "execution_count": 46,
+     "execution_count": 39,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1476,7 +1551,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 47,
+   "execution_count": 40,
    "metadata": {},
    "outputs": [
     {
@@ -1488,7 +1563,7 @@
        "FALSE"
       ]
      },
-     "execution_count": 47,
+     "execution_count": 40,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1499,7 +1574,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 48,
+   "execution_count": 41,
    "metadata": {},
    "outputs": [
     {
@@ -1521,7 +1596,7 @@
        "\tP1 = {([S]↦[]),([S]↦[a,S,b])}"
       ]
      },
-     "execution_count": 48,
+     "execution_count": 41,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1560,6 +1635,178 @@
     "* $REG \\subseteq CF \\subseteq CS \\subseteq \\mathfrak{L}_0.$"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 42,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Loaded machine: Chomsky"
+      ]
+     },
+     "execution_count": 42,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "::load\n",
+    "MACHINE Chomsky\n",
+    "SETS ΣN = {a, b, c, S, A, B, C}\n",
+    "CONSTANTS Σ, N, P0, P1, P2, P3, P4, Grammatiken\n",
+    "PROPERTIES\n",
+    "   Σ = {a, b, c} ∧\n",
+    "   N = {S, A, B, C} ∧\n",
+    "   Σ ∩ N = {} ∧\n",
+    "   Σ ∪ N = ΣN ∧\n",
+    "   //L0 = {x∈{a, b}^* | x enthält gleich viele as und bs}\n",
+    "   //Ohne Sonderrregelung für lambda ist L0 von Typ 0.\n",
+    "   P0 = {([S] ↦ [a, b]), ([S] ↦ [S, S]), ([S] ↦ []), ([a, b] ↦ [b, a]), ([b, a] ↦ [a, b])} ∧\n",
+    "   //L1 = {a^mb^mc^m | m≥1}\n",
+    "   P1 = {([S] ↦ [S, S]), ([S] ↦ [A, B, C]), ([B, A] ↦ [A, B]), ([C, A] ↦ [A, C]), ([C, B] ↦ [B, C]),\n",
+    "           ([A] ↦ [a]), ([a, B] ↦ [a, b]), ([b, B] ↦ [b, b]), ([b, C] ↦ [b, c]), ([c, C] ↦ [c, c])} ∧\n",
+    "   //L2 = {x∈{a, b}^+ | x enthält gleich viele as und bs}\n",
+    "   P2 = {([S] ↦ [A, B]), ([S] ↦ [B, A]),\n",
+    "           ([A] ↦ [A, A, B]), ([A] ↦ [A, B, A]), ([A] ↦ [B, A, A]), ([A] ↦ [a]),\n",
+    "           ([B] ↦ [B, B, A]), ([B] ↦ [B, A, B]), ([B] ↦ [A, B, B]), ([B] ↦ [b])} ∧\n",
+    "   //L3 = L4 = {a, b, c}\n",
+    "   P3 = {([S] ↦ [a]), ([S] ↦ [b]), ([S] ↦ [c])} ∧\n",
+    "   P4 = {([S] ↦ [A, A]), ([A, A] ↦ [a]), ([S] ↦ [b]), ([S] ↦ [c])} ∧\n",
+    "   Grammatiken = [P0, P1, P2, P3, P4]\n",
+    "   \n",
+    "DEFINITIONS\n",
+    " SET_PREF_PP_SEQUENCES == TRUE;\n",
+    " L0(R) == TRUE; //Jede Grammatik ist vom Typ 0\n",
+    " L1(R) == IF ∀(p,q).( p↦q ∈ R ⇒ size(p) ≤ size(q)) THEN L0(R) ELSE FALSE END;\n",
+    " L2(R) == IF ∀(p,q).( p↦q ∈ R ⇒ size(p)=1 & p∈seq(N)) THEN L1(R) ELSE FALSE END;\n",
+    " L3(R) == IF ∀(p,q).( p↦q ∈ R ⇒ size(q)>0 & size(q) ≤ 2 & first(q)∈Σ & (size(q)≤1 or first(tail(q))∈N)) THEN L2(R) ELSE FALSE END;\n",
+    " \n",
+    " \"LibraryStrings.def\";\n",
+    " ANIMATION_FUNCTION_DEFAULT == {(0,0,\"P\"), (1,0,\"P0\"), (2,0,\"P1\"), (3,0,\"P2\"), (4,0,\"P3\"), (5,0,\"P4\")};\n",
+    " ANIMATION_FUNCTION1 == {c,r,i| r=1 ∧ c∈dom(Grammatiken) ∧ i=TO_STRING(L0(Grammatiken(c)))} ∪ {(0,1,\"L0(P)\")};\n",
+    " ANIMATION_FUNCTION2 == {c,r,i| r=2 ∧ c∈dom(Grammatiken) ∧ i=TO_STRING(L1(Grammatiken(c)))} ∪ {(0,2,\"L1(P)\")};\n",
+    " ANIMATION_FUNCTION3 == {c,r,i| r=3 ∧ c∈dom(Grammatiken) ∧ i=TO_STRING(L2(Grammatiken(c)))} ∪ {(0,3,\"L2(P)\")};\n",
+    " ANIMATION_FUNCTION4 == {c,r,i| r=4 ∧ c∈dom(Grammatiken) ∧ i=TO_STRING(L3(Grammatiken(c)))} ∪ {(0,4,\"L3(P)\")};\n",
+    "END"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 43,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Machine constants set up using operation 0: $setup_constants()"
+      ]
+     },
+     "execution_count": 43,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    ":constants"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 44,
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Machine initialised using operation 1: $initialise_machine()"
+      ]
+     },
+     "execution_count": 44,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    ":init"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 45,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "<table style=\"font-family:monospace\"><tbody>\n",
+       "<tr>\n",
+       "<td style=\"padding:10px\">P</td>\n",
+       "<td style=\"padding:10px\">L0(P)</td>\n",
+       "<td style=\"padding:10px\">L1(P)</td>\n",
+       "<td style=\"padding:10px\">L2(P)</td>\n",
+       "<td style=\"padding:10px\">L3(P)</td>\n",
+       "</tr>\n",
+       "<tr>\n",
+       "<td style=\"padding:10px\">P0</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "</tr>\n",
+       "<tr>\n",
+       "<td style=\"padding:10px\">P1</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "</tr>\n",
+       "<tr>\n",
+       "<td style=\"padding:10px\">P2</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "</tr>\n",
+       "<tr>\n",
+       "<td style=\"padding:10px\">P3</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "</tr>\n",
+       "<tr>\n",
+       "<td style=\"padding:10px\">P4</td>\n",
+       "<td style=\"padding:10px\">TRUE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "<td style=\"padding:10px\">FALSE</td>\n",
+       "</tr>\n",
+       "</tbody></table>"
+      ],
+      "text/plain": [
+       "<Animation function visualisation>"
+      ]
+     },
+     "execution_count": 45,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    ":show"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Die obige Tabelle zeigt, in welche Sprachklasse die entsprechenden Grammatiken fallen. Dabei ist zu beachten, dass L3 = L4 ist, aber P3 und P4 unterschiedliche Typen haben. Die Sprache fällt allerdings immer in die größte Spracheklasse zu der es eine Grammatik gibt, die diese Sprache erzeugt. Also gilt $L4 ∈ \\mathfrak{L}_3 = REG$. Daher reicht die Angabe einer Grammatik nicht aus, um zu zeigen dass eine Sprache höchstens in einer der Klassen liegt. Um dies zu zeigen gibt es verschiedene Methoden, wie z.B. das Pumping-Lemma oder die Myhill-Nerode Relation."
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,