Questions tagged [computability]

Questions related to computability theory, a.k.a. recursion theory

The theory of computability studies which functions can be computed using which machine models.

Computability theory (also known as recursion theory) is a branch of mathematical logic and computer science. It is mainly concerned with computability.

When some resource is restricted (such as time or space), then the tag is more appropriate.

2123 questions
184
votes
14 answers

Why, really, is the Halting Problem so important?

I don't understand why the Halting Problem is so often used to dismiss the possibility of determining whether a program halts. The Wikipedia article correctly explains that a deterministic machine with finite memory will either halt or repeat a…
Brent
  • 2,583
  • 3
  • 16
  • 23
148
votes
4 answers

How can it be decidable whether $\pi$ has some sequence of digits?

We were given the following exercise. Let $\qquad \displaystyle f(n) = \begin{cases} 1 & 0^n \text{ occurs in the decimal representation of } \pi \\ 0 & \text{else}\end{cases}$ Prove that $f$ is computable. How is this possible? As far as I know,…
Raphael
  • 73,212
  • 30
  • 182
  • 400
99
votes
6 answers

Is there any concrete relation between Gödel's incompleteness theorem, the halting problem and universal Turing machines?

I've always thought vaguely that the answer to the above question was affirmative along the following lines. Gödel's incompleteness theorem and the undecidability of the halting problem both being negative results about decidability and established…
Marc van Leeuwen
  • 1,093
  • 1
  • 8
  • 13
73
votes
7 answers

Are there minimum criteria for a programming language being Turing complete?

Does there exist a set of programming language constructs in a programming language in order for it to be considered Turing Complete? From what I can tell from wikipedia, the language needs to support recursion, or, seemingly, must be able to run…
67
votes
14 answers

Is C actually Turing-complete?

I was trying to explain to someone that C is Turing-complete, and realized that I don't actually know if it is, indeed, technically Turing-complete. (C as in the abstract semantics, not as in an actual implementation.) The "obvious" answer…
TLW
  • 1,500
  • 1
  • 10
  • 16
65
votes
11 answers

Human computing power: Can humans decide the halting problem on Turing Machines?

We know the halting problem (on Turing Machines) is undecidable for Turing Machines. Is there some research into how well the human mind can deal with this problem, possibly aided by Turing Machines or general purpose computers? Note: Obviously, in…
bitmask
  • 1,765
  • 2
  • 16
  • 20
53
votes
2 answers

Is a push-down automaton with two stacks equivalent to a turing machine?

In this answer it is mentioned A regular language can be recognized by a finite automaton. A context-free language requires a stack, and a context sensitive language requires two stacks (which is equivalent to saying it requires a full Turing…
Lazer
  • 1,107
  • 2
  • 10
  • 8
51
votes
4 answers

Theoretical machines which are more powerful than Turing machines

Are there any theoretical machines which exceed Turing machines capability in at least some areas?
user1561358
  • 961
  • 1
  • 8
  • 10
50
votes
4 answers

Why can humans solve certain "undecidable" problems?

High-order pattern matching is an undecidable problem. That means there is no algorithm that, given an equation a => b, where a and b are open terms on the simply typed lambda calculus, finds a substitution S such that aS => bS, where => stands for…
MaiaVictor
  • 4,199
  • 2
  • 18
  • 34
48
votes
2 answers

Perplexed by Rice's theorem

Summary: According to Rice's theorem, everything is impossible. And yet, I do this supposedly impossible stuff all the time! Of course, Rice's theorem doesn't simply say "everything is impossible". It says something rather more specific: "Every…
48
votes
4 answers

What are common techniques for reducing problems to each other?

In computability and complexity theory (and maybe other fields), reductions are ubiquitous. There are many kinds, but the principle remains the same: show that one problem $L_1$ is at least as hard as some other problem $L_2$ by mapping instances…
47
votes
2 answers

How to show that a function is not computable? How to show a language is not computably enumerable?

I know that there exists a Turing Machine, if a function is computable. Then how to show that the function is not computable or there aren't any Turing Machine for that. Is there anything like a Pumping lemma? Similarly, how can we show a language…
46
votes
5 answers

Iteration can replace Recursion?

I've been seeing all over stack Overflow, e.g here, here, here, here, here and some others I don't care to mention, that "any program that uses recursion can be converted to a program using only iteration". There was even a highly upvoted thread…
Tobi Alafin
  • 1,647
  • 4
  • 17
  • 22
46
votes
12 answers

Can a computer determine whether a mathematical statement is true or not?

I was reading Introduction to the Theory of Computation by Michael Sipser and I found the following paragraph quite interesting: During the first half of the twentieth century, mathematicians such as Kurt Godel, Alan Turing, and Alonzo Church…
Arsalan MGR
  • 571
  • 1
  • 4
  • 6
43
votes
9 answers

Why are some programming languages Turing complete but lack some abilities of other languages?

I came across an odd problem when writing an interpreter that (should) hooks to external programs/functions: Functions in 'C' and 'C++' can't hook variadic functions, e.g. I can't make a function that calls 'printf' with the exact same arguments…
1
2 3
99 100