{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Week 10: Reducibility" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tuesday\n", "\n", "Last time, we started to use the undecidability of $A_{\\textsf{TM}}$ to prove the undecidability of other languages, starting with the halting problem. Today, we generalize this approach to more languages." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Undecidable problems about programs\n", "\n", "
\n", "

Watch W10E1: Undecidable Problems About Programs.

\n", "
\n", "\n", "Today our decidability proofs are about some sort of \"program\", which might be a Turing machine, a Python program, or some other more exotic sort of computing device. It may or may not read an input string.\n", "\n", "We want to show that it is undecidable whether some program $P$ has some property $\\phi$. We want to do so by reduction from $A_{\\textsf{TM}}$; sometimes the reduction is from some other language (e.g., Theorem 5.4), but $A_{\\textsf{TM}}$ is really very useful and it will be $A_{\\textsf{TM}}$ most of the time." ] }, { "attachments": { "image.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "The proof goes like this: Assume that there is some TM $R$ that can decide whether program $P$ has property $\\phi$. Then, we want to use $R$ to implement a \"universal decider\" $S$, that is, a TM that decides $A_{\\textsf{TM}}$. That implementation usually has three steps:\n", "\n", "$S =$ \"On input $\\langle M, w\\rangle$:\n", "\n", "1. Convert $\\langle M, w\\rangle$ into a program $P$.\n", "2. Run $R$ on $P$.\n", "3. If $R$ accepts, *accept*; if $R$ rejects, *reject*.\n", "\n", "![image.png](attachment:image.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let me say a little more about these three steps in reverse order.\n", "\n", "In our reduction from $A_{\\textsf{TM}}$ to the halting problem, step 3 was more complex than this. But usually it's very simple, like the above. (In fact, there is a more restricted notion of reduction (Section 5.3) that requires that step 3 to be the above.) Sometimes (like Theorem 5.2 below), it will be flipped: If $R$ accepts, *reject*; if $R$ rejects, *accept*.\n", "\n", "Step 2 is always \"Run $R$ on $P$\", without exception as far as I know.\n", "\n", "In our reduction from $A_{\\textsf{TM}}$ to the halting problem, step 1 was trivial ($\\langle M, w \\rangle$ maps to itself), but in general, step 1 really has to do something. It has to change the TM+string $\\langle M, w\\rangle$ into $P$, which acts as an \"adapter\" between the property we want to detect (whether $M$ accepts $w$) into the property that $R$ able to detect ($\\phi$).\n", "\n", "When $P$ is another Turing machine, step 1 involves creating a _third_ TM besides $R$ and $S$. Since it can be hard to keep track of so many TMs, I think it's helpful to start with an example problem about something other than Turing machines." ] }, { "attachments": { "image.png": { "image/png": "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G9mzZ4+MHDlSunTpImeddZZ06NBB7rvvPlm6dGn2NzpXn332WXn88cfFq3UwX3zxhTRo0EB+/fXXHNtOZIHc9vN///ufGd/cuXM96/5tt90mp59+erb17d6927Q7dOjQbMtld3H06NFy6623ZldErykCCUdAhUqCH8HevXvl+uuvlwEDBphZ6AknnCAVK1YUGMi//vUvyY75rVy50gijG264wbNRlC1bVo466igpVaqUZ3X6sSKvhDBjq1mzphEYsR7nddddJ7/88ouMHz8+1k1p/YpArhHQxY+5hs6bGydMmGDMVwiWBx54IL3SmTNnyqWXXipPP/20DB8+PP28++D555+X8uXLy0UXXeQ+nafjU089VeiTUuQI3H333ZEXzkPJ4447Tvi8/vrr0q5duzzUpLcqArFDQDWV2GEbUc1//PGHKde+ffsM5Y8//nijMaCNhCN8KWPGjJGrr75aChcuLJ9//rlhNGvWrMlQHJPakCFDzDlb5rfffjOmNjSSli1bGhOa9cn88MMPpp6///5b7rjjDunYsWMmPwACsG/fvuntvP3220aratSokSmPicnSxx9/bITehg0bpHfv3nLsscfK+vXr5auvvjLtYGpr2rSp6c9ff/1lb5O1a9ea9lu0aCF16tQRNLhBgwZl6kv6DWEO8D/ccsstQh307cYbb5Tly5dnKpld/ylM3zFxnXzyyaYehDhYWnriiScELcISfpNnnnlGzjnnHKlXr57BZtKkSfZy+vfvv/9unl+TJk3k7LPPlocffljQXCHGj+D49ttvZdiwYaYu+tmtWzeZMWOGLFiwIL0ePVAE/ISACpUEP426deuaHjz33HOG2bq78+WXX2Zp6oCpwLyOPvpoc8umTZtk9uzZsmvXLncV8ueff8qyZcsylEHQQDCoYsWKCXb+iRMnmnNbt2419ezYscOYdH7++Wf56aefzDX+LF68WGCQNp3Fk08+Kffff79UqVJFMMNx/+233y6ffPKJuQcBguDs06eP4AfBVARj79mzp2zbtk169eoll19+udBO9+7dBUc6dNNNN8nYsWMNI4eh16pVS9544w0jSE2BHP7Qj4svvljA8Mwzz5SuXbsaLKyAtbfn1H/wxMfFeE488US56qqrBMGNsJoyZYqpBnzB2VK/fv0ELRJTIuPkm3G6CU2UcYPFNddcY4TVa6+9ZgQv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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "### A problem about Python programs\n", "\n", "Let's show that it is undecidable whether a given Python program $P$ writes to the filesystem. It would be great for security if this were decidable, but unfortunately it's not.\n", "\n", "Suppose, for the sake of contradiction, that this is decidable. That is, there exists a TM $R$ that accepts a Python program $P$ if and only if $P$ would write to the filesystem. Let's call it the \"write-detector.\"\n", "\n", "We're going to build a universal decider $S$ that somehow uses the write-detector $R$ to decide $A_{\\mathsf{TM}}$. We can't feed $\\langle M, w\\rangle$ to the write-detector $R$ because $R$ wants a Python program. So we need to convert $M$ and $w$ into a Python program. \n", "\n", "![image.png](attachment:image.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We assume a Python function `simulate` that simulates a TM and returns `True` for accept or `False` for reject; this function can also potentially loop. It should be obvious that such a function exists, although it's long enough that we don't bother to write it out. Then the universal decider can be implemented as $S = $ “On input $\\langle M, w\\rangle$:\n", "\n", "1. Construct the Python program, called $P$:\n", "```\n", " import os\n", " if simulate(M, w):\n", " os.system(\"rm -rf *\")\n", "```\n", "where `M` and `w` are filled in with data structures representing $M$ and $w$, respectively.\n", "2. Run $R$, the write-detector, on $P$.\n", "3. If $R$ detected a write, then _accept_.\n", "4. Otherwise, _reject_." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To see that $S$ is a universal decider, let's walk through the possible cases:\n", "- If $M$ accepts $w$, then $P$ would wipe out your files. $R$ detects this, and so $S$ accepts.\n", "- If $M$ rejects $w$, then $P$ does not wipe out your files. $R$ does not detect any writes, and so $S$ rejects.\n", "- Similarly, if $M$ loops on $w$, then $P$ would run forever but would not wipe out your files. $R$ does not detect any writes, and so $S$ rejects.\n", "\n", "Thus $S$ decides $A_{\\mathsf{TM}}$ as desired, which is a contradiction. We conclude that it's undecidable whether a given Python program writes to the filesystem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The \"adapter\"\n", "\n", "In general, when you're trying to prove that detecting property $\\phi$ is undecidable, the program $P$ usually has to do the following things:\n", "\n", "- Simulate $M$ on $w$.\n", "- If $M$ accepts, then exhibit property $\\phi$.\n", "- If $M$ rejects, then don't exhibit property $\\phi$.\n", "- You must also set it up so that if $M$ loops, property $\\phi$ is not exhibited.\n", "\n", "**Question.** Try Problem 5.12: Show that it is undecidable, given a Turing machine $M$, whether there is any input $w$ for which $M$ ever erases a symbol (that is, overwrites a non-blank symbol with a blank symbol)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Properties of languages\n", "\n", "
\n", "

Read Theorems 5.2–4 and their proofs (pages 217–220).

\n", "

Watch W10E2: Undecidable Properties of Languages.

\n", "
\n", "\n", "The next two theorems, 5.2 and 5.3, are a little different because they are not properties of a Turing machine and an input; they are properties of the whole language that a Turing machine recognizes. But the general scheme of their proofs is the same. " ] }, { "attachments": { "image.png": { "image/png": "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+eabcu6558oRRxwhXbt2lTvuuENmz55d9I3O1SeeeEIeeughSdc6mM8//1xatmwpv/zyS9y2/SxQ3H5++OGHZnyTJ09OW/evu+46OfTQQ4usb8OGDabdJ598sshyRV0cMmSIXH311UUV0WuKgO8IqFDx+RFs2rRJLr74YrntttvMLHTfffeV2rVrCwzk2GOPlaKY3/z5840wuuSSS9I2iurVq8uuu+4qVapUSVudQawoXUKYse28885GYHg9zosuukh+/vln+fTTT71uSutXBIqNgC5+LDZ06blxxIgRxnyFYLnrrrvyK50wYYKceuqp8thjj8mAAQPyz7sPnn76aalZs6acdNJJ7tMpHR988MFCn5QSR6B3796JF06h5F577SX8vfzyy3LiiSemUJPeqgh4h4BqKt5hm1DNv//+uynXpUuXAuX33ntvozGgjUQjfCnvvPOOnHPOOVK2bFkZNmyYYTQLFy4sUByTWr9+/cw5W+bXX381pjY0kv3228+Y0KxP5vvvvzf1/P3333LDDTfIGWecUcgPgAC8+eab89t57bXXjFbVunVrUx4Tk6UPPvjACL2lS5fKNddcI3vuuacsWbJEvvjiC9MOpra2bdua/vz111/2Nlm0aJFpf5999pGmTZsKGlzfvn0L9SX/higH+B+uvPJKoQ76dumll8rcuXMLlSyq/xSm75i4DjzwQFMPQhwsLT388MOCFmEJv8njjz8uRx11lDRv3txgM2rUKHs5//O3334zz69NmzZy5JFHyr333itorhDjR3B8/fXX0r9/f1MX/ezRo4eMHz9epk2bll+PHigCQUJAhYrPT6NZs2amB0899ZRhtu7uDB8+PKapA6YC89ptt93MLcuXL5dJkybJ+vXr3VXIn3/+KXPmzClQBkEDwaAqVKgg2PlHjhxpzq1atcrUs3btWmPS+emnn+THH3801/g3c+ZMgUHadBaPPPKI3HnnnVKvXj3BDMf9119/vXz88cfmHgQIgvPaa68V/CCYimDsPXv2lNWrV8tVV10lp59+utDOhRdeKDjSocsvv1w++ugjw8hh6I0bN5ZXXnnFCFJTIM4/+nHyyScLGB5++OFy3nnnGSysgLW3x+s/eOLjYjz777+/nH322YLgRlh98803phrwBWdLt9xyi6BFYkpknHwyTjehiTJusDj//PONsHrppZeM4KXc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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "Here, we walk through the proof of Theorem 5.2. It says that there is no \"emptiness-detector\" TM that decides whether another TM recognizes an empty language. \n", "\n", "Suppose that there $R$ is an emptiness detector. Then we need to implement $S$, a universal decider.\n", "\n", "![image.png](attachment:image.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given $M$ and $w$, we \"adapt\" them into a machine $M_1$ that recognizes a nonempty language iff $M$ accepts $w$. We're going to construct $M_1$ differently from the book; if you like the book's version better, that's fine too.\n", "\n", "$M_1 =$ “On input $x$:\n", "\n", "1. Run $M$ on input $w$.\n", "2. If $M$ accepts $w$, then _accept_ $x$.\n", "3. If $M$ rejects $w$, then _reject_ $x$.\n", "\n", "Let's think carefully about what $M_1$ would do.\n", "- If $M$ accepts $w$, then $M_1$ accepts all strings $x$. That is, $M_1$ recognizes $\\Sigma^\\ast$, a nonempty language.\n", "- If $M$ rejects $w$, then $M_1$ rejects all strings $x$. That is, $M_1$ recognizes $\\emptyset$.\n", "- If $M$ loops on $w$, then $M_1$ also loops on all strings $x$. So, $M_1$ recognizes $\\emptyset$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we define a universal decider $S =$ “On input $\\langle M, w\\rangle$:\n", "\n", "1. Construct $M_1$ as described above.\n", "2. Run $R$, the emptiness-detector, on $M_1$.\n", "3. If $R$ detected an empty language, _reject_.\n", "4. Otherwise, _accept_.\n", "\n", "Here's how $S$ works:\n", "- If $M$ accepts $w$, then $M_1$ would recognize $\\Sigma^\\ast$, a non-empty language, and so $S$ accepts.\n", "- If $M$ rejects or loops on $w$, then $M_1$ would recognize $\\emptyset$, and so $S$ rejects.\n", "\n", "Thus $S$ decides $A_{\\mathsf{TM}}$ as desired, which is a contradiction. We conclude that it's undecidable whether a given Turing machine recognizes the empty language." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We've tried to follow a general recipe for proving undecidability results. It turns out that this recipe can be distilled into a catch-all theorem called Rice's Theorem: any property of a language recognized by a Turing machine, as long as the property is not always true or always false, is undecidable.\n", "\n", "There are some properties of the internal working of a Turing machine that are decidable (you'll see one in HW7). But broadly speaking, questions about external behaviors of computer programs tend to be undecidable. When you see problems like this in real life -- and you definitely will -- you should smell undecidability and think twice before trying to implement a solution to the problem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Other undecidable problems\n", "\n", "Sometimes, the existence of a Turing machine simulator is not so obvious, and we have to think more carefully about it.\n", "\n", "**Question**. An _unrestricted grammar_ is like a CFG, but the left-hand sides can be strings. A derivation starts with $S$ and continues until no more rules can be applied. Show that it is undecidable whether an unrestricted grammar generates a nonempty language. Hint: Convert $\\langle M, w\\rangle$ to a grammar whose starting rule generates the start configuration:\n", "$$ S \\rightarrow q_0 w $$\n", "and for each transition of $M$, create a grammar rule (or rules) to simulate that transition.\n", "\n", "See [the survey by Poonen](http://www-math.mit.edu/~poonen/papers/sampler.pdf) for more examples of undecidable problems." ] }, { "attachments": { "image.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAACUCAYAAABbcLQqAAAMTGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdYU8kWnltSSWiBUKSE3kQRBAJICaFFEJAqiEpIAgklxoSgYkeWVXDtIgrqiq6KuOjqCshasZdFsffFgoqyLq5iQ+VNCujqK9873zd3/pw585+SuXNnANCr4ctk+ag+AAXSQnlCZChrXFo6i/QQoMACmAAnwOILFDJOfHwMgDLQ/1NeXwWIqr/kruL6dvy/ioFQpBAAgMRDnCVUCAog/hUAvEQgkxcCQGRDvd3UQpkKZ0BsJIcBQixT4RwNLlXhLA2uUtskJXAh3gEAmcbny3MA0G2GelaRIAfy6F6H2EMqlEgB0CNDHCQQ84UQR0E8tKBgsgpDO+Cc9QVPzj84swY5+fycQazJRS3kMIlCls+f/n+W439LQb5ywIcjbDSxPCpBlTOs2/W8ydEqTIO4W5oVGwexIcRvJUK1PcQoVayMStbYoxYCBRfWDDAh9hDyw6IhtoA4QpofG6PVZ2VLIngQwxWCTpMU8pK0cxeIFOGJWs4a+eSEuAGcLedytHMb+HK1X5X9MWVeMkfLf10s4g3wvyoWJ6VCTAUAoxZJUmIh1oXYSJGXGK2xwWyLxdzYARu5MkEVvz3EbJE0MlTDj2VkyyMStPayAsVAvliZWMKL1eKqQnFSlKY+2HYBXx2/KcSNIikneYBHpBgXM5CLUBQWrskdaxNJk7X5YndlhaEJ2rk9svx4rT1OFuVHqvS2EJsrihK1c/FRhXBBavjxGFlhfJImTjwzlz86XhMPXgRiABeEARZQwpYFJoNcIGnrbuqGvzQjEYAP5CAHiIC7VjMwI1U9IoXPRFAM/oRIBBSD80LVoyJQBPUfB7WapzvIVo8WqWfkgUcQF4BokA9/K9WzpIPeUsBDqJF8410AY82HTTX2rY4DNTFajXKAl6U3YEkMJ4YRo4gRRBfcHA/CA/AY+AyBzRNn434D0X62JzwitBPuE64QOgg3JklK5F/FMgZ0QP4IbcZZX2aMO0JObzwUD4TskBln4ubAHR8J/XDwYOjZG2q52rhVubP+TZ6DGXxRc60dxYOCUkwoIRTnr2fquup6D7KoKvplfTSxZg1WlTs48rV/7hd1FsI++mtLbAG2BzuJHcFOY/uxJsDCDmHN2DnsgAoPrqGH6jU04C1BHU8e5JF844+v9amqpMKj3qPL44N2DBSKpqn2R8CdLJsul+SIC1kcuPOLWDypYNhQlqeHpwcAqu+IZpt6yVR/HxDmmc+6+TYABE7v7+/f/1kXfQGAPQfga37zs86pE24HZwA4tVqglBdpdLjqQYC7gR58o8yAFbADzjAjT+ADAkAICAejQRxIAmlgIqyzGK5nOZgKZoJ5oAxUgKVgFVgLNoBNYBv4GewGTWA/OAJOgLPgArgCbsH10wmegR7wGvQhCEJC6AgDMUOsEQfEDfFE2EgQEo7EIAlIGpKJ5CBSRInMROYjFchyZC2yEalDfkH2IUeQ00g7cgO5h3QhfyPvUQyloUaoJeqIDkfZKAeNRpPQCWgOOgUtRkvRxWgVWovuQBvRI+hZ9AragT5DezGA6WBMzAZzx9gYF4vD0rFsTI7NxsqxSqwWa8Ba4D99CevAurF3OBFn4CzcHa7hKDwZF+BT8Nn4Inwtvg1vxI/hl/B7eA/+iUAnWBDcCP4EHmEcIYcwlVBGqCRsIewlHIdvUyfhNZFIZBKdiL7wbUwj5hJnEBcR1xF3Eg8T24kPiL0kEsmM5EYKJMWR+KRCUhlpDWkH6RDpIqmT9JasQ7Yme5IjyOlkKbmEXEneTj5Ivkh+TO6j6FMcKP6UOIqQMp2yhLKZ0kI5T+mk9FENqE7UQGoSNZc6j1pFbaAep96mvtTR0bHV8dMZqyPRmatTpbNL55TOPZ13NEOaK41Ly6ApaYtpW2mHaTdoL+l0uiM9hJ5OL6QvptfRj9Lv0t/qMnSH6fJ0hbpzdKt1G3Uv6j7Xo+g56HH0JuoV61Xq7dE7r9etT9F31Ofq8/Vn61fr79O/pt9rwDAYYRBnUGCwyGC7wWmDJ4YkQ0fDcEOhYanhJsOjhg8YGMOOwWUIGPMZmxnHGZ1GRCMnI55RrlGF0c9GbUY9xobGI41TjKcZVxsfMO5gYkxHJo+Zz1zC3M28ynxvYmnCMRGZLDRpMLlo8sZ0iGmIqci03HSn6RXT92Yss3CzPLNlZk1md8xxc1fzseZTzdebHzfvHmI0JGCIYEj5kN1DblqgFq4WCRYzLDZZnLPotbSyjLSUWa6xPGrZbcW0CrHKtVppddCqy5phHWQtsV5pfcj6KcuYxWHls6pYx1g9NhY2UTZKm402bTZ9tk62ybYltjtt79hR7dh22XYr7Vrteuyt7cfYz7Svt7/pQHFgO4gdVjucdHjj6OSY6vi9Y5PjEydTJ55TsVO9021nunOw8xTnWufLLkQXtkueyzqXC66oq7er2LXa9bwb6ubjJnFb59Y+lDDUb6h0aO3Qa+40d457kXu9+71hzGExw0qGNQ17Ptx+ePrwZcNPDv/k4e2R77HZ49YIwxGjR5SMaBnxt6erp8Cz2vOyF90rwmuOV7PXi5FuI0Uj14+87s3wHuP9vXer90cfXx+5T4NPl6+9b6Zvje81thE7nr2IfcqP4BfqN8dvv987fx//Qv/d/n8FuAfkBWwPeDLKaZRo1OZRDwJtA/mBGwM7glhBmUE/BnUE2wTzg2uD74fYhQhDtoQ85rhwcjk7OM9DPULloXtD33D9ubO4h8OwsMiw8rC2cMPw5PC14XcjbCNyIuojeiK9I2dEHo4iREVHLYu6xrPkCXh1vJ7RvqNnjT4WTYtOjF4bfT/GNUYe0zIGHTN6zIoxt2MdYqWxTXEgjhe3Iu5OvFP8lPjfxhLHxo+tHvsoYUTCzISTiYzESYnbE18nhSYtSbqV7JysTG5N0UvJSKlLeZMalro8tWPc8HGzxp1NM0+TpDWnk9JT0rek944PH79qfGeGd0ZZxtUJThOmTTg90Xxi/sQDk/Qm8SftySRkpmZuz/zAj+PX8nuzeFk1WT0CrmC14JkwRLhS2CUKFC0XPc4OzF6e/SQnMGdFTpc4WFwp7pZwJWslL3KjcjfkvsmLy9ua15+fmr+zgFyQWbBPaijNkx6bbDV52uR2mZusTNYxxX/Kqik98mj5FgWimKBoLjSCB/ZzSmfld8p7RUFF1UVvp6ZM3TPNYJp02rnprtMXTn9cHFH80wx8hmBG60ybmfNm3pvFmbVxNjI7a3brHLs5pXM650bO3TaPOi9v3u8lHiXLS17NT53fUmpZOrf0wXeR39WX6ZbJy659H/D9hgX4AsmCtoVeC9cs/FQuLD9T4VFRWfFhkWDRmR9G/FD1Q//i7MVtS3yWrF9KXCpdenVZ8LJtyw2WFy9/sGLMisaVrJXlK1+tmrTqdOXIyg2rqauVqzuqYqqa19ivWbrmw1rx2ivVodU7ayxqFta8WSdcd3F9yPqGDZYbKja8/1Hy4/WNkRsbax1rKzcRNxVterQ5ZfPJn9g/1W0x31Kx5eNW6daObQnbjtX51tVtt9i+pB6tV9Z37cjYceHnsJ+bG9wbNu5k7qzYBXYpdz39JfOXq7ujd7fuYe9p+NXh15q9jL3ljUjj9MaeJnFTR3Nac/u+0ftaWwJa9v427Let+232Vx8wPrDkIPVg6cH+Q8WHeg/LDncfyTnyoHVS662j445ePjb2WNvx6OOnTkScOHqSc/LQqcBT+0/7n953hn2m6azP2cZz3uf2/u79+942n7bG877nmy/4XWhpH9V+8GLwxSOXwi6duMy7fPZK7JX2q8lXr1/LuNZxXXj9yY38Gy9uFt3suzX3NuF2+R39O5V3Le7W/uHyx84On44D98LunbufeP/WA8GDZw8VDz90lj6iP6p8bP247onnk/1dEV0Xno5/2vlM9qyvu+xPgz9rnjs///WvkL/O9Yzr6Xwhf9H/96KXZi+3vhr5qrU3vvfu64LXfW/K35q93faO/e7k+9T3j/umfiB9qPro8rHlU/Sn2/0F/f0yvpyvPgpgsKHZ2QD8vRUAehoADHiGoI7X3PPUgmjupmoE/hPW3AXV4gNAA+xUx3XuYQB2weY4F3LDXnVUTwoBqJfXYNOKItvLU8NFgzcewtv+/peWAJBaAPgo7+/vW9ff/3EzDPYGAIenaO6XKiHCu8GPYSp0Y0WcDHwl/wLnqIEjuo16QwAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAABlaADAAQAAAABAAAAlAAAAADyi9QfAAAu0ElEQVR4Ae1dB3wU1dY/CZDQS6jSpHcRaSIqICJPBUFQEZCiVFFBUBEFLKjPgjxElA+eoCAqqFiAByhNBGkiSEd67713ku/+b3I3k81mM7uZ2bmze87vt9nZmTu3/O/knDnlnhuVIIiYGAFGgBFgBBgBCxCItqAOroIRYAQYAUaAEZAIZGYcQoNAVFRUaBriVhgBRiBDCLDxJkPwEQuVjOEX0N179uwJqDwXZgQYgdAicPPNN4e2wTBsjc1fYTipPCRGgBFgBJxCgIWKU8hzu4wAI8AIhCECLFTCcFJ5SIwAI8AIOIUACxWnkOd2GQFGgBEIQwRYqIThpPKQGAFGgBFwCgEWKk4hb1G7Z86cocWLF5NVYZCo59q1a5bVZ9EwU1UTbD/j4+MtH9+NGzdknak66XUCuKJssLR8+XI6fPhwsLfzfYxASBBgoRISmP03cuXKFfrmm2/oiSeeoIYNG1LLli3ptddeo7179/q/UVz96KOP6P333yer1sH8+uuvVK5cOfr777/TbdvJAsH28+eff5bj27Jli2Xdf/755+muu+7yW9/ly5dluyNGjPBbzt/FyZMn07PPPuuvCF9jBBxHgIWKw1Nw9epV6tKlCw0cOFC+hdaqVYvy589PYCD/+te/yB/zO3jwoBRGXbt2tWwUefLkoYoVK1LOnDktq1PHiqwSwhhb8eLFpcCwe5xPPfUUrVy5kmbOnGl3U1w/IxA0Arz4MWjorLlxzpw50nwFwfLGG294Kl29ejW1atWKhg0bRmPHjvWcNx6MHDmS8uXLR82bNzeeztBx/fr1CX1iMo/AK6+8Yr5wBkrWqFGD8Pn888+pWbNmGaiJb2UE7EOANRX7sDVV8/r162W5Fi1apCh/2223SY0B2ogvgi/l+++/p3bt2lGWLFnol19+kYzmyJEjKYrDpDZ8+HB5TpVZs2aNNLVBI6ldu7Y0oSmfzJIlS2Q9mzdvpn79+tGjjz6ayg8AAdi/f39PO19++aXUqipUqCDLw8Sk6KeffpJC78SJE9S7d2+69dZb6fjx4zRv3jzZDkxtVatWlf35559/1G109OhR2X7NmjWpVKlSBA1uyJAhqfriucHHAfwPvXr1ItSBvnXr1o3279+fqqS//qMw+g4T1+233y7rgRAHloo++OADghahCH6T//znP3TvvfdSmTJlJDbz589Xlz3f69atk/NXpUoVuueee+jtt98maK4gjB+CY+HChTRq1ChZF/rZsWNHWrVqFW3fvt1TDx8wAjohwELF4dkoXbq07MHHH38sma2xO7Nnz07T1AGmAuZVqVIlecupU6dow4YNdOnSJWMVtGnTJtq3b1+KMhA0IDCorFmzEuz8c+fOlefOnj0r67lw4YI06fz111/0559/ymv4s2vXLgKDVOkshg4dSq+//joVKlSIYIbD/X379qVp06bJeyBAIDj79OlD8IPAVATG3qNHDzp37hw988wz9MgjjxDaefLJJwmOdFDPnj1p6tSpkpGDoZcoUYK++OILKUhlgXT+oB8PPfQQAcMGDRpQhw4dJBZKwKrb0+s/8ISPC+OpU6cOPf744wTBDWG1aNEiWQ3wBc6KXn75ZYIWCVMixolvjNNI0EQxbmDRqVMnKazGjRsnBS/KXb9+Xc7D6NGjCX2Ekx/YVa5cWVaD4AwmRkBHBNj85fCsgLFMnz6dFixYQHXr1pWaQ6NGjSRDBCNNi3bs2CEvgdEESvfff798k8Z9bdu2lW/By5Yto6ZNm6aoCswUDA3CAGYxEJg0CJoVGOJnn30m68DbOgjaDe7Dmzq+FSHoANoJhNGUKVOkQBwwYIB8G0cZaCwQbiiXLVs2GSjQunVrqUXhOpgz3uiNzBvn06KJEyfKt30EMUCbA8HJ/cADD0ihAM3MTP8RQAGh8e6770ptCvV07tyZ7rvvPvr222+lwMI5RZiXH3/8kTCH48ePp+joaBlJB1yMGtw777wjfWezZs2iXLlyydsRdAEM8HIQFxcnz2FeoKkoEyc0VBACKSCEmRgB3RBgoeLwjMB09fXXX0uGC5MK3kChGeCNGuYepVV4d1OZP4oVK+Z9Kd3feNtWBGYOv8zp06fVKc83BBbeziFI0Bc4t+FvgTmpZMmSkkniDRra1m+//ea5D9oTzF5bt271nIO2obQbmMBAgwcPlmacu+++m9q3by/f2HEeb+nQXHLnzi01H9Sj/Dy4ZoZWrFgh74f5ThECIDB2aBEgtJFe/5cuXSqZfps2bVQ1UgBCW8PceRNMUxBYEDwQKCDgBs1GCRVEgqEczGPogyL1ggCtUc0RzGJKoKActJ4cOXKk0mpVHfzNCDiNAAsVp2dAtA/mAy0BHzAkmFXAhGFWgl09b968qXp54MAByawgEAKlggULprhFMb8UJ5N+IFgAkWnww4Dp4Q35zTfflFdVyPN7773n61apKagLt9xyizqUph4wdgQhQHjig7d1MOKXXnqJMmfOTPDtwPSjot+KFi3qud/MwaFDh6hw4cKpGD/8M4rM9B/aDAS3twCBr8QXKR+Yt5apBCruQZ2YZ2hu+HgT/CmKqlevrg4935g/mPeYGAEdEWCh4uCswCwDJgRnrCK81WKtCjSUTz/9lLZt2ya1BXVdfeMtHowJPgswGRx7E87BN+JN3uG0vu5V90CoISoNJjAwZNyr3pyVcPrvf/9LZcuWVbd4viEIlLnKWzDCNIYPzEXQzmAqwnjBwMuXLy/9MjAHIrQajny8oSt/gqcBPwcFChTw6cw2amRm+g+claAwNofQXmhN9erVM54mtAtSZip10Ve70M4Q9OBNaFMtkvTGDWVPnjwpgzi87+PfjIAOCCTq5zr0JAL7kD17dtq9e3cKM5GCQTFj4xuuuoZvOMZBeOsFwQ8BUr4WHMO0goWVGSEwtUaNGsloJ5ig7rzzTg/jrFatmqwaznsIAvWBTwHMUjFGFDIKsjFjxlDjxo2lox7CCBoKfDMgRJ3BdAWCeQy+HAiUnTt30sWLF+V5M3/gf8EbP3wSiiA84b9SZKb/GBO0QhWlh3vhqIcvCv4Qb4IABCHIwEjG3xgPtD7UqTDDNwQP/CTGwAgjbqgPGgo+MFsyMQI6IqCdpnJqx2TKVzbRsaojYFb2CYwJ5g8wEtjcEeILhgGmDB8FnMpKeHi3ixBbEBgewo9VFBhMSdBO4CuAk90KggkM0UvYZAwOeEUwzWAlOcxY8BOgT2vXrpUCAsIAb9y+CAwUwg+Oc0SMIQLthx9+kEXhb1F+kwkTJkgnO8xUiI4Dwb9iJlUJ6v3qq68krggIgCkMbcCMp8hM/xGGDId89+7dCfUgOm3SpEnyG8ED3oS5gPaCtjEuRJ5BeBhxwz0Y+6uvvirDnPEcIGwZwhZaCEKXjQLZ2AbmG8RCxYgKH+uEgHZC5czObyU+kSBYEEH04YcfyogfvJUrwmp2MDGEpqZFcKBDOwHDgjkKb+Zg/PBDYD0IGBrCcvE2rXwm3m+9xrpVGe9vlIFDGX2CoMIqfyMhMgk+F3zjOsw/iGhTCwLTqg/rXNBXZfrDWMDAIcCwVgOrxuHsxyc2NlbigeAEmOFmzJghQ4zRD1W/sU84hukNpjP4aFRfIFgee+wxGX2msEiv/9CksD5k0KBB0iSHuoEFTILKse7dB2hdaBcmPSxcRf+hueFYlYXpE5oXfEtwzMfExNAdd9xB//73v6UATEtwbty4EV0gpWXJH/yHEdAIgShhEkhtjHewg7vnJoah5inTNqw0FjCxtLYTxtsvmAhs93i7R2QVhEJ6BEEEcw7MJcr8BY0BTmo4iuHwDhVBoKD/6Lti2Om1jXvQVzyCRYoUkczXeA/8RdC6wLwzZcoktQOY+/BbMWdj+bSO8fYPQYU20iIz/Uc958+fl34f9Cc9wlxgXjEX/spD+0DABcyh6RFeIOALgsBish4BmJs1Y4nWD9LmGrUVKhh3OAkWf0Il2DmGkIIWgbdmLGRkCm8EkKUYocYIPYdmymQ9AixUMo6p1o56mMLgY2HyjQD+AWBWQS4ofrvyjVE4nYX5DItOWaCE06yG31i01lQU3OGgsdihqQAfZe7CAkSm8EYAAQtYaR/uGaSdnEXWVDKOfuiM7hnoayQ57wOFCb4XFiiBoubO8vBXMTECuiOgtfnLCB6bwoxo8DEjwAgwAnoi4BqhAvhYsOj5EHGvGAFGgBFQCLhKqKDTLFjU1PG30wgknEjcLsDpfnD74YuAGwOVXCdU8PiwYAnffyI3jSzh+HRKOJO814yb+s59dQcCbuR1rhQqeBzcCLY7HmPuZSAIJByeRAnnE1e5B3Ifl2UEzCLgNl7nWqGCCXEb2GYfIi7nJgTiKeGgWCd0aZebOs19dRkCbuJ1rhYqeC7cBLbLnmPurlkEEq5Rwv4xlHDlsNk7uBwjEDACbuF1rhcqmBm3gB3wU8Q3uAeB+ItCsIyihGun3NNn7qnrEHADrwsLoYInww1gu+4J5g4HhsD104mC5UbqjdECq4hLMwJpI6A7rwsboYIp0B3stB8TvhI2CFw9kmgKi78aNkPigeiHgM68LqyECqZeZ7D1ezS5R7YgcHl3ovM+4YYt1XOljAAQ0JXXZVb7l4TTNAFskG4bfSFZHVPaCKS130zad2h85cImQrgxFelgen+ZUIyGn8FQoBy6NnTkda5IKBnMFOkINnYsZPKNADafCjs6u4ISMuWkqEKttBoaP4dpT4cbn0PdeF3Ymb+MjwvAdmOaA+MY+NjlCJz6jRJOznP5ILj7uiOgE68La6GCB0EnsHV/MLl/9iCQcGwap3OxB1qu1YCALrwu7IUKMNcFbMP882GEIcDpXCJswh0arg68LiKECuZXB7Ades64WS0Q4HQuWkxDBHTCaV4XMUIFz5LTYEfA88xD9IcAp3Pxhw5fsxABJ3ldRAkVzJmTYFv4zHBVbkWA07m4deZc12+neF3ECRU8GU6B7bqnkjtsDwKczsUeXLnWVAg4wetMrVMp3XR6qs46fWLXnBYZ6gLABum2QDJDg+Kb3YNAUjoXKtGboqJj3NPvCOhpuC0IDzWvMyVU8BzptNrZqlXBoQY7Av4feYiBIJCUzoWK9RCr7jMFcieXZQQCQiCUvM60UAloBC4qHEqwXQSLI12N39LbkXYdbVTTdC6OYsKN24JAqHhdRPpUvGcMYPPKe29U+HfIEEA6l2NTQ9YcNxS5CISC17FQSXq+QgF25D7KPPJ0EeB0LulCxAWsQcBuXsdCxTBPdoNtaIoPGYFUCHA6l1SQ8AmbELCT17FQ8Zo0O8H2aop/MgKpEOB0Lqkg4RM2IWAXr2Oh4mPC7ALbR1N8ihHwQoDTuXgBwj9tRMAOXsdCJY0JswPsNJri04xASgQ4nUtKPPiXrQhYzesiPqTY32wBbBAvkPSHUuiu6bgI16rRp1rMm5TOhUq+QFFZ8lnVDNfDCPhEwEpex0LFJ8TJJ60EO7lWPgoWAZ0W4QY7Bu/70lzMm5TOhUr2o6hMObxv49+MgKUIWMXr2PxlYloANq9jMQEUF7EegaR0LgnxV62vm2uMSATi4xNo0cqjdOzU5VTjt4LX2SZUJk+eTC+//DKNHj06VcfViT/++EOWefXVVykhIUGd1vLbCrC1HBh3Sn8EktK5JCTc0L+v3EMtEJi//DCtWH/CZ18W/32MOg9cTucvXvd5PaO8zjbz15dffkn//PMPFSlShHr16pWq85cvX6ZXXnmF9u/fT+XLlxe5j6JSldHtBMAGsY9Ft5mJgP5wOpcImGTrhvjGqPVUvUJeqntL/lSVTpm9l+pUi6PSxXKmuqZOZITX2aKpXLp0ibZs2UKZM2emw4cP04ULF1RfPd9jx46lgwcPyt+33nqr57zuBxmV4rqPj/unMQKczkXjyXFH186cu0pzlh6mNv8qmW6Hg+V1tmgqGzZsoPj4eHr44Yfpp59+op07d9Itt9ziGcSRI0do1KhR1LRpU/r111+pRo0anmtuOMiIFHfD+LiPGiOAdC6Zc1NU3L0adzL8unbs5GV6b+wmWrTqKJ08c5Xy54mlh+4pRoN6VKVMmRKtLMvXHqcRX22hDdtOixfqaLq9en56pVsVj0YAE/+Y77bT9AUHaMe+c1QwX1ZqeW9xer5DBYqNScxSffbCNfr3fzdKn8flKzfojhoF6IXOlahcyVwS1Hc/20i7D1yQ5yfP2kN7Dl6gSqVzU8cWpejRpiVp1caTBC3l6InLBDNX82cW0uCnq1K96gXk/VN/209ZMkfRgw2KmpqkYHidLZrK2rVrZYdbtmwpv3fs2JFiAO+//z7FxMRQw4YN5Xm3CRV0OlgpngII/sEIBIEAkk8mnPkziDv5lmAR6DnkL5q2YL80J/XpUJGKF8lO43/eSVPm7JVVLll9jDoMWEY795+nR+4rSfWFMPh9xVHqKM4p3wWY/dAv/qGssdH05MNlqGBcLI3+dhsN+b8Nso6r1+Lp0b6Laer8/dT49sL0sBA4f6w6Ru1fXkqHjl2SZSBQ5i47TG+N3kDlb85FnVqUptNC++g/bA19M2M3ZcuaicoUzymFGgQVjrPFJm+rMGX2PmrWsBhlz2ZenwiU15mvOYDZWLNmDWXPnp3uuusuio2NlZqKuh3XoL0MGTKEIGxwvVKlSuqyq76DkeKuGiB3VlsEkM6FMuWkqJxVte1juHTsiHjrX/3PKWolmPzwATXlsLo/WpaqtZxFm3ackb+Hjd8shcVPH99NxQtnl+dGTd5KOL9QRFrdKvwbk2bsobtrFaTx79ST2g00F2gSP83bR6/3qkbQPLbtOUdfvluPGtQuJOt4TGgfLXsvoonTd9GArlXkOfwZ2KMKdX+0nPz9XPvy1EzUM2LiFlr8dRMaObAW3dVxrvSp4FgR+rpx+xka8myy1UhdS+87EF5ni1CBplK1alXpUylVqhRt375d9hkgQphUqFCBOnbsSK1atZLlsmTJkt6YtL0eCNjaDoI75kIEEtO5yJ0js5V2Yf/d0+X8eWNoxbdNKVeOLATz1Lbd54Rf4pAcwI0bCQQz1ZrNp4SGUsIjUHCx2yNlpcZRtGA2mv/nEbohQnmhoShzGYKTJggBcvzUFYrJEk3L1hyn3DmzyHILVhzxAFRE3D9PaCdKqGQVmgc0FEV5csXQE81KSS1o+97zVLVcHnUpxTcc9GVK5KRaVeNSnDf7wyyvs1yonDp1ivbu3UtNmjSRfS1TpozUSPBj6tSp9Pfff9OkSZPo6tWrtHHjRilczA5K13Jmwda1/9wvkj7AQYMG0Y0byWG7mTJlopo1a9K9995LcXHB/SPaim1SOhe5ODK2iK1NRXLlmTNF05LVx4U/ZBttEQIFBEGh6MDRRNPUzUVTLlCF+alymUQGf+CI7zLwq+AD2nvoAp09f426DE5t2syTK/nFu0j+rB4fjOpDiZsStaMDRy/6FCowrcGs1rNNonaj7gv02wyvs1yoKH+KcsyXLl2afvvtNxkBBl/KAw88QHfeeSctXbqUrl+/7jonfVqTYAbstO7l884jAFMsXnby5MlDefPmlR1CsMn3338vBQ7WXPkKjXe855zOxfYpWLnhBPX74G/hT4mjSUPrS6YNjaJqi5my7dw5E9noOaHFGAkazDLhvIewyZXDdxkIkh37zosQ3/zCx5JV+l+gvXhTYihA4tlTwofiTWfOJbadV2gtvgh+mHMXrkttytf1QM6lx+ssFyrwmYCUUIGmcuXKFRo8eDBBi8HbIGjlypXy241OetlxH3/SA9vHLWF5asWKFdKnVq1aNdeMT70MYe1U+/btPf1GSHyLFi3oo48+op49e1J0tC2xLZ72gjpwUTqXXbt20fTp01MME+bvfPnyUb169QgvobqRWkQ4UER63VoxMQ8bHPIXL98Qi7ZJahp5hSYxV4TqwkSlzFs/zt1Hg0euo2+H3UkVhFMdNHvxIapRKTmX2ysfraVdoq5FE5tIYbV0zTF5v1pDcuXqDXr8xSXS4a78ORAgC/86Qg3rFPZANWvRQcosotDKCvOWIvRN0fe/7qVGdQtJwaXOZeTbH6+zXKjgnxNO+rJly8o+q4cEzvk+ffpQiRIl5Pm//vpLvhXC5xJO5A/scBqnv7GMGTNGLmh1o1DxXjOFxbtgdtOmTZNrrooWNReK6Q8fW64lpXORPpZo32+rtrQbYKWrVq2iuXPnUoECBUj5Uq9du0bHjx+nb775Rgruhx56KMBa7S1eIMk8NXHaLnr8gXhppvrkm62y0a3CsX74+CXq8Vg56dPoOWSFXAOyfe85ER22i26rnE+GFsOfXK18Hvrsh+2UVURoVRN+j9+EnwV+lNdEyG8WEYL8VKsyNGHqTur4yjIZRpxdlEP48dotp6ndgzenGGSf9/6m/k9VohI35aAZvx+gpaKex+8vSfnzxspyiPhaL0KbJ83cLdv6Q4RCj3m9Too6MvojLV5nuVBZv369dL6rNzpoKiD8cz7zzDOecaxevZpuu+02z+9wOkgL7HAaY7iNBS9DiESsWLFiiqHBRLtkyRIZdAJGqDVd3k0JBz8nKtZDZKhIDiPVqc9YFA369NNPKWfO5LfqAwcO0IABA6Rgad68uVYZNlqI9SgzhSbw07z98hMbEy2d8HCKz15yiGYuPEjdHysrHfbjftxB85cnOtkR8vvWc4mRVnDKjx1SlwYMX0sjv94iTKqJs9K8YVFq+0CiwCgsfCWTP7xTlFlDLw5dLQtULpNbrnV5PKkMTsKfU+/W/HI9CuqBkx8CZUhSWyjTRvz+SESDDfp4HaH/cXliqHG9ZM0GZawgX7zOcqGizFqqw3Bw+sosiwWS4Uy+wDYzXrzR/PDDD7Rw4UKZwgZmgUaNGkmTjHqzO3/+PH3++ee0bt06On36tDQZYKEpQrhB8Fd99913Uoh/9dVXMl1OtmzZ6MEHH6R27drJe958802qU6cOdejQwdOtffv20bBhw6h169ZyDREyIYwbN04GVyCwonr16rK80jZHjBhBuXPnptq1axNyvSH1DvwQJ0+eJJhBn3/+eerWrZvHFOppSLMDjA0phaA1g7kpAr6YC7xFP/XUU3Jtlbqm7bfm6Vy2bt1K0PaMAgVYFitWTD4nyAd49uxZacXQBWNEWyHMF1FaFy5dlxFeMHEhMeOBIxepmAghjo6Oon5ikWLfThVp/+GLch2I0hrUOIoUyCbrgUkLzv2bCmQV60pSsmBoNnPG3iMd9peETwaCxpuyCCHyn5dr0hsiNBh9Kimc9AgmMBLCjVXIMbSmXm3LpypjLJ+RY29el3JEGamZ702FgDfYqQr4OAHT0cyZM2XYNcwAiJCbMmUKnTt3jp577jkZNffCCy/IFDcIeChcuDAtXryYEATx7LPPykAI/FPC8Qw/Ft68IUwgaOCIhuYIcw6E1y+//CKFldIqUQb3lStXjmCS6N+/Px06dEhG8iHlzrx582jTpk3Sv4C3dkT5odycOXPkm2WtWrWkUEE+NwhAMAq8/etOmzdvlriC4TVo0CBFd/GGCcEILFxDSOeCNSyFWmnVZbxsnDhxQr4keXcMqZ3wbOElCsESOlKBfLGEjyIIEpifjITnxfuc8TqO1aJE7/PG3wgEwMcf5RYhzvikR2o1fnrlMnLdyOtYqGQESRP3KrBNFCWkrwGjh1kQmgRCWsH88caPCLru3bvTrFmzpEDBm/Mjjzwiq23Tpg317t2boJXcc889nqbq169P/fr1k7+REgfRSzBPQqhA+/niiy/kP7LyfSxfvlwKFAgDOFMhNN566y0ZVotK7rvvPlnfjBkz6Mknn5T1wvGKutBHpUl16dJF+lQQMeUGUk76p59+mpRPBcwBOCDZKbQ815GG6VwgtEEwKUITB0GzxYvLggULZCDPiy++KM/zH/choHgdCxWN5g5aCf7JEG0EgQICc8OCUZi5wLRhksmaVeQMSkqBgzIwJcAOPX78+BSmRggBRTBZwVQFjQeEFDkov2zZMoJQgYln27Zt8q0c18FoUS/WbSCoQhE0lD///NMjVNAnREUpgaLKuelbRSw+8cQTVLJk+on23DI2pHORq+7z3K5Fl5U/BZo1PkbC8/7GG28QtF2mtBF4u0918T9pCOtKu6hjV1io2Ax9njJtk1LlJ4epptXk0aNH5aWbbropRRGYBPABgfmDscMcZSQVlQRtR5G6R/2GgFKUP39+6SOByQsaEAQFrt99992yCEJp4buBQPMmoz0c5rdcuRLDJb3LueU3BCiwCieBorDXKZ0LNBU8tzDxKpMr+okF0XDc45uFipo539++fCy+S4b+rOJ1KTlT6PsR1i0qkM0OMkeORPus91YBYPBwoiP1DRi4r8CHM2fOyGZgj7548aI8NgoRnIApzUgwW3388ccyjQ5MX1hbBGEDApNFPTB/+SNoP24mYI00QsAiPEmPdC549qAJY4kBIkGNdP/998vN/OCLCyeCRhEvxo1w4XAnI68L/9E6NJtGkM12Qb0pwyRlpJEjR8o3OWR2hqMdAgQh2Ub6/fffpckszf3OjYWTjuHoh9kKjnaY1YyMFeuM4FTFGyVMZ/iAGWARIFaZp0feAiy98k5dh3MYfVW+FKf6YWu7SelcEq4ctrUZf5VDYOAlBT4qb0L0Hcys6qXK+7pbf/f9YBU16DTP0u5j1f7PIgHlfhF1pgt58zrWVGyYGW+QzTaBkF1EXmGhKKKmwNixOh0MHxFIMB0gCSec+R988AF17txZmsLmz59PCNFu1qyZJ8WImTaxSPX222+Xzn/UDce+Ivh1/ve//9Frr70mw4jhx4FzFSYMvFn6I/Qdb//YKwfhxjqv70BYtS/Nz9/4XHkN6VyOTHas68pJj2Sy3oSoMFDBggW9L7n6N7IVnxJ7r1hJWMn/gljD8smgWimSV1rZRiB1+eJ1LFQCQdBEWV8gm7hNFoG5CmHA0Eyw7gNOexD8HIqRwzwFgQKzFTY6A4HhQ9h06tRJ/vY2e8mTSX+8r0E7gdMUtmyjrwTtvPfee7Kd4cOHy7thukDUGSLJ/BECBLA6GnbygQMHai1U/I0jrK5FZ6eowu3EkEY4MiyVqdx7cSk6o4JSEAofTqSyCofTmIxjSYvXRe2a0yKlod14V9Jx6abTtXqbg4lH9NtHT509lRbI6BWYOUJxzRJMAseOHZM+DggNXwRzAv4R4Sz3Fha+ygd7Dg575G9T/pZg6/F3H6LX0ptT3Z5Df+MJ5Jrtz3NUFooq0ZuiRIp8tBXIcxjIOMKhrK/nELs+PiUyB/fvUpk2itQnWFmP1POdWpYmpG7BPii7DpyX+5e0b1ZKbq4FLLAh19bdZ2ncW8nRd/7K454Tp6/Q22M20J/rTsgdJiuUykXPtitP999VlD4WK/Gni50bd+6/IDcJi8sdQ9M+TbmuCnWEgvzxOvapWDQD/kAOpgn4T7BOIi2BgjphvoKfw06BgnagwdgpUNAGk10IRFNU0a5SoNjVQrjXe+16gtzcCqnvPxy/ma4LBzx2fvxQCA3s5lhI7ODYpXVZuQoe2Yynix0iQfsOX5D3KXzSK3/p8nV6uM8fMt9X7WpxIs9YSbkt8DNvr5TbCxcUCy+xeh+UX6RdKS8EjhOUHq9j85cFs5IeyBY0wVVYiAAW33mHZFtYvVZVRRVpz7tDWjQjy9eekL6M5mI7XjjKnxbJI5Fz6/0XasgW+nasKITCIhr+5RaRb6t4ilZRfqxIJumv/KSZe2SKl3fEWpQnmpeS93cWGlHTHgvoO5FleNTg2jKTMbYY7iZ2nkQ/Qk1meJ1poRJIVFGoB+pke2ZAdrJ/3HZKBLB6GxkFEPUVbLQR0tVAO8TmXTpTVMGHKUqThY8642S2b43qFPIw8pUbThI0mNJiD3jjLo2VS+eW5jFsC2wkM+Wx90qu7JllMkh1b9mSuWjuuMYUo0FYslleZ0qopGfrVgBE2rdZkCMNl3AfL5IeQtvRWqjENaGoOL2Fntuek+pin3lF2FwL9P64TepUiu+jwg9jJDPlkYgS5i3vdS1lhOBymgLhdaaEitMD0rH9QEDWsf/h1idEwiHtDNbwlCpVij755BOqVKmSTHj59ttvyySdWAuBbM6KUBbJObEuCJF2jRs3lutwEBKNkGrkYEO4NlLbQIC8++67MjIPCT6hqWBRKrJFQ8igDWhBCNH+8MMP5eLRN998UyYGRV4rrIVBxueQUO66FFVAv0CWkIzdxkbyCse4IuzSCMIeJWVLpmb6N4n09N/+skcV92yO5a88EkgeTNqa2HOjOFi1UWhFN+KpXnVntl4IlNexo944eyaPAwXZZLVcLEgEkLtr6NCh9NJLL9HUqVNlllvFwJESBBtsITwaggZCQhFCnrHKG2XHjh0rk3YibQ1o9+7dMqkmBAPCt3EeQgWZo2E+w/oW5DxDqvyuXbtS27ZtaeLEiTK1jUqKiJQ5uAcCpWPHjqpZe79zVCHpRxFCj8laBIyQVhWbbIF2iqgvZAFWH+z2iD3mb4i0+EYyUx77ryAl/vqtpz23Hj1xmdr1X0K/LDrkORfKg2B4HWsqAc5QMCAH2AQXDxABpIrBWhpkbcaW1djDRy2og0BBdma1tgZCAlmUQXfccYdc/1OzZk0pXBBpp+7DdQiHJk2a4JCwzTDWECFtDbILwPxVt25duRYH6W0QigqCYEM/VD3QmpSAkwXs/JO1VGKkl6YbdNk59FDXDVPYnbcVoOETNtOVq/FUU+yDsk4Ig7FTdlB9cd47Jb2Z8oggg3aD3SNf7lJFpniB8x7L1bAJGCh70v4rM34/SBcv3Ujhf7Eag2B5HQuVAGYiWJADaIKLBoEAEnBOmDBBmp1gqkKoNRg96ODBg9IEpaqtXLmyOpSbRWEfGmRhRtg09vQwEsxninCMur0X6CEnGzamg+ZiJJjCQNBqQkIxYq1S8acpSuOthEOCgw2NiExFPunTQbVp0Mh19H+Tt0qnfQGxlW/r+4rLfep93ZBeeewvP/6denJfe4Qmg3IKx/3rvap5Vs+XKpaD6tcoIHaXPCw/2OHRDsoIr2OhYnJGMgKyySa4WJAIQBOA3wLmJ6QBURlvUR3W16jsz/htPO7bty9VqVJFbhecN29eT9YClAMZMz4jOzTCkI1ZB1AGKWiQ7QA50UDQYLCLpEpHEpIMzpnzCoHyLEVlSrlhlOwQ/8kwAtix0VewEnwsCPO9dj1e+kKwA6NxzZh3ivr0yqOjDWoXokUTm4iFj2KXyYvXqWih7CLjQLIpE078b4Ymp1PK8OB8VJBRXpeGDPbRUgSfyijIEQxdSIYObQTJOJGsEEIDG4yBuYOwaRmEDoQCtjtGChxFuA/paSBQ4GxHfio48xWNHj1a7mOD+3CMBJxIsAnGAY0F55HmBsk8cS/MZ9jGGfnSVOoRVZdt30i/AoGSJXFrBNva4YrTRACM/uaiOVIIlD9WHZXmMOT/8iZf5b3LxOWJlTtIGgWKdxk7flvB61iopDMzVoCcThN8OYMItG7dWibdxNYA8IFAUCD5JbIvI7oLWQfg/4BJDClnQBAMyJUGPwnugxkMPpZBgwZ5eoN1LEiIievw1SDCCwRT1+zZs2WEGI6xzTN234SJDJFh8LsY9wvxVGj1AdKvwOQVmzKVvNXNcH2BI9Dt9RVS0+jSukzgNzt0h1W8zlTuL4fG6HizVoGMgYCJcc6ltKfUV84l79L+cn8hVxoYf6FChSTWcJRjTxhljoA/BIzee8EjzkOrQVmEFUMDgeaCjNHYblmFJeO6P4KGgxBlBAkESsHl/hIaU7EeAa+W59xf/mfHzHPov4bEq1hBjw21vNecmLnXiTJW8jr2qaQxg1aCnEYTfNpCBJArDYk1FXkz97R8G8bzEDoQKEby9qEYrxmPYe7ybtN43epjTr9iNaLW1ufL7GVtC9bVZjWvY/OXj7mxGmQfTfApzRHA+pLSItW/jsTpV3ScFXf2yQ5eZ4umgiyd50XkAtJAK/pq+i4Zd925ZbKN8Yc5e+nqtfgU5VR5p77tANmpsXC7wSOg1p0EX4NNd+a7l9Ov2ARtpFVrF6+zRVOZJVZ/fvD5P545wt4Ar3+6nt79LDlPDvYZ6D9sjdgbINFx6ins4IFdIDs4JG46nBBA+pWCLcNpRDwWhxCwk9fZIlSKFsom9xZQcdpI+QyCVnLlamLI5ujvtovVoZmo1+Op96x2Amc7QXZiPNxmmCHA6VfCbEKdG47dvM4WoVJMCBXQ6XNXace+82Ll5xFq1qCoPHf2wjXaJzJ8wkT25MNlKL9Yheo02Q2y0+Pj9l2OAKdfcfkE6tP9UPA6W4QKNBXQqbNX6fMfd9BNBbN6Np05d+E6jfl+O+XIlpl6tinnONqhANnxQXIH3IsAp19x79xp1vNQ8TpbhQo2qkHWzq4iUVqc2P4StF2c+2HOPur+aDlCqmcnKVQgOzlGbtvFCHD6FRdPnl5dDyWvsyX6q5jIVwMa8dUWyhqbido+eDOdE2Yv0PAvN0stxemVpqEEWQ6c/1iCQMTsQMrpVyx5XoKppNR904K5zZZ7ds/NeGBGqHmdLUIlf94YiskSTVt3n6Nn2paXQkSlRNsizr3avYo8Z8ssmKg01CCb6BIXMYGAr6R+Jm5zXxFOv+K+OdO0x07wOlvMX0iNUVTsfAbB8mSrxAVk2YUPJbPItlkwLpY6tXBuUZkTIGv6vHG3tERApF8p2pWisjn3P6IlLNypgBFwitfZoqlg9AsmpN4fe9svDwUMjJU3OAWylWPgusIbAU6/Et7zG6rROcnrbNFUQgVcIO04CXIg/eSykYsAp1+J3Lm3cuRO87qIECpOg2zlA8N1hSkCnH4lTCc2tMPSgdeFvVDRAeTQPlbcmusQ4PQrrpsyHTusC6+zzaeiA+i6gKwDFm7oQ3TFT9zQTU8f47f09hwHfcDpV4KGjm9MRkAnXhe2mopOICdPPR8xAgYEOP2KAQw+DBYB3XhdVIKgYAdjx31uXOxjBge1A6GZspFaZs+ePa4aeoY0FaRfKdmPojLlCOmYI2bxaAZQ1YklpscPdRMogD3szF86gqyeb7cxTdVv/rYYAQfTr/Az6H8u3SR0deV1YWX+0hVk/48xX40oBDj9SkRNt12D1ZnXhY1Q0Rlkux4srtdlCHD6FZdNmJ7d1Z3XhYVQ0R1kPR9N7lVoEeD0K6HFOzxbcwOvc71QcQPI4fl486gCQYDTrwSCFpf1hYBbeJ2rhYpbQPb1gPC5yEGA069EzlzbNVI38TrXChU3gWzXg8b1ugCBfI0pKi51clUX9Jy7qAkCbuN1rhQqbgNZk2eTuxFqBGT6lYdD3Sq3F0YIuJHXuU6ouBHkMHrGeShmEeD0K2aR4nJ+EMhXtp2fq3pecpVQYYGi50PEvfJCgNOveAHCPyMJAdcIFRYokfRYunisSL9S/GmKio5x8SC464xA8Ai4QqiwQAl+gvnOECLgYPqVEI6Sm2IE/CKgvVBhgeJ3/viiLghw+hVdZoL74TACWgsVFigOPx3cvDkEOP2KOZy4VEQgoK1QYYESEc9fGAyS06+EwSTyECxEQEuhwgLFwhnmqmxFgNOv2AovV+5CBLQTKixQXPgURWiXOf1KhE48D9svAtrt/Oi3ty6+iJ0feYMkF08gdz0iEMAmXTrt/OhG0LXTVNwIIveZEWAEGAFGIBEBFir8JDACjAAjwAhYhgALFcug5IoYAUaAEWAEWKjwM8AIMAKMACNgGQIsVCyDkitiBBgBRoARYKHCzwAjwAgwAoyAZQiwULEMSq6IEWAEGAFGgIUKPwOMACPACDACliHAQsUyKLkiRoARYAQYARYq/AwwAowAI8AIWIYACxXLoOSKGAFGgBFgBFio8DPACDACjAAjYBkCLFQsg5IrYgQYAUaAEWChws8AI8AIMAKMgGUIsFCxDEquiBFgBBgBRoCFCj8DjAAjwAgwApYhwELFMii5IkaAEWAEGAHe+TFEzwB2fmRiBBgB/RHgnR8zNkeZM3Y7320WAX5QzSLF5RgBRsDNCPw/Isp3QFgo4nsAAAAASUVORK5CYII=" } }, "cell_type": "markdown", "metadata": {}, "source": [ "## Thursday\n", "\n", "Today we make good on a claim we made on the first day of class: There is no such thing as a computer program that can solve [Post's Correspondence Problem](https://en.wikipedia.org/wiki/Post_correspondence_problem) (which we demonstrated as the game [Poco](https://bit.ly/pocogame)).\n", "\n", "Last time, we laid out the following general outline of an undecidability proof, in which we implement a universal decider depicted like this:\n", "\n", "![image.png](attachment:image.png)\n", "\n", "Moreover, we said that the way $P$ usually works is by simulating $M$ on $w$. That works if $P$ is a Turing machine or Python program or some other thing that is as powerful as a Turing machine. But what if $P$ is something simpler, like an instance of PCP?" ] }, { "attachments": { "image.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "### Undecidable search problems\n", "\n", "
\n", "

Read the subsection \"Reductions via Computation Histories\" up to Theorem 5.9 and its proof.

\n", "

Watch W10E3: Undecidable Search Problems.

\n", "
\n", "\n", "When you have to prove an undecidability result about a thing more limited than a Turing machine *and* involving a \"there exists,\" a very useful technique for simulating a Turing machine is to use *computation histories*.\n", "\n", "Recall that a configuration can be encoded as a string as described on page 168: $uqav$ is the configuration where $u$ is the tape to the left of the head, $q$ is the current state, $a$ is the symbol under the head, and $v$ is the tape to the right of the head. \n", "\n", "![image.png](attachment:image.png)\n", "\n", "A *computation history* is a sequence of configurations $C_1\\texttt{#}C_2\\texttt{#}\\cdots\\texttt{#} C_l$, where $C_1$ is a start configuration and each $C_{i-1}$ yields $C_i$. An accepting computation history is one whose last configuration is an accepting configuration.\n", "\n", "The reason computation histories are interesting is that an accepting computation history for $w$ may be easier to recognize than $w$ itself." ] }, { "attachments": { "image.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "### LBA emptiness\n", "\n", "The book's first example of a proof using computation histories involves *linear bounded automata*, which are just Turing machines where the tape is exactly as long as the input string. For example, if the input string is $\\texttt{0110}$, an LBA looks something like:\n", "\n", "![image.png](attachment:image.png)\n", "\n", "Note that there are no cells after the input string. (LBAs are interesting because they recognize a class of languages, the *context-sensitive languages*, that are another rung on the Chomsky hierarchy that we haven't talked about before. The CSLs are also generated by *context-sensitive grammars*, whose rules are of the form $\\alpha B \\gamma \\rightarrow \\alpha \\beta \\gamma$ where $\\alpha$, $\\beta$, and $\\gamma$ are strings of terminals and nonterminals.)" ] }, { "attachments": { "image.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAACUCAYAAABbcLQqAAAMTGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdYU8kWnltSSWiBUKSE3kQRBAJICaFFEJAqiEpIAgklxoSgYkeWVXDtIgrqiq6KuOjqCshasZdFsffFgoqyLq5iQ+VNCujqK9873zd3/pw585+SuXNnANCr4ctk+ag+AAXSQnlCZChrXFo6i/QQoMACmAAnwOILFDJOfHwMgDLQ/1NeXwWIqr/kruL6dvy/ioFQpBAAgMRDnCVUCAog/hUAvEQgkxcCQGRDvd3UQpkKZ0BsJIcBQixT4RwNLlXhLA2uUtskJXAh3gEAmcbny3MA0G2GelaRIAfy6F6H2EMqlEgB0CNDHCQQ84UQR0E8tKBgsgpDO+Cc9QVPzj84swY5+fycQazJRS3kMIlCls+f/n+W439LQb5ywIcjbDSxPCpBlTOs2/W8ydEqTIO4W5oVGwexIcRvJUK1PcQoVayMStbYoxYCBRfWDDAh9hDyw6IhtoA4QpofG6PVZ2VLIngQwxWCTpMU8pK0cxeIFOGJWs4a+eSEuAGcLedytHMb+HK1X5X9MWVeMkfLf10s4g3wvyoWJ6VCTAUAoxZJUmIh1oXYSJGXGK2xwWyLxdzYARu5MkEVvz3EbJE0MlTDj2VkyyMStPayAsVAvliZWMKL1eKqQnFSlKY+2HYBXx2/KcSNIikneYBHpBgXM5CLUBQWrskdaxNJk7X5YndlhaEJ2rk9svx4rT1OFuVHqvS2EJsrihK1c/FRhXBBavjxGFlhfJImTjwzlz86XhMPXgRiABeEARZQwpYFJoNcIGnrbuqGvzQjEYAP5CAHiIC7VjMwI1U9IoXPRFAM/oRIBBSD80LVoyJQBPUfB7WapzvIVo8WqWfkgUcQF4BokA9/K9WzpIPeUsBDqJF8410AY82HTTX2rY4DNTFajXKAl6U3YEkMJ4YRo4gRRBfcHA/CA/AY+AyBzRNn434D0X62JzwitBPuE64QOgg3JklK5F/FMgZ0QP4IbcZZX2aMO0JObzwUD4TskBln4ubAHR8J/XDwYOjZG2q52rhVubP+TZ6DGXxRc60dxYOCUkwoIRTnr2fquup6D7KoKvplfTSxZg1WlTs48rV/7hd1FsI++mtLbAG2BzuJHcFOY/uxJsDCDmHN2DnsgAoPrqGH6jU04C1BHU8e5JF844+v9amqpMKj3qPL44N2DBSKpqn2R8CdLJsul+SIC1kcuPOLWDypYNhQlqeHpwcAqu+IZpt6yVR/HxDmmc+6+TYABE7v7+/f/1kXfQGAPQfga37zs86pE24HZwA4tVqglBdpdLjqQYC7gR58o8yAFbADzjAjT+ADAkAICAejQRxIAmlgIqyzGK5nOZgKZoJ5oAxUgKVgFVgLNoBNYBv4GewGTWA/OAJOgLPgArgCbsH10wmegR7wGvQhCEJC6AgDMUOsEQfEDfFE2EgQEo7EIAlIGpKJ5CBSRInMROYjFchyZC2yEalDfkH2IUeQ00g7cgO5h3QhfyPvUQyloUaoJeqIDkfZKAeNRpPQCWgOOgUtRkvRxWgVWovuQBvRI+hZ9AragT5DezGA6WBMzAZzx9gYF4vD0rFsTI7NxsqxSqwWa8Ba4D99CevAurF3OBFn4CzcHa7hKDwZF+BT8Nn4Inwtvg1vxI/hl/B7eA/+iUAnWBDcCP4EHmEcIYcwlVBGqCRsIewlHIdvUyfhNZFIZBKdiL7wbUwj5hJnEBcR1xF3Eg8T24kPiL0kEsmM5EYKJMWR+KRCUhlpDWkH6RDpIqmT9JasQ7Yme5IjyOlkKbmEXEneTj5Ivkh+TO6j6FMcKP6UOIqQMp2yhLKZ0kI5T+mk9FENqE7UQGoSNZc6j1pFbaAep96mvtTR0bHV8dMZqyPRmatTpbNL55TOPZ13NEOaK41Ly6ApaYtpW2mHaTdoL+l0uiM9hJ5OL6QvptfRj9Lv0t/qMnSH6fJ0hbpzdKt1G3Uv6j7Xo+g56HH0JuoV61Xq7dE7r9etT9F31Ofq8/Vn61fr79O/pt9rwDAYYRBnUGCwyGC7wWmDJ4YkQ0fDcEOhYanhJsOjhg8YGMOOwWUIGPMZmxnHGZ1GRCMnI55RrlGF0c9GbUY9xobGI41TjKcZVxsfMO5gYkxHJo+Zz1zC3M28ynxvYmnCMRGZLDRpMLlo8sZ0iGmIqci03HSn6RXT92Yss3CzPLNlZk1md8xxc1fzseZTzdebHzfvHmI0JGCIYEj5kN1DblqgFq4WCRYzLDZZnLPotbSyjLSUWa6xPGrZbcW0CrHKtVppddCqy5phHWQtsV5pfcj6KcuYxWHls6pYx1g9NhY2UTZKm402bTZ9tk62ybYltjtt79hR7dh22XYr7Vrteuyt7cfYz7Svt7/pQHFgO4gdVjucdHjj6OSY6vi9Y5PjEydTJ55TsVO9021nunOw8xTnWufLLkQXtkueyzqXC66oq7er2LXa9bwb6ubjJnFb59Y+lDDUb6h0aO3Qa+40d457kXu9+71hzGExw0qGNQ17Ptx+ePrwZcNPDv/k4e2R77HZ49YIwxGjR5SMaBnxt6erp8Cz2vOyF90rwmuOV7PXi5FuI0Uj14+87s3wHuP9vXer90cfXx+5T4NPl6+9b6Zvje81thE7nr2IfcqP4BfqN8dvv987fx//Qv/d/n8FuAfkBWwPeDLKaZRo1OZRDwJtA/mBGwM7glhBmUE/BnUE2wTzg2uD74fYhQhDtoQ85rhwcjk7OM9DPULloXtD33D9ubO4h8OwsMiw8rC2cMPw5PC14XcjbCNyIuojeiK9I2dEHo4iREVHLYu6xrPkCXh1vJ7RvqNnjT4WTYtOjF4bfT/GNUYe0zIGHTN6zIoxt2MdYqWxTXEgjhe3Iu5OvFP8lPjfxhLHxo+tHvsoYUTCzISTiYzESYnbE18nhSYtSbqV7JysTG5N0UvJSKlLeZMalro8tWPc8HGzxp1NM0+TpDWnk9JT0rek944PH79qfGeGd0ZZxtUJThOmTTg90Xxi/sQDk/Qm8SftySRkpmZuz/zAj+PX8nuzeFk1WT0CrmC14JkwRLhS2CUKFC0XPc4OzF6e/SQnMGdFTpc4WFwp7pZwJWslL3KjcjfkvsmLy9ua15+fmr+zgFyQWbBPaijNkx6bbDV52uR2mZusTNYxxX/Kqik98mj5FgWimKBoLjSCB/ZzSmfld8p7RUFF1UVvp6ZM3TPNYJp02rnprtMXTn9cHFH80wx8hmBG60ybmfNm3pvFmbVxNjI7a3brHLs5pXM650bO3TaPOi9v3u8lHiXLS17NT53fUmpZOrf0wXeR39WX6ZbJy659H/D9hgX4AsmCtoVeC9cs/FQuLD9T4VFRWfFhkWDRmR9G/FD1Q//i7MVtS3yWrF9KXCpdenVZ8LJtyw2WFy9/sGLMisaVrJXlK1+tmrTqdOXIyg2rqauVqzuqYqqa19ivWbrmw1rx2ivVodU7ayxqFta8WSdcd3F9yPqGDZYbKja8/1Hy4/WNkRsbax1rKzcRNxVterQ5ZfPJn9g/1W0x31Kx5eNW6daObQnbjtX51tVtt9i+pB6tV9Z37cjYceHnsJ+bG9wbNu5k7qzYBXYpdz39JfOXq7ujd7fuYe9p+NXh15q9jL3ljUjj9MaeJnFTR3Nac/u+0ftaWwJa9v427Let+232Vx8wPrDkIPVg6cH+Q8WHeg/LDncfyTnyoHVS662j445ePjb2WNvx6OOnTkScOHqSc/LQqcBT+0/7n953hn2m6azP2cZz3uf2/u79+942n7bG877nmy/4XWhpH9V+8GLwxSOXwi6duMy7fPZK7JX2q8lXr1/LuNZxXXj9yY38Gy9uFt3suzX3NuF2+R39O5V3Le7W/uHyx84On44D98LunbufeP/WA8GDZw8VDz90lj6iP6p8bP247onnk/1dEV0Xno5/2vlM9qyvu+xPgz9rnjs///WvkL/O9Yzr6Xwhf9H/96KXZi+3vhr5qrU3vvfu64LXfW/K35q93faO/e7k+9T3j/umfiB9qPro8rHlU/Sn2/0F/f0yvpyvPgpgsKHZ2QD8vRUAehoADHiGoI7X3PPUgmjupmoE/hPW3AXV4gNAA+xUx3XuYQB2weY4F3LDXnVUTwoBqJfXYNOKItvLU8NFgzcewtv+/peWAJBaAPgo7+/vW9ff/3EzDPYGAIenaO6XKiHCu8GPYSp0Y0WcDHwl/wLnqIEjuo16QwAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAABlaADAAQAAAABAAAAlAAAAADyi9QfAAA0BElEQVR4Ae2dB5gURdPH68g5g0iSLAJiQsWMqBhQEEEFBDOo+ILhlSCYMEfEwCuKioqAWeATA4goBhBFQEAlIznnnO6bXx99zO3t3u3ebZjZq3qeu52d6enwn9mqrtDVKakOiZIioAgoAoqAIhAFBPJFoQ6tQhFQBBQBRUARMAgUUBzig0BKSkp8GtJWFAFFIFcIqPEmV/CJCpXc4RfR3f/++29E5bWwIqAIxBeBY445Jr4NJmFrav5KwoeqQ1IEFAFFIFEIqFBJFPLariKgCCgCSYiACpUkfKg6JEVAEVAEEoWACpVEIa/tKgKKgCKQhAioUEnCh6pDUgQUAUUgUQioUEkU8lFqd+vWrfLTTz9JtMIgqWf//v1Rqy9Kw8xUTU77eejQoaiP7+DBg6bOTJ0MOAGulM0pTZ06VdasWZPT2/U+RSAuCKhQiQvMWTeyd+9eGTFihFx33XVy3nnnSZs2beTBBx+UZcuWZX2jc/XFF1+Up59+WqK1Dubrr7+WunXryh9//JFt24kskNN+fv7552Z88+bNi1r377rrLjn77LOzrG/Pnj2m3UGDBmVZLquLo0aNkjvvvDOrInpNEUg4AipUEvwI9u3bJzfffLP069fPzEJPOeUUKV++vMBALr74YsmK+a1atcoIo1tuuSVqoyhdurQce+yxUqJEiajV6cWKoiWEGVu1atWMwIj1OG+66Sb5/fffZdy4cbFuSutXBHKMgC5+zDF00blx/PjxxnyFYHn44YfTK50xY4a0bdtWnn/+eRk6dGj6effByy+/LGXLlpXLL7/cfTpXx2eeeabQJ6XwEejbt2/4hXNR8sQTTxT+3nrrLWnVqlUuatJbFYHYIaCaSuywDavm2bNnm3KtW7fOUP6kk04yGgPaSDDCl/LRRx9Jx44dpWDBgvLVV18ZRrN27doMxTGpDRw40JyzZWbOnGlMbWgkTZs2NSY065P5+eefTT3//POP3HPPPdK+fftMfgAEYK9evdLbeffdd41WVb9+fVMeE5Olzz77zAi9jRs3So8ePeSEE06QDRs2yLfffmvawdTWqFEj05+///7b3ibr1q0z7Z988slSs2ZNQYMbMGBApr6k3xDkAP/DHXfcIdRB32699VZZsWJFppJZ9Z/C9B0T1+mnn27qQYiDpaVnnnlG0CIs4Td54YUX5IILLpDatWsbbCZOnGgvp3/++eef5vk1bNhQzj//fHnssccEzRVi/AiOH374QQYPHmzqop9dunSR6dOny8KFC9Pr0QNFwEsIqFBJ8NOoVauW6cFLL71kmK27O998801IUwdMBebVoEEDc8vmzZtlzpw5snv3bncV8tdff8ny5cszlEHQQDCoIkWKCHb+CRMmmHPbtm0z9ezcudOYdH777Tf59ddfzTX+LVmyRGCQNp3Fs88+Kw899JBUqlRJMMNx/9133y1jxowx9yBAEJw9e/YU/CCYimDs3bp1k+3bt0v37t2lXbt2Qjs33nij4EiHbrvtNhk9erRh5DD06tWry9tvv20EqSmQzT/6ccUVVwgYnnvuudK5c2eDhRWw9vbs+g+e+LgYz6mnnirXXnutILgRVpMnTzbVgC84W+rdu7egRWJKZJx8Mk43oYkybrC4/vrrjbB68803jeCl3IED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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "We want to prove that it is undecidable whether an LBA recognizes the empty language. Up till now, our proofs have tried to implement a universal decider $S$ that takes input $\\langle M, w\\rangle$ and builds an \"adapter\" $B$ that somehow involves simulating $M$ on $w$. \n", "\n", "![image.png](attachment:image.png)\n", "\n", "But here our \"adapter\" has to be an LBA, and an LBA isn't powerful enough to simulate $M$. But, an LBA *is* powerful enough to test whether its input is an accepting computation history for $M$ on $w$. And the emptiness-detector $R$ is able to test whether *there exists* something that $B$ accepts, which means that there exists an accepting computation history for $M$ on $w$, which means that $M$ accepts $w$.\n", "\n", "
\n", "

Read the rest of Section 5.1 (pages 223–226).

\n", "
\n", "\n", "The core of the proof is writing the LBA that checks whether its input is an accepting computation history for $M$ on $w$. It's not too hard to imagine (I think) how a TM could do this without requiring any scratch space beyond the end of the input string.\n", "\n", "Then we can implement the universal decider $S =$ \"On input $\\langle M, w\\rangle$\":\n", "1. Construct an LBA $B$ that accepts accepting computation histories for $M$ on $w$.\n", "2. Run $R$ on $B$.\n", "3. If $R$ accepts, *reject*; if $R$ rejects, *accept*.\n", "\n", "As before, let's think through the various possible outcomes:\n", "\n", "- If $M$ accepts $w$, then there exists a computation history for $M$ on $w$, so $B$ recognizes a non-empty language, so $R$ rejects $B$, so $S$ accepts $\\langle M,w\\rangle$.\n", "- If $M$ rejects or loops on $w$, then there does not exist a computation history for $M$ on $w$, so $B$ recognizes the empty language, so $R$ accepts $B$, so $S$ rejects $\\langle M,w\\rangle$." ] }, { "attachments": { "image.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "### Post's Correspondence Problem\n", "\n", "
\n", "

Read Section 5.2.

\n", "

Watch W10E4: Post's Correspondence Problem.

\n", "
\n", "\n", "Recall that an instance of PCP is a set of \"dominos\", for example\n", "\n", "![image.png](attachment:image.png)\n", "\n", "and to solve an instance, you must find a sequence of dominos such that the top row equals the bottom row.\n", "\n", "In the first class, we demonstrated a gamified version of PCP called [Poco](https://bit.ly/pocogame).\n", "\n", "PCP appears too simple to simulate a Turing machine, but note that solving PCP is a search problem: we want to know whether *there exists* a solution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To prove that PCP is undecidable, the book introduces a slightly modified version of PCP (MPCP), which has a special domino that the solution must start with. The book proves that MPCP is undecidable by reduction from $A_{\\mathsf{TM}}$, then proves that PCP is undecidable by reduction from MPCP." ] }, { "attachments": { "image.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAABRCAYAAAB8ObqLAAAMTGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdYU8kWnltSSWiBUKSE3kQRBAJICaFFEJAqiEpIAgklxoSgYkeWVXDtIgrqiq6KuOjqCshasZdFsffFgoqyLq5iQ+VNCujqK9873zd3/pw585+SuXNnANCr4ctk+ag+AAXSQnlCZChrXFo6i/QQoMACmAAnwOILFDJOfHwMgDLQ/1NeXwWIqr/kruL6dvy/ioFQpBAAgMRDnCVUCAog/hUAvEQgkxcCQGRDvd3UQpkKZ0BsJIcBQixT4RwNLlXhLA2uUtskJXAh3gEAmcbny3MA0G2GelaRIAfy6F6H2EMqlEgB0CNDHCQQ84UQR0E8tKBgsgpDO+Cc9QVPzj84swY5+fycQazJRS3kMIlCls+f/n+W439LQb5ywIcjbDSxPCpBlTOs2/W8ydEqTIO4W5oVGwexIcRvJUK1PcQoVayMStbYoxYCBRfWDDAh9hDyw6IhtoA4QpofG6PVZ2VLIngQwxWCTpMU8pK0cxeIFOGJWs4a+eSEuAGcLedytHMb+HK1X5X9MWVeMkfLf10s4g3wvyoWJ6VCTAUAoxZJUmIh1oXYSJGXGK2xwWyLxdzYARu5MkEVvz3EbJE0MlTDj2VkyyMStPayAsVAvliZWMKL1eKqQnFSlKY+2HYBXx2/KcSNIikneYBHpBgXM5CLUBQWrskdaxNJk7X5YndlhaEJ2rk9svx4rT1OFuVHqvS2EJsrihK1c/FRhXBBavjxGFlhfJImTjwzlz86XhMPXgRiABeEARZQwpYFJoNcIGnrbuqGvzQjEYAP5CAHiIC7VjMwI1U9IoXPRFAM/oRIBBSD80LVoyJQBPUfB7WapzvIVo8WqWfkgUcQF4BokA9/K9WzpIPeUsBDqJF8410AY82HTTX2rY4DNTFajXKAl6U3YEkMJ4YRo4gRRBfcHA/CA/AY+AyBzRNn434D0X62JzwitBPuE64QOgg3JklK5F/FMgZ0QP4IbcZZX2aMO0JObzwUD4TskBln4ubAHR8J/XDwYOjZG2q52rhVubP+TZ6DGXxRc60dxYOCUkwoIRTnr2fquup6D7KoKvplfTSxZg1WlTs48rV/7hd1FsI++mtLbAG2BzuJHcFOY/uxJsDCDmHN2DnsgAoPrqGH6jU04C1BHU8e5JF844+v9amqpMKj3qPL44N2DBSKpqn2R8CdLJsul+SIC1kcuPOLWDypYNhQlqeHpwcAqu+IZpt6yVR/HxDmmc+6+TYABE7v7+/f/1kXfQGAPQfga37zs86pE24HZwA4tVqglBdpdLjqQYC7gR58o8yAFbADzjAjT+ADAkAICAejQRxIAmlgIqyzGK5nOZgKZoJ5oAxUgKVgFVgLNoBNYBv4GewGTWA/OAJOgLPgArgCbsH10wmegR7wGvQhCEJC6AgDMUOsEQfEDfFE2EgQEo7EIAlIGpKJ5CBSRInMROYjFchyZC2yEalDfkH2IUeQ00g7cgO5h3QhfyPvUQyloUaoJeqIDkfZKAeNRpPQCWgOOgUtRkvRxWgVWovuQBvRI+hZ9AragT5DezGA6WBMzAZzx9gYF4vD0rFsTI7NxsqxSqwWa8Ba4D99CevAurF3OBFn4CzcHa7hKDwZF+BT8Nn4Inwtvg1vxI/hl/B7eA/+iUAnWBDcCP4EHmEcIYcwlVBGqCRsIewlHIdvUyfhNZFIZBKdiL7wbUwj5hJnEBcR1xF3Eg8T24kPiL0kEsmM5EYKJMWR+KRCUhlpDWkH6RDpIqmT9JasQ7Yme5IjyOlkKbmEXEneTj5Ivkh+TO6j6FMcKP6UOIqQMp2yhLKZ0kI5T+mk9FENqE7UQGoSNZc6j1pFbaAep96mvtTR0bHV8dMZqyPRmatTpbNL55TOPZ13NEOaK41Ly6ApaYtpW2mHaTdoL+l0uiM9hJ5OL6QvptfRj9Lv0t/qMnSH6fJ0hbpzdKt1G3Uv6j7Xo+g56HH0JuoV61Xq7dE7r9etT9F31Ofq8/Vn61fr79O/pt9rwDAYYRBnUGCwyGC7wWmDJ4YkQ0fDcEOhYanhJsOjhg8YGMOOwWUIGPMZmxnHGZ1GRCMnI55RrlGF0c9GbUY9xobGI41TjKcZVxsfMO5gYkxHJo+Zz1zC3M28ynxvYmnCMRGZLDRpMLlo8sZ0iGmIqci03HSn6RXT92Yss3CzPLNlZk1md8xxc1fzseZTzdebHzfvHmI0JGCIYEj5kN1DblqgFq4WCRYzLDZZnLPotbSyjLSUWa6xPGrZbcW0CrHKtVppddCqy5phHWQtsV5pfcj6KcuYxWHls6pYx1g9NhY2UTZKm402bTZ9tk62ybYltjtt79hR7dh22XYr7Vrteuyt7cfYz7Svt7/pQHFgO4gdVjucdHjj6OSY6vi9Y5PjEydTJ55TsVO9021nunOw8xTnWufLLkQXtkueyzqXC66oq7er2LXa9bwb6ubjJnFb59Y+lDDUb6h0aO3Qa+40d457kXu9+71hzGExw0qGNQ17Ptx+ePrwZcNPDv/k4e2R77HZ49YIwxGjR5SMaBnxt6erp8Cz2vOyF90rwmuOV7PXi5FuI0Uj14+87s3wHuP9vXer90cfXx+5T4NPl6+9b6Zvje81thE7nr2IfcqP4BfqN8dvv987fx//Qv/d/n8FuAfkBWwPeDLKaZRo1OZRDwJtA/mBGwM7glhBmUE/BnUE2wTzg2uD74fYhQhDtoQ85rhwcjk7OM9DPULloXtD33D9ubO4h8OwsMiw8rC2cMPw5PC14XcjbCNyIuojeiK9I2dEHo4iREVHLYu6xrPkCXh1vJ7RvqNnjT4WTYtOjF4bfT/GNUYe0zIGHTN6zIoxt2MdYqWxTXEgjhe3Iu5OvFP8lPjfxhLHxo+tHvsoYUTCzISTiYzESYnbE18nhSYtSbqV7JysTG5N0UvJSKlLeZMalro8tWPc8HGzxp1NM0+TpDWnk9JT0rek944PH79qfGeGd0ZZxtUJThOmTTg90Xxi/sQDk/Qm8SftySRkpmZuz/zAj+PX8nuzeFk1WT0CrmC14JkwRLhS2CUKFC0XPc4OzF6e/SQnMGdFTpc4WFwp7pZwJWslL3KjcjfkvsmLy9ua15+fmr+zgFyQWbBPaijNkx6bbDV52uR2mZusTNYxxX/Kqik98mj5FgWimKBoLjSCB/ZzSmfld8p7RUFF1UVvp6ZM3TPNYJp02rnprtMXTn9cHFH80wx8hmBG60ybmfNm3pvFmbVxNjI7a3brHLs5pXM650bO3TaPOi9v3u8lHiXLS17NT53fUmpZOrf0wXeR39WX6ZbJy659H/D9hgX4AsmCtoVeC9cs/FQuLD9T4VFRWfFhkWDRmR9G/FD1Q//i7MVtS3yWrF9KXCpdenVZ8LJtyw2WFy9/sGLMisaVrJXlK1+tmrTqdOXIyg2rqauVqzuqYqqa19ivWbrmw1rx2ivVodU7ayxqFta8WSdcd3F9yPqGDZYbKja8/1Hy4/WNkRsbax1rKzcRNxVterQ5ZfPJn9g/1W0x31Kx5eNW6daObQnbjtX51tVtt9i+pB6tV9Z37cjYceHnsJ+bG9wbNu5k7qzYBXYpdz39JfOXq7ujd7fuYe9p+NXh15q9jL3ljUjj9MaeJnFTR3Nac/u+0ftaWwJa9v427Let+232Vx8wPrDkIPVg6cH+Q8WHeg/LDncfyTnyoHVS662j445ePjb2WNvx6OOnTkScOHqSc/LQqcBT+0/7n953hn2m6azP2cZz3uf2/u79+942n7bG877nmy/4XWhpH9V+8GLwxSOXwi6duMy7fPZK7JX2q8lXr1/LuNZxXXj9yY38Gy9uFt3suzX3NuF2+R39O5V3Le7W/uHyx84On44D98LunbufeP/WA8GDZw8VDz90lj6iP6p8bP247onnk/1dEV0Xno5/2vlM9qyvu+xPgz9rnjs///WvkL/O9Yzr6Xwhf9H/96KXZi+3vhr5qrU3vvfu64LXfW/K35q93faO/e7k+9T3j/umfiB9qPro8rHlU/Sn2/0F/f0yvpyvPgpgsKHZ2QD8vRUAehoADHiGoI7X3PPUgmjupmoE/hPW3AXV4gNAA+xUx3XuYQB2weY4F3LDXnVUTwoBqJfXYNOKItvLU8NFgzcewtv+/peWAJBaAPgo7+/vW9ff/3EzDPYGAIenaO6XKiHCu8GPYSp0Y0WcDHwl/wLnqIEjuo16QwAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAACZKADAAQAAAABAAAAUQAAAABgZqAOAAAZOklEQVR4Ae1da2xc1bX+ZubMeCYTj5M4JnYSJQ0kxCUKTULJbS+kvSkRFAR/EFUrqCJRFEpv+6eot6hUia5yWxCtRItIoSFFoiqP/iiqxEM8VAqBoKYBEpWEvKMQGjsPx44fjGc8zztrjI09Hs/svc88zjqz1h+fx957fetba81ZPmeffTzZnEBDkrFziF3Yi5H+g0hGTyMV70EmFcuP4LVCsIJt8IcXomnWFQjNXQN/aJ7G6NJUGBAGasUAx1zuGUrjw+4Ejp5PoXsghd5oBvHk6E9Y0O9Ba9iL+S0WLr/EwpXzA2hr9tWKTtFThAGOMcYRs+RFkeBjeMijUpBls2lEz72LoU9ewsjAES0zm1qWo3nRzQjPuwYej/w4apEnjYWBCjPAMZczmSz2nErg9cMxnOhJaTFyWZuF6ztDWLs4AK/Xo9VXGpsxwDHGOGKWvDCLTyf3KluQxXr3oe/wDiSHu2zZ4Z+xAHM6NyHUutrWONJZGBAGzBjgmMv7c3fDntkTxZnBtJnRn/XqiPhwx9owVubumolUjwGOMcYRs+RF9WK4niNPW5Bl0iPoO/IkPu16raL4Zi64AXOW3wWvr6mi48pgwoAwUJwBjrmcSGXx7HtRvHksXtwow6PrlwVx+9VhBCy5W2ZIYdFuHGOMI2bJi6Lh55qDRQuydGIA5/ZtRWLweFUMDUSWYt7qLfAFWqoyvgwqDAgDowxwzOXBeAYPvzGIk716jydVfb6k1cK910UQCXpVu0i7EgxwjDGOmCUvSgShS05NKcgoUM+89zOkbD6iLMePlXuE2XH1g1KUlSNKzgsDhgxwzGW66Pzy1QGctfmIshxl7blHmD//ZosUZeWIKnOeY4xxxCx5USYQXXJ60r+IdAuX7oxVuxgj7kgH6SKdIsKAMFBZBjjmMj2OoTtj1S7GiGnSQbpIp4gZAxxjjCNmyQuz+OTYa1JBRnPGqvWYshg5pIt0iggDwkBlGeCYyzRnrFqPKYuxS7pIp4gZAxxjjCNmyQuz+OTYa7wgozdNKj2BX4UQ0km6RYQBYaAyDHDMZXprrNIT+FXYJJ2kW0SPAY4xxhGz5IVeXHJvnS/IaA0WWtqiXkK6CYOIMCAM2GOAYy7Tekq0tEW9hHQTBhE1BjjGGEfMkhdq8eimVvmCjBZ9tbvOmB1SSDdhEBEGhAF7DHDMZVr01e46Y3ZYI92EQUSNAY4xxhGz5IVaPLqpVb4goxX46y1OwFBvDkS/MGCXASfkkS4GWoFfV3o//hdO/vOvyGYyul2LtjfBUHSgBjio699qUKKLQbe9EzCbxKTkRTU8V7sxvfTdLt3PIVUDHmEgLCLCgDBgxgDHXKZv8Ol+DonYOb7zGbzz2N1IpyrzljZhICwipRngGGMcMUtelI5Dt5710ofCnSJOwuIUTgSHMKDKgJPyRxULfSjcKeIkLE7hpBCHql8L+1VjXxWLartqYCwcUxWLk2LRSVgK+XTbvnek/6Atm+IjaZw+N4yRhP3/Lu1isWWIdBYGmDNgN3/qkctHz9tfjT+TTmG4/6xt71UCi20QDh+AY4xxxFyJWJS8cHgyFYFnJaOnixwuf2j3hxew9fEDOHRiMN/Y5/Vg5eUt+PVPVmPpoubyAxRpYYqlyFBySBhoOAZM86eeudw9YK8g2//ib3Ho1d8jlRhGaHY7rtm0DfNXfN3I93axGCll1oljjHHEbDcWJS+YJdZncL2peI8R8uOnhtDk92HzPSvw2OYvY9Ntl+FkVxS3/XgXhmNmP7KmWIwMkE7CgMsYMM2feuZyb9TepPyPXvkdVt92P776vd8gm07j7w/fjuGLZnfL7GJxWTgVNYdjjHHEbDcWJS+Khq/jD1qZlP4bTmTVd25ajO/esmTcwBvXzYcnd5fs8T8fw95DF3Htmrbxc6obplhUx5d2woCbGTDNn3rmcjxpb/2vq761GV+84ft5tzY1t+KtRzbi6Jt/xKpb79N2tV0s2goZduAYYxwx241FyQuGyZWDbJnCtnxe7DvUh5d2dqP7fAw0/6Tn4ugbT/1Dzpmoa2qf9BMGGoUBzrm84Esbxt20YOU38tv93UfGj8mGMxjgGGMcMY95W/JijAlefy2vFUImOaSN+uW3u/GjX7yPUNCHVZ2zsbhjBtKfrXadSJo9hiAsIsKAMGDGAMdcDvo9iI6Y3yXzz4iMk+XzN8HnDyI+YDYNg7CIlGaAY4xxxCx5UToO3XrWsoJtSGgWZNlsFg9s/wiRmX7s+tMGNIf9eX4eefoI3vnA7MeQBiAsIsKAMGDGAMdcbg17cwWZ+Rva/f8+hNCK0d+NTCqJdDKOYGSuEYGERaQ0AxxjjCNmyYvScejWs15/eKG2bclUFhf6R7ByWct4MUaD/O0fZpNpxwCYYBnrK3+FgUZnwCR/6p3L81uMZ03k3X3hxAfjbj97aFd+u6Vj2fgxnQ27WHR0cW3LMcY4YrYbi5IXPDPMapp1BaJn39ZCH/B7ceO6Drz4Vhd2/OV4brmLWXg5N5fswLEBrXEKGxMWEWFAGDBjgGMuX36Jhd0nzVfbP/DKNoTbFsEKhPD+s5tzLxb5sGz9RiMCCYtIaQY4xhhHzJIXpePQrWet0Nw1Rrbd8+1lON83ggd3HETuCSba5wZx/91X4IEnDsJ0JoYpFiMDpJMw4DIGTPOnnrl85fxAzgtRfU94Rn9llnzlVuza/gPQj5DVFMbXfvgHzGzVv+tPAEax6ENppB4cY4wjZsmLRsqqz2315OaDZc/s+anx9yx7+uK5VfozWNg+4/NRDbaaWpajY+2vDHpKF2FAGBhjgGMub32l3+h7lmM2J6IDubXHziDSsRRen9ldrsvaLGy5cdbYkPK3BAMcY4wjZsmLEkHo0lP5WazNi242Nq9tTtB2MUbK7WAwBi8dhQGXMWAnj+qVy9d32nu7OhBuwayFncbFGIWAXQwuC6OS5nCMMY6Y7cak5EXJMHbkyXxBFp53DfwzFtQNIOkmDCLCgDBgjwGOubx2cQAdEZ89w230Jt2EQUSNAY4xxhGz5IVaPLqpVb4g83h8mNO5qW52kW7CICIMCAP2GOCYy97cFz7uWBu2Z7iN3qSbMIioMcAxxjhilrxQi0c3tcoXZGRQqHU1Zi64oea2kU7SLSIMCAOVYYBjLq/MTe5fvyxYGQI0RiGdpFtEjwGOMcYRs+SFXlxybz1ekJEhc5bfhUBkac1sIl2kU0QYEAYqywDHXL796jCWtJpNyjdhj3SRThEzBjjGGEfMkhdm8cmx16SCzOtrwrzVW2DVYD4Z6SBdpFNEGBAGKssAx1wOWB7ce10E7TWYT0Y6SBfpFDFjgGOMccQseWEWnxx75Ze9KASeTgzg3L6tSAweLzxVkX26M0bFmC/QUpHxZBBhQBgozgDHXB6MZ/DwG4M42ZsqbpTNo3RnjIqxSHDS/6M2R23c7hxjjCNmyQv351jRgozMzqRH0HfkSXza9VpFWaA5Y3TbWO6MVZRWGUwYmJYBjrmcyH2e7dn3onjzWHxau0xO0JwxegQkd8ZM2Ju+D8cY44hZ8mL6GHTDmWkLsjHjYr370Hd4B5LDXWOHjP7S0hb0NqVM4DeiTzoJA7YZ4JjL+7sTeGZPFGcGzT9ATsTR0hb0NqVM4LcdRiUH4BhjHDFLXpQMQ7YnyxZkZFk2m0b03LsY+uQl7RX9aQV+WpSP1oGRpS3YxokAn8DAzp078eijj+aPbNu2De3t7RPOOnuTYy5nMlnsOZXA64dj2iv60wr8tMAmrekkS1vUJjY5xhhHzJIXtYnnWmpRKsgmAkrGziF2YS9G+g8iGT2NVLwHmVQs38RrhWAF2+APLwR90JW+IeYPzZvYXbaFAfYMvPDCC9i6dWvejueffx6LFy9maRPHXO4ZSuPD3F2zo+dT6B5IoTeaQTyZ+5huToJ+D1rDXsxvsUAfZ6bvAbY1y/qG9QxOjjHGEbPkRT2jvHK6tQuyyqmWkYQBngy4pSDjyb67UMdiMQwMDGgbFQwGMWuWfHtTmzjpIAw4mIHaLfrjYBIEmjAgDAgD9WDg6aefxvbt27VVr1mzBk888YR2P+kgDAgDzmVA3vt2rm8EmTAgDLicgWx29HGry80U84QBYUCBAblDpkCSNBEGhAFhoBoMrFu3DpFIRHtoTi+SaBsnHYSBBmVA5pA1qOPF7PIM7N+/H3feeWf5hgUtPB4Pdu/eDZ9PJpQXUCO7woAwIAwIA9MwII8spyFGDgsD6bTZ2lfyGEpiRxgQBoQBYUCXAXlkqcuYtG8YBjo6OrBx48Yp9h49ejR/B4xO3HLLLZg9e/akNl6vN7fmlfyvM4kU2REGhAFhQBgoyYA8sixJj5wUBqYyIMteTOVEjpgx8Nxzz+Gpp57S7rxq1So89NBD2v2kgzAgDDiXAblD5lzfCDJhQBhwOQNDQ0Po7e3VtvLixYvafaSDMCAMOJsB7YKM4yrGHDFzXHmZI8/OTs/qohN/VZdfldE7Oztx0003qTSd1ObSSy+dtO/UHY4xxhGzXC9qkwHVjg2lR5Ycv/PFETPHb5Nx5Nlu6nJ+ZNmI/rLrb+mvxwDHGOOIWa4XenFp2rqWsVG2IIv17kPf4R1IDneZ2pPv55+xAHM6NyHUutrWOCqdOWLen/s+3zN7ojgzaPZm3xgvHREf7lgbxsrcd/yqLRx5rgQnXAuyRvVXJXwuY6gxwDHGOGKW64U7a4lpC7JMegR9R57Ep12vqWWiYquZC27AnOV3wetrUuyh3owj5kQqi2ffi+LNY3F1QxVarl8WxO1XhxGwPAqt9Zpw5FnPwtKtu7q6sHfv3nyjDRs2IBQKle5Q57ON7q86098Q6jnGGEfMcr34PJ3cWEsULcjSiQGc27cVicHjn1tfwa1AZCnmrd4CX6ClYqNyxDwYz+DhNwZxsjdVMR4mDrSk1cK910UQCVZuCQaOPE/kpNG2xV+N5vHa28sxxjhiluvF1Nh2Wy0xpSCjQD3z3s+QsvmIcip1k49YuUeYHVc/WJGijCNmSq5fvjqAszYfUU5mdepee+4R5s+/2VKRoowjz1MZaZwj4q/G8XW9LOUYYxwxy/Vi+gh3Uy0x6dYJ3cKlO2PVLsaIWtJBukinHeGImW47052xahdjxCvpIF2k045w5NmOvdz7ir+4e9D5+DnGGEfMcr0onQtuqiUmFWQ0Z6xajymLUUq6SKcd4YiZ5oxV6zFlMS5JF+m0Ixx5tmMv977iL+4edD5+jjHGEbNcL8rngltqifGCjN40qfQE/vI0Iq+TdJsIR8z0dkylJ/CrcEc6SbeJcOTZxE639BF/ucWTzrWDY4xxxCzXC/UcoPqFfGwiTomNfEFG62zQ0hb1EtJNGHSEI2ZaN4aWtqiXkG7CoCMcedaxz21txV9u86jz7OEYYxwxy/VCP/a51xL5gix67l3b64zpU/d5D1rjjDDoCEfMe04lbK8zpsNRYVta44ww6AhHnnXsc1tb8ZfbPOo8ezjGGEfMcr3Qj33utUS+IBv65CV9yyvcQxeDbvsKw80Pp4vh9cMxbRi9H/8LJ//5V2QzGe2+xTroYtC1sZhOu8ecgMGuDbXq7wSunIChVnw3oh4n+FcXg277avhVF4PubzVhlusFoMuzbvtqxoaXvs00MnCkGjq0xiQMhEVFOGKmb42d6NFfb+z4zmfwzmN3I52y9zbqGK+EgbCoCEeeVexyaxvxl1s96xy7OMYYR8xyvTCPec61hDd2YXTFcXPzK9dTFYtqu8ohm34kVSwfGk6on16z+RlVLKq2mSNR7+kkLOqoa9vSSRw5CUttveBubU7yqyoW1Xa18JwqFtXf6FpgVsWialstMKtiUW1XK8zekf6DtnTFR9I4fW4YIwm1uy6llKliUW03na56YD56Xv/uWCH+TDqF4f6zhYe191WxcORZmwwXdRB/uciZDjWFY4xxxKz6G10qTOR6UYqd0XNOiw0rGT1dHnWRFrs/vICtjx/AoROD+bM+rwcrL2/Br3+yGksXNRfpUf6QKhbVdoUa64m5e8BeQbb/xd/i0Ku/RyoxjNDsdlyzaRvmr/h6oYlK+6pYOPKsRIBLG4m/XOpYB5nFMcY4Ylb9jZ4uNOR6oVbXOC02vKl4z3Q+LXn8+KkhNPl92HzPCjy2+cvYdNtlONkVxW0/3oXhmFnxoYpFtV2hAfXE3Bu1Nyn/o1d+h9W33Y+vfu83yKbT+PvDt2P4otndMlUsHHku9Hkj7Yu/Gsnb9bGVY4xxxKz6Gz1dFMj1Qq2ucVpsWJmU/pt/FATfuWkxvnvLkvF4uHHdfHhyd8ke//Mx7D10EdeuaRs/p7qhikW1XaHeemKOJ/XW/yrEftW3NuOLN3w/f7ipuRVvPbIRR9/8I1bdel9h07L7qlg48lzWeBc3EH+52LkOMY1jjHHErPobPV1YyPVCra5xWmxY0zm03HHL58W+Q314aWc3us/HQPOyei6OvgnYP6S31lU5XZU6zxHzmO0LvrRhbBMLVn4jv93fXf+3Y8dBTdjgzPMEMxpmU/zVMK6um6EcY4wj5jEHy/VijInq/K1WbFheK4RMckgb9ctvd+NHv3gfoaAPqzpnY3HHDKQ/WwU+kTR7PEdYVIQj5qDfg+iI+V0y/4zIODU+fxN8/iDiA2q3Zcc7frZBWFSEI88qdrm1jfjLrZ51jl0cY4wjZrlejF4rG62WsKxgGxKaBVk2m8UD2z9CZKYfu/60Ac1hf/4X45Gnj+CdD8yKBBqAsKgIR8ytYW+uIDN/E7X/34cQWjHKTyaVRDoZRzAyV4WuKW0Ii4pw5FnFLre2EX+51bPOsYtjjHHELNeLxqwlvP7wQu1sT6ayuNA/gpXLWsaLMRrkb/8wm2Q+BkAVi2q7sXHpb70xz28xfjqcN+PCiQ/GzTl7aFd+u6Vj2fgxnQ1VLBx51uHBbW3FX27zqPPs4RhjHDGr/kZPFyFyvVCra5wWG1bTrCsQPfv2dH4tejzg9+LGdR148a0u7PjL8dxyF7Pwcm4u2YFjA0Xbqx4kLCrCEfPll1jYfdJ8tf0Dr2xDuG0RrEAI7z+7OfcChQ/L1m9UoWtKG8KiIhx5VrHLrW3EX271rHPs4hhjHDHL9aIxawkrNHeNUbbf8+1lON83ggd3HETuCSba5wZx/91X4IEnDkJthtJUtapYVNsVaqgn5ivnB3JwooWQyu97Rtlc8pVbsWv7D0BkW01hfO2Hf8DMVrX/AgqVjGIpPDp1nyPPU61onCPir8bxdb0s5RhjHDHL9aIxawlPbj5Y9syenxp/z7KnL55bpT+Dhe0zbP1GNLUsR8faXymPwRHz1lf6jb5nOUZKIjqQW3vsDCIdS+H1qd3lGus79veyNgtbbpw1tlv2L0eeyxrl4gbiLxc71yGmcYwxjpjlemEW8Jxrifzs7uZFN5tZnuvVNidouxgj5boYdNtPNLBemK/vVHuLdCLWiduBcAtmLew0LsZoLF0MHHmeyFmjbYu/Gs3jtbeXY4xxxKz7W10YCXK9KGSk+L6TYiNfkIXnXQP/jAXF0dbgKOkmDDrCEfPaxQF0RHw6Zla0LekmDDrCkWcd+9zWVvzlNo86zx6OMcYRs1wv9GOfey2RL8g8Hh/mdG7St75CPUg3YdARjpi9uS8Z3LE2rGNmRduSbsKgIxx51rHPbW3FX27zqPPs4RhjHDHL9UI/9rnXEvmCjMwOta7GzAU36DNgswfpJN0mwhHzytzk/vXLgibm2upDOkm3iXDk2cROt/QRf7nFk861g2OMccQs1wv1HHBDLTFekJHZc5bfhUBkqToDNluSLtJpRzhivv3qMJa0mk3KN+GKdJFOO8KRZzv2cu8r/uLuQefj5xhjHDHL9aJ8LrillphUkHl9TZi3egusGswnIx2ki3TaEY6YA5YH914XQXsN5pORDtJFOu0IR57t2Mu9r/iLuwedj59jjHHELNeL0rngplrC9785mWiu1xdEuP1axC/uR3qkb+Kpim1TNdt+1f/BF2ipyJgcMTflCqT/+EITDp9Noj9m9u3PcuTRnbH7rm9BJDip7i7XbdrzHHme1pgGOCH+agAn19lEjjHGEbNcL4oHuttqiSkFGZmdD9iO/0I6MYjE0IniTBgepee8bVf+T+7j2PYeoRWq54iZkuw/L23Cp/EsPu5LFZpka5/mjP3315oxI1CZYmwMDEeex7A34l/xVyN6vbY2c4wxjpjlejE5rt1YS+QXhp1s5uS9WO8+9B3egeRw1+QTmnv0Oiq9AUETK6stHDHv707gmT1RnBk0/wA58UpLW9DblKYT+HV8w5FnHfvc1lb85TaPOs8ejjHGEbNcL9xZS5QtyCjls9k0oufexdAnL2mv6E+r5tLCa7QODL16XCvhiDmTyWLPqQRePxzTXtGfVuCnhQRp7RrdpS3s+IQjz3bs5d5X/MXdg87HzzHGOGKW60VtcqGWsaFUkE00Oxk7h9iFvRjpP4hk9DRS8R5kUrF8E68VghVsA31BnT7oSt8Q84fmTexel22OmHuG0vgwd9fs6PkUugdS6I1mEE/mPhqak6Dfg9awF/NbLNBHaOm7Z23NtSt2p3MiR56ns6URjou/GsHL9bWRY4xxxCzXi9rEebVj4/8BDFP6WrPil3UAAAAASUVORK5CYII=" } }, "cell_type": "markdown", "metadata": {}, "source": [ "The proof constructs an MPCP instance $P$ such that $P$ has a solution iff $M$ accepts $w$. The solution must start with the domino in Part 1:\n", "$$ \\left[ \\frac{\\#}{\\#q_0 w_1 \\cdots w_n \\_ \\#} \\right] $$\n", "After putting down this first domino, the bottom row is longer than the top row. Thereafter (as you can convince yourself by studying the dominos), the top row can never become longer than the bottom row. This property is convenient because it allows us to think of the excess portion of the bottom row as a queue: a domino $\\left[ \\frac{t}{b} \\right]$ can be thought of as \"pop $t$ from the left and push $b$ on the right\". For example,\n", "\n", "![image.png](attachment:image.png)\n", "\n", "In this picture, the excess is initially $\\texttt{aba}$. Adding the domino $\\left[ \\frac{\\texttt{ab}}{\\texttt{a}} \\right]$ acts like popping $\\texttt{ab}$ on the left and pushing $\\texttt{a}$ on the right, making the excess $\\texttt{aa}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With that in mind, perhaps we can interpret the dominos in the construction more easily. The domino in Part 1 (shown above) pushes the start configuration followed by $\\#$.\n", "\n", "Parts 2–5 work together to pop a configuration and push possible successor configurations. I modified them a little bit:\n", "\n", "\\begin{align*}\n", "(4,5\\text{a}) \\qquad &\\left[ \\frac{a}{a} \\right] && \\text{for each $a \\in \\Gamma \\cup \\{\\#\\}$} \\\\\n", "(2) \\qquad &\\left[ \\frac{qa}{br} \\right] && \\text{for each transition $q \\xrightarrow{a \\rightarrow b, \\text{R}} r$} \\\\\n", "(2') \\qquad &\\left[ \\frac{qa\\#}{br\\_\\#} \\right] && \\text{for each transition $q \\xrightarrow{a \\rightarrow b, \\text{R}} r$} \\\\\n", "(3) \\qquad &\\left[ \\frac{cqa}{rcb} \\right] && \\text{for each transition $q \\xrightarrow{a \\rightarrow b, \\text{L}} r$ and $c \\in \\Gamma$} \\\\\n", "(3') \\qquad &\\left[ \\frac{\\#qa}{\\#rb} \\right] && \\text{for each transition $q \\xrightarrow{a \\rightarrow b, \\text{L}} r$}\n", "\\end{align*}\n", "\n", "Domino (4,5a) just copies symbols that don't change from one configuration to the next. Domino (2) handles move-right rules; (2$'$) handles the case where the head is at the right end of the explored part of the tape. Domino (3) handles move-left rules; (3$'$) handles the case where the head is at the left end of the tape. \n", "\n", "Parts 6–7 work together with Part 4,5a to recognize an accepting configuration, and when it is found, to eat it away little by little until there is nothing left, at which point the solution is complete.\n", "\n", "\\begin{align*}\n", "(6\\text{a}) \\qquad &\\left[ \\frac{a q_{\\text{accept}}}{q_{\\text{accept}}} \\right] \\\\\n", "(6\\text{b}) \\qquad &\\left[ \\frac{q_{\\text{accept}} a}{q_{\\text{accept}}} \\right] \\\\\n", "(7) \\qquad &\\left[ \\frac{q_{\\text{accept}} \\# \\#}{\\#} \\right] \\\\\n", "\\end{align*}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Halt\n", "\n", "That's it for Unit III of the course! We've seen:\n", "\n", "- Turing machines (TMs)\n", " - What they are\n", " - How to write them\n", "- Church-Turing thesis\n", " - TMs define what it means to compute\n", " - Variants of TMs don't make TMs more powerful\n", " - TMs can even simulate any TM given to it\n", "- Undecidability\n", " - Almost all languages are undecidable\n", " - We can prove this by diagonalizability\n", " - Or we can prove it by reduction from another undecidable language\n", " \n", "In the next and final unit, we will explore the *time complexity* of deciding languages using Turing machines, and whether some languages are inherently difficult to decide." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.1" } }, "nbformat": 4, "nbformat_minor": 1 }