Re: Can a regular Turing Machine provide Protected Memory?
newstome_at_comcast.net
Date: 08/29/04
- Next message: Simon G Best: "Re: Can a regular Turing Machine provide Protected Memory?"
- Previous message: Peter Olcott: "Re: [PO] Can a regular Turing Machine provide Protected Memory?"
- In reply to: Peter Olcott: "Re: Can a regular Turing Machine provide Protected Memory?"
- Next in thread: Peter Olcott: "Re: Can a regular Turing Machine provide Protected Memory?"
- Reply: Peter Olcott: "Re: Can a regular Turing Machine provide Protected Memory?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sun, 29 Aug 2004 17:24:27 GMT
In comp.theory Peter Olcott <olcott@worldnet.att.net> wrote:
>
> <newstome@comcast.net> wrote in message news:9D8Yc.251050$eM2.4450@attbi_s51...
>> In comp.theory Peter Olcott <olcott@worldnet.att.net> wrote:
>
>> Well, you can't "make it moot", and there's nothing wrong with what
>> I've written. Let me expand the basic argument into more basic steps:
>>
>> 1) You define your model of computation, and how you provide an
>> answer in your model.
>>
>> 2) I define a way of constructing an input from a halt analyzer
>> description such that the halt analyzer will not work on the
>> input.
>>
>> 3) You provide a halt analyzer. You can use all of the information
>> you want from step #2, knowing exactly how I'm going to construct
>> my input to your halt analyzer. Even though you know this, you
>> can *not* make a halt analyzer that will give a correct answer on
>> my input.
>>
>> 4) I construct my input for your halt analyzer, following the
>> procedure from step #2, and your halt analyzer gets the wrong
>> answer.
>>
>> I was trying to lead you through this step by step before, but you
>> never could complete even step #1 and define your model.
>>
>> Any time you want to try, just let me know.
>
> If you can effectively refute every combination of all of my
> methods then do it. Start with the one where I only write
> the output to the screen. If this refutation works, I can probably
> construct the rest from this one.
>
> Note it must be framed as an input that no TM can possibly
> correctly process, otherwise it does not meet the burden of
> proof of proving a negative.
No, it will not be *an* input that no TM can possibly correctly
process, because there is no such input. It will be a *process* for
creating an input, *given* a TM, such that this TM will not correctly
process that input.
I wanted to do this step by step before, because you have a nasty
habit of reading the first few words of a posting, replying without
really thinking about it, and then ignoring the rest.
Since it's Sunday and I obviously have way too much time on my hands,
I'll lay out the entire argument for you, following my 1-4 steps above
for your "output to the screen" case. If you have questions or
problems with any part of this, then ask, but please *try* to
understand it. I won't change the argument, and you don't change the
model as you try to do everytime your flaws become obvious (in other
words, stick to the "screen" model -- do not say "Oh, ok, then we'll
add the ability to inspect the state table" -- we debunk one model at
a time). Here we go:
1) The "screen" is no different from a "write only output" that you've
talked about before, so we'll model that within the TM framework as
a write-only output tape. This is really easy to do: we'll just
have a TM with two tapes, and one of them (representing the
"screen") is write-only. The transition function f will look like
this:
f(state, tsym) -> (newstate, newtsym, tmove, outsym, outmove)
where "state" is the current state, "tsym" is the current tape
symbol on the regular TM tape, "newstate" is the new state after
this transition, "newtsym" is the symbol written to the regular TM
tape, "tmove" is the movement of the regular TM tape head (we can
let this be "left", "right", or "stay still"), "outsym" is the
"screen output" symbol, "outmove" is the direction to move the tape
head on this output tape (same choices as "tmove").
Notice that the transition function doesn't depend on the output
tape ("screen"), so the "screen" can't possibly affect the
computation -- this makes it write-only.
2) Given the above model, here's how I'll create an *input* for any
halt analyzer that runs in this model. First, the halt analyzer
has to be supplied, and the obvious way of doing that is that the
state transition function is specified. Say a table of 7-tuples is
given that defines the "f" function given in part 1. This table
completely determines the actions of the halt analyzer in this
model, so completely defines the program. Whenever we use a
function name as a parameter, or a "value", it means this encoding
of the transition table for the function.
It's also true that any way of correctly "executing" this
program/transition table is as good as any other, as long as the
transition function is correctly followed using the rules defined
by the model (defined back in step 1). So whether I build hardware
that actually realizes the model from step 1, or make a UTM program
that follows the state transition table, or implement it by using
lego mindstorm pieces, it really doesn't matter -- if it works in
*any* correct execution environment, it must work in *all*
*correct* execution environments, since all such environments do
exactly the same thing with this state transition table.
Now keep in mind here, before you have a knee-jerk reaction to the
above statements, and trot out your debunked "turning the power
off" example, that in the end (step #4 below) I will be running
*exactly* the given halt analyzer in *your* model exactly. I will
not be changing any conditions.
Now consider a UTM that *exactly* and *correctly* implements your
model. This is very easy to do -- it simply keeps track of the
current state, and keeps the tape contents in arrays, along with
the current tape position. The "code" of my UTM follows your state
transition table, so after every step of its execution it will be
in exactly the same state, with exactly the same tape contents, as
your machine. If your halt analyzer works in your model, it
clearly works in my UTM as well, since my UTM exactly implements
your model.
However, my UTM does one more thing -- after the execution is
completed, it can look at the "write-only output tape". *Your*
program can't do that, because your model doesnt allow it, but my
UTM certainly can. So my UTM code looks like this:
void myUTM(HA, 2ndParam) {
while (not in a final state) {
Execute HA exactly as defined by your model (given the state
transition table provided as the 1st parameter to myUTM), using
input <2ndParam,<HA,2ndParam>>
}
result = Look at the simulated output tape to see what the halt
analyzer output
if (result == "Halts")
Loop forever;
else
halt;
}
Notice that myUTM is just a program, which takes a transition table
and an input to a TM as its input. The first part of myUTM (the
while loop) exactly executes HA(2ndParam,<HA,2ndParam>) following
the rules of your model. Let me repeat that last part with
emphasis: *FOLLOWING THE RULES OF YOUR MODEL*.
The input for myUTM is going to be the pair <HA,myUTM>, which means
that the first part of this code exactly executes
HA(myUTM,<HA,myUTM>). This is the input that I will supply to your
halt analyzer: the machine to analyze is "myUTM", and the input for
that machine is "<HA,myUTM>". This is easy to write down, once you
supply a halt analyzer in step 3, so this defines my procedure for
producing the input that your halt analyzer can't correctly
process.
3) Now you get to supply whatever halt analyzer you like, claiming
that it works in your model with the write only output. Let's call
this PHA for "Peter's Halt Analyzer", and remember that it takes
two inputs, "machine" and "input".
4) Now I'll show you that your halt analyzer (PHA), run in your model
with the write-only output (the "screen"), will not work on the
input that I described in step 2. Notice that I don't care how
your PHA works. It is perfectly free to examine the input given to
it to see if the machine is "myUTM", since you know exactly what
that is. In other words, PHA is perfectly free to see if I'm
trying to fool it. And it can "know" when I'm trying to fool it.
It's just that it can't do anything about it. Here's the full
argument:
We're running PHA(myUTM, <PHA,myUTM>) in your model, under your
conditions. Since it's your model and your conditions, it's
required to output the answer of the halt analysis to the "screen",
which must be "Halts" or "Doesn't Halt", so consider each case
separately:
Case 1 ("Halts"): Remember what we said in step 2 -- the first
part of myUTM (through the while loop) runs PHA(myUTM,<PHA,myUTM>)
in *your* model. In other words, this part runs exactly the same
code, in exactly the same way, as the call to PHA. Since this
case is defined by the fact that PHA(myUTM,<PHA,myUTM>) says
"Halts" (to the "screen"), the value of "result" in myUTM will be
"Halts". This in turn makes myUTM loop for ever, so it doesn't
halt. Therefore, the answer of PHA is wrong.
Case 2 ("Doesn't Halt"): Same basic argument as case 1.
Summary: We defined a model with a write-only "screen". Then we
described how to make an input to a halt analyzer, running in the
"write-only screen" model. Then we showed that if you took any halt
analyzer in the "write-only screen" model, and produced an input as
described, then the halt analyzer (in the "write-only screen" model)
would output the *wrong* answer TO THE SCREEN.
This means that any halt analyzer does not work on at least one input
in the "write-only screen" model.
Since this works for any possible halt analyzer in the "write-only
screen" model, we have shown that there cannot be a halt analyzer that
gives the correct answer for all inputs in the "write-only screen"
model.
-- That's News To Me! newstome@comcast.net
- Next message: Simon G Best: "Re: Can a regular Turing Machine provide Protected Memory?"
- Previous message: Peter Olcott: "Re: [PO] Can a regular Turing Machine provide Protected Memory?"
- In reply to: Peter Olcott: "Re: Can a regular Turing Machine provide Protected Memory?"
- Next in thread: Peter Olcott: "Re: Can a regular Turing Machine provide Protected Memory?"
- Reply: Peter Olcott: "Re: Can a regular Turing Machine provide Protected Memory?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|