There are two ways. One consists in choosing a universal system or programming language. Enumerate the programs, with one input one output, i.e. computing functions from N to N, in that language. Then a universal number will be the number in the enumeration corresponding to an emulator to that, or to another system.kedabra wrote:So to give a specific universal number, (or rather - an extensional number?)

we need to specify the type of bijection between the program and the inputs that allows those combinations to be enumerable....?

But to "define" more intrinsic system, the other way consists in using the theorem saying that just the natural numbers (N), together with addition, and multiplication, and a tiny amount of logic, is already a universal system. In that case, computability becomes a particular case of provability, and yo can define a much more natural and intrinsic notion of being a universal number. In that way you can define an arithmetical notion of computation, which is as good as anyone can be. Eventually the laws of mind and matter cannot depend on the choice of the initial universal system in use. The reason is that mind and matter will be internal modalities. If you have really grasped the sixth first step of the Universal Dovetailer argument, you might guess why it will have to be like that.

Does universal number exist? Well, if you are willing to bet on Church thesis, it is enough to find one universal program "understanding" one universal language so that it is capable of computing any phi_i, to prove the existence of a universal computable function. And thus of a universal program computing it. The diagonalization of Kleene shows that such universal number can crash, and that it computes necessarily all partial computable functions.

A universal dovetailer is just *one* program which *do* generate and compute all phi_i on all arguments. It generates all programs, and all inputs, and do all computations. By itself it is a program with no inputs and no outputs. It belongs to 0^0, with 0 = the empty set.

You know that there is a computable bijection between NxNxN and N, so you might guess that it should not be to difficult to generate all programs and "dovetail" on all the finite executions of all those programs.

Let us write: phi_56(789)^100089796 for the 100089796th first steps of the computation (perhaps unfinished) of the function phi_56 on the argument 789, when computed by some universal

*u*. Well, by the bijection between NxNxN and N, you can access the triples (56, 789, 100089796), and all similar triples to manage the going through all computations. More detail later, but I hope you get the idea. I should a bit more explain the notion of 'step' of a computation.

A function has no memory, but a program computing that function might, and will, have some sort of memory. Some universal language have explicit memory allocations, others have dynamical automatic allocation of memory so that the programmer has not to take care of it, when programming the universal machine (the intepreter of its universal language). Allocation of a memory, binding of value to parameter, etc. are typical steps of a computation. Numbers themselves can be used for "memorising data", like a numerical disk encoding some symphony. Those numbers might make 'sense' for some universal number decoding it, and eventually reacting to it in its own way. And all that can be described in term of natural number (computable) relations.kedabra wrote: I'm not sure how the concept of memory fits into what youve said so far about universal computable functions....what is the memory of a function? Do the limitations of real devices mess up our theory?

You might reread the first sixth steps of the Universal Dovetailer argument. In step seven you are living in a (supposedly material) universe executing somewhere the tasks of a universal dovetailer. To predict your possible first person experience consistent with your data, you cannot use *only* physical laws, but you have also to take into account the infinitely many computations going through your actual state, at the level where you said "yes" to the digitalist surgeon, and below. If you want we can do the steps again, it might certainly help the others. What do you think?kedabra wrote: OK, thats a bit hard to understand, but i get the gist of it, not sure about the implications for consciousness though.....

Or let us be sure you grasp the universal dovetailing first? Once you know how to generate all programs, it is not difficult to grasp that you can generate all executions, on all arguments, of all programs. The result is one program, without inputs, and which run forever doing all possible computational task. Assuming comp it generates all possible dreams. OK?