Added historical note

This commit is contained in:
Mark 2023-10-22 21:33:42 -07:00
parent 279b4711cb
commit d79e6bbb9d
Signed by: Mark
GPG Key ID: AD62BB059C2AAEE4

View File

@ -58,6 +58,48 @@
\vspace{4mm} \vspace{4mm}
\makeatletter
\if@solutions
\begin{instructornote}
\textbf{Context \& Computability:} (or, why do we need lambda calculus?)\par
\note{From Peter Selinger's \textit{Lecture Notes on Lambda Calculus}}
\vspace{2mm}
In the 1930s, several people were interested in the question: what does it mean for
a function $f : \mathbb{N} \mapsto \mathbb{N}$ to be computable? An informal definition of computability
is that there should be a pencil-and-paper method allowing a trained person to
calculate $f(n)$, for any given $n$. The concept of a pencil-and-paper method is not
so easy to formalize. Three different researchers attempted to do so, resulting in
the following definitions of computability:
\begin{itemize}
\item Turing defined an idealized computer we now call a Turing machine, and
postulated that a function is \say{computable} if and only
if it can be computed by such a machine.
\item G\"odel defined the class of general recursive functions as the smallest set of
functions containing all the constant functions, the successor function, and
closed under certain operations (such as compositions and recursion). He
postulated that a function is \say{computable} if and only
if it is general recursive.
\item Church defined an idealized programming language called the lambda calculus,
and postulated that a function is \say{computable} if and only if it can be written as a lambda term.
\end{itemize}
It was proved by Church, Kleene, Rosser, and Turing that all three computational
models were equivalent to each other --- each model defines the same class
of computable functions. Whether or not they are equivalent to the \say{intuitive}
notion of computability is a question that cannot be answered, because there is no
formal definition of \say{intuitive computability.} The assertion that they are in fact
equivalent to intuitive computility is known as the Church-Turing thesis.
\end{instructornote}
\vfill
\pagebreak
\fi
\makeatother
\input{parts/00 intro} \input{parts/00 intro}
\input{parts/01 combinators} \input{parts/01 combinators}
\input{parts/02 boolean} \input{parts/02 boolean}