trilobite said:
I guess I meant "not easily understandable." But this is not an area I know a whole lot about. I would be interested to see an easily understandable non-computable number, if you have an example.
Well there are many examples that one can easily give of course. I should perhaps describe a few that are more instructive.
The main elementary idea is that the set of all programs can be seen as a decidable subset of strings generated from a limited set of symbols say S (for example keys on keyboard or any other well-chosen finite set). The main condition is that S must have a finite number of symbols in it. For example, a typical example of S (for a typical limited programming language) could be:
S={ A--Z, a--z, 0--9, +, -, *, =, ; , ( , ) , { , } }
Possibly some symbols for space or endline could also be included (but that probably shouldn't be necessary as long as we have a marker for end of command).
One then, for example, considers a kind of 1-1 correspondence*** function between the set of strings (formed using symbols of S) that form valid programs and the set of natural numbers N={0,1,2,3,4,5,...}. The number that is assigned to each program is called its index.
Now think of a limited programming language that just takes one or more integers as inputs and gives a single integer as output.
Now here are number of examples of uncomputable real numbers:
(1) 0. h(0) h(1) h(2) h(3) h(4) h(5) ...
That is an uncomputable real number whose digit at n-th decimal place (assuming the counting starts from 0) is equal to h(n). Here we have h:N→N as:
h(x) = H(x,x)
where H:N x N→N is defined as:
H(x,y) = Given a program whose index is x and to which input given is the single integer y return 1 if the program eventually halts and 0 if it runs forever
(Well you could think of a minor complication when the program corresponding to index x takes more than one input. In that case you could simply think all other arguments, except the first one, as 0. Generally speaking, these kind of minor variations quite often turn out to be inconsequential).
(2) There are large number of ways of defining a pairing function from N x N → N. For example, one simple way is:
https://en.wikipedia.org/wiki/Pairing_function
So suppose we have a function pair:N x N →N (such as one described in the link above). Define A:N→N and B:N→N as functions that return the first and second coordinates for a value that is paired (described by variables x and y respectively in the link above). For example:
A( pair(3,5) ) = 3
B( pair(3,5) ) = 5
etc.
We have as second example of an uncomputable real number:
0. H( A(0), B(0) ) H( A(1), B(1) ) H( A(2), B(2) ) ...
That is at n-th decimal place we have the digit H( A(n), B(n) ).
(3) Suppose we have a total function F:N x N → N that lists all total recursive functions of one variable (that is, each "row" of this function F is a total recursive function(of one variable) and furthermore every total recursive function occurs at least once in some row). Note that F is not a (total) computable/recursive function****.
Now define a function g:N→N such that:
g(x)=0 whenever F(x,x) is non-zero
g(x)=1 whenever F(x,x) is zero
Then g isn't a recursive function either (but it is total of course).That's because the function g is different from every (total) recursive function on at least one value.
What is interesting here is that g is non-recursive regardless of how complex the function F itself is .
So if we define a real number such as:
0. g(0) g(1) g(2) g(3) g(4) ...
where the n-th digit is equal to g(n). This won't be a computable real number either.
(4) Regarding the topic of how it is of varying difficulty to show that a real number is computable just from description. Consider a function f:N→N such as:
f(x)=F(x,x)+1
F is the function from the third example. The function f is clearly total and non-recursive. Now consider the following real number:
0. all digits of f(0) + all digits of f(1) + all digits of f(2) + all digits of f(3) ...
In other words there is no marker as to when the values f(0), f(1), f(2) etc. end. What I mean here is that suppose we had f(0)=10, f(1)=6, f(2)=99, ... then the first few decimal places will be like:
0.10699...
Is the answer of computability of this real number independent of the function F? If it is, then is this real number always computable or always uncomputable?EDIT: Made some corrections and also added a question in the fourth example.
*** Actually 1-1 correspondence is of course not strictly necessary but this would be besides the point.
**** Well it isn't that obvious but F can be shown not to be a (total) computable/recursive function without too much difficulty.