You're looking at Less Wrong's discussion board. This includes all posts, including those that haven't been promoted to the front page yet. For more information, see About Less Wrong.

Emile comments on No coinductive datatype of integers - Less Wrong Discussion

4 Post author: cousin_it 04 May 2011 04:37PM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (138)

You are viewing a single comment's thread. Show more comments above.

Comment author: Emile 05 May 2011 03:05:28PM *  1 point [-]

Seems that the best strategy would "merely" be to try to find an upper bound, like "Is the number smaller than "BusyBeaver(BusyBeaver(BusyBeaver(BusyBeaver(3^^^3))))?", and a Hollow Sphinx would just answer "no, it's bigger", so presented like that, it doesn't look like a very interesting problem.

Though there may be a series of question such that a Hollow Sphinx can't keep up the masquarade unless it has a Halting Oracle (say, a yes-or-no question such that it can't compute which answer could apply to an infinite amount of numbers), but I have no idea which questions those might be.

(The same applies to the original problem: there might be some exotic encoding such that an "infinitely confusing" input exists, determining say it's first 100 bits is uncomputable.)

Comment author: cousin_it 05 May 2011 05:08:22PM *  7 points [-]

BusyBeaver(BusyBeaver(BusyBeaver(BusyBeaver(3^^^3))))

This is the moral equivalent of saying BB(3^^^3)+1. Mere recursion is puny. At least jump from BB to BB_2!

determining say it's first 100 bits is uncomputable

Every sequence of 100 bits is computable.

Here's an encoding where the "infinitely confusing" input is uncomputable: take the unary encoding from my post and XOR it with some infinite uncomputable sequence, e.g. the halting oracle sequence. Unfortunately, you can't use this test in practice because you can't compute the required bits either.

Comment author: ciphergoth 05 May 2011 06:32:22PM 3 points [-]

Mere recursion may be puny, but given the "fifteen-second challenge" and that BB_2 etc aren't well known enough to use there, it seems like the best bet, doesn't it?

Comment author: Emile 05 May 2011 07:19:18PM 2 points [-]

To put it more formally: we want an encoding algorithm E and a decoding algorithm D such that for any natural number n, a turing machine can compute E(n) and D(E(n)) in finite time, but that there exists a k such that "determining a string s of length k so that the set {n such that E(n) starts with s} is infinite" is an undecidable problem. Do D and E exist fulfilling those conditions?

I admit my working knowledge of what is decidable/computable is somewhat limited; maybe the condition should be to find E and D such that no algorithm can return s given k, or whether there exists an algorithm that given E and D, can return a "confusing" sequence of arbitrary length.

Comment author: cousin_it 12 May 2011 02:40:07PM *  2 points [-]

I asked MathOverflow to solve this and got a complete solution within an hour. Just like last time. Wow, just wow.

Comment author: Emile 12 May 2011 04:55:37PM 1 point [-]

The stack exchange sites are pretty impressing, and humbling. Maybe Eliezer should outsource more of his research to them.

Comment author: cousin_it 12 May 2011 08:58:46AM *  0 points [-]

I think I have a partial solution for the case where the "infinitely confusing" string is unique. Namely, if there is a unique infinite string S on which D doesn't terminate, then S is computable.

Here's an algorithm for computing S by using D. Assume that the first bit of S is 0. That means D terminates on all strings whose first bit is 1. By the argument from the original post, that implies D's running time on strings starting with 1 is uniformly bounded. (Otherwise we would be able to generate an "infinitely confusing" string for D that starts with 1 by using the proof technique from my post, which can't happen because S is unique and starts with 0 by assumption.) Therefore, by feeding D all possible finite inputs in turn while allowing it gradually increasing running times ("dovetailing"), we will eventually get a "covering set" that proves D always terminates on strings starting with 1. So we determine that the first bit of S must be 0. In the same way you can determine the second bit of S, and so on.

Let's see how it works on unary notation. We run D on all finite inputs in turn. First we notice that D("0") terminates without trying to read further, therefore the first bit of S is 1. Then we notice that D("10") terminates, therefore the second bit of S is also 1. And so on.

Comment author: Emile 12 May 2011 12:41:58PM 0 points [-]

if there is a unique infinite string S on which D doesn't terminate, then S is computable.

That looks true, though the process you describe only works if S is indeed unique, othwerwise it gets stuck.

Comment author: wedrifid 05 May 2011 06:00:33PM 1 point [-]

At least jump from BB to BB_2!

BB_2?

Comment author: Plasmon 05 May 2011 06:04:32PM 6 points [-]

The BusyBeaver function for Turing machines with a halting oracle.

Aaronson

Comment author: benelliott 05 May 2011 08:05:13PM 2 points [-]

I'm sorry to ask this question, because it seems very stupid, but how exactly would one create a set-up where a Turing machine, as in head-and-tape style thing, actually interacts with a halting oracle?

I don't doubt that its possible but I can't think of an elegant way to do it.

Comment author: cousin_it 05 May 2011 08:33:25PM *  4 points [-]

Wikipedia has a detailed explanation of the setup.

Comment author: wedrifid 05 May 2011 07:16:23PM 0 points [-]

Ahh, so that's what the <Can someone recall the title of Eliezer's parable in which the genius level humans spend thousands of years deciphering the messages sent by the not-so-smart universe simulators?> were using!

Comment author: Zack_M_Davis 05 May 2011 08:00:57PM 9 points [-]

<Can someone recall the title of Eliezer's parable in which the genius level humans spend thousands of years deciphering the messages sent by the not-so-smart universe simulators?>

You may be thinking of "That Alien Message." Best wishes, the Less Wrong Reference Desk.

Comment author: wedrifid 05 May 2011 09:47:31PM 0 points [-]

Thankyou! I'd been looking for that one for a while.

Comment author: [deleted] 05 May 2011 08:51:17PM 0 points [-]

Try asking the sphinx "Is your number less than 10 if and only if P=NP?"

Comment author: Emile 05 May 2011 09:11:52PM 0 points [-]

That wouldn't work for distinguishing the two kinds of sphinxes, unless you suppose that one kind knows whether P=NP and the other doesn't.

Comment author: [deleted] 05 May 2011 09:27:52PM *  2 points [-]

True, but it would still yield an interesting answer :)

ETA: Also, one could give the sphinx a Turing machine and ask if it halts within N steps or fewer, where N is that sphinx's number. After a number of such questions, you'd feel pretty confident that either the sphinx is a True Sphinx or it has a halting oracle.

Comment author: Emile 06 May 2011 10:17:50AM 0 points [-]

Huh, that looks like it could work, neat :)

So to bring it back to cousin_it's post, one could have a "busy beaver candidate" (a turing machines where we don't know whether it goes on for ever or eventually halt or start repeating), and the encoding of a natural number n would be that the first bit is whether or not that candidate halts before n steps, followed by the unary encoding of n.

"Encoding" or decoding n would be easy (but long when n is big), but "breaking" that encoding for any usy beaver candidate would require a halting oracle.

Comment author: [deleted] 06 May 2011 06:10:09PM *  1 point [-]

Suppose I pass you the bit that says the candidate does not halt, followed by an infinite string of 1s. Then to decode this (by which I mean reject it as invalid) you would need to know whether the busy beaver candidate halts, which we've rejected as hard.

This is a problem with the Sphinxes, too, in retrospect. A Hollow Sphinx could just keep answering "yes" if it's hard to check whether the Turing machine halts, making you do the hard work.

Comment author: Emile 06 May 2011 06:48:07PM 1 point [-]

Agreed, but a non-oracle Sphinx wouldn't be impossible to recognize any more, it would just be very hard to recognize (you would need the Sphinx to guess wrong, and to be patient enough to figure out that it did).

In summary, whoever has the halting oracle wins, and if nobody does, it's a patience contest.