P
Peter Olcott said:
David Hilsee said:Off-topic, but I'll bite.
I went to that link expecting a lot more than I found. I was expecting a
very thorough proof that showed that the Halting Problem had a flaw. I kept
re-reading the page because I thought that I had missed something. I guess
I didn't, because all I found was a way to modify or create a program so
that it is possible to know if it will halt. Even then, the second
objection listed on that page shows that it doesn't always work. If I
misunderstood the solution, then feel free to correct me.
The first link on that page defines the halting problem very clearly: No
program can ever be written to determine whether any arbitrary program will
halt. The key phrase here is "any arbitrary." If you try to refute the
claim by modifying the code, then you cannot claim that your solution works
for an arbitrary program.
It works FOR any arbitrary program. It does not work WITH any
arbitrary program. The original analyzer had to be changed. Now
every program analyzed will result in Halting or Not Halting, as long
as the security of the solution has not been violated. If it has been
violated, then after this has been corrected. it will now work with
the program that it did not work for.
Peter said:
<snip>That seems to be a bit of a proof by semantic shift. The link you cited
states the theorem specifically refers to functions that return the
result.
The NIST definition of the Halting Problem is assumed:
No program can ever be written to determine whether
any arbitrary program will halt
This version of the Halting Problem is supposed to be
analogous to every other version, thus valid refutations
of this version should equally apply (with adaptation)
to all other versions.
Peter Olcott said:
Method of this Proof
X = The solution to the Halting Problem
Y = The basis of the original proof
Z = The basis of this proof
Structure of Original Proof---->Y makes X impossible
Structure of This Proof--------->Z makes Y impossible
tom_usenet said:Do you understand how proof by contradiction works? It seems not. See:
http://zimmer.csufresno.edu/~larryc/proofs/proofs.contradict.html
I found this bit particularly amusing:
"The LoopIfHalts() function depends upon access to the return value of
the WillHalt() function. If every possible access to this value is
completely denied to every other program, then LoopIfHalts() can not
possibly effect the WillHalt() function."
So, in other works, WillHalt is no longer a function that can check
whether a program halts or not, since you've just said you can't get
at the return value!
Tom
Stewart Gordon said:You mean you're planning to sell that page?
That seems to be a bit of a proof by semantic shift. The link you cited
states the theorem specifically refers to functions that return the
result.
Anyway, I still can't see how this refutes the seemingly obvious statement:
If it is possible to write a function that calculates X, then it is
possible to write a function that calculates X and returns X to the caller.
Stewart Gordon said:Stewart Gordon wrote:
<snip>
Keith H Duggar said:The authors misinterpretation of the halting problem seems to
come into play with his refute of objection (2) we he believes
it is sufficient to show that the proof does not apply to SOME
program. When it fact the opposite is true. The proof only
Peter Olcott said:There does not exist any program in the set of all possible
programs a program that would cause my method to fail to
provide the correct halting result.
LoopIfHalts() to function does not refute this method. In other words
defeating the security in less than every possible case does not prove that
this method does not work. One single case where the security is not
circumvented proves that the idea still works. Even a single case proves
that this method still works because this single case would form the
required single counter-example to refute the claim:
No program can ever be written to determine whether any arbitrary program
will halt"
This paragraph admits that it is possible to create a LoopIfHalts function
that causes the WillHalt() method to fail, and then says that this is not
proof that the method does not work.
However, it is most certainly proof
that the method does not work in every case, which means that it fails to
meet the requirement, which is that it must work for "any arbitrary
program."
Providing one specific instance where the method can be made to fail
does not at all refute that the method works correctly in general.
It would be like trying to prove that no cars run by taking one car
and driving it into a tree, so that it does not run. What about all the
cars that were not driven into trees? Don't all these other cars prove
that cars run?
In all thoses instances where you do not return the result to the
caller, you have solved the Halting Problem.
Peter Olcott said:Providing one specific instance where the method can be made to fail
does not at all refute that the method works correctly in general.
It would be like trying to prove that no cars run by taking one car
and driving it into a tree, so that it does not run. What about all the
cars that were not driven into trees? Don't all these other cars prove
that cars run?
It does work for any arbitrary program as its input parameter.
There is no program that it can not correctly determine halting
status. It even works for the original Halting Problem example,
as input.
Peter Olcott said:
In case you are unfamiliar, the LoopIfHalts() function is the
counter-example used to prove that the Halting Problem
can not be solved. By making LoopIfHalts() impossible
to construct, the original basis of the halting Problem ceases
to exist.
Since it is possible to write X that does not return a value to its
caller, then its possible to prevent the basis for proving that
solving the Halting Problem is impossible to exist.
In all thoses instances where you do not return the result to the
caller, you have solved the Halting Problem.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.