לגבי המכונה ההסתברותית, אני לא בטוח, אבל נראה לי שהמכונה יכולה לקבל עד
שיהיה "ההגרלה" עבורה M דוחה, ולכן לא יכולה לקבל בהסתברות 1.
I sent you some explanation which I think might be the answer, but it
was by mistake... I wanted to post it here so anyone can see and
comment - I clicked "reply to author" instead of "reply" by mistake.
Can you please post the message I sent to you?
So why it is in coNP? Suppose that with have some input to our problem
<M, x, 1^t> which does NOT belong to the language/problem we are
dealing with, so it means that either M(x, r) passes beyond t cells or
M(x, r) = 0 for some random string r (if I'm not mistaken :P).
Now, first thing we do is take M's code and modify it like this:
We add a counter which will tell us where M's reader/writer head is
located at any moment at time, to do so we change the "function" which
moves the reader/writer head so it updates our counter appropriately -
can be done in poly' time with respect to M's size and that's also
poly' with respect to our input size since our input is: <M, x, 1^t>.
So we tweaked M's code and now we have a counter, right after where we
added the procedure which updates the counter we need to add a
condition like this:
if (counter > t) return 0;
(the above can also be done while still maintaining poly' time of
course)
The result is that each time the head moves, the counter is updated
and then it's value is checked against t - if it's larger than t, then
M' (our modified version for M) returns 0.
Reminder: if <M, x, 1^t> does not belong to our problem then either M
(x, r) passes beyond t cells or M(x, r) = 0 for some random string r.
Now we can finally describe our verifier and the witness which show
that <M, x, 1^t> does not belong to the language/problem we are
dealing with:
The witness: r - the random string for which either M(x, r) passes
beyond t cells or M(x, r) = 0
The verifier: simply take M', run it with input (x, r) and return the
opposite of what it gives you.
Explanation: if <M, x, 1^t> does not belong to our problem then either
M(x, r) passes beyond t cells or M(x, r) = 0 for some random string r:
If it the reason for not being in the language is because M passes
beyond t cells, then M' will return 0 since that's how we constructed
M' and thus our verifier returns 1.
If it the reason for not being in the language is because M(x, r) = 0
then M' also returns 0 and thus our verifier returns 1.
Ok now, that was pretty long and I'm not even sure all of this (or any
of this :P) is correct LOL, if someone think/know something is wrong
then let me know. If it's correct, also let me know.