From 74b26216630df0b6f650f01cbf13993ff44d0f91 Mon Sep 17 00:00:00 2001 From: lmoss Date: Thu, 9 Jan 2025 11:55:54 +0000 Subject: [PATCH] deploy: 32b0f8a85ca0dc28c37ccce6b928432686a2a4af --- _sources/introOneSharp/instructions.ipynb | 190 ++++++++++------------ introOneSharp/instructions.html | 52 ++---- searchindex.js | 2 +- 3 files changed, 106 insertions(+), 138 deletions(-) diff --git a/_sources/introOneSharp/instructions.ipynb b/_sources/introOneSharp/instructions.ipynb index b594835..e10f4a1 100644 --- a/_sources/introOneSharp/instructions.ipynb +++ b/_sources/introOneSharp/instructions.ipynb @@ -9,6 +9,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false, @@ -19,7 +20,7 @@ "source": [ "## First steps\n", "\n", - "To start, either download this notebook and run it locally, or else click on 'Open in Colab' above. Then click on the triangle below. It should take some time -- 35 seconds for me -- and then a green check appears on the left. This action loads a set of Python programs which are run in the backround in the rest of this notebook. You will not need to look at those programs, and even if you want to look at them it would probably be better not to do so as you learn ```1#```." + "To start, either download this notebook and run it locally, or else click on 'Open in Colab' above. Then click on the triangle below. It should take some time (always less than a minute for me). Ignore all of the output on the screen, but look for a green check near where you clicked. This action loads a set of Python programs which are run in the backround in the rest of this notebook. You will not need to look at those programs, and even if you want to look at them it would probably be better not to do so as you learn ```1#```." ] }, { @@ -67,20 +68,51 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 12, "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "import ipywidgets as widgets\n", + "from IPython.display import display\n", + "\n", + "class date_input():\n", + " def __init__(self, \n", + " year = \"\", \n", + " month = \"\", \n", + " day = \"\"\n", + " ):\n", + " self.year = widgets.Text(description = 'program',value = year)\n", + " self.month = widgets.Text(description = 'R1',value = month)\n", + " self.day = widgets.Text(description = 'R2',value = day) \n", + " self.year.on_submit(self.handle_submit)\n", + " self.year.on_submit(self.handle_submit)\n", + " self.year.on_submit(self.handle_submit)\n", + " display(self.year, self.month, self.day)\n", + "\n", + " def handle_submit(self, text):\n", + " self.v = text.value\n", + " return self.v\n", + "\n", + "print(\"Enter a program and two registers, then press return in any field.\")\n", + "f = date_input()\n", + "# this is from\n", + "# https://stackoverflow.com/questions/43744999/using-ipython-ipywidget-text-to-create-multiple-variables" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "tags": [ + "hide_code" + ] + }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Enter a program and two registers, then press return in any field.\n" - ] - }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "df45f0264b554966b4e69d446c8630fa", + "model_id": "182925b268cc4b4bb84675a9ae90d6ff", "version_major": 2, "version_minor": 0 }, @@ -94,7 +126,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "462ac9460c004ea0b18d05f3baf63e60", + "model_id": "47a878de51044066a025f9236012fd71", "version_major": 2, "version_minor": 0 }, @@ -108,7 +140,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "8490e885e00e4b1f898b2576b8681e8e", + "model_id": "c94509a32f3c49e08ce6c01b8d8053b5", "version_major": 2, "version_minor": 0 }, @@ -118,41 +150,36 @@ }, "metadata": {}, "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6ed6b5670222459abbc74fc6032fbdb7", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Button(button_style='success', description='Run', style=ButtonStyle())" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "42ac3680b93c46f5a11a764bb3f6e7c9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], - "source": [ - "import ipywidgets as widgets\n", - "from IPython.display import display\n", - "\n", - "class date_input():\n", - " def __init__(self, \n", - " year = \"\", \n", - " month = \"\", \n", - " day = \"\"\n", - " ):\n", - " self.year = widgets.Text(description = 'program',value = year)\n", - " self.month = widgets.Text(description = 'R1',value = month)\n", - " self.day = widgets.Text(description = 'R2',value = day) \n", - " self.year.on_submit(self.handle_submit)\n", - " self.year.on_submit(self.handle_submit)\n", - " self.year.on_submit(self.handle_submit)\n", - " display(self.year, self.month, self.day)\n", - "\n", - " def handle_submit(self, text):\n", - " self.v = text.value\n", - " return self.v\n", - "\n", - "print(\"Enter a program and two registers, then press return in any field.\")\n", - "f = date_input()\n", - "# this is from\n", - "# https://stackoverflow.com/questions/43744999/using-ipython-ipywidget-text-to-create-multiple-variables" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "# @title Interpreter\n", "f = date_input()\n", @@ -171,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -180,16 +207,7 @@ "id": "MPjUbJF95HHZ", "outputId": "fda582c8-6d5d-4685-9415-79963fd143d5" }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "EOL while scanning string literal (, line 13)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m13\u001b[0m\n\u001b[0;31m R1 = '#11#\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m EOL while scanning string literal\n" - ] - } - ], + "outputs": [], "source": [ "def end_strip(list): ## removes the tail of empty registers\n", " if list == []:\n", @@ -203,34 +221,7 @@ "\n", "\n", "program = '11#####111111###111###1##1111####1#111111####' #@param {type:\"string\"}\n", - "R1 = '#11#" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'#11###111111#'" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "##1' #@param {type:\"string\"}\n", + "R1 = '#11###1' #@param {type:\"string\"}\n", "R2 = '11111#' #@param {type:\"string\"}\n", "#R3 = '' #@param {type:\"string\"}\n", "\n", @@ -243,7 +234,7 @@ "a = [R1,R2]\n", "a = [remove_multiple_blanks(x) for x in a]\n", "\n", - "onesharp(program,a)\n" + "onesharp(program,a)" ] }, { @@ -410,6 +401,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "kFwH6_CugCNx" @@ -423,11 +415,11 @@ "\n", "We have already been using this terminology. For example, we saw\n", "\n", - "11#####111111###111###1##1111####1#111111####\n", + "```11#####111111###111###1##1111####1#111111####```\n", "\n", - "near the top of this notebook. This is the following sequence of instructions:\n", + "near the top of this notebook. This is the following sequence of seven instructions:\n", "\n", - "11##### 111111### 111### 1## 1111#### 1# 111111####\n", + "(```11#####```, ```111111###```, ```111###```, ```1##```, ```1111####```, ```1#```, ```111111####```)\n", "\n", "Dividing a program into instructions is a very easy form of *parsing*. In a real computer language, parsing is more difficult than it is for ```1#```. \n", "\n", @@ -436,11 +428,16 @@ "Let us emphasize something about programs.\n", "\n", "```{important}\n", - "Any sequence of 1# instructions is a program. A program doesn't come with an explanation of what \"it is supposed to do\".\n", + "Any sequence of ```1#``` instructions run together as a single word is a program. \n", + "\n", + "Spaces inside do not matter. \n", + "\n", + "A program doesn't come with anything else an explanation of what \"it is supposed to do\".\n", "```\n" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "HQ3wlzp5eDEm" @@ -450,9 +447,9 @@ "Words have to be *finite*, and so programs also must be finite. Further, each program $p$ of ```1#``` can only mention finitely many registers.\n", "\n", "(That is, there is a finite set $F\\subseteq \\N$ such that if\n", - " $\\one^k \\hash$ is an instruction in $p$, then $k\\in F$;\n", - "if $\\one^k \\hash\\hash$ is an instruction in $p$, then $k\\in F$;\n", - "and $\\one^k \\hash^5$ is an instruction in $p$, then $k\\in F$.)\n", + " ```1^k #``` is an instruction in $p$, then $k\\in F$;\n", + "if ```1^k ##``` is an instruction in $p$, then $k\\in F$;\n", + "and ```1^k #####``` is an instruction in $p$, then $k\\in F$.)\n", "```" ] }, @@ -1080,15 +1077,6 @@ "It would be good to read about the basics of Jupyter notebooks. If you got this far, perhaps you know enough already.\n", "```" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "KHOJQG3lBHaH" - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/introOneSharp/instructions.html b/introOneSharp/instructions.html index 35a7bf9..1cad2c1 100644 --- a/introOneSharp/instructions.html +++ b/introOneSharp/instructions.html @@ -460,7 +460,7 @@

Contents

Open In Colab

First steps#

-

To start, either download this notebook and run it locally, or else click on ‘Open in Colab’ above. Then click on the triangle below. It should take some time – 35 seconds for me – and then a green check appears on the left. This action loads a set of Python programs which are run in the backround in the rest of this notebook. You will not need to look at those programs, and even if you want to look at them it would probably be better not to do so as you learn 1#.

+

To start, either download this notebook and run it locally, or else click on ‘Open in Colab’ above. Then click on the triangle below. It should take some time (always less than a minute for me). Ignore all of the output on the screen, but look for a green check near where you clicked. This action loads a set of Python programs which are run in the backround in the rest of this notebook. You will not need to look at those programs, and even if you want to look at them it would probably be better not to do so as you learn 1#.

!python -m pip install -U setuptools
@@ -478,7 +478,8 @@ 

First steps1#. Even before learning how the language works, we want to see how to run programs by entering them into the interpreter along with inputs.

-
-
-

The top line of the interpreter contains the following program of 1#

11#####111111###111###1##1111####1#111111####

@@ -735,23 +713,25 @@

What are programs?11#####111111###111###1##1111####1#111111####

+

near the top of this notebook. This is the following sequence of seven instructions:

+

(11#####, 111111###, 111###, 1##, 1111####, 1#, 111111####)

Dividing a program into instructions is a very easy form of parsing. In a real computer language, parsing is more difficult than it is for 1#.

Incidentally, spaces are not significant in the interpreter above, or in the work we’ll turn to shortly. You may enter programs with spaces.

Let us emphasize something about programs.

Important

-

Any sequence of 1# instructions is a program. A program doesn’t come with an explanation of what “it is supposed to do”.

+

Any sequence of 1# instructions run together as a single word is a program.

+

Spaces inside do not matter.

+

A program doesn’t come with anything else an explanation of what “it is supposed to do”.

Important

Words have to be finite, and so programs also must be finite. Further, each program \(p\) of 1# can only mention finitely many registers.

(That is, there is a finite set \(F\subseteq \N\) such that if -\(\one^k \hash\) is an instruction in \(p\), then \(k\in F\); -if \(\one^k \hash\hash\) is an instruction in \(p\), then \(k\in F\); -and \(\one^k \hash^5\) is an instruction in \(p\), then \(k\in F\).)

+1^k # is an instruction in \(p\), then \(k\in F\); +if 1^k ## is an instruction in \(p\), then \(k\in F\); +and 1^k ##### is an instruction in \(p\), then \(k\in F\).)

diff --git a/searchindex.js b/searchindex.js index 558abf5..41d9447 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"": [[1, "phi-notation"], [1, "introOneSharp/functions-exercise-1"], [1, "introOneSharp/functions-exercise-2"], [1, "introOneSharp/functions-exercise-3"], [1, "definition-4"], [1, "introOneSharp/functions-exercise-5"], [1, "introOneSharp/functions-exercise-6"], [1, "introOneSharp/functions-exercise-7"], [1, "introOneSharp/functions-exercise-8"], [1, "introOneSharp/functions-exercise-9"], [1, "introOneSharp/functions-exercise-10"], [1, "definition-11"], [1, "introOneSharp/functions-exercise-12"], [2, "on-halting"], [2, "introOneSharp/haltDef-exercise-1"], [3, "introOneSharp/instructions-exercise-0"], [3, "try-to-figure"], [3, "introOneSharp/instructions-exercise-2"], [3, "introOneSharp/instructions-exercise-3"], [4, "introOneSharp/move_copy_write-exercise-0"], [4, "introOneSharp/move_copy_write-exercise-1"], [4, "introOneSharp/move_copy_write-exercise-2"], [4, "introOneSharp/move_copy_write-exercise-3"], [4, "introOneSharp/move_copy_write-exercise-4"], [4, "introOneSharp/move_copy_write-exercise-5"], [4, "definition-6"], [4, "introOneSharp/move_copy_write-exercise-7"], [5, "proposition-0"], [5, "introOneSharp/tidy-exercise-1"], [5, "tidiness"], [5, "back-transfer"], [5, "introOneSharp/tidy-exercise-4"], [8, "issues/problems-exercise-0"], [8, "issues/problems-exercise-1"], [9, "issues/reduction-exercise-0"], [9, "issues/reduction-exercise-1"], [9, "issues/reduction-exercise-2"], [10, "more_programs/arithmetic-exercise-0"], [10, "more_programs/arithmetic-exercise-1"], [10, "more_programs/arithmetic-exercise-2"], [10, "more_programs/arithmetic-exercise-3"], [13, "self_writing-exercise-0"], [13, "self_writing-exercise-1"], [13, "self_writing-exercise-2"], [13, "self_writing-exercise-3"], [13, "self_writing-exercise-4"], [13, "self_writing-exercise-5"], [13, "self_writing-exercise-6"], [13, "self_writing-exercise-7"], [13, "self_writing-exercise-8"], [13, "self_writing-exercise-9"], [14, "theorem-0"], [14, "undecidability/busyBeaver-exercise-1"], [14, "undecidability/busyBeaver-exercise-2"], [16, "theorem-0"], [16, "corollary-1"], [16, "corollary-2"], [16, "corollary-3"], [16, "undecidability/haltingProblem-exercise-4"], [18, "theorem-0"], [18, "definition-1"], [18, "undecidability/tiling-exercise-2"], [18, "undecidability/tiling-exercise-3"], [19, "my-definition"], [19, "universal/universal-exercise-1"], [19, "universal/universal-exercise-2"], [19, "universal/universal-exercise-3"]], " (Post, 1946)": [[8, "theorem-2"]], "A remark on the beige and green sub-programs": [[19, "a-remark-on-the-beige-and-green-sub-programs"]], "Addition": [[10, "addition"]], "Algorithmic problems": [[8, null]], "Basic functions in this notebook": [[11, "basic-functions-in-this-notebook"]], "Characteristic functions": [[1, "characteristic-functions"]], "Coding unboundedly many registers into one": [[19, "coding-unboundedly-many-registers-into-one"]], "Comparison": [[10, "comparison"]], "Computability": [[7, null]], "Computably enumerable sets": [[1, "computably-enumerable-sets"]], "Concrete and Abstract Models of Computation": [[7, "concrete-and-abstract-models-of-computation"]], "Corollaries": [[16, "corollaries"]], "Credits": [[18, null]], "Definition": [[1, null], [1, null], [2, null], [5, null]], "Diag": [[13, "diag"]], "Example": [[18, null], [18, null]], "Examples": [[1, null], [1, null]], "Examples of primitive recursive terms and functions": [[11, "examples-of-primitive-recursive-terms-and-functions"]], "Examples of segments:": [[12, "examples-of-segments"]], "Exercises": [[13, "exercises"]], "Finite vs. Infinite": [[7, "finite-vs-infinite"]], "First steps": [[3, null]], "Formal statement": [[18, "formal-statement"]], "Functions defined by programs": [[1, null]], "Functions of two or more arguments": [[1, "functions-of-two-or-more-arguments"]], "Functions of zero inputs": [[1, "functions-of-zero-inputs"]], "Further programs and exercises": [[12, "further-programs-and-exercises"]], "Halting: the formal definitions": [[2, "halting-the-formal-definitions"]], "How does Sanity work?": [[12, "how-does-sanity-work"]], "How to run insepct the terms and run the 1# programs.": [[11, "how-to-run-insepct-the-terms-and-run-the-1-programs"]], "I am going to change exercise 5(c) a little.": [[11, "i-am-going-to-change-exercise-5-c-a-little"]], "Implementing add# instructions": [[19, "implementing-add-instructions"]], "Improvement for one-register programs": [[16, "improvement-for-one-register-programs"]], "Invitation to Computability": [[0, null]], "Logic": [[15, null]], "Matrix problems": [[8, "matrix-problems"]], "Modifying move_2_1": [[4, "modifying-move-2-1"]], "Multiplication": [[10, "multiplication"]], "Notation": [[18, null]], "Our goal": [[18, null]], "Partial functions": [[1, "partial-functions"]], "Post\u2019s Correspondence Problem": [[17, null]], "Post\u2019s correspondence problem": [[8, "post-s-correspondence-problem"]], "Primitive Recursion": [[11, null]], "Primitive recursive terms, and the functions which they denote": [[11, "primitive-recursive-terms-and-the-functions-which-they-denote"]], "Problem": [[8, null]], "Problems": [[8, null]], "Programs for arithmetic": [[10, null]], "Project": [[19, "project"]], "Reduction of one problem to another": [[9, null]], "Removing superfluous #s": [[10, "removing-superfluous-s"]], "Restatement of our goal": [[18, null]], "Running programs in notebook cells": [[3, "running-programs-in-notebook-cells"]], "Self": [[13, "self"]], "Self-Replicating Programs": [[13, null]], "Simple programs": [[4, null]], "Simplification": [[19, "simplification"]], "Some observations": [[18, "some-observations"]], "Special note: the in_place_programs in this notebook do not halt in the sense of the course. Instead, they preserve their inputs. For example, run the program associated with add below as shown below it. (That is, take away the # from the beginning of the lines after the definition. The 2 inputs are preserved and the result goes in register 3.)": [[11, "special-note-the-in-place-programs-in-this-notebook-do-not-halt-in-the-sense-of-the-course-instead-they-preserve-their-inputs-for-example-run-the-program-associated-with-add-below-as-shown-below-it-that-is-take-away-the-from-the-beginning-of-the-lines-after-the-definition-the-2-inputs-are-preserved-and-the-result-goes-in-register-3"]], "Strong equivalence to tidy programs": [[5, "strong-equivalence-to-tidy-programs"]], "Summary": [[13, null]], "Syntax check": [[11, "syntax-check"]], "Testing the \u2018prime\u2019 primitive recursive term": [[11, "testing-the-prime-primitive-recursive-term"]], "The + notation on words": [[4, "the-notation-on-words"]], "The 1# instruction set": [[3, "the-1-instruction-set"]], "The busy beaver problem": [[14, null]], "The converse": [[18, "the-converse"]], "The definition of \\TT(p)": [[18, "the-definition-of-tt-p"]], "The full set of instructions of 1#": [[3, "the-full-set-of-instructions-of-1"]], "The halting problem": [[16, null]], "The idea in English": [[13, "the-idea-in-english"]], "The inputs to sanity": [[12, "the-inputs-to-sanity"]], "The output can be long because the function syntax_check is recursive, and thus reports information about all the subterms of whatever you enter.": [[11, "the-output-can-be-long-because-the-function-syntax-check-is-recursive-and-thus-reports-information-about-all-the-subterms-of-whatever-you-enter"]], "The plan for this lesson": [[19, "the-plan-for-this-lesson"]], "The point": [[18, null]], "The successor function": [[10, "the-successor-function"]], "Tidy programs": [[5, null]], "Tiling": [[18, null]], "Tiling problems": [[8, "tiling-problems"]], "Tools to help write programs": [[12, null]], "Universal Programs": [[19, null]], "Universal programs of more than one argument": [[19, "universal-programs-of-more-than-one-argument"]], "Useful command-line tools": [[3, "useful-command-line-tools"]], "Useful operations inside a Jupyter notebook": [[3, "useful-operations-inside-a-jupyter-notebook"]], "Using the book": [[0, "using-the-book"]], "What are programs?": [[3, "what-are-programs"]], "What is coding?": [[6, null]], "What may go into a segment?": [[12, null]], "When does a program halt?": [[2, null]], "Workflow": [[12, "workflow"]], "You can enter a line like the ones below to check that an expression really is a term, or to find an error.": [[11, "you-can-enter-a-line-like-the-ones-below-to-check-that-an-expression-really-is-a-term-or-to-find-an-error"]], "bb representation": [[10, "bb-representation"]], "copy": [[4, "copy"]], "labels": [[12, null]], "move_2_1": [[4, "move-2-1"]], "write": [[4, "write"]]}, "docnames": ["index", "introOneSharp/functions", "introOneSharp/haltDef", "introOneSharp/instructions", "introOneSharp/move_copy_write", "introOneSharp/tidy", "issues/coding", "issues/issues", "issues/problems", "issues/reduction", "more_programs/arithmetic", "more_programs/primitive_recursion", "more_programs/sanity", "self_writing", "undecidability/busyBeaver", "undecidability/church", "undecidability/haltingProblem", "undecidability/post", "undecidability/tiling", "universal/universal"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9}, "filenames": ["index.md", "introOneSharp/functions.ipynb", "introOneSharp/haltDef.ipynb", "introOneSharp/instructions.ipynb", "introOneSharp/move_copy_write.ipynb", "introOneSharp/tidy.ipynb", "issues/coding.ipynb", "issues/issues.ipynb", "issues/problems.ipynb", "issues/reduction.ipynb", "more_programs/arithmetic.ipynb", "more_programs/primitive_recursion.ipynb", "more_programs/sanity.ipynb", "self_writing.ipynb", "undecidability/busyBeaver.ipynb", "undecidability/church.ipynb", "undecidability/haltingProblem.ipynb", "undecidability/post.ipynb", "undecidability/tiling.ipynb", "universal/universal.ipynb"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 4, 9, 11, 12, 13, 14, 15, 16, 18, 19], "0": [1, 8, 10, 11, 13, 18], "0_": 1, "0_p": 1, "1": [0, 1, 2, 4, 5, 10, 12, 13, 14, 16, 18, 19], "10": [5, 10, 12, 13, 14, 19], "100": 10, "1000": 10, "10000": 10, "10001": 10, "1001": 10, "10010": 10, "10011": 10, "101": 10, "1010": 10, "1011": 10, "11": [2, 3, 4, 10, 11, 12, 13, 19], "110": 10, "1100": 10, "1100110100001": 12, "1101": 10, "111": [2, 3, 4, 10, 11, 12, 13, 19], "1110": 10, "1111": [2, 3, 4, 5, 10, 11, 12, 13, 19], "11111": [3, 4, 10, 11, 12, 19], "111111": [3, 4, 10, 11, 12, 13, 19], "1111111": [10, 13, 19], "11111111": [3, 10, 11, 12, 19], "111111111": [4, 10, 11, 19], "1111111111": [10, 11, 12, 19], "11111111111": [10, 11, 13], "111111111111": 19, "1111111111111": [10, 11, 19], "11111111111111": 19, "111111111111111": [3, 10, 11, 19], "1111111111111111": 19, "11111111111111111": 19, "111111111111111111": [11, 12, 19], "1111111111111111111": [11, 12], "11111111111111111111": 12, "111111111111111111111": 11, "1111111111111111111111": [12, 19], "11111111111111111111111": [12, 19], "111111111111111111111111": 19, "1111111111111111111111111": [11, 12], "111111111111111111111111111": [12, 19], "1111111111111111111111111111": 19, "11111111111111111111111111111": 12, "11111111111111111111111111111111": 12, "11111111111111111111111111111111111": 19, "1111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111": 11, "11111111111111111111111111111111111111111": 12, "111111111111111111111111111111111111111111": 12, "111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111": 19, "111111111111111111111111111111111111111111111111": 12, "111111111111111111111111111111111111111111111111111111": 19, "111111111111111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111111111111111": 12, "11111111111111111111111111111111111111111111111111111111111111": 19, "11111111111111111111111111111111111111111111111111111111111111111111": 19, "111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 12, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 12, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 12, "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "112": 19, "113": 19, "114": 19, "115": 19, "116": 19, "117": 19, "118": 19, "119": 19, "12": [2, 5, 10, 12, 13, 18, 19], "13": [3, 10, 11, 12, 13, 19], "131": 18, "139": 18, "14": [10, 12, 13, 19], "15": [3, 10, 11, 12, 19], "16": [3, 10, 12, 19], "17": [10, 12, 19], "177": 18, "18": [10, 18, 19], "19": [10, 19], "1961": 18, "1971": 18, "1_q": 16, "1n": 19, "2": [1, 2, 3, 4, 5, 10, 12, 13, 14, 16, 18, 19], "20": [10, 12], "204": 13, "209": 18, "22": 19, "24": 18, "243": 12, "25": 18, "26": [5, 18], "2_p": 16, "3": [1, 3, 4, 5, 10, 12, 13, 16, 18, 19], "300": 19, "322": 19, "35": 3, "376": 19, "3px": [4, 13], "4": [1, 3, 4, 5, 10, 11, 12, 13, 16, 18, 19], "40": 18, "41": 18, "43744999": 3, "4743": 18, "4744": 18, "5": [3, 4, 10, 12, 13, 16, 18, 19], "50": 14, "56": 10, "57": 11, "5a": 11, "5b": 11, "5c": 11, "5d": 11, "5e": 11, "6": [4, 10, 11, 12, 13, 19], "608": 19, "6561": 12, "67": 18, "68": 18, "7": [4, 10, 11, 12, 13, 19], "8": [4, 5, 10, 12, 13, 18, 19], "82": 14, "9": [4, 10, 11, 13, 18, 19], "A": [1, 3, 5, 8, 12, 13, 14, 16, 18], "And": [3, 4, 8, 10, 12, 13, 18, 19], "As": [1, 3, 10, 11, 12, 19], "At": [0, 1, 10, 11, 12, 13, 19], "BE": 11, "But": [1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 16, 18, 19], "For": [0, 1, 3, 4, 5, 8, 10, 12, 16, 18, 19], "If": [1, 2, 3, 4, 5, 10, 11, 12, 13, 18, 19], "In": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 18, 19], "It": [0, 1, 2, 3, 4, 8, 10, 11, 12, 13, 15, 18, 19], "Its": 11, "No": 8, "Of": [0, 4, 5, 8, 19], "On": [5, 10, 12], "One": [0, 5, 10, 11, 19], "That": [1, 3, 5, 10, 12, 13, 18, 19], "The": [0, 1, 2, 8, 9], "Then": [1, 3, 4, 10, 11, 12, 13, 14, 16, 18, 19], "There": [0, 1, 2, 3, 5, 8, 10, 11, 14, 16, 18], "These": [3, 10, 12], "To": [2, 3, 8, 11, 12, 13, 18, 19], "With": 12, "_": 18, "__init__": 3, "a_1": 8, "a_2": 8, "a_i": 8, "a_n": 8, "ababaaabbbaabbaababaa": 8, "abbrevi": 3, "abil": [0, 13], "about": [0, 1, 3, 10, 12, 13, 18, 19], "abov": [3, 4, 8, 10, 18, 19], "abstract": [1, 3], "accordingli": 3, "act": 19, "action": [3, 19], "actual": [2, 3, 4, 10, 18, 19], "ad": [18, 19], "add": [0, 1, 2, 3, 4, 8, 10, 12, 13, 18], "add1": [11, 12, 19], "addit": [0, 3, 11, 18, 19], "ado": 3, "adopt": 1, "advanc": 0, "advent": 0, "after": [2, 3, 4, 5, 10, 12, 13, 18, 19], "again": [2, 3, 4, 9, 10, 13, 18, 19], "against": 10, "ahead": [3, 10, 13], "aim": 0, "algorithm": [10, 11], "align": [4, 13], "all": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 16, 18, 19], "all_equ": 11, "allow": [13, 19], "almost": 1, "alon": 19, "along": [3, 10, 11, 18, 19], "alphabet": [1, 3, 8, 19], "alreadi": [3, 10, 19], "also": [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19], "altern": [0, 1, 4, 5, 19], "although": 10, "altogeth": 10, "alwai": [1, 4, 18], "am": 0, "amount": [0, 11], "an": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 16, 18, 19], "ani": [1, 3, 4, 5, 8, 10, 11, 13, 14, 18, 19], "annot": 0, "anoth": [1, 3, 5, 12, 13, 19], "answer": [1, 8, 10, 18], "anyth": 18, "anywai": 13, "appear": [3, 5, 8, 12, 18], "appli": [4, 13, 18], "applic": [12, 13, 19], "appreci": 19, "appropri": 19, "ar": [0, 1, 2, 4, 5, 8, 9, 10, 12, 13, 16, 18, 19], "arang": [4, 13], "arbitrari": 2, "area": 18, "aren": [11, 12, 13], "arg": 11, "argument": [3, 11, 18], "argument_numb": 11, "ari": 11, "ariti": 11, "around": [3, 4, 10], "arrai": [1, 8, 12, 14, 16], "arrow": [3, 4], "artifact": 0, "ask": [3, 10, 11, 19], "aspect": 0, "assembl": 19, "assign": [3, 11], "associ": [1, 4], "assum": [1, 4, 5, 10, 11, 13, 16, 19], "assumpt": [12, 19], "atom": 14, "attempt": 13, "author": 0, "automat": [13, 19], "auxilliari": 4, "avoid": 18, "axi": [4, 9, 13], "b": [1, 2, 3, 5, 8, 9, 11, 12, 18, 19], "b0e0e6": [4, 13], "b1": 11, "b2": 11, "b3": 11, "b4": 11, "b5": 11, "back": [4, 10, 12, 13, 18, 19], "background": [3, 4, 13], "backround": 3, "backward": [3, 4, 5, 10, 11, 12, 13], "balk": 3, "bar": 11, "base": [10, 12], "basi": 19, "basic": [0, 3, 10, 13, 16, 19], "batch": [3, 4], "bb": [11, 12, 14], "be182edc98d2": 3, "becam": 0, "becaus": [3, 12, 13, 16, 18, 19], "becom": 13, "been": [3, 11], "befor": [2, 3, 4, 10, 11, 12, 13, 18, 19], "begin": [0, 1, 2, 3, 4, 8, 12, 13, 14, 16, 18, 19], "behav": [1, 19], "behavior": 3, "behind": [4, 13, 19], "believ": 10, "bell": 18, "below": [2, 3, 4, 5, 8, 10, 12, 13, 18, 19], "besid": 1, "best": [0, 10], "better": [2, 3, 4, 11, 13, 19], "between": [1, 3, 4, 11], "beyond": [2, 19], "big": [1, 13], "bigger": 12, "binari": [10, 12], "binder": 0, "bit": [13, 19], "black": 8, "blank": [3, 18], "bleed": 12, "blue": [8, 10, 13], "blush": 13, "book": 3, "bool1": 11, "bool2": 11, "boolean": 11, "border": [4, 13], "borrow": 12, "borrowing_empti": 12, "borrowing_hash": 12, "borrowing_on": 12, "both": [0, 1, 3, 4, 5, 11], "bottom": [8, 9, 11, 12, 18], "bound": 19, "bowman": 12, "box": [3, 12], "brackect": 12, "bracket": [3, 4], "branch": 13, "brown": [4, 13], "build": [1, 4, 11, 19], "built": 16, "bump": [10, 11], "bump_instr": 11, "button": [0, 3], "button_styl": 3, "c": [1, 2, 5, 12, 18], "call": [0, 1, 3, 4, 8, 9, 10, 11, 12, 13, 18, 19], "can": [1, 3, 4, 5, 8, 9, 10, 12, 13, 16, 18, 19], "cannot": [5, 8, 10, 18, 19], "cap": 1, "card": 18, "care": 19, "carri": 10, "case": [1, 3, 4, 5, 10, 11, 12, 13, 18, 19], "cdot": [5, 8, 12], "cell": [4, 11, 12, 19], "center": 0, "certainli": 19, "challeng": 19, "chanc": 13, "chang": [0, 3, 4, 10, 18, 19], "chapter": 0, "charact": 3, "characterist": 11, "chart": [3, 4, 19], "check": [3, 4, 10, 13, 19], "chi_a": 1, "chi_equ": 11, "chi_great": 11, "chi_greater_or_equ": 11, "chi_less": 11, "chi_lesser_or_equ": 11, "children": 11, "choic": 10, "choos": 8, "church": [0, 15], "circl": 18, "claim": 10, "clarifi": 12, "clasic": 0, "class": [0, 3, 12, 19], "classic": 3, "cleanup": 10, "clear": [1, 4, 10, 12, 13, 18, 19], "clear_1": [3, 12], "clear_out_fre": 11, "clear_prog": 11, "clearli": [1, 19], "clearprog_1": 1, "clearprog_3": 1, "clever": 13, "click": [0, 3, 18], "clickabl": 0, "close": [1, 12, 19], "cmp": 12, "cocalc": 0, "code": [0, 3, 10, 11, 12, 18], "colab": [0, 3, 12], "colon": 14, "color": [4, 8, 13, 18, 19], "column": [4, 13, 18, 19], "com": [3, 4, 5, 10, 11, 12, 13, 19], "combin": 19, "come": [0, 1, 3, 5, 8, 9, 12, 13, 16, 18, 19], "command": 4, "comment": [3, 5, 18, 19], "common": [8, 11, 14], "commun": 0, "comp": 11, "compar": [10, 11, 12], "compare_prog": 11, "compel": 0, "compil": 11, "complet": [8, 10, 18, 19], "complex": [0, 3], "compos": [3, 11, 18, 19], "composit": [1, 11], "comput": [3, 5, 8, 10, 14, 16, 18, 19], "computation": 10, "concaten": [3, 4, 8], "concept": [0, 3, 12], "conceptu": 1, "concern": [2, 5, 19], "conclud": [13, 18, 19], "concret": 3, "condit": [2, 5, 8, 11], "confirm": 19, "conform": 19, "confus": [10, 18], "connect": [0, 1, 15], "consid": [2, 9, 12, 14, 16, 18], "consist": [8, 12, 13], "construct": [1, 4, 8, 10, 12, 19], "constructor": 11, "contain": [2, 3, 11, 12, 13, 15, 18, 19], "content": [0, 2, 3, 4, 10, 12, 18, 19], "context": 10, "continu": [8, 10, 18, 19], "contradict": [14, 16], "contrast": [1, 2], "control": [2, 3, 5, 18], "convers": 1, "convert": [10, 11], "copi": [3, 10, 11, 12, 18, 19], "copy_1_2_3": [4, 11], "copy_all_forward": 11, "copy_prog": 11, "copyprog_": [4, 16], "copyright": 18, "corner": [8, 18], "corollari": [0, 15], "correct": [3, 11, 12], "correctli": [1, 18], "correspond": [9, 12], "could": [0, 2, 3, 4, 10, 11, 12, 19], "count": [1, 12], "cours": [0, 3, 4, 5, 8, 18, 19], "crazi": 12, "creat": 3, "crucial": 18, "cup": [1, 8], "current": [0, 3, 10], "cyan": 8, "d": [11, 12], "d1": 11, "d4b48c": [4, 13], "d_0": 9, "dai": 3, "dar": [1, 16, 18], "dark": 8, "datafram": [4, 13], "date": 0, "date_input": 3, "dd": 8, "ddd": 11, "deal": [1, 19], "decad": 0, "decid": [1, 8, 9, 10, 16, 18, 19], "decim": 10, "decis": 11, "deepli": 12, "def": [3, 11], "defin": [4, 8, 11, 12, 13, 18], "definit": [3, 9, 10, 13], "delet": [1, 3, 4, 12, 18], "denot": [3, 12], "depend": [18, 19], "deriv": [0, 12], "describ": 19, "descript": [3, 10, 13], "deserv": 15, "design": [4, 9, 10, 19], "desir": [12, 13], "destroi": [10, 19], "detail": [2, 3, 18, 19], "determin": [8, 11, 13, 18, 19], "develop": [0, 10, 11], "devot": 18, "df": [4, 13], "dg": 12, "dg_idea": 12, "diag": [11, 12, 19], "diag_idea": 12, "diagon": 8, "diamondsuit": 18, "did": [11, 12, 13, 18, 19], "didn": 3, "differ": [0, 1, 2, 3, 4, 10, 13, 19], "difficult": 3, "direct": [13, 19], "directli": 10, "disciplin": 0, "discuss": [0, 2, 8, 12, 13, 18, 19], "displai": [3, 12], "distinguish": [11, 18], "diverg": 19, "divid": [3, 4, 19], "do": [1, 2, 3, 4, 5, 10, 13, 19], "document": 12, "doe": [0, 1, 3, 5, 8, 13, 19], "doesn": [1, 3, 8, 11, 13], "domain": 1, "domino": [8, 9], "don": [0, 3, 10, 11, 13, 18], "done": [4, 10, 11, 12, 13, 16, 19], "doubl": 3, "down": [3, 4, 11], "downarrow": [1, 16, 18], "download": 3, "dr": 16, "draft": 19, "draw": 12, "drop": [13, 19], "due": [5, 19], "dure": 2, "e": 11, "each": [1, 3, 4, 5, 8, 12, 13, 16, 19], "earlier": [4, 10, 12, 18, 19], "easi": [3, 18], "easier": [12, 13, 18, 19], "easiest": 19, "easili": 18, "edg": [8, 18], "eight": [8, 18, 19], "either": [2, 3, 4, 5, 10, 11, 12], "elabor": 13, "element": [4, 18], "elif": [3, 4, 11, 13], "ell": 16, "els": [3, 4, 8, 10, 11, 13, 19], "email": 19, "emphas": [3, 4, 8], "empti": [1, 2, 3, 4, 8, 10, 11, 12, 13, 16, 18, 19], "emtpi": 16, "enabl": [0, 10, 11], "enclos": 3, "encod": [18, 19], "encount": 10, "end": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13, 14, 16, 18, 19], "end_strip": 3, "english": [3, 12], "enough": [0, 2, 3, 11, 12, 14, 19], "enter": [3, 4, 19], "entir": [18, 19], "entitl": 18, "entri": 12, "enumer": [0, 5], "environ": [4, 12], "eol": 3, "ep": [1, 4, 8], "epilogu": 12, "epsilon": 8, "equal": [10, 11, 13, 19], "equat": [10, 13], "equival": 19, "error": [3, 12], "especi": [0, 1, 19], "essentially_us": 11, "establish": 19, "estim": 14, "etc": [11, 13, 18, 19], "even": [1, 3, 4, 10, 13, 16, 19], "eventu": [1, 4, 10, 12, 19], "ever": 10, "everi": [1, 5, 8, 11, 12, 16, 18, 19], "everyon": [0, 19], "everyth": [0, 13, 19], "exact": 19, "exactli": [4, 5, 8, 13, 18, 19], "examin": 12, "exampl": [2, 3, 4, 5, 8, 9, 10, 16, 19], "exce": 11, "except": [5, 9, 12], "execut": [0, 2, 3, 5, 18, 19], "exercis": [2, 3, 5, 10, 19], "exhibit": 19, "exist": [5, 9, 13], "exit": 3, "exp": [10, 11], "explain": [13, 19], "explan": [3, 4, 13, 19], "explic": 4, "explicit": [0, 5, 10], "explor": 3, "exponenti": [10, 12], "exponentiate_loop": 12, "express": [3, 12], "extend": [3, 13], "ey": 18, "eyebal": 12, "f": [1, 3, 8, 11, 14, 16, 18], "f1": 11, "fact": [3, 5, 8, 14, 18, 19], "factori": 10, "fair": 0, "fairli": 19, "fals": [1, 11], "famili": 1, "familiar": [3, 10], "famou": 16, "far": [0, 3, 18, 19], "fashion": 3, "featu": 0, "featur": [0, 4, 8, 10, 13, 18], "feel": 10, "fell": 3, "felt": 12, "few": [0, 11, 19], "ffffcc": [4, 13], "field": 3, "figur": [2, 3], "file": [0, 3], "fill": 10, "final": [2, 3, 12, 13, 18, 19], "find": [1, 2, 3, 4, 8, 13, 16, 19], "fine": 19, "finish": 2, "finit": [1, 3, 8, 16, 18, 19], "firm": 13, "first": [0, 1, 2, 4, 8, 9, 10, 11, 12, 13, 15, 18, 19], "first_and_third_greater_than_on": 11, "first_end": 12, "first_hash": 12, "first_on": 12, "first_part": 11, "first_third_second_prop": 11, "five": [2, 3], "fix": [2, 18, 19], "flowchart": [12, 19], "fluke": 13, "follow": [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 18, 19], "font": 18, "forev": 18, "forget": [3, 10, 19], "form": [1, 2, 3, 5, 10, 12, 13, 19], "formal": [5, 10], "format": 3, "formul": 10, "forth": 10, "forward": [2, 3, 4, 5, 10, 11, 12, 13], "found": 5, "four": [18, 19], "free": [10, 11, 13, 18], "free_plus_on": 11, "free_reg": 11, "frequent": [1, 8], "from": [0, 1, 3, 4, 5, 8, 10, 12, 13, 16, 18, 19], "front": 0, "full": [4, 10], "fun": 13, "function": [0, 3, 8, 12, 14, 18], "further": [0, 3, 4, 18, 19], "futur": 11, "g": [1, 11], "g3": 11, "g_1": 11, "g_i": 11, "g_k": 11, "g_list": 11, "gener": [1, 8, 10, 13], "geoffrei": 16, "geq": [1, 5, 8, 14], "get": [3, 4, 8, 10, 11, 12, 13, 16, 18, 19], "git": [3, 4, 5, 10, 11, 12, 13, 19], "github": [0, 3, 4, 5, 10, 11, 12, 13, 19], "give": [1, 3, 4, 10, 11, 13, 18, 19], "given": [0, 1, 2, 8, 9, 10, 14, 18, 19], "glimmer": 13, "gloss": [3, 4], "go": [0, 1, 2, 3, 4, 5, 8, 10, 13, 15, 18, 19], "goal": [13, 19], "goe": [2, 4, 10, 13, 18, 19], "good": [3, 11, 18, 19], "googl": 0, "got": 3, "goto": [10, 11, 12, 19], "graph": 8, "greater_than_on": 11, "green": [3, 4, 8, 13, 18], "grei": 8, "group": 19, "guess": 11, "guid": 19, "h": [1, 11], "h_f": 16, "h_proper": 11, "ha": [0, 2, 4, 5, 8, 10, 11, 12, 16, 18, 19], "had": [2, 4, 5, 12, 16, 18], "halt": [1, 3, 4, 5, 10, 13, 14, 18, 19], "hand": [5, 12, 13, 19], "handl": 19, "handle_submit": 3, "hao": 18, "happen": [3, 12, 13, 18, 19], "hard": [4, 13, 19], "harder": 19, "hardest": 19, "hash": [1, 3, 4, 5, 12, 13, 14, 16, 17, 18], "hash_found": 12, "hash_hash": 12, "hash_is_it": 12, "hash_on": 12, "hasten": 19, "have": [0, 1, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 18, 19], "he": 12, "heart": 18, "heartsuit": 18, "height": 11, "help": [3, 4, 13], "here": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13, 16, 18, 19], "hh": 12, "hi": [12, 18], "hide": 3, "hide_column": 13, "hint": [1, 5, 10, 19], "ho": 12, "hold": [5, 13, 19], "homework": 11, "homomorph": 1, "hope": 0, "host": 0, "how": [1, 2, 3, 10, 13, 16, 19], "howev": [11, 19], "http": [3, 4, 5, 10, 11, 12, 13, 19], "i": [0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19], "id": 1, "idea": [3, 4, 10, 12, 19], "ident": [1, 4], "iff": 1, "ignor": [3, 19], "ii": 18, "illustr": [3, 19], "implement": [10, 18], "import": [1, 3, 4, 5, 8, 10, 11, 12, 13, 19], "improperli": 2, "incident": [3, 19], "includ": [1, 3, 18, 19], "incomplet": 15, "incorpor": [11, 19], "increment": 11, "ind": 11, "inde": [10, 11, 18], "index": [4, 10, 11, 13], "indiana": 0, "indic": [12, 19], "induct": 18, "infin": 18, "infinit": [2, 3, 4, 5, 8, 13, 16], "inform": [2, 4, 5, 12, 13, 19], "initi": 10, "input": [2, 3, 5, 8, 10, 13, 16, 19], "insert": 3, "insid": [0, 2, 5, 12, 13, 18], "inst": 11, "instal": [3, 4, 5, 10, 11, 12, 13, 19], "instanc": 9, "instead": [1, 3, 5, 9], "instr": [11, 19], "instruct": [1, 2, 4, 5, 12, 13, 14, 16, 18], "instruction_typ": 11, "instructor": [0, 19], "intend": [0, 3, 10], "interest": [0, 1, 2, 9, 10, 18], "interpret": [0, 2, 3, 4, 5, 10, 11, 12, 13, 19], "intersect": 1, "introduc": [3, 19], "introduct": 3, "introductori": 3, "intuit": 1, "invention": 18, "invers": 3, "invit": 13, "involv": [1, 8, 12], "ipython": 3, "ipywidget": 3, "is_on": 12, "iself": 13, "isn": [1, 19], "issu": 18, "item": 12, "iter": [1, 10, 12], "ith": 11, "its": [3, 11, 12, 13, 15, 16, 18, 19], "itself": [0, 4, 13, 19], "j": [4, 11, 13], "job": 3, "joint": 19, "jon": 12, "journal": 18, "journei": 3, "judici": 0, "jupyt": 0, "just": [0, 1, 3, 8, 10, 11, 12, 13, 18, 19], "k": [1, 2, 3, 5, 11, 14, 16, 18], "k1": 11, "keep": [1, 3, 10], "keyboard": 3, "kind": [3, 8, 19], "know": [1, 3, 8, 10, 11, 12, 13, 18, 19], "known": 18, "koenig": 18, "l": [1, 11], "lambda": [4, 13], "languag": [0, 3, 4, 10, 16], "larg": [11, 14, 19], "larger": 11, "largest": 14, "last": [2, 3, 5, 8, 13, 18, 19], "last_part": 11, "later": [10, 13, 19], "latex": 0, "lawrenc": 0, "lcl": [1, 8, 14, 16], "lclclcl": 14, "ldot": [1, 11, 18], "lead": [0, 10], "learn": [0, 3], "least": [18, 19], "leav": [3, 4, 10, 19], "left": [1, 3, 4, 13, 16, 18, 19], "leftrightarrow": 18, "lemma": 18, "len": [4, 11, 13], "length": [1, 12, 19], "leq": [1, 5, 14, 16, 18], "leq_m": [9, 18], "less": 10, "lesson": [3, 10, 13], "let": [1, 3, 4, 5, 8, 9, 12, 13, 14, 16, 18, 19], "letter": [1, 12, 18], "level": 3, "life": 19, "light": 8, "like": [0, 1, 3, 4, 8, 9, 10, 12, 13, 19], "line": [4, 5, 10, 12, 18], "linear": 14, "list": [3, 4, 11, 12, 13], "liter": [3, 19], "litt": [1, 11], "littl": [3, 19], "live": 0, "ll": [1, 3, 10, 12, 13, 16, 19], "lmoss": [3, 4, 5, 10, 11, 12, 13, 19], "load": 3, "local": [0, 3], "logic": [0, 8], "long": [3, 10, 12, 19], "longer": 13, "look": [3, 10, 11, 12, 13, 16, 18, 19], "loop": [1, 2, 3, 4, 5, 10, 12, 13], "lost": 10, "lot": 10, "lower": 3, "m": [3, 4, 5, 10, 11, 12, 13, 14, 18, 19], "mach": 1, "machin": [0, 1, 3, 18, 19], "made": [12, 19], "magenta": [4, 13], "mai": [3, 4], "main": [3, 4, 5, 8, 10, 11, 12, 13, 18, 19], "main_loop": 11, "mainli": [0, 10, 11], "make": [0, 1, 2, 4, 12, 13, 18, 19], "mani": [0, 3, 16], "manipul": 12, "map": 18, "mark": [3, 8], "markdown": 0, "marker": 19, "match": [9, 11, 18], "materi": 0, "mathbb": 18, "mathbf": 8, "mathcal": 18, "mathemat": [0, 1, 3], "mathematica": 18, "mathtt": [3, 14, 19], "matric": 8, "matter": [0, 3, 8, 15], "max": 11, "max_list": 11, "max_regist": 11, "maxi": 11, "mbox": [1, 8, 16], "me": [0, 3], "mean": [1, 3, 4, 8, 12, 18, 19], "medium": 0, "meet": [13, 19], "memor": 13, "mention": [1, 3], "method": [13, 19], "middl": [11, 18], "might": [0, 1, 3, 8, 11, 13, 15, 19], "mimic": 19, "mind": [0, 12], "minut": 19, "mn": 10, "model": [3, 19], "modif": 19, "modifi": [3, 10, 13, 16, 19], "monoid": [1, 4], "month": 3, "monu": 11, "moon": 10, "more": [0, 2, 3, 4, 10, 11, 13, 18], "moreov": 4, "mortal": 8, "moss": 0, "most": [0, 1, 2, 3, 10, 16, 18, 19], "move": [3, 4, 10, 12, 13, 19], "move1": 10, "move2": [4, 10, 19], "move3": 13, "move_2_1": [12, 13], "move_3_1": [12, 13], "move_3_4": 4, "move_back": 12, "move_m_n": 4, "move_phas": 12, "move_prog": 11, "move_stuff_around": 12, "moveback": 12, "moveprog": 11, "moveprog_": [1, 4], "moveprogtwoon": 1, "mth": 19, "mu": [0, 18], "much": [0, 3, 13, 18, 19], "mul": 11, "multipl": 3, "multipli": [10, 11, 12], "multiply_loop": 12, "must": [3, 8, 9, 11, 12, 13, 18, 19], "my": [0, 3, 11, 12, 19], "my_str": 3, "n": [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 16, 18, 19], "n1": 11, "n2": 11, "n3": 11, "n_p": 1, "name": [1, 3, 4, 11, 12], "natur": 11, "nbsp": [4, 12, 13, 19], "ne": 18, "necessari": 11, "need": [0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 18, 19], "neither": 11, "never": [2, 12, 18], "new": [0, 1, 3, 10, 12, 19], "new_program": 11, "newer": 18, "next": [2, 3, 5, 10, 11, 12, 13, 18, 19], "nice": 13, "nobodi": 10, "non": [1, 8, 10], "nonperiod": 18, "nor": 11, "northeast": 18, "northwest": 18, "notat": [1, 12, 14], "note": [12, 13, 19], "notebook": [0, 4, 12, 18, 19], "noteworthi": 18, "noth": [2, 3, 13, 18], "notic": [13, 14, 18], "notin": [1, 18], "notion": 1, "now": [3, 4, 8, 10, 11, 12, 13, 16, 18, 19], "nowher": 8, "np": [4, 13], "nth": 19, "nthe": 19, "number": [0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 16, 18, 19], "number_help": 11, "numer": [10, 18], "nw": 18, "o": 1, "object": 3, "oblong": 18, "obtain": 12, "odd": 1, "oe": 12, "off": [4, 10, 13], "offer": 13, "offici": 13, "often": 0, "oh": 12, "ok": 19, "on_button_click": 3, "on_click": 3, "on_submit": 3, "onc": [10, 12, 19], "one": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 17, 18], "one_found": 12, "one_prog": 11, "ones": [3, 8, 12, 18, 19], "onesharp": [1, 3, 4, 5, 10, 11, 12, 13, 19], "onesharp_exponenti": 12, "onesharp_multipli": 12, "onli": [1, 3, 4, 5, 9, 10, 11, 13, 16, 18, 19], "onlin": 0, "onto": [4, 12, 13, 19], "oo": 12, "open": [0, 3, 4], "oper": [1, 4, 18, 19], "optim": 11, "option": [0, 10, 12], "orang": 19, "order": [0, 3, 4, 5, 12, 13, 15, 18, 19], "ordinari": 11, "organ": 12, "origin": [0, 10, 11, 12, 13, 18, 19], "oth": 1, "other": [0, 1, 3, 4, 5, 10, 11, 12, 13, 16, 19], "otherwis": [1, 3, 10, 12], "our": [1, 3, 4, 8, 10, 12, 13, 19], "out": [2, 3, 4, 11, 12, 13, 18, 19], "outer": 11, "outer_fn": 11, "outlin": 19, "output": [3, 4, 10, 13, 19], "outsid": [0, 5, 10], "over": [8, 11, 19], "overal": [0, 3, 4, 12, 19], "overhead": 1, "overlin": [1, 11, 18], "own": [15, 19], "p": [1, 2, 3, 4, 5, 11, 13, 16, 19], "p1": 12, "p_": 14, "p_n": 14, "packag": [0, 12], "page": 18, "pair": 19, "paper": [0, 12, 18], "par": 11, "paradox": 13, "parallel": [1, 18], "param": 3, "parenthes": 3, "pars": [3, 4, 11, 12, 19], "parse_explain": [3, 4], "parser": 19, "part": [0, 3, 4, 5, 8, 10, 12, 13, 18, 19], "particular": [1, 8, 10, 11, 19], "pass": 12, "past": 0, "path": 8, "pattern": 18, "pcp": [8, 9], "pd": [4, 13], "pd_invers": 11, "pd_inverse_zero": 11, "pencil": 12, "peopl": [3, 8, 19], "perfectli": 3, "perhap": 3, "pertain": 11, "phi": 19, "phi_q": 1, "phifn": [1, 16], "phifn_": [1, 13, 14], "phifn_a": 16, "phifn_p": [1, 13, 16, 18], "phifn_q": 16, "phifn_u": 19, "phifn_x": [1, 16, 19], "philosoph": 15, "phixi": 13, "pip": [3, 4, 5, 10, 11, 12, 13, 19], "place": [5, 8, 11, 13, 15, 19], "plai": 11, "plan": 11, "plane": 18, "pleas": 3, "point": [1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 19], "pointer": 0, "posit": 9, "possibl": [0, 1, 8, 10, 13, 18, 19], "possibli": [3, 5, 19], "post": 9, "potenti": [8, 18], "power": 12, "pp": 18, "ppcp": 9, "pr": [11, 12], "practic": 3, "pre": 19, "pre_pr": 12, "pre_program": 4, "preced": 13, "precis": 19, "pred": [11, 12], "predecessor": 12, "predict": 3, "predprog": 11, "prefer": [0, 1, 5, 19], "prefix": 12, "prepar": 0, "present": [0, 3, 8, 13, 18], "preserv": [1, 16, 19], "press": 3, "pretti": [0, 12, 19], "previou": [3, 4], "primarili": 0, "prime_prog": 11, "primit": [0, 10], "primitive_recurs": 11, "print": [3, 11], "probabl": [3, 13, 19], "problem": [2, 11, 13, 18], "process": [3, 4, 10, 12], "produc": [11, 14], "product": 12, "prog": 11, "progam": 12, "proglist": 11, "program": [0, 14, 18], "proj": 11, "proj_prog": 11, "proj_prog_offici": 11, "project": [0, 11], "promis": 19, "proof": [0, 8, 14, 15, 16, 18], "proper": 18, "proper_divisor": 11, "properli": [3, 14, 18], "propert": 18, "properti": [4, 5, 8, 10, 11, 13, 16, 18, 19], "proposit": 5, "prorgram": 19, "prove": [1, 5, 9, 17, 18], "provid": [0, 3, 5], "pseudocod": 10, "pullum": 16, "punctuat": 3, "purpos": [1, 19], "put": [1, 10, 13, 18, 19], "python": [0, 1, 3, 4, 5, 10, 11, 12, 13, 19], "q": [1, 3, 4, 5, 11, 13, 16], "quadeq": [14, 16], "quadiff": [16, 18], "quadrant": [8, 9, 18], "question": [3, 8], "queue": 3, "quickli": [3, 10], "quit": [0, 12, 19], "quot": [3, 4, 12], "r": 11, "r1": [1, 2, 3, 4, 10, 12, 13, 19], "r2": [3, 4, 10, 12, 13, 19], "r3": [3, 4, 10, 12, 13, 19], "r4": [3, 4, 10, 19], "r5": [10, 19], "r6": [10, 19], "r7": [10, 19], "r8": 19, "rais": 12, "ran": 2, "rang": 11, "raphael": 18, "rather": [0, 13, 18], "re": [4, 13], "reach": [2, 5, 12], "read": [0, 3, 4, 11, 12, 13, 18], "reader": [0, 19], "readi": 19, "real": [3, 19], "realli": [3, 10, 19], "reason": [5, 10, 11, 13], "recal": [10, 18, 19], "recognit": 18, "record": 1, "rectangl": 18, "recurs": [0, 1, 10, 19], "red": [4, 8, 10, 13], "refer": [0, 12], "regist": [0, 1, 2, 3, 4, 10, 12, 13, 18], "relat": [8, 13], "relev": [1, 3, 19], "reliabl": 18, "remain": [2, 19], "remark": 18, "rememb": 10, "remov": [3, 13], "remove_multiple_blank": 3, "repeatedli": 4, "replac": 3, "repres": [3, 10], "request": 8, "requir": [3, 5, 11, 12, 13, 19], "rest": [3, 10, 12, 13, 18, 19], "result": [0, 4, 8, 10, 12, 13, 16, 18, 19], "return": [3, 4, 11, 12, 19], "returna": 12, "returnb": 12, "rev": 12, "reveal": 5, "revers": 12, "reverse_idea": 12, "review": 3, "revolut": 0, "rewrit": 5, "right": [1, 2, 3, 16, 18, 19], "rk": [2, 5], "rm": [4, 11], "rn": [1, 3, 4, 11], "robinson": 18, "rocket": 10, "rone": [1, 4, 13], "root": 13, "row": [8, 9, 18], "rp": 4, "rtwo": 13, "run": [0, 1, 2, 4, 5, 12, 13, 16, 18, 19], "running_total_of_pd_invers": 11, "s_prog": 11, "sai": [1, 2, 3, 4, 5, 8, 11, 13, 19], "same": [0, 3, 4, 5, 8, 10, 11, 12, 13, 18, 19], "sameth": 12, "sane": 12, "sane_exponenti": 12, "sane_multipli": 12, "saniti": [11, 19], "satisfi": [0, 8, 10], "satisfy": 15, "save": 0, "saw": [3, 12, 18, 19], "scan": 3, "scienc": [0, 1], "scratch": 13, "screen": 3, "se": 18, "search": 8, "second": [2, 3, 4, 10, 11, 12, 13, 18, 19], "second_end": 12, "second_index": 11, "section": [4, 8, 10, 15, 18, 19], "see": [0, 1, 2, 3, 8, 10, 11, 13, 19], "seek": 10, "seem": [11, 13, 19], "seen": [1, 3, 4, 10, 12, 13, 19], "segmet": 12, "select": [0, 8], "self": [0, 3, 19], "self1": 19, "selfknow": 13, "semant": [1, 13, 18], "semanticsalt": 1, "semest": 0, "send": 10, "sens": [18, 19], "separ": 19, "sequenc": [1, 3, 8, 12, 13], "seri": 19, "servic": 0, "set": [5, 8, 9, 11, 13, 16, 18], "set_properti": [4, 13], "settl": 10, "setuptool": [3, 4, 5, 10, 11, 12, 13, 19], "seuss": 16, "seven": 3, "sever": [0, 19], "sgn": 11, "sgn_bar": 11, "shade": 10, "shall": [1, 19], "share": 8, "sharp": 12, "shell": 10, "shift": 3, "shold": 12, "short": 19, "shorten": 13, "shortli": 3, "should": [0, 3, 4, 8, 10, 11, 12, 13, 19], "shouldn": 12, "show": [0, 1, 3, 4, 5, 9, 12, 13, 14, 18, 19], "shown": [3, 4, 10, 12, 18, 19], "side": [3, 8, 18], "signific": 3, "silli": 19, "simeq": [1, 13, 14, 19], "similar": [0, 1, 5, 10, 18, 19], "similarli": [4, 10, 19], "simpl": [3, 10, 19], "simpler": 18, "simplest": 4, "simpli": [0, 1, 19], "simplifi": [3, 19], "simul": 19, "sinc": [0, 3, 4, 5, 8, 10, 11, 13, 18, 19], "singl": [1, 3, 12, 19], "situat": [1, 18], "six": 19, "sketch": 19, "skim": 3, "skip": [0, 10], "slant": 3, "slight": 1, "slightli": 13, "slow": 11, "slowli": 3, "small": [1, 3, 13, 18], "smallest": 19, "snapshot": 19, "snippet": 12, "so": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 16, 18, 19], "societi": 0, "solid": [4, 13], "solut": 11, "solv": [2, 3, 11], "some": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 19], "someon": [12, 19], "someth": [3, 10, 13, 19], "sometim": [1, 19], "soon": [3, 10, 13], "sort": 13, "sourc": [10, 18], "space": [3, 8, 12, 19], "speak": 19, "special": [2, 8, 10, 12], "specif": [10, 11, 19], "specifi": 3, "spell": 13, "spirit": 16, "spit": 13, "squar": [3, 8, 12, 14, 18], "st": 12, "stackoverflow": 3, "stage": 1, "stand": 11, "standard": [0, 1], "stare": 5, "start": [0, 1, 2, 3, 4, 8, 10, 11, 12, 13, 18, 19], "statement": [3, 5, 8, 12], "statment": 19, "step": [1, 4, 10, 13, 18, 19], "step_by_step": [3, 11], "still": 19, "stop": [2, 3], "store": 12, "str": 11, "straight": [1, 3], "straightforward": 19, "strang": [0, 13], "strictli": 19, "string": [3, 11, 12, 13], "strip": 10, "strongli": 5, "stuck": 5, "student": [0, 19], "studi": 1, "stuff": 10, "style": [4, 13], "sub": [11, 13], "subject": [0, 19], "subprogram": 19, "subset": 18, "subseteq": [1, 3, 18], "succ": 10, "success": [3, 19], "successor": [11, 12], "successor_prog": 11, "suggest": [12, 19], "sum": 10, "summar": [3, 13], "superscript": 3, "suppli": 8, "support": 0, "suppos": [1, 2, 3, 4, 5, 9, 10, 13, 14, 16, 18, 19], "sure": [3, 19], "surround": [3, 12], "sw": 18, "swap": 4, "swoop": 3, "sy": 11, "symbol": [0, 1, 3, 4, 8, 10, 12, 13, 18, 19], "syntax": 4, "syntaxerror": 3, "system": [8, 18], "t": [0, 1, 3, 8, 10, 11, 12, 13, 18, 19], "t_0": [8, 18], "tabl": [3, 4, 13, 19], "tail": 3, "take": [1, 3, 4, 5, 10, 12, 13, 16, 18, 19], "talk": [18, 19], "tame": 13, "tan": [4, 10, 13], "task": 8, "taught": 0, "teach": 19, "technic": [11, 18], "techniqu": 19, "tell": [8, 10, 11, 12, 19], "temporari": 10, "tempt": 19, "terminologi": 3, "test": 19, "text": [0, 3, 4, 13], "textbook": 0, "th": [12, 18, 19], "than": [0, 1, 2, 3, 11, 12, 13, 18], "thatt": 19, "thei": [1, 3, 4, 10, 19], "them": [0, 2, 3, 4, 10, 11, 12, 13, 19], "themselv": [1, 11, 16, 19], "theorem": [0, 15, 18, 19], "theoret": 10, "theori": [0, 1, 3, 10, 16], "theorist": 0, "therefor": [13, 19], "thi": [0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 16, 18], "thing": [3, 8, 11, 12, 13, 18, 19], "think": [12, 13, 18, 19], "third": [3, 11, 12], "those": [0, 1, 3, 18, 19], "though": 15, "three": [1, 4, 5, 10, 12, 13, 18, 19], "through": [3, 10, 12, 13], "throughout": 19, "thu": [12, 18, 19], "tidi": [16, 18], "tile": [0, 9, 15], "tile_1": 9, "tile_2": 9, "time": [0, 2, 3, 4, 8, 10, 11, 13, 18, 19], "titl": [3, 4, 11, 13, 19], "to_incr": 11, "to_us": 11, "togeth": [1, 3, 11, 18, 19], "too": [0, 3], "took": [12, 18, 19], "tool": [0, 4, 11], "top": [0, 3, 4, 5, 8, 10, 11, 12, 13, 18], "topic": 0, "total": [1, 14, 18], "touchi": 10, "toward": 16, "trade": [13, 19], "tradit": [0, 10], "tranfer": 2, "transer": 5, "transfer": [2, 4, 5, 12, 13, 18, 19], "translat": 11, "treat": 0, "treatment": [0, 10], "tree": 11, "trial": 11, "triangl": 3, "trick": [13, 19], "trivial": 8, "true": 11, "truli": 19, "try": [0, 2, 3, 4, 13, 19], "tt": [8, 13], "tupl": 1, "ture": [1, 3, 10], "turn": [3, 4, 8, 10, 19], "tutori": 3, "twin": 13, "two": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 18, 19], "two_place_fn_value_on": 11, "type": [2, 3], "typic": 13, "u": [1, 3, 4, 5, 10, 11, 12, 13, 19], "unari": [3, 10, 14, 19], "unchang": 19, "undecid": [0, 8, 15, 16, 17, 18], "undefin": [1, 12], "under": [1, 11], "underscor": 12, "understand": [3, 4, 8, 13, 19], "understood": [3, 19], "union": 5, "uniqu": 18, "univers": [0, 14], "unless": 1, "unlimit": 8, "unpars": [3, 4, 11, 12], "unus": 19, "unwant": 5, "up": [0, 3, 4, 10, 13, 16, 19], "uparrow": [1, 16], "updat": [10, 19], "upon": [1, 19], "upper": 11, "uppos": 18, "us": [1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19], "usag": 1, "used_reg": 11, "usual": [2, 10, 11, 12, 13, 18], "v": [3, 11], "valu": [3, 10, 11], "variabl": [3, 11], "variant": [0, 18], "variou": [0, 19], "ve": [10, 13], "veri": [3, 4, 8, 10, 13, 19], "verif": 10, "versa": 1, "version": [5, 9, 13, 16], "via": 19, "vice": 1, "view": 18, "w": [1, 12], "w_": 12, "w_1": [2, 12], "w_2": [2, 12], "w_3": 2, "w_n": 12, "w_p": 1, "wa": [2, 10, 12, 18, 19], "wai": [0, 2, 3, 4, 8, 10, 11, 12, 13, 18, 19], "wake": 0, "wang": 18, "want": [1, 3, 4, 5, 8, 10, 11, 12, 13, 16, 18, 19], "we": [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19], "web": 0, "weird": 19, "welcom": 3, "well": [0, 3, 12, 13, 18, 19], "were": [4, 5, 10, 19], "what": [0, 1, 4, 5, 11, 13, 18, 19], "whatev": 13, "when": [1, 3, 4, 5, 8, 10, 11, 12, 13, 16, 18, 19], "whenev": 4, "where": [1, 11, 14, 16, 18, 19], "wherea": 19, "whether": [2, 8, 11, 18], "which": [0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 14, 16, 18, 19], "whichev": [12, 19], "while": [2, 3, 4, 19], "white": [4, 13], "who": [12, 19], "whole": 18, "whose": [3, 18], "why": [1, 2, 4, 13], "wide": 10, "widget": 3, "willing": 10, "wish": 10, "without": [2, 3, 4, 12, 19], "wok": 19, "wonder": 11, "word": [1, 2, 3, 8, 10, 12, 13, 16, 18, 19], "work": [0, 1, 2, 3, 4, 10, 11, 13, 18, 19], "world": 1, "worldwid": 0, "worri": [18, 19], "would": [0, 1, 2, 3, 4, 5, 10, 12, 13, 16, 18, 19], "wouldn": 13, "write": [0, 1, 3, 5, 10, 11, 13, 19], "writeprog": [1, 4, 13], "writetotwo": 4, "written": [3, 4, 11, 12, 13, 19], "wrong": 8, "x": [1, 2, 3, 4, 9, 10, 11, 13, 16, 19], "x_1": [1, 11], "x_i": 1, "x_n": [1, 11], "y": [1, 4, 13, 16, 19], "ye": 8, "year": [0, 3], "yellow": [8, 19], "yet": 9, "yield": 13, "you": [1, 2, 3, 4, 10, 12, 13, 19], "your": [3, 4, 10, 11, 12, 13, 19], "yourself": [3, 19], "z": [1, 4, 8, 11, 13], "z_empti": 11, "z_prog": 11, "zero": [10, 11], "zero_place_fn_value_on": 11, "\u03c6": 13, "\u03c6bump": 10, "\u03c6write": 13, "\u03c6x": 13}, "titles": ["Invitation to Computability", "Functions defined by programs", "When does a program halt?", "First steps", "Simple programs", "Tidy programs", "What is coding?", "Computability", "Algorithmic problems", "Reduction of one problem to another", "Programs for arithmetic", "Primitive Recursion", "Tools to help write programs", "Self-Replicating Programs", "The busy beaver problem", "Logic", "The halting problem", "Post\u2019s Correspondence Problem", "Tiling", "Universal Programs"], "titleterms": {"": [8, 10, 17], "1": [3, 11], "1946": 8, "2": 11, "3": 11, "5": 11, "A": 19, "For": 11, "That": 11, "The": [3, 4, 10, 11, 12, 13, 14, 16, 18, 19], "about": 11, "abstract": 7, "add": [11, 19], "addit": 10, "after": 11, "algorithm": 8, "all": 11, "am": 11, "an": 11, "anoth": 9, "ar": [3, 11], "argument": [1, 19], "arithmet": 10, "associ": 11, "awai": 11, "basic": 11, "bb": 10, "beaver": 14, "becaus": 11, "begin": 11, "beig": 19, "below": 11, "book": 0, "busi": 14, "c": 11, "can": 11, "cell": 3, "chang": 11, "characterist": 1, "check": 11, "code": [6, 19], "command": 3, "comparison": 10, "comput": [0, 1, 7], "concret": 7, "convers": 18, "copi": 4, "corollari": 16, "correspond": [8, 17], "cours": 11, "credit": 18, "defin": 1, "definit": [1, 2, 5, 11, 18], "denot": 11, "diag": 13, "do": 11, "doe": [2, 12], "english": 13, "enter": 11, "enumer": 1, "equival": 5, "error": 11, "exampl": [1, 11, 12, 18], "exercis": [11, 12, 13], "express": 11, "find": 11, "finit": 7, "first": 3, "formal": [2, 18], "from": 11, "full": 3, "function": [1, 10, 11], "further": 12, "go": [11, 12], "goal": 18, "goe": 11, "green": 19, "halt": [2, 11, 16], "help": 12, "how": [11, 12], "i": [6, 11], "idea": 13, "implement": 19, "improv": 16, "in_place_program": 11, "infinit": 7, "inform": 11, "input": [1, 11, 12], "insepct": 11, "insid": 3, "instead": 11, "instruct": [3, 19], "invit": 0, "jupyt": 3, "label": 12, "lesson": 19, "like": 11, "line": [3, 11], "littl": 11, "logic": 15, "long": 11, "mai": 12, "mani": 19, "matrix": 8, "model": 7, "modifi": 4, "more": [1, 19], "move_2_1": 4, "multipl": 10, "notat": [4, 18], "note": 11, "notebook": [3, 11], "observ": 18, "one": [9, 16, 19], "ones": 11, "oper": 3, "our": 18, "output": 11, "p": 18, "partial": 1, "plan": 19, "point": 18, "post": [8, 17], "preserv": 11, "prime": 11, "primit": 11, "problem": [8, 9, 14, 16, 17], "program": [1, 2, 3, 4, 5, 10, 11, 12, 13, 16, 19], "project": 19, "realli": 11, "recurs": 11, "reduct": 9, "regist": [11, 16, 19], "remark": 19, "remov": 10, "replic": 13, "report": 11, "represent": 10, "restat": 18, "result": 11, "run": [3, 11], "saniti": 12, "segment": 12, "self": 13, "sens": 11, "set": [1, 3], "shown": 11, "simpl": 4, "simplif": 19, "some": 18, "special": 11, "statement": 18, "step": 3, "strong": 5, "sub": 19, "subterm": 11, "successor": 10, "summari": 13, "superflu": 10, "syntax": 11, "syntax_check": 11, "take": 11, "term": 11, "test": 11, "than": 19, "thei": 11, "thi": [11, 19], "thu": 11, "tidi": 5, "tile": [8, 18], "tool": [3, 12], "tt": 18, "two": 1, "unboundedli": 19, "univers": 19, "us": [0, 3], "v": 7, "what": [3, 6, 12], "whatev": 11, "when": 2, "which": 11, "word": 4, "work": 12, "workflow": 12, "write": [4, 12], "you": 11, "zero": 1}}) \ No newline at end of file +Search.setIndex({"alltitles": {"": [[1, "phi-notation"], [1, "introOneSharp/functions-exercise-1"], [1, "introOneSharp/functions-exercise-2"], [1, "introOneSharp/functions-exercise-3"], [1, "definition-4"], [1, "introOneSharp/functions-exercise-5"], [1, "introOneSharp/functions-exercise-6"], [1, "introOneSharp/functions-exercise-7"], [1, "introOneSharp/functions-exercise-8"], [1, "introOneSharp/functions-exercise-9"], [1, "introOneSharp/functions-exercise-10"], [1, "definition-11"], [1, "introOneSharp/functions-exercise-12"], [2, "on-halting"], [2, "introOneSharp/haltDef-exercise-1"], [3, "introOneSharp/instructions-exercise-0"], [3, "try-to-figure"], [3, "introOneSharp/instructions-exercise-2"], [3, "introOneSharp/instructions-exercise-3"], [4, "introOneSharp/move_copy_write-exercise-0"], [4, "introOneSharp/move_copy_write-exercise-1"], [4, "introOneSharp/move_copy_write-exercise-2"], [4, "introOneSharp/move_copy_write-exercise-3"], [4, "introOneSharp/move_copy_write-exercise-4"], [4, "introOneSharp/move_copy_write-exercise-5"], [4, "definition-6"], [4, "introOneSharp/move_copy_write-exercise-7"], [5, "proposition-0"], [5, "introOneSharp/tidy-exercise-1"], [5, "tidiness"], [5, "back-transfer"], [5, "introOneSharp/tidy-exercise-4"], [8, "issues/problems-exercise-0"], [8, "issues/problems-exercise-1"], [9, "issues/reduction-exercise-0"], [9, "issues/reduction-exercise-1"], [9, "issues/reduction-exercise-2"], [10, "more_programs/arithmetic-exercise-0"], [10, "more_programs/arithmetic-exercise-1"], [10, "more_programs/arithmetic-exercise-2"], [10, "more_programs/arithmetic-exercise-3"], [13, "self_writing-exercise-0"], [13, "self_writing-exercise-1"], [13, "self_writing-exercise-2"], [13, "self_writing-exercise-3"], [13, "self_writing-exercise-4"], [13, "self_writing-exercise-5"], [13, "self_writing-exercise-6"], [13, "self_writing-exercise-7"], [13, "self_writing-exercise-8"], [13, "self_writing-exercise-9"], [14, "theorem-0"], [14, "undecidability/busyBeaver-exercise-1"], [14, "undecidability/busyBeaver-exercise-2"], [16, "theorem-0"], [16, "corollary-1"], [16, "corollary-2"], [16, "corollary-3"], [16, "undecidability/haltingProblem-exercise-4"], [18, "theorem-0"], [18, "definition-1"], [18, "undecidability/tiling-exercise-2"], [18, "undecidability/tiling-exercise-3"], [19, "my-definition"], [19, "universal/universal-exercise-1"], [19, "universal/universal-exercise-2"], [19, "universal/universal-exercise-3"]], " (Post, 1946)": [[8, "theorem-2"]], "A remark on the beige and green sub-programs": [[19, "a-remark-on-the-beige-and-green-sub-programs"]], "Addition": [[10, "addition"]], "Algorithmic problems": [[8, null]], "Basic functions in this notebook": [[11, "basic-functions-in-this-notebook"]], "Characteristic functions": [[1, "characteristic-functions"]], "Coding unboundedly many registers into one": [[19, "coding-unboundedly-many-registers-into-one"]], "Comparison": [[10, "comparison"]], "Computability": [[7, null]], "Computably enumerable sets": [[1, "computably-enumerable-sets"]], "Concrete and Abstract Models of Computation": [[7, "concrete-and-abstract-models-of-computation"]], "Corollaries": [[16, "corollaries"]], "Credits": [[18, null]], "Definition": [[1, null], [1, null], [2, null], [5, null]], "Diag": [[13, "diag"]], "Example": [[18, null], [18, null]], "Examples": [[1, null], [1, null]], "Examples of primitive recursive terms and functions": [[11, "examples-of-primitive-recursive-terms-and-functions"]], "Examples of segments:": [[12, "examples-of-segments"]], "Exercises": [[13, "exercises"]], "Finite vs. Infinite": [[7, "finite-vs-infinite"]], "First steps": [[3, null]], "Formal statement": [[18, "formal-statement"]], "Functions defined by programs": [[1, null]], "Functions of two or more arguments": [[1, "functions-of-two-or-more-arguments"]], "Functions of zero inputs": [[1, "functions-of-zero-inputs"]], "Further programs and exercises": [[12, "further-programs-and-exercises"]], "Halting: the formal definitions": [[2, "halting-the-formal-definitions"]], "How does Sanity work?": [[12, "how-does-sanity-work"]], "How to run insepct the terms and run the 1# programs.": [[11, "how-to-run-insepct-the-terms-and-run-the-1-programs"]], "I am going to change exercise 5(c) a little.": [[11, "i-am-going-to-change-exercise-5-c-a-little"]], "Implementing add# instructions": [[19, "implementing-add-instructions"]], "Improvement for one-register programs": [[16, "improvement-for-one-register-programs"]], "Invitation to Computability": [[0, null]], "Logic": [[15, null]], "Matrix problems": [[8, "matrix-problems"]], "Modifying move_2_1": [[4, "modifying-move-2-1"]], "Multiplication": [[10, "multiplication"]], "Notation": [[18, null]], "Our goal": [[18, null]], "Partial functions": [[1, "partial-functions"]], "Post\u2019s Correspondence Problem": [[17, null]], "Post\u2019s correspondence problem": [[8, "post-s-correspondence-problem"]], "Primitive Recursion": [[11, null]], "Primitive recursive terms, and the functions which they denote": [[11, "primitive-recursive-terms-and-the-functions-which-they-denote"]], "Problem": [[8, null]], "Problems": [[8, null]], "Programs for arithmetic": [[10, null]], "Project": [[19, "project"]], "Reduction of one problem to another": [[9, null]], "Removing superfluous #s": [[10, "removing-superfluous-s"]], "Restatement of our goal": [[18, null]], "Running programs in notebook cells": [[3, "running-programs-in-notebook-cells"]], "Self": [[13, "self"]], "Self-Replicating Programs": [[13, null]], "Simple programs": [[4, null]], "Simplification": [[19, "simplification"]], "Some observations": [[18, "some-observations"]], "Special note: the in_place_programs in this notebook do not halt in the sense of the course. Instead, they preserve their inputs. For example, run the program associated with add below as shown below it. (That is, take away the # from the beginning of the lines after the definition. The 2 inputs are preserved and the result goes in register 3.)": [[11, "special-note-the-in-place-programs-in-this-notebook-do-not-halt-in-the-sense-of-the-course-instead-they-preserve-their-inputs-for-example-run-the-program-associated-with-add-below-as-shown-below-it-that-is-take-away-the-from-the-beginning-of-the-lines-after-the-definition-the-2-inputs-are-preserved-and-the-result-goes-in-register-3"]], "Strong equivalence to tidy programs": [[5, "strong-equivalence-to-tidy-programs"]], "Summary": [[13, null]], "Syntax check": [[11, "syntax-check"]], "Testing the \u2018prime\u2019 primitive recursive term": [[11, "testing-the-prime-primitive-recursive-term"]], "The + notation on words": [[4, "the-notation-on-words"]], "The 1# instruction set": [[3, "the-1-instruction-set"]], "The busy beaver problem": [[14, null]], "The converse": [[18, "the-converse"]], "The definition of \\TT(p)": [[18, "the-definition-of-tt-p"]], "The full set of instructions of 1#": [[3, "the-full-set-of-instructions-of-1"]], "The halting problem": [[16, null]], "The idea in English": [[13, "the-idea-in-english"]], "The inputs to sanity": [[12, "the-inputs-to-sanity"]], "The output can be long because the function syntax_check is recursive, and thus reports information about all the subterms of whatever you enter.": [[11, "the-output-can-be-long-because-the-function-syntax-check-is-recursive-and-thus-reports-information-about-all-the-subterms-of-whatever-you-enter"]], "The plan for this lesson": [[19, "the-plan-for-this-lesson"]], "The point": [[18, null]], "The successor function": [[10, "the-successor-function"]], "Tidy programs": [[5, null]], "Tiling": [[18, null]], "Tiling problems": [[8, "tiling-problems"]], "Tools to help write programs": [[12, null]], "Universal Programs": [[19, null]], "Universal programs of more than one argument": [[19, "universal-programs-of-more-than-one-argument"]], "Useful command-line tools": [[3, "useful-command-line-tools"]], "Useful operations inside a Jupyter notebook": [[3, "useful-operations-inside-a-jupyter-notebook"]], "Using the book": [[0, "using-the-book"]], "What are programs?": [[3, "what-are-programs"]], "What is coding?": [[6, null]], "What may go into a segment?": [[12, null]], "When does a program halt?": [[2, null]], "Workflow": [[12, "workflow"]], "You can enter a line like the ones below to check that an expression really is a term, or to find an error.": [[11, "you-can-enter-a-line-like-the-ones-below-to-check-that-an-expression-really-is-a-term-or-to-find-an-error"]], "bb representation": [[10, "bb-representation"]], "copy": [[4, "copy"]], "labels": [[12, null]], "move_2_1": [[4, "move-2-1"]], "write": [[4, "write"]]}, "docnames": ["index", "introOneSharp/functions", "introOneSharp/haltDef", "introOneSharp/instructions", "introOneSharp/move_copy_write", "introOneSharp/tidy", "issues/coding", "issues/issues", "issues/problems", "issues/reduction", "more_programs/arithmetic", "more_programs/primitive_recursion", "more_programs/sanity", "self_writing", "undecidability/busyBeaver", "undecidability/church", "undecidability/haltingProblem", "undecidability/post", "undecidability/tiling", "universal/universal"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9}, "filenames": ["index.md", "introOneSharp/functions.ipynb", "introOneSharp/haltDef.ipynb", "introOneSharp/instructions.ipynb", "introOneSharp/move_copy_write.ipynb", "introOneSharp/tidy.ipynb", "issues/coding.ipynb", "issues/issues.ipynb", "issues/problems.ipynb", "issues/reduction.ipynb", "more_programs/arithmetic.ipynb", "more_programs/primitive_recursion.ipynb", "more_programs/sanity.ipynb", "self_writing.ipynb", "undecidability/busyBeaver.ipynb", "undecidability/church.ipynb", "undecidability/haltingProblem.ipynb", "undecidability/post.ipynb", "undecidability/tiling.ipynb", "universal/universal.ipynb"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 4, 9, 11, 12, 13, 14, 15, 16, 18, 19], "0": [1, 8, 10, 11, 13, 18], "0_": 1, "0_p": 1, "1": [0, 1, 2, 4, 5, 10, 12, 13, 14, 16, 18, 19], "10": [5, 10, 12, 13, 14, 19], "100": 10, "1000": 10, "10000": 10, "10001": 10, "1001": 10, "10010": 10, "10011": 10, "101": 10, "1010": 10, "1011": 10, "11": [2, 3, 4, 10, 11, 12, 13, 19], "110": 10, "1100": 10, "1100110100001": 12, "1101": 10, "111": [2, 3, 4, 10, 11, 12, 13, 19], "1110": 10, "1111": [2, 3, 4, 5, 10, 11, 12, 13, 19], "11111": [3, 4, 10, 11, 12, 19], "111111": [3, 4, 10, 11, 12, 13, 19], "1111111": [10, 13, 19], "11111111": [3, 10, 11, 12, 19], "111111111": [4, 10, 11, 19], "1111111111": [10, 11, 12, 19], "11111111111": [10, 11, 13], "111111111111": 19, "1111111111111": [10, 11, 19], "11111111111111": 19, "111111111111111": [3, 10, 11, 19], "1111111111111111": 19, "11111111111111111": 19, "111111111111111111": [11, 12, 19], "1111111111111111111": [11, 12], "11111111111111111111": 12, "111111111111111111111": 11, "1111111111111111111111": [12, 19], "11111111111111111111111": [12, 19], "111111111111111111111111": 19, "1111111111111111111111111": [11, 12], "111111111111111111111111111": [12, 19], "1111111111111111111111111111": 19, "11111111111111111111111111111": 12, "11111111111111111111111111111111": 12, "11111111111111111111111111111111111": 19, "1111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111": 11, "11111111111111111111111111111111111111111": 12, "111111111111111111111111111111111111111111": 12, "111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111": 19, "111111111111111111111111111111111111111111111111": 12, "111111111111111111111111111111111111111111111111111111": 19, "111111111111111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111111111111111": 12, "11111111111111111111111111111111111111111111111111111111111111": 19, "11111111111111111111111111111111111111111111111111111111111111111111": 19, "111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 12, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 12, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 12, "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111": 19, "112": 19, "113": 19, "114": 19, "115": 19, "116": 19, "117": 19, "118": 19, "119": 19, "12": [2, 5, 10, 12, 13, 18, 19], "13": [10, 11, 12, 13, 19], "131": 18, "139": 18, "14": [10, 12, 13, 19], "15": [3, 10, 11, 12, 19], "16": [10, 12, 19], "17": [10, 12, 19], "177": 18, "18": [10, 18, 19], "19": [10, 19], "1961": 18, "1971": 18, "1_q": 16, "1n": 19, "2": [1, 2, 3, 4, 5, 10, 12, 13, 14, 16, 18, 19], "20": [10, 12], "204": 13, "209": 18, "22": 19, "24": 18, "243": 12, "25": 18, "26": [5, 18], "2_p": 16, "3": [1, 3, 4, 5, 10, 12, 13, 16, 18, 19], "300": 19, "322": 19, "376": 19, "3px": [4, 13], "4": [1, 3, 4, 5, 10, 11, 12, 13, 16, 18, 19], "40": 18, "41": 18, "43744999": 3, "4743": 18, "4744": 18, "5": [3, 4, 10, 12, 13, 16, 18, 19], "50": 14, "56": 10, "57": 11, "5a": 11, "5b": 11, "5c": 11, "5d": 11, "5e": 11, "6": [4, 10, 11, 12, 13, 19], "608": 19, "6561": 12, "67": 18, "68": 18, "7": [4, 10, 11, 12, 13, 19], "8": [4, 5, 10, 12, 13, 18, 19], "82": 14, "9": [4, 10, 11, 13, 18, 19], "A": [1, 3, 5, 8, 12, 13, 14, 16, 18], "And": [3, 4, 8, 10, 12, 13, 18, 19], "As": [1, 3, 10, 11, 12, 19], "At": [0, 1, 10, 11, 12, 13, 19], "BE": 11, "But": [1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 16, 18, 19], "For": [0, 1, 3, 4, 5, 8, 10, 12, 16, 18, 19], "If": [1, 2, 3, 4, 5, 10, 11, 12, 13, 18, 19], "In": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 18, 19], "It": [0, 1, 2, 3, 4, 8, 10, 11, 12, 13, 15, 18, 19], "Its": 11, "No": 8, "Of": [0, 4, 5, 8, 19], "On": [5, 10, 12], "One": [0, 5, 10, 11, 19], "That": [1, 3, 5, 10, 12, 13, 18, 19], "The": [0, 1, 2, 8, 9], "Then": [1, 3, 4, 10, 11, 12, 13, 14, 16, 18, 19], "There": [0, 1, 2, 3, 5, 8, 10, 11, 14, 16, 18], "These": [3, 10, 12], "To": [2, 3, 8, 11, 12, 13, 18, 19], "With": 12, "_": 18, "__init__": 3, "a_1": 8, "a_2": 8, "a_i": 8, "a_n": 8, "ababaaabbbaabbaababaa": 8, "abbrevi": 3, "abil": [0, 13], "about": [0, 1, 3, 10, 12, 13, 18, 19], "abov": [3, 4, 8, 10, 18, 19], "abstract": [1, 3], "accordingli": 3, "act": 19, "action": [3, 19], "actual": [2, 3, 4, 10, 18, 19], "ad": [18, 19], "add": [0, 1, 2, 3, 4, 8, 10, 12, 13, 18], "add1": [11, 12, 19], "addit": [0, 3, 11, 18, 19], "ado": 3, "adopt": 1, "advanc": 0, "advent": 0, "after": [2, 3, 4, 5, 10, 12, 13, 18, 19], "again": [2, 3, 4, 9, 10, 13, 18, 19], "against": 10, "ahead": [3, 10, 13], "aim": 0, "algorithm": [10, 11], "align": [4, 13], "all": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 14, 16, 18, 19], "all_equ": 11, "allow": [13, 19], "almost": 1, "alon": 19, "along": [3, 10, 11, 18, 19], "alphabet": [1, 3, 8, 19], "alreadi": [3, 10, 19], "also": [0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19], "altern": [0, 1, 4, 5, 19], "although": 10, "altogeth": 10, "alwai": [1, 3, 4, 18], "am": 0, "amount": [0, 11], "an": [0, 1, 2, 3, 4, 5, 8, 10, 12, 13, 16, 18, 19], "ani": [1, 3, 4, 5, 8, 10, 11, 13, 14, 18, 19], "annot": 0, "anoth": [1, 3, 5, 12, 13, 19], "answer": [1, 8, 10, 18], "anyth": [3, 18], "anywai": 13, "appear": [5, 8, 12, 18], "appli": [4, 13, 18], "applic": [12, 13, 19], "appreci": 19, "appropri": 19, "ar": [0, 1, 2, 4, 5, 8, 9, 10, 12, 13, 16, 18, 19], "arang": [4, 13], "arbitrari": 2, "area": 18, "aren": [11, 12, 13], "arg": 11, "argument": [3, 11, 18], "argument_numb": 11, "ari": 11, "ariti": 11, "around": [3, 4, 10], "arrai": [1, 8, 12, 14, 16], "arrow": [3, 4], "artifact": 0, "ask": [3, 10, 11, 19], "aspect": 0, "assembl": 19, "assign": [3, 11], "associ": [1, 4], "assum": [1, 4, 5, 10, 11, 13, 16, 19], "assumpt": [12, 19], "atom": 14, "attempt": 13, "author": 0, "automat": [13, 19], "auxilliari": 4, "avoid": 18, "axi": [4, 9, 13], "b": [1, 2, 3, 5, 8, 9, 11, 12, 18, 19], "b0e0e6": [4, 13], "b1": 11, "b2": 11, "b3": 11, "b4": 11, "b5": 11, "back": [4, 10, 12, 13, 18, 19], "background": [3, 4, 13], "backround": 3, "backward": [3, 4, 5, 10, 11, 12, 13], "balk": 3, "bar": 11, "base": [10, 12], "basi": 19, "basic": [0, 3, 10, 13, 16, 19], "batch": [3, 4], "bb": [11, 12, 14], "becam": 0, "becaus": [3, 12, 13, 16, 18, 19], "becom": 13, "been": [3, 11], "befor": [2, 3, 4, 10, 11, 12, 13, 18, 19], "begin": [0, 1, 2, 3, 4, 8, 12, 13, 14, 16, 18, 19], "behav": [1, 19], "behavior": 3, "behind": [4, 13, 19], "believ": 10, "bell": 18, "below": [2, 3, 4, 5, 8, 10, 12, 13, 18, 19], "besid": 1, "best": [0, 10], "better": [2, 3, 4, 11, 13, 19], "between": [1, 3, 4, 11], "beyond": [2, 19], "big": [1, 13], "bigger": 12, "binari": [10, 12], "binder": 0, "bit": [13, 19], "black": 8, "blank": [3, 18], "bleed": 12, "blue": [8, 10, 13], "blush": 13, "book": 3, "bool1": 11, "bool2": 11, "boolean": 11, "border": [4, 13], "borrow": 12, "borrowing_empti": 12, "borrowing_hash": 12, "borrowing_on": 12, "both": [0, 1, 3, 4, 5, 11], "bottom": [8, 9, 11, 12, 18], "bound": 19, "bowman": 12, "box": [3, 12], "brackect": 12, "bracket": [3, 4], "branch": 13, "brown": [4, 13], "build": [1, 4, 11, 19], "built": 16, "bump": [10, 11], "bump_instr": 11, "button": [0, 3], "button_styl": 3, "c": [1, 2, 5, 12, 18], "call": [0, 1, 3, 4, 8, 9, 10, 11, 12, 13, 18, 19], "can": [1, 3, 4, 5, 8, 9, 10, 12, 13, 16, 18, 19], "cannot": [5, 8, 10, 18, 19], "cap": 1, "captur": 3, "card": 18, "care": 19, "carri": 10, "case": [1, 3, 4, 5, 10, 11, 12, 13, 18, 19], "cdot": [5, 8, 12], "cell": [4, 11, 12, 19], "center": 0, "certainli": 19, "challeng": 19, "chanc": 13, "chang": [0, 3, 4, 10, 18, 19], "chapter": 0, "charact": 3, "characterist": 11, "chart": [3, 4, 19], "check": [3, 4, 10, 13, 19], "chi_a": 1, "chi_equ": 11, "chi_great": 11, "chi_greater_or_equ": 11, "chi_less": 11, "chi_lesser_or_equ": 11, "children": 11, "choic": 10, "choos": 8, "church": [0, 15], "circl": 18, "claim": 10, "clarifi": 12, "clasic": 0, "class": [0, 3, 12, 19], "classic": 3, "cleanup": 10, "clear": [1, 4, 10, 12, 13, 18, 19], "clear_1": [3, 12], "clear_out_fre": 11, "clear_prog": 11, "clearli": [1, 19], "clearprog_1": 1, "clearprog_3": 1, "clever": 13, "click": [0, 3, 18], "clickabl": 0, "close": [1, 12, 19], "cmp": 12, "cocalc": 0, "code": [0, 3, 10, 11, 12, 18], "colab": [0, 3, 12], "colon": 14, "color": [4, 8, 13, 18, 19], "column": [4, 13, 18, 19], "com": [3, 4, 5, 10, 11, 12, 13, 19], "combin": 19, "come": [0, 1, 3, 5, 8, 9, 12, 13, 16, 18, 19], "command": 4, "comment": [3, 5, 18, 19], "common": [8, 11, 14], "commun": 0, "comp": 11, "compar": [10, 11, 12], "compare_prog": 11, "compel": 0, "compil": 11, "complet": [8, 10, 18, 19], "complex": [0, 3], "compos": [3, 11, 18, 19], "composit": [1, 11], "comput": [3, 5, 8, 10, 14, 16, 18, 19], "computation": 10, "concaten": [3, 4, 8], "concept": [0, 3, 12], "conceptu": 1, "concern": [2, 5, 19], "conclud": [13, 18, 19], "concret": 3, "condit": [2, 5, 8, 11], "confirm": 19, "conform": 19, "confus": [10, 18], "connect": [0, 1, 15], "consid": [2, 9, 12, 14, 16, 18], "consist": [8, 12, 13], "construct": [1, 4, 8, 10, 12, 19], "constructor": 11, "contain": [2, 3, 11, 12, 13, 15, 18, 19], "content": [0, 2, 3, 4, 10, 12, 18, 19], "context": 10, "continu": [8, 10, 18, 19], "contradict": [14, 16], "contrast": [1, 2], "control": [2, 3, 5, 18], "convers": 1, "convert": [10, 11], "copi": [3, 10, 11, 12, 18, 19], "copy_1_2_3": [4, 11], "copy_all_forward": 11, "copy_prog": 11, "copyprog_": [4, 16], "copyright": 18, "corner": [8, 18], "corollari": [0, 15], "correct": [3, 11, 12], "correctli": [1, 18], "correspond": [9, 12], "could": [0, 2, 3, 4, 10, 11, 12, 19], "count": [1, 12], "cours": [0, 3, 4, 5, 8, 18, 19], "crazi": 12, "creat": 3, "crucial": 18, "cup": [1, 8], "current": [0, 3, 10], "cyan": 8, "d": [11, 12], "d1": 11, "d4b48c": [4, 13], "d_0": 9, "dai": 3, "dar": [1, 16, 18], "dark": 8, "datafram": [4, 13], "date": 0, "date_input": 3, "dd": 8, "ddd": 11, "deal": [1, 19], "decad": 0, "decid": [1, 8, 9, 10, 16, 18, 19], "decim": 10, "decis": 11, "deepli": 12, "def": [3, 11], "defin": [4, 8, 11, 12, 13, 18], "definit": [3, 9, 10, 13], "delet": [1, 3, 4, 12, 18], "denot": [3, 12], "depend": [18, 19], "deriv": [0, 12], "describ": 19, "descript": [3, 10, 13], "deserv": 15, "design": [4, 9, 10, 19], "desir": [12, 13], "destroi": [10, 19], "detail": [2, 3, 18, 19], "determin": [8, 11, 13, 18, 19], "develop": [0, 10, 11], "devot": 18, "df": [4, 13], "dg": 12, "dg_idea": 12, "diag": [11, 12, 19], "diag_idea": 12, "diagon": 8, "diamondsuit": 18, "did": [11, 12, 13, 18, 19], "didn": 3, "differ": [0, 1, 2, 3, 4, 10, 13, 19], "difficult": 3, "direct": [13, 19], "directli": 10, "disciplin": 0, "discuss": [0, 2, 8, 12, 13, 18, 19], "displai": [3, 12], "distinguish": [11, 18], "diverg": 19, "divid": [3, 4, 19], "do": [1, 2, 3, 4, 5, 10, 13, 19], "document": 12, "doe": [0, 1, 3, 5, 8, 13, 19], "doesn": [1, 3, 8, 11, 13], "domain": 1, "domino": [8, 9], "don": [0, 3, 10, 11, 13, 18], "done": [4, 10, 11, 12, 13, 16, 19], "doubl": 3, "down": [3, 4, 11], "downarrow": [1, 16, 18], "download": 3, "dr": 16, "draft": 19, "draw": 12, "drop": [13, 19], "due": [5, 19], "dure": 2, "e": 11, "each": [1, 3, 4, 5, 8, 12, 13, 16, 19], "earlier": [4, 10, 12, 18, 19], "easi": [3, 18], "easier": [12, 13, 18, 19], "easiest": 19, "easili": 18, "edg": [8, 18], "eight": [8, 18, 19], "either": [2, 3, 4, 5, 10, 11, 12], "elabor": 13, "element": [4, 18], "elif": [3, 4, 11, 13], "ell": 16, "els": [3, 4, 8, 10, 11, 13, 19], "email": 19, "emphas": [3, 4, 8], "empti": [1, 2, 3, 4, 8, 10, 11, 12, 13, 16, 18, 19], "emtpi": 16, "enabl": [0, 10, 11], "enclos": 3, "encod": [18, 19], "encount": 10, "end": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13, 14, 16, 18, 19], "end_strip": 3, "english": [3, 12], "enough": [0, 2, 3, 11, 12, 14, 19], "enter": [3, 4, 19], "entir": [18, 19], "entitl": 18, "entri": 12, "enumer": [0, 5], "environ": [4, 12], "ep": [1, 4, 8], "epilogu": 12, "epsilon": 8, "equal": [10, 11, 13, 19], "equat": [10, 13], "equival": 19, "error": [3, 12], "especi": [0, 1, 19], "essentially_us": 11, "establish": 19, "estim": 14, "etc": [11, 13, 18, 19], "even": [1, 3, 4, 10, 13, 16, 19], "eventu": [1, 4, 10, 12, 19], "ever": 10, "everi": [1, 5, 8, 11, 12, 16, 18, 19], "everyon": [0, 19], "everyth": [0, 13, 19], "exact": 19, "exactli": [4, 5, 8, 13, 18, 19], "examin": 12, "exampl": [2, 3, 4, 5, 8, 9, 10, 16, 19], "exce": 11, "except": [5, 9, 12], "execut": [0, 2, 3, 5, 18, 19], "exercis": [2, 3, 5, 10, 19], "exhibit": 19, "exist": [5, 9, 13], "exit": 3, "exp": [10, 11], "explain": [13, 19], "explan": [3, 4, 13, 19], "explic": 4, "explicit": [0, 5, 10], "explor": 3, "exponenti": [10, 12], "exponentiate_loop": 12, "express": [3, 12], "extend": [3, 13], "ey": 18, "eyebal": 12, "f": [1, 3, 8, 11, 14, 16, 18], "f1": 11, "fact": [3, 5, 8, 14, 18, 19], "factori": 10, "fair": 0, "fairli": 19, "fals": [1, 11], "famili": 1, "familiar": [3, 10], "famou": 16, "far": [0, 3, 18, 19], "fashion": 3, "featu": 0, "featur": [0, 4, 8, 10, 13, 18], "feel": 10, "fell": 3, "felt": 12, "few": [0, 11, 19], "ffffcc": [4, 13], "field": 3, "figur": [2, 3], "file": 0, "fill": 10, "final": [2, 3, 12, 13, 18, 19], "find": [1, 2, 3, 4, 8, 13, 16, 19], "fine": 19, "finish": 2, "finit": [1, 3, 8, 16, 18, 19], "firm": 13, "first": [0, 1, 2, 4, 8, 9, 10, 11, 12, 13, 15, 18, 19], "first_and_third_greater_than_on": 11, "first_end": 12, "first_hash": 12, "first_on": 12, "first_part": 11, "first_third_second_prop": 11, "five": [2, 3], "fix": [2, 18, 19], "flowchart": [12, 19], "fluke": 13, "follow": [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 18, 19], "font": 18, "forev": 18, "forget": [3, 10, 19], "form": [1, 2, 3, 5, 10, 12, 13, 19], "formal": [5, 10], "format": 3, "formul": 10, "forth": 10, "forward": [2, 3, 4, 5, 10, 11, 12, 13], "found": 5, "four": [18, 19], "free": [10, 11, 13, 18], "free_plus_on": 11, "free_reg": 11, "frequent": [1, 8], "from": [0, 1, 3, 4, 5, 8, 10, 12, 13, 16, 18, 19], "front": 0, "full": [4, 10], "fun": 13, "function": [0, 3, 8, 12, 14, 18], "further": [0, 3, 4, 18, 19], "futur": 11, "g": [1, 11], "g3": 11, "g_1": 11, "g_i": 11, "g_k": 11, "g_list": 11, "gener": [1, 8, 10, 13], "geoffrei": 16, "geq": [1, 5, 8, 14], "get": [3, 4, 8, 10, 11, 12, 13, 16, 18, 19], "git": [3, 4, 5, 10, 11, 12, 13, 19], "github": [0, 3, 4, 5, 10, 11, 12, 13, 19], "give": [1, 3, 4, 10, 11, 13, 18, 19], "given": [0, 1, 2, 8, 9, 10, 14, 18, 19], "glimmer": 13, "gloss": [3, 4], "go": [0, 1, 2, 3, 4, 5, 8, 10, 13, 15, 18, 19], "goal": [13, 19], "goe": [2, 4, 10, 13, 18, 19], "good": [3, 11, 18, 19], "googl": 0, "got": 3, "goto": [10, 11, 12, 19], "graph": 8, "greater_than_on": 11, "green": [3, 4, 8, 13, 18], "grei": 8, "group": 19, "guess": 11, "guid": 19, "h": [1, 11], "h_f": 16, "h_proper": 11, "ha": [0, 2, 4, 5, 8, 10, 11, 12, 16, 18, 19], "had": [2, 4, 5, 12, 16, 18], "halt": [1, 3, 4, 5, 10, 13, 14, 18, 19], "hand": [5, 12, 13, 19], "handl": 19, "handle_submit": 3, "hao": 18, "happen": [3, 12, 13, 18, 19], "hard": [4, 13, 19], "harder": 19, "hardest": 19, "hash": [1, 4, 5, 12, 13, 14, 16, 17, 18], "hash_found": 12, "hash_hash": 12, "hash_is_it": 12, "hash_on": 12, "hasten": 19, "have": [0, 1, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 18, 19], "he": 12, "heart": 18, "heartsuit": 18, "height": 11, "help": [3, 4, 13], "here": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13, 16, 18, 19], "hh": 12, "hi": [12, 18], "hide": 3, "hide_column": 13, "hint": [1, 5, 10, 19], "ho": 12, "hold": [5, 13, 19], "homework": 11, "homomorph": 1, "hope": 0, "host": 0, "how": [1, 2, 3, 10, 13, 16, 19], "howev": [11, 19], "http": [3, 4, 5, 10, 11, 12, 13, 19], "i": [0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19], "id": 1, "idea": [3, 4, 10, 12, 19], "ident": [1, 4], "iff": 1, "ignor": [3, 19], "ii": 18, "illustr": [3, 19], "implement": [10, 18], "import": [1, 3, 4, 5, 8, 10, 11, 12, 13, 19], "improperli": 2, "incident": [3, 19], "includ": [1, 3, 18, 19], "incomplet": 15, "incorpor": [11, 19], "increment": 11, "ind": 11, "inde": [10, 11, 18], "index": [4, 10, 11, 13], "indiana": 0, "indic": [12, 19], "induct": 18, "infin": 18, "infinit": [2, 3, 4, 5, 8, 13, 16], "inform": [2, 4, 5, 12, 13, 19], "initi": 10, "input": [2, 3, 5, 8, 10, 13, 16, 19], "insert": 3, "insid": [0, 2, 5, 12, 13, 18], "inst": 11, "instal": [3, 4, 5, 10, 11, 12, 13, 19], "instanc": 9, "instead": [1, 3, 5, 9], "instr": [11, 19], "instruct": [1, 2, 4, 5, 12, 13, 14, 16, 18], "instruction_typ": 11, "instructor": [0, 19], "intend": [0, 3, 10], "interest": [0, 1, 2, 9, 10, 18], "interpret": [0, 2, 3, 4, 5, 10, 11, 12, 13, 19], "intersect": 1, "introduc": [3, 19], "introduct": 3, "introductori": 3, "intuit": 1, "invention": 18, "invers": 3, "invit": 13, "involv": [1, 8, 12], "ipython": 3, "ipywidget": 3, "is_on": 12, "iself": 13, "isn": [1, 19], "issu": 18, "item": 12, "iter": [1, 10, 12], "ith": 11, "its": [3, 11, 12, 13, 15, 16, 18, 19], "itself": [0, 4, 13, 19], "j": [4, 11, 13], "job": 3, "joint": 19, "jon": 12, "journal": 18, "journei": 3, "judici": 0, "jupyt": 0, "just": [0, 1, 3, 8, 10, 11, 12, 13, 18, 19], "k": [1, 2, 3, 5, 11, 14, 16, 18], "k1": 11, "keep": [1, 3, 10], "keyboard": 3, "kind": [3, 8, 19], "know": [1, 3, 8, 10, 11, 12, 13, 18, 19], "known": 18, "koenig": 18, "l": [1, 11], "lambda": [4, 13], "languag": [0, 3, 4, 10, 16], "larg": [11, 14, 19], "larger": 11, "largest": 14, "last": [2, 3, 5, 8, 13, 18, 19], "last_part": 11, "later": [10, 13, 19], "latex": 0, "lawrenc": 0, "lcl": [1, 8, 14, 16], "lclclcl": 14, "ldot": [1, 11, 18], "lead": [0, 10], "learn": [0, 3], "least": [18, 19], "leav": [3, 4, 10, 19], "left": [1, 3, 4, 13, 16, 18, 19], "leftrightarrow": 18, "lemma": 18, "len": [4, 11, 13], "length": [1, 12, 19], "leq": [1, 5, 14, 16, 18], "leq_m": [9, 18], "less": [3, 10], "lesson": [3, 10, 13], "let": [1, 3, 4, 5, 8, 9, 12, 13, 14, 16, 18, 19], "letter": [1, 12, 18], "level": 3, "life": 19, "light": 8, "like": [0, 1, 3, 4, 8, 9, 10, 12, 13, 19], "line": [4, 5, 10, 12, 18], "linear": 14, "list": [3, 4, 11, 12, 13], "liter": 19, "litt": [1, 11], "littl": [3, 19], "live": 0, "ll": [1, 3, 10, 12, 13, 16, 19], "lmoss": [3, 4, 5, 10, 11, 12, 13, 19], "load": 3, "local": [0, 3], "logic": [0, 8], "long": [3, 10, 12, 19], "longer": 13, "look": [3, 10, 11, 12, 13, 16, 18, 19], "loop": [1, 2, 3, 4, 5, 10, 12, 13], "lost": 10, "lot": 10, "lower": 3, "m": [3, 4, 5, 10, 11, 12, 13, 14, 18, 19], "mach": 1, "machin": [0, 1, 3, 18, 19], "made": [12, 19], "magenta": [4, 13], "mai": [3, 4], "main": [3, 4, 5, 8, 10, 11, 12, 13, 18, 19], "main_loop": 11, "mainli": [0, 10, 11], "make": [0, 1, 2, 4, 12, 13, 18, 19], "mani": [0, 3, 16], "manipul": 12, "map": 18, "mark": [3, 8], "markdown": 0, "marker": 19, "match": [9, 11, 18], "materi": 0, "mathbb": 18, "mathbf": 8, "mathcal": 18, "mathemat": [0, 1, 3], "mathematica": 18, "mathtt": [3, 14, 19], "matric": 8, "matter": [0, 3, 8, 15], "max": 11, "max_list": 11, "max_regist": 11, "maxi": 11, "mbox": [1, 8, 16], "me": [0, 3], "mean": [1, 3, 4, 8, 12, 18, 19], "medium": 0, "meet": [13, 19], "memor": 13, "mention": [1, 3], "method": [13, 19], "middl": [11, 18], "might": [0, 1, 3, 8, 11, 13, 15, 19], "mimic": 19, "mind": [0, 12], "minut": [3, 19], "mn": 10, "model": [3, 19], "modif": 19, "modifi": [3, 10, 13, 16, 19], "monoid": [1, 4], "month": 3, "monu": 11, "moon": 10, "more": [0, 2, 3, 4, 10, 11, 13, 18], "moreov": 4, "mortal": 8, "moss": 0, "most": [0, 1, 2, 3, 10, 16, 18, 19], "move": [3, 4, 10, 12, 13, 19], "move1": 10, "move2": [4, 10, 19], "move3": 13, "move_2_1": [12, 13], "move_3_1": [12, 13], "move_3_4": 4, "move_back": 12, "move_m_n": 4, "move_phas": 12, "move_prog": 11, "move_stuff_around": 12, "moveback": 12, "moveprog": 11, "moveprog_": [1, 4], "moveprogtwoon": 1, "mth": 19, "mu": [0, 18], "much": [0, 3, 13, 18, 19], "mul": 11, "multipl": 3, "multipli": [10, 11, 12], "multiply_loop": 12, "must": [3, 8, 9, 11, 12, 13, 18, 19], "my": [0, 3, 11, 12, 19], "my_str": 3, "n": [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 16, 18, 19], "n1": 11, "n2": 11, "n3": 11, "n_p": 1, "name": [1, 3, 4, 11, 12], "natur": 11, "nbsp": [4, 12, 13, 19], "ne": 18, "necessari": 11, "need": [0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 18, 19], "neither": 11, "never": [2, 12, 18], "new": [0, 1, 3, 10, 12, 19], "new_program": 11, "newer": 18, "next": [2, 3, 5, 10, 11, 12, 13, 18, 19], "nice": 13, "nobodi": 10, "non": [1, 8, 10], "nonperiod": 18, "nor": 11, "northeast": 18, "northwest": 18, "notat": [1, 12, 14], "note": [12, 13, 19], "notebook": [0, 4, 12, 18, 19], "noteworthi": 18, "noth": [2, 3, 13, 18], "notic": [13, 14, 18], "notin": [1, 18], "notion": 1, "now": [3, 4, 8, 10, 11, 12, 13, 16, 18, 19], "nowher": 8, "np": [4, 13], "nth": 19, "nthe": 19, "number": [0, 1, 2, 3, 4, 10, 11, 12, 13, 14, 16, 18, 19], "number_help": 11, "numer": [10, 18], "nw": 18, "o": 1, "object": 3, "oblong": 18, "obtain": 12, "odd": 1, "oe": 12, "off": [4, 10, 13], "offer": 13, "offici": 13, "often": 0, "oh": 12, "ok": 19, "on_button_click": 3, "on_click": 3, "on_submit": 3, "onc": [10, 12, 19], "one": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 17, 18], "one_found": 12, "one_prog": 11, "ones": [3, 8, 12, 18, 19], "onesharp": [1, 3, 4, 5, 10, 11, 12, 13, 19], "onesharp_exponenti": 12, "onesharp_multipli": 12, "onli": [1, 3, 4, 5, 9, 10, 11, 13, 16, 18, 19], "onlin": 0, "onto": [4, 12, 13, 19], "oo": 12, "open": [0, 3, 4], "oper": [1, 4, 18, 19], "optim": 11, "option": [0, 10, 12], "orang": 19, "order": [0, 3, 4, 5, 12, 13, 15, 18, 19], "ordinari": 11, "organ": 12, "origin": [0, 10, 11, 12, 13, 18, 19], "oth": 1, "other": [0, 1, 3, 4, 5, 10, 11, 12, 13, 16, 19], "otherwis": [1, 3, 10, 12], "our": [1, 3, 4, 8, 10, 12, 13, 19], "out": [2, 3, 4, 11, 12, 13, 18, 19], "outer": 11, "outer_fn": 11, "outlin": 19, "output": [3, 4, 10, 13, 19], "outsid": [0, 5, 10], "over": [8, 11, 19], "overal": [0, 3, 4, 12, 19], "overhead": 1, "overlin": [1, 11, 18], "own": [15, 19], "p": [1, 2, 3, 4, 5, 11, 13, 16, 19], "p1": 12, "p_": 14, "p_n": 14, "packag": [0, 12], "page": 18, "pair": 19, "paper": [0, 12, 18], "par": 11, "paradox": 13, "parallel": [1, 18], "param": 3, "parenthes": 3, "pars": [3, 4, 11, 12, 19], "parse_explain": [3, 4], "parser": 19, "part": [0, 3, 4, 5, 8, 10, 12, 13, 18, 19], "particular": [1, 8, 10, 11, 19], "pass": 12, "past": 0, "path": 8, "pattern": 18, "pcp": [8, 9], "pd": [4, 13], "pd_invers": 11, "pd_inverse_zero": 11, "pencil": 12, "peopl": [3, 8, 19], "perfectli": 3, "perhap": 3, "pertain": 11, "phi": 19, "phi_q": 1, "phifn": [1, 16], "phifn_": [1, 13, 14], "phifn_a": 16, "phifn_p": [1, 13, 16, 18], "phifn_q": 16, "phifn_u": 19, "phifn_x": [1, 16, 19], "philosoph": 15, "phixi": 13, "pip": [3, 4, 5, 10, 11, 12, 13, 19], "place": [5, 8, 11, 13, 15, 19], "plai": 11, "plan": 11, "plane": 18, "pleas": 3, "point": [1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 19], "pointer": 0, "posit": 9, "possibl": [0, 1, 8, 10, 13, 18, 19], "possibli": [3, 5, 19], "post": 9, "potenti": [8, 18], "power": 12, "pp": 18, "ppcp": 9, "pr": [11, 12], "practic": 3, "pre": 19, "pre_pr": 12, "pre_program": 4, "preced": 13, "precis": 19, "pred": [11, 12], "predecessor": 12, "predict": 3, "predprog": 11, "prefer": [0, 1, 5, 19], "prefix": 12, "prepar": 0, "present": [0, 3, 8, 13, 18], "preserv": [1, 16, 19], "press": 3, "pretti": [0, 12, 19], "previou": [3, 4], "primarili": 0, "prime_prog": 11, "primit": [0, 10], "primitive_recurs": 11, "print": [3, 11], "probabl": [3, 13, 19], "problem": [2, 11, 13, 18], "process": [3, 4, 10, 12], "produc": [11, 14], "product": 12, "prog": 11, "progam": 12, "proglist": 11, "program": [0, 14, 18], "proj": 11, "proj_prog": 11, "proj_prog_offici": 11, "project": [0, 11], "promis": 19, "proof": [0, 8, 14, 15, 16, 18], "proper": 18, "proper_divisor": 11, "properli": [3, 14, 18], "propert": 18, "properti": [4, 5, 8, 10, 11, 13, 16, 18, 19], "proposit": 5, "prorgram": 19, "prove": [1, 5, 9, 17, 18], "provid": [0, 3, 5], "pseudocod": 10, "pullum": 16, "punctuat": 3, "purpos": [1, 19], "put": [1, 10, 13, 18, 19], "python": [0, 1, 3, 4, 5, 10, 11, 12, 13, 19], "q": [1, 3, 4, 5, 11, 13, 16], "quadeq": [14, 16], "quadiff": [16, 18], "quadrant": [8, 9, 18], "question": [3, 8], "queue": 3, "quickli": [3, 10], "quit": [0, 12, 19], "quot": [3, 4, 12], "r": 11, "r1": [1, 2, 3, 4, 10, 12, 13, 19], "r2": [3, 4, 10, 12, 13, 19], "r3": [3, 4, 10, 12, 13, 19], "r4": [3, 4, 10, 19], "r5": [10, 19], "r6": [10, 19], "r7": [10, 19], "r8": 19, "rais": 12, "ran": 2, "rang": 11, "raphael": 18, "rather": [0, 13, 18], "re": [4, 13], "reach": [2, 5, 12], "read": [0, 3, 4, 11, 12, 13, 18], "reader": [0, 19], "readi": 19, "real": [3, 19], "realli": [3, 10, 19], "reason": [5, 10, 11, 13], "recal": [10, 18, 19], "recognit": 18, "record": 1, "rectangl": 18, "recurs": [0, 1, 10, 19], "red": [4, 8, 10, 13], "refer": [0, 12], "regist": [0, 1, 2, 3, 4, 10, 12, 13, 18], "relat": [8, 13], "relev": [1, 3, 19], "reliabl": 18, "remain": [2, 19], "remark": 18, "rememb": 10, "remov": [3, 13], "remove_multiple_blank": 3, "repeatedli": 4, "replac": 3, "repres": [3, 10], "request": 8, "requir": [3, 5, 11, 12, 13, 19], "rest": [3, 10, 12, 13, 18, 19], "result": [0, 4, 8, 10, 12, 13, 16, 18, 19], "return": [3, 4, 11, 12, 19], "returna": 12, "returnb": 12, "rev": 12, "reveal": 5, "revers": 12, "reverse_idea": 12, "review": 3, "revolut": 0, "rewrit": 5, "right": [1, 2, 3, 16, 18, 19], "rk": [2, 5], "rm": [4, 11], "rn": [1, 3, 4, 11], "robinson": 18, "rocket": 10, "rone": [1, 4, 13], "root": 13, "row": [8, 9, 18], "rp": 4, "rtwo": 13, "run": [0, 1, 2, 4, 5, 12, 13, 16, 18, 19], "running_total_of_pd_invers": 11, "s_prog": 11, "sai": [1, 2, 3, 4, 5, 8, 11, 13, 19], "same": [0, 3, 4, 5, 8, 10, 11, 12, 13, 18, 19], "sameth": 12, "sane": 12, "sane_exponenti": 12, "sane_multipli": 12, "saniti": [11, 19], "satisfi": [0, 8, 10], "satisfy": 15, "save": 0, "saw": [3, 12, 18, 19], "scienc": [0, 1], "scratch": 13, "screen": 3, "se": 18, "search": 8, "second": [2, 3, 4, 10, 11, 12, 13, 18, 19], "second_end": 12, "second_index": 11, "section": [4, 8, 10, 15, 18, 19], "see": [0, 1, 2, 3, 8, 10, 11, 13, 19], "seek": 10, "seem": [11, 13, 19], "seen": [1, 3, 4, 10, 12, 13, 19], "segmet": 12, "select": [0, 8], "self": [0, 3, 19], "self1": 19, "selfknow": 13, "semant": [1, 13, 18], "semanticsalt": 1, "semest": 0, "send": 10, "sens": [18, 19], "separ": 19, "sequenc": [1, 3, 8, 12, 13], "seri": 19, "servic": 0, "set": [5, 8, 9, 11, 13, 16, 18], "set_properti": [4, 13], "settl": 10, "setuptool": [3, 4, 5, 10, 11, 12, 13, 19], "seuss": 16, "seven": 3, "sever": [0, 19], "sgn": 11, "sgn_bar": 11, "shade": 10, "shall": [1, 19], "share": 8, "sharp": 12, "shell": 10, "shift": 3, "shold": 12, "short": 19, "shorten": 13, "shortli": 3, "should": [0, 3, 4, 8, 10, 11, 12, 13, 19], "shouldn": 12, "show": [0, 1, 3, 4, 5, 9, 12, 13, 14, 18, 19], "shown": [3, 4, 10, 12, 18, 19], "side": [3, 8, 18], "signific": 3, "silli": 19, "simeq": [1, 13, 14, 19], "similar": [0, 1, 5, 10, 18, 19], "similarli": [4, 10, 19], "simpl": [3, 10, 19], "simpler": 18, "simplest": 4, "simpli": [0, 1, 19], "simplifi": [3, 19], "simul": 19, "sinc": [0, 3, 4, 5, 8, 10, 11, 13, 18, 19], "singl": [1, 3, 12, 19], "situat": [1, 18], "six": 19, "sketch": 19, "skim": 3, "skip": [0, 10], "slant": 3, "slight": 1, "slightli": 13, "slow": 11, "slowli": 3, "small": [1, 3, 13, 18], "smallest": 19, "snapshot": 19, "snippet": 12, "so": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 16, 18, 19], "societi": 0, "solid": [4, 13], "solut": 11, "solv": [2, 3, 11], "some": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 19], "someon": [12, 19], "someth": [3, 10, 13, 19], "sometim": [1, 19], "soon": [3, 10, 13], "sort": 13, "sourc": [10, 18], "space": [3, 8, 12, 19], "speak": 19, "special": [2, 8, 10, 12], "specif": [10, 11, 19], "specifi": 3, "spell": 13, "spirit": 16, "spit": 13, "squar": [3, 8, 12, 14, 18], "st": 12, "stackoverflow": 3, "stage": 1, "stand": 11, "standard": [0, 1], "stare": 5, "start": [0, 1, 2, 3, 4, 8, 10, 11, 12, 13, 18, 19], "statement": [3, 5, 8, 12], "statment": 19, "step": [1, 4, 10, 13, 18, 19], "step_by_step": [3, 11], "still": 19, "stop": [2, 3], "store": 12, "str": 11, "straight": [1, 3], "straightforward": 19, "strang": [0, 13], "strictli": 19, "string": [3, 11, 12, 13], "strip": 10, "strongli": 5, "stuck": 5, "student": [0, 19], "studi": 1, "stuff": 10, "style": [4, 13], "sub": [11, 13], "subject": [0, 19], "subprogram": 19, "subset": 18, "subseteq": [1, 3, 18], "succ": 10, "success": [3, 19], "successor": [11, 12], "successor_prog": 11, "suggest": [12, 19], "sum": 10, "summar": [3, 13], "superscript": 3, "suppli": 8, "support": 0, "suppos": [1, 2, 3, 4, 5, 9, 10, 13, 14, 16, 18, 19], "sure": [3, 19], "surround": [3, 12], "sw": 18, "swap": 4, "swoop": 3, "sy": 11, "symbol": [0, 1, 3, 4, 8, 10, 12, 13, 18, 19], "syntax": 4, "system": [8, 18], "t": [0, 1, 3, 8, 10, 11, 12, 13, 18, 19], "t_0": [8, 18], "tabl": [3, 4, 13, 19], "tail": 3, "take": [1, 3, 4, 5, 10, 12, 13, 16, 18, 19], "talk": [18, 19], "tame": 13, "tan": [4, 10, 13], "task": 8, "taught": 0, "teach": 19, "technic": [11, 18], "techniqu": 19, "tell": [8, 10, 11, 12, 19], "temporari": 10, "tempt": 19, "terminologi": 3, "test": 19, "text": [0, 3, 4, 13], "textbook": 0, "th": [12, 18, 19], "than": [0, 1, 2, 3, 11, 12, 13, 18], "thatt": 19, "thei": [1, 3, 4, 10, 19], "them": [0, 2, 3, 4, 10, 11, 12, 13, 19], "themselv": [1, 11, 16, 19], "theorem": [0, 15, 18, 19], "theoret": 10, "theori": [0, 1, 3, 10, 16], "theorist": 0, "therefor": [13, 19], "thi": [0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 16, 18], "thing": [3, 8, 11, 12, 13, 18, 19], "think": [12, 13, 18, 19], "third": [3, 11, 12], "those": [0, 1, 3, 18, 19], "though": 15, "three": [1, 4, 5, 10, 12, 13, 18, 19], "through": [3, 10, 12, 13], "throughout": 19, "thu": [12, 18, 19], "tidi": [16, 18], "tile": [0, 9, 15], "tile_1": 9, "tile_2": 9, "time": [0, 2, 3, 4, 8, 10, 11, 13, 18, 19], "titl": [3, 4, 11, 13, 19], "to_incr": 11, "to_us": 11, "togeth": [1, 3, 11, 18, 19], "too": [0, 3], "took": [12, 18, 19], "tool": [0, 4, 11], "top": [0, 3, 4, 5, 8, 10, 11, 12, 13, 18], "topic": 0, "total": [1, 14, 18], "touchi": 10, "toward": 16, "trade": [13, 19], "tradit": [0, 10], "tranfer": 2, "transer": 5, "transfer": [2, 4, 5, 12, 13, 18, 19], "translat": 11, "treat": 0, "treatment": [0, 10], "tree": 11, "trial": 11, "triangl": 3, "trick": [13, 19], "trivial": 8, "true": 11, "truli": 19, "try": [0, 2, 3, 4, 13, 19], "tt": [8, 13], "tupl": 1, "ture": [1, 3, 10], "turn": [3, 4, 8, 10, 19], "tutori": 3, "twin": 13, "two": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 18, 19], "two_place_fn_value_on": 11, "type": [2, 3], "typic": 13, "u": [1, 3, 4, 5, 10, 11, 12, 13, 19], "unari": [3, 10, 14, 19], "unchang": 19, "undecid": [0, 8, 15, 16, 17, 18], "undefin": [1, 12], "under": [1, 11], "underscor": 12, "understand": [3, 4, 8, 13, 19], "understood": [3, 19], "union": 5, "uniqu": 18, "univers": [0, 14], "unless": 1, "unlimit": 8, "unpars": [3, 4, 11, 12], "unus": 19, "unwant": 5, "up": [0, 3, 4, 10, 13, 16, 19], "uparrow": [1, 16], "updat": [10, 19], "upon": [1, 19], "upper": 11, "uppos": 18, "us": [1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19], "usag": 1, "used_reg": 11, "usual": [2, 10, 11, 12, 13, 18], "v": [3, 11], "valu": [3, 10, 11], "variabl": [3, 11], "variant": [0, 18], "variou": [0, 19], "ve": [10, 13], "veri": [3, 4, 8, 10, 13, 19], "verif": 10, "versa": 1, "version": [5, 9, 13, 16], "via": 19, "vice": 1, "view": 18, "w": [1, 12], "w_": 12, "w_1": [2, 12], "w_2": [2, 12], "w_3": 2, "w_n": 12, "w_p": 1, "wa": [2, 10, 12, 18, 19], "wai": [0, 2, 3, 4, 8, 10, 11, 12, 13, 18, 19], "wake": 0, "wang": 18, "want": [1, 3, 4, 5, 8, 10, 11, 12, 13, 16, 18, 19], "we": [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19], "web": 0, "weird": 19, "welcom": 3, "well": [0, 3, 12, 13, 18, 19], "were": [4, 5, 10, 19], "what": [0, 1, 4, 5, 11, 13, 18, 19], "whatev": 13, "when": [1, 3, 4, 5, 8, 10, 11, 12, 13, 16, 18, 19], "whenev": 4, "where": [1, 3, 11, 14, 16, 18, 19], "wherea": 19, "whether": [2, 8, 11, 18], "which": [0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 14, 16, 18, 19], "whichev": [12, 19], "while": [2, 4, 19], "white": [4, 13], "who": [12, 19], "whole": 18, "whose": [3, 18], "why": [1, 2, 4, 13], "wide": 10, "widget": 3, "willing": 10, "wish": 10, "without": [2, 3, 4, 12, 19], "wok": 19, "wonder": 11, "word": [1, 2, 3, 8, 10, 12, 13, 16, 18, 19], "work": [0, 1, 2, 3, 4, 10, 11, 13, 18, 19], "world": 1, "worldwid": 0, "worri": [18, 19], "would": [0, 1, 2, 3, 4, 5, 10, 12, 13, 16, 18, 19], "wouldn": 13, "write": [0, 1, 3, 5, 10, 11, 13, 19], "writeprog": [1, 4, 13], "writetotwo": 4, "written": [3, 4, 11, 12, 13, 19], "wrong": 8, "x": [1, 2, 3, 4, 9, 10, 11, 13, 16, 19], "x_1": [1, 11], "x_i": 1, "x_n": [1, 11], "y": [1, 4, 13, 16, 19], "ye": 8, "year": [0, 3], "yellow": [8, 19], "yet": 9, "yield": 13, "you": [1, 2, 3, 4, 10, 12, 13, 19], "your": [3, 4, 10, 11, 12, 13, 19], "yourself": [3, 19], "z": [1, 4, 8, 11, 13], "z_empti": 11, "z_prog": 11, "zero": [10, 11], "zero_place_fn_value_on": 11, "\u03c6": 13, "\u03c6bump": 10, "\u03c6write": 13, "\u03c6x": 13}, "titles": ["Invitation to Computability", "Functions defined by programs", "When does a program halt?", "First steps", "Simple programs", "Tidy programs", "What is coding?", "Computability", "Algorithmic problems", "Reduction of one problem to another", "Programs for arithmetic", "Primitive Recursion", "Tools to help write programs", "Self-Replicating Programs", "The busy beaver problem", "Logic", "The halting problem", "Post\u2019s Correspondence Problem", "Tiling", "Universal Programs"], "titleterms": {"": [8, 10, 17], "1": [3, 11], "1946": 8, "2": 11, "3": 11, "5": 11, "A": 19, "For": 11, "That": 11, "The": [3, 4, 10, 11, 12, 13, 14, 16, 18, 19], "about": 11, "abstract": 7, "add": [11, 19], "addit": 10, "after": 11, "algorithm": 8, "all": 11, "am": 11, "an": 11, "anoth": 9, "ar": [3, 11], "argument": [1, 19], "arithmet": 10, "associ": 11, "awai": 11, "basic": 11, "bb": 10, "beaver": 14, "becaus": 11, "begin": 11, "beig": 19, "below": 11, "book": 0, "busi": 14, "c": 11, "can": 11, "cell": 3, "chang": 11, "characterist": 1, "check": 11, "code": [6, 19], "command": 3, "comparison": 10, "comput": [0, 1, 7], "concret": 7, "convers": 18, "copi": 4, "corollari": 16, "correspond": [8, 17], "cours": 11, "credit": 18, "defin": 1, "definit": [1, 2, 5, 11, 18], "denot": 11, "diag": 13, "do": 11, "doe": [2, 12], "english": 13, "enter": 11, "enumer": 1, "equival": 5, "error": 11, "exampl": [1, 11, 12, 18], "exercis": [11, 12, 13], "express": 11, "find": 11, "finit": 7, "first": 3, "formal": [2, 18], "from": 11, "full": 3, "function": [1, 10, 11], "further": 12, "go": [11, 12], "goal": 18, "goe": 11, "green": 19, "halt": [2, 11, 16], "help": 12, "how": [11, 12], "i": [6, 11], "idea": 13, "implement": 19, "improv": 16, "in_place_program": 11, "infinit": 7, "inform": 11, "input": [1, 11, 12], "insepct": 11, "insid": 3, "instead": 11, "instruct": [3, 19], "invit": 0, "jupyt": 3, "label": 12, "lesson": 19, "like": 11, "line": [3, 11], "littl": 11, "logic": 15, "long": 11, "mai": 12, "mani": 19, "matrix": 8, "model": 7, "modifi": 4, "more": [1, 19], "move_2_1": 4, "multipl": 10, "notat": [4, 18], "note": 11, "notebook": [3, 11], "observ": 18, "one": [9, 16, 19], "ones": 11, "oper": 3, "our": 18, "output": 11, "p": 18, "partial": 1, "plan": 19, "point": 18, "post": [8, 17], "preserv": 11, "prime": 11, "primit": 11, "problem": [8, 9, 14, 16, 17], "program": [1, 2, 3, 4, 5, 10, 11, 12, 13, 16, 19], "project": 19, "realli": 11, "recurs": 11, "reduct": 9, "regist": [11, 16, 19], "remark": 19, "remov": 10, "replic": 13, "report": 11, "represent": 10, "restat": 18, "result": 11, "run": [3, 11], "saniti": 12, "segment": 12, "self": 13, "sens": 11, "set": [1, 3], "shown": 11, "simpl": 4, "simplif": 19, "some": 18, "special": 11, "statement": 18, "step": 3, "strong": 5, "sub": 19, "subterm": 11, "successor": 10, "summari": 13, "superflu": 10, "syntax": 11, "syntax_check": 11, "take": 11, "term": 11, "test": 11, "than": 19, "thei": 11, "thi": [11, 19], "thu": 11, "tidi": 5, "tile": [8, 18], "tool": [3, 12], "tt": 18, "two": 1, "unboundedli": 19, "univers": 19, "us": [0, 3], "v": 7, "what": [3, 6, 12], "whatev": 11, "when": 2, "which": 11, "word": 4, "work": 12, "workflow": 12, "write": [4, 12], "you": 11, "zero": 1}}) \ No newline at end of file