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]->[a,a,a,a,S,b,b,b,b] -->\n", - "<g id=\"edge2\" class=\"edge\"><title>[a,a,a,S,b,b,b]->[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]->[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]->[a,a,a,b,b,b] -->\n", - "<g id=\"edge4\" class=\"edge\"><title>[a,a,a,S,b,b,b]->[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]->[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]->[a,a,a,S,b,b,b] -->\n", - "<g id=\"edge6\" class=\"edge\"><title>[a,a,S,b,b]->[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]->[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]->[a,a,b,b] -->\n", - "<g id=\"edge8\" class=\"edge\"><title>[a,a,S,b,b]->[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]->[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]->[a,a,S,b,b] -->\n", - "<g id=\"edge10\" class=\"edge\"><title>[a,S,b]->[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]->[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]->[a,b] -->\n", - "<g id=\"edge12\" class=\"edge\"><title>[a,S,b]->[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]->[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]->[a,S,b] -->\n", - "<g id=\"edge14\" class=\"edge\"><title>[S]->[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]->[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]->[] -->\n", - "<g id=\"edge16\" class=\"edge\"><title>[S]->[]</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]->[]</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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[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]->[a,a,a,B,C,B,B,C,C] -->\n", - "<g id=\"edge16\" class=\"edge\"><title>[a,a,S,B,B,C,C]->[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]->[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]->[a,a,a,S,B,C,B,B,C,C] -->\n", - "<g id=\"edge18\" class=\"edge\"><title>[a,a,S,B,B,C,C]->[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]->[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]->[a,a,a,B,C,B,C,B,C] -->\n", - "<g id=\"edge20\" class=\"edge\"><title>[a,a,S,B,C,B,C]->[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]->[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]->[a,a,a,S,B,C,B,C,B,C] -->\n", - "<g id=\"edge22\" class=\"edge\"><title>[a,a,S,B,C,B,C]->[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]->[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]->[a,a,S,B,B,C,C] -->\n", - "<g id=\"edge24\" class=\"edge\"><title>[a,a,S,B,C,B,C]->[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]->[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]->[a,a,b,B,C,C] -->\n", - "<g id=\"edge26\" class=\"edge\"><title>[a,a,B,B,C,C]->[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]->[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]->[a,a,B,B,C,C] -->\n", - "<g id=\"edge28\" class=\"edge\"><title>[a,a,B,C,B,C]->[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]->[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]->[a,a,b,C,B,C] -->\n", - "<g id=\"edge30\" class=\"edge\"><title>[a,a,B,C,B,C]->[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]->[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]->[a,a,b,B,C,C] -->\n", - "<g id=\"edge32\" class=\"edge\"><title>[a,a,b,C,B,C]->[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]->[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]->[a,a,b,c,B,C] -->\n", - "<g id=\"edge34\" class=\"edge\"><title>[a,a,b,C,B,C]->[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]->[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]->[a,b,C] -->\n", - "<g id=\"edge36\" class=\"edge\"><title>[a,B,C]->[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]->[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]->[a,b,c] -->\n", - "<g id=\"edge42\" class=\"edge\"><title>[a,b,C]->[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]->[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]->[a,a,S,B,C,B,C] -->\n", - "<g id=\"edge38\" class=\"edge\"><title>[a,S,B,C]->[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]->[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]->[a,a,B,C,B,C] -->\n", - "<g id=\"edge40\" class=\"edge\"><title>[a,S,B,C]->[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]->[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]->[a,B,C] -->\n", - "<g id=\"edge44\" class=\"edge\"><title>[S]->[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]->[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]->[a,S,B,C] -->\n", - "<g id=\"edge46\" class=\"edge\"><title>[S]->[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]->[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,