No history yet

Introduction to Computability

What Can Be Computed?

At its heart, a computer follows instructions. But what kinds of instructions can we give it? What problems are fundamentally solvable with a set of steps? This is the central question of computability theory. It’s not about how fast a computer is, but about what is possible to compute at all.

Let's start with a simple idea: a computable function. Think of a function as a machine that takes an input and produces an output. For example, a function might take two numbers, 5 and 7, and output their sum, 12. This function is computable because we have a clear, step-by-step method for getting from the input to the output. You learned this method in elementary school.

A function is computable if there exists a definite procedure, or algorithm, that can calculate the output for any given input in a finite amount of time.

This notion of a “definite procedure” is key. It has to be precise, unambiguous, and guaranteed to finish. It can’t rely on guesswork, intuition, or a lucky break. We call such a procedure an effective procedure.

Algorithm

noun

A finite sequence of well-defined, computer-implementable instructions, typically to solve a class of specific problems or to perform a computation.

A Universal Model of Computation

In the 1930s, long before physical computers existed as we know them, mathematicians were trying to formalize this intuitive idea of an algorithm. They wanted a rigorous, mathematical way to define what an “effective procedure” was. Several brilliant minds came up with different models to capture this concept.

For instance, Alonzo Church developed a system called lambda calculus. Stephen Kleene explored recursive functions. And, most famously, Alan Turing designed a theoretical device called a Turing machine. It's an abstract machine that manipulates symbols on a strip of tape according to a set of rules.

Lesson image

What was remarkable was that all of these different approaches, which seemed unrelated on the surface, turned out to be equivalent. Any problem that could be solved with a Turing machine could also be solved using lambda calculus, and vice versa. This powerful convergence led to a profound idea.

The Church-Turing Thesis

This idea is known as the Church-Turing thesis. It isn't a mathematical theorem that can be proven; it's more like a principle or a hypothesis that has held up to decades of scrutiny. It connects our intuitive understanding of algorithms with the formal, mathematical models.

The Church-Turing thesis states that any function that is computable by an effective procedure (an algorithm) is also computable by a Turing machine.

Essentially, the thesis proposes that the Turing machine is a universal model of computation. If a problem can be solved by any step-by-step mechanical process, it can be solved by a Turing machine. This is a huge deal. It gives us a stable, concrete definition of what computation is.

This model was revolutionary because it demonstrated that if a problem can be solved computationally, then it can be solved by a Turing Machine.

The implication is staggering. If you can't design a Turing machine to solve a problem, then no algorithm can solve it. This means there are hard limits to what computers, even future supercomputers, can ever do. Some problems are simply uncomputable.

Now, let's test your understanding of these foundational ideas.

Quiz Questions 1/5

What is the defining characteristic of a "computable function"?

Quiz Questions 2/5

Which statement best describes the Church-Turing thesis?

Understanding these limits is the first step into the deep and fascinating world of theoretical computer science.