Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Turing completeness of lambda calculus?

How do you argue for the fact that lambda calculus is Turing complete (in the simplest way possible) ?

like image 219
samsamara Avatar asked Mar 08 '12 14:03

samsamara


People also ask

How do you calculate Turing completeness?

One way to determine that something is Turing-complete is to create a Turing machine emulator with it. @immibis And it must be emulatable on a Turing machine. There is no proof whether there are Turing-powerful models of computation that are not Turing-complete.

Is the simply typed lambda calculus Turing complete?

One consequence of this is that the simply-typed lambda calculus is not Turing complete – there are some programs (even programs that always halt) that can't be written in it. There are two things missing that keep it from being Turing complete, described below.

What is the relationship between lambda calculus and Turing machines?

Turing machine is about sequential instructions to mutate the state, lambda calculus is about expressions evaluating to something. It is more abstract, like a programming language of it's own, not the model of how to practically compute something, make things happen.

What defines Turing completeness?

In colloquial usage, the terms "Turing-complete" and "Turing-equivalent" are used to mean that any real-world general-purpose computer or computer language can approximately simulate the computational aspects of any other real-world general-purpose computer or computer language.


2 Answers

The most straightforward way is to implement a Turing Machine in the Lambda Calculus. This is quite easy, because the Lambda Calculus is practically a high level programming language. This approach has the advantage of not requiring any other mathematical dependencies, and it should thus provide the simplest possible way of providing your argument.

In terms of a mathematical proof, the shortest way goes by implementing another paradigm that has already been shown to be Turing complete, like µ-recursive functions. These are already recursively defined, so their expression in the Lambda calculus is slightly more elegant than the Turing Machine itself.

like image 100
Weltregierung Avatar answered Sep 30 '22 15:09

Weltregierung


Brainfuck is a language that very closely models Turing Machines, and you may find a lambda calculus interpreter spelled out at http://en.wikipedia.org/wiki/Binary_lambda_calculus#Brainfuck

like image 28
John Tromp Avatar answered Sep 30 '22 13:09

John Tromp