(19) |
Then is the difference of two finite enumerable values, according to (20).
Proof. We first show that one can enumerate the CEMs, then construct a universal CEM from the enumeration. Check out differences to Levin's related proofs that there is a universal discrete semimeasure and a universal enumerable semimeasure [#!Zvonkin:70!#,#!Levin:73a!#], and Li and Vitányi's presentation of the latter [#!LiVitanyi:97!#, p. 273 ff], attributed to J. Tyszkiewicz.
Without loss of generality, consider only EOMs without halt instruction and with fixed input encoding of B* according to Def. 2.8. Such EOMs are enumerable, and correspond to an effective enumeration of all enumerable functions from B* to . Let EOMi denote the i-th EOM in the list, and let EOMi(x,n) denote its output after n instructions when applied to . The following procedure filters out those EOMi that already represent CEMs, and transforms the others into representations of CEMs, such that we obtain a way of generating all and only CEMs.
If EOMi indeed represents a CEM then each search process in (2.1) will terminate, and the will enumerate the from below, and the and will approximate the true and , respectively, not necessarily from below though. Otherwise there will be a nonterminating search at some point, leaving from the previous loop as a trivial CEM. Hence we can enumerate all CEMs, and only those. Now define (compare [#!Levin:73a!#]):FOR all i DO in dovetail fashion:
START: let and and denote variable functions on B*. Set , and for all other . Define for undefined x'. Let z denote a string variable.FOR DO:
(1) Lexicographically order and rename all x with :
.
(2) FOR k = 2n+1-1 down to 1 DO:
(2.1) Systematically search for the smallest such that AND if k <2n+1-1; set .
(3) For all satisfying , set . For all x with l(x) < n, set . For all x with l(x) = n, set .
(21) |
(22) |