From: Daryl McCullough on
Peter Olcott says...

>It is not that difficult really. I will explain how an ill-formed question can
>be determined in terms of the example below. See the end of the example for the
>analytical commentary.
>
>void LoopIfHalts(string SourceCode) {
> if ( WillHalt(SourceCode, SourceCode) == TRUE )
> while (TRUE) // loop forever
> ;
> else
> return;
>}
>
>
>int WillHalt(string SourceCode, string InputData) {
> if (MalignantSelfReference(SourceCode, InputData))
> throw(MALIGNANT_SELF_REFERENCE);
> if ( TheProgramWillHalt(SourceCode, InputData) )
> return TRUE;
> else
> return FALSE;
>}

You are assuming that there is a program
MalignantSelfReference(SourceCode, InputData)
which will return true if executing that
particular source code on that input data
results in a "malignant self reference".

But then determining whether something involves
"malignant self reference" is, in fact,
equivalent to solving the halting problem.

--
Daryl McCullough
Ithaca, NY

From: Peter Olcott on

"Patricia Shanahan" <pats(a)acm.org> wrote in message
news:LaCZg.9137$Lv3.7949(a)newsread1.news.pas.earthlink.net...
> Peter Olcott wrote:
>> "Patricia Shanahan" <pats(a)acm.org> wrote in message
> ...
>>> How are we supposed to avoid asking ill-formed questions, or to find out
>>> that we have asked one, without an algorithm for deciding if a question
>>> is ill-formed?
>>>
>>> Patricia
>>>
>>
>> It is not that difficult really. I will explain how an ill-formed question
>> can be determined in terms of the example below. See the end of the example
>> for the analytical commentary.
>>
>> void LoopIfHalts(string SourceCode) {
>> if ( WillHalt(SourceCode, SourceCode) == TRUE )
>> while (TRUE) // loop forever
>> ;
>> else
>> return;
>> }
>>
>>
>> int WillHalt(string SourceCode, string InputData) {
>> if (MalignantSelfReference(SourceCode, InputData))
>> throw(MALIGNANT_SELF_REFERENCE);
>> if ( TheProgramWillHalt(SourceCode, InputData) )
>> return TRUE;
>> else
>> return FALSE;
>> }
>>
>>
>> LoopIfHalts(LoopIfHalts);
>>
>> // ANALYTICAL COMMENTARY
>> WillHalt() is provided with the source code of LoopIfHalts(), as input, so
>
> Not necessarily. It can be provided with the source code of any program
> that is equivalent to LoopIfHalts in the sense of halting on SoureCode
> if, and only if, SourceCode itself does so:
>
> if ( WillHalt(ObfuscateHorribly(SourceCode),SourceCode) == True )
>
> For example, ObfuscateHorribly may translate SourceCode to Snobol, and
> wrap it up with a Snobol interpreter.
>
>
>> WillHalt() can see exactly how the return value of the invocation of itself
>> under test will be used to toggle the result of the analysis of the
>> invocation of itself under test. WillHalt() can see that LoopIfHalts() is
>> toggling the result of the invocation of itself under test to invalidate the
>> analysis of the invocation of itself under test.
>
> How does it recognize programs equivalent, but not identical, to itself?
>
> Moreover, you need to consider far more complicated LoopIfHalts
> implementations. The result of the WillHalt test may be run through all
> sorts of calculations before ultimately controlling a halt or loop decision.

I can do as others have done and complicate the problem beyond all possible
recognition. Instead I chose to boil the problem down to its most fundamental
essence. Try to address the problem as I have framed it, and refrain from
attempts to change this framework. The ability to complicate the example so that
no one can understand it, is not a valid form of refutation.

Within the exact and precise framework that I have defined the Halting Problem,
is it now clear, that at least within the context of this framework that the
question:
"Does LoopIfHalts(LoopIfHalts) halt?" has no correct YES or NO answer, and is
thus erroneously formed because it is asking a YES or NO question that has no
correct YES or NO answer.

>
> The loop can be far subtler. It might, for example, be a search for the
> largest prime number.
>
>>
>> Therefore WillHalt() can determine that the question: "Does
>> LoopIfHalts(LoopIfHalts) halt?" has no correct YES or NO answer, and is
>> thus an erroneously formed because it is asking a YES or NO question that has
>> no correct YES or NO answer.
>>
>> If you don't agree with this, then please point out every step and every
>> detail that you do not agree with.
>
> I've written out a couple of my objections. Essentially, I believe
> MalignantSelfReference has to perform two very difficult tests:

Not in the form of the fundamental essence that I have framed it. In the precise
form that I framed the problem it becomes obviously clear that asking the
question:
"Does LoopIfHalts(LoopIfHalts) halt?" has no correct YES or NO answer, and is
thus erroneously formed because it is asking a YES or NO question that has no
correct YES or NO answer.

If you do not see this, within the specific context of this precisely defined
framework, what point is it that you disagree with?

>
> 1. Determine whether two programs, its source code and its first parameter,
> have the same halting behavior on a given input.
>
> 2. Find out whether its result ever affects a loop-or-terminate decision.
>
> Patricia

Maybe it might help if you don't begin your response starting with the goal of
refutation?


From: Patricia Shanahan on
Peter Olcott wrote:
....
> I can do as others have done and complicate the problem beyond all possible
> recognition. Instead I chose to boil the problem down to its most fundamental
> essence. Try to address the problem as I have framed it, and refrain from
> attempts to change this framework. The ability to complicate the example so that
> no one can understand it, is not a valid form of refutation.
>
> Within the exact and precise framework that I have defined the Halting Problem,
> is it now clear, that at least within the context of this framework that the
> question:
> "Does LoopIfHalts(LoopIfHalts) halt?" has no correct YES or NO answer, and is
> thus erroneously formed because it is asking a YES or NO question that has no
> correct YES or NO answer.
....

If you are defining your own problem, you can solve it any way you like,
but please don't call it "the Halting Problem" unless you really do mean
a decision procedure for the set of terminating Turing machine computations.

> Maybe it might help if you don't begin your response starting with the goal of
> refutation?

It would not help at all with testing the validity of your ideas, which
is my objective.

If you are trying to test a program, do you feed it only the easy cases,
or do you feed it deliberately difficult cases, such as the largest and
smallest permitted inputs?

Patricia
From: Jack Campin - bogus address on
>>> The Halting Problem too, is merely an ill-formed question, nothing more,
>>> and nothing less.
>> How do you deal with the fact that the halting problem for some kinds of
>> computation *is* solvable? That's what complexity analysis is about.
>> Any time you make a database query, it will have gone through an optimizer
>> that solves the halting problem for the database query language (and does
>> considerably more than that). There is nothing at all ill-formed about
>> asking how long it will take to get an answer.
>> This works because database query languages can't do as much as Turing
>> machines or unbounded-memory abstract machines programmed in C can. Read
>> a book and you might see what the relevant difference is.
>
> +-----------------------+
> | |
> V |
> (What is the answer to this quesion?)--+
>
> What is it about the about above question that make it unsolvable?

That's a pretty boring question. The difference between database query
languages and Turing machines is interesting, important, and *written
up in books* which you would be better occupied reading than flinging
around defensive bullshit like this.

What's stopping you from reading about computability?

============== j-c ====== @ ====== purr . demon . co . uk ==============
Jack Campin: 11 Third St, Newtongrange EH22 4PU, Scotland | tel 0131 660 4760
<http://www.purr.demon.co.uk/jack/> for CD-ROMs and free | fax 0870 0554 975
stuff: Scottish music, food intolerance, & Mac logic fonts | mob 07800 739 557
From: Alan Smaill on
"Peter Olcott" <NoSpam(a)SeeScreen.com> writes:

> "Alan Smaill" <smaill(a)SPAMinf.ed.ac.uk> wrote in message
> news:fwepscp1xz4.fsf(a)collins.inf.ed.ac.uk...
>> "Peter Olcott" <NoSpam(a)SeeScreen.com> writes:
>>
>>> "Alan Smaill" <smaill(a)SPAMinf.ed.ac.uk> wrote in message
>>> news:fwezmbu0xdj.fsf(a)collins.inf.ed.ac.uk...
>>>> "Peter Olcott" <NoSpam(a)SeeScreen.com> writes:
>>>>
>>>>> http://www.cprogramming.com/tutorial/computersciencetheory/halting.html
>>>>> Are you saying that the root cause of the "Problem" aspect of the
>>>>> "Halting Problem" has nothing to do with self-reference?
>>>>
>>>> The "problem" nomenclature is just the same as is used in
>>>> the Travelling Salesman Problem.
>>>>
>>>> en.wikipedia.org/wiki/Traveling_salesman_problem
>>>>
>>>> The halting problem, just as with the TSP, is well-posed and unambiguous.
>>>>
>>>> --
>>>> Alan Smaill
>>>
>>> http://www.cprogramming.com/tutorial/computersciencetheory/halting.html
>>> None-the-less it is this mode that I am using in my investigation. I
>>> understand Turing Machines, and UTM's, both of these would mathematically
>>> map to this alternative model.
>>
>> You can do what you want in your own work, obviously.
>>
>> What is the relevance of the link you just cited to my observation
>> about the normal use in computer science?
>> In that link, the word "problem" is used as I suggested.
>>
>>
>> --
>> Alan Smaill
>
> I am using the sort of model that the link provides as my basis,
> rather than the
> formal mathematical model.
>
> int WillHalt(string SourceCode, string InputData) {
> if (MalignantSelfReference(SourceCode, InputData))
> throw(MALIGNANT_SELF_REFERENCE);
> if ( TheProgramWillHalt(SourceCode, InputData) )
> return TRUE;
> else
> return FALSE;
> }
>
> This defeats the "problem" aspect of the Halting Problem.

You have simply ignored my question.
Yes, you can tackle what problems you want and call them what
you want from your own piont of view.

Yet again, do you agree that in standard usage in computer science,
the terminology "Halting Problem" uses "problem" in the same way
as in the terminology "Travelling Salesman Problem"?

This is a small enough point which for some reason you
seem determined to ignore.

--
Alan Smaill