Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What Gödel showed is that (in any sufficiently powerful formal axiomatic system) the set of provable statements isn’t the same as the set of true statements. This means that either there are true statements that aren’t provable (incompleteness), or that there are provable statements that aren’t true (inconsistency), or both.

One way to see this is via the halting problem. For any program (with a fixed input), there is a truth of the matter of whether it will eventually halt or not. In the formal system, for every (Turing-machine) program P we can define a function s_P(n) that gives us the state of the program after n steps (by recursive definition). Then we can write for any program P the statement H(P) = “there exists a natural number n such that s_P(n) is a halting state”. Furthermore, we can write a program R that, given any program P as input, enumerates all proofs of the formal system (this is possible because proofs are strings, and we can write a program that enumerates all strings) and that for each proof checks if it is a proof of H(P) or of not H(P), and if it finds such a proof, stops and outputs the result (P halts or doesn’t halt). If such a proof exists, then R will eventually find it. And if R would find a proof for any P, then this would solve the halting problem.

But we know that the halting problem is undecidable, which means that there must be programs P for which there is neither a proof of H(P) nor of not H(P). This shows that there are truths (the program will halt or won’t halt) for which there is no proof in the formal system; or alternatively, that the formal system is inconsistent and proves falsities.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: