Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"The following is not for the weak of heart or Fundamentalists." -- Dave Barry


devel / comp.lang.c / Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

SubjectAuthor
* Refuting the HP proofs (adapted for software engineers)olcott
+* Re: Refuting the HP proofs (adapted for software engineers)Manu Raju
|`* Re: Refuting the HP proofs (adapted for software engineers)olcott
| +* Re: Refuting the HP proofs (adapted for software engineers)Richard Damon
| |`- Re: Refuting the HP proofs (adapted for software engineers)olcott
| `* Re: Refuting the HP proofs (adapted for software engineers)Manu Raju
|  `* Re: Refuting the HP proofs (adapted for software engineers)olcott
|   `* Re: Refuting the HP proofs (adapted for software engineers)Manu Raju
|    `* Re: Refuting the HP proofs (adapted for software engineers)olcott
|     `* Re: Refuting the HP proofs (adapted for software engineers)Mr Flibble
|      `- Re: Refuting the HP proofs (adapted for software engineers)olcott
+* Re: Refuting the HP proofs (adapted for software engineers)Muttley
|`* Re: Refuting the HP proofs (adapted for software engineers)olcott
| `* Re: Refuting the HP proofs (adapted for software engineers)Muttley
|  `* Re: Refuting the HP proofs (adapted for software engineers)olcott
|   `* Re: Refuting the HP proofs (adapted for software engineers)Freethinker
|    `- Re: Refuting the HP proofs (adapted for software engineers)olcott
`* Re: Refuting the HP proofs (adapted for software engineers)[ Mikeolcott
 +* Re: Refuting the HP proofs (adapted for software engineers)[ MikeRichard Damon
 |`* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 | `* Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]Mr Flibble
 |  +* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |`* Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]Mr Flibble
 |  | `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |  `* Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]Mr Flibble
 |  |   `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |    `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |     `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |      `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |       `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |        `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |         `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |          `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |           `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |            `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             +* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |`* Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]Mr Flibble
 |  |             | `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |  `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |   +- Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |   `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |    `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |     +* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |     |`- Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |     `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |      `* Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]Mr Flibble
 |  |             |       `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |        `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |         `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |          `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |           `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |            `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |             `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |              `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |               `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |                +- Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |                `* Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             |                 `* Re: Refuting the HP proofs (adapted for software engineers)[Mr Flibble
 |  |             |                  `- Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  |             `* Re: Refuting the HP proofs (adapted for software engineers)[ membersMike Terry
 |  |              `- Re: Refuting the HP proofs (adapted for software engineers)[ membersolcott
 |  `- Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]Siri Cruise
 `- Re: Refuting the HP proofs (adapted for software engineers)[ MikeMr Flibble

Pages:123
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21866&group=comp.lang.c#21866

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 15:01:14 -0500
Date: Tue, 7 Jun 2022 15:01:13 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<t7g7jb$142m$1@news.muc.de> <RaadnXFvdY_OLwb_nZ2dnUU7_83NnZ2d@giganews.com>
<t7hvlv$5e5$1@dont-email.me> <rcSdncOuUMYvGwH_nZ2dnUU7_81g4p2d@giganews.com>
<t7i32v$j5n$1@news.muc.de> <V4qdnY-VjKcsDAH_nZ2dnUU7_83NnZ2d@giganews.com>
<t7i6o1$1bk1$1@news.muc.de> <t7ifji$hn8$1@gioia.aioe.org>
<t7ihd1$1qaq$1@news.muc.de> <t7j2et$gmt$1@gioia.aioe.org>
<t7j8vh$2i1$1@dont-email.me> <t7jg0k$1qko$1@gioia.aioe.org>
<SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220607204944.000027de@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
Lines: 435
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-SrOYgP4ElndT4mXNHJc86cKhLMFjGQWrAeeKqtVe5tJFcJrsXEaL1U46V4wsY7fw2q6vp++ptOYjWEN!+uKcEhA1tMXmx/ZvEVlfFGroGkKLNHCdDeKfu6ZMNa96yEDu1gMARftTgO7mKPjgffmN+L5+ufSu
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 22246
 by: olcott - Tue, 7 Jun 2022 20:01 UTC

On 6/7/2022 2:49 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 14:09:14 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com> wrote:
>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott said:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt whenever it
>>>>>>>>>>>>>>>>>>>>>>> reaches a configuration for which δ is not
>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible because
>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact, we will assume
>>>>>>>>>>>>>>>>>>>>>>> that no transitions are defined for any final
>>>>>>>>>>>>>>>>>>>>>>> state so the Turing machine
>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a final state.
>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to Formal
>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and Company.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function this means
>>>>>>>>>>>>>>>>>>>>>>> reaching the "ret"
>>>>>>>>>>>>>>>>>>>>>>> instruction.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is not
>>>>>>>>>>>>>>>>>>>>>> "ret". Instead, "not
>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means 'halt'
>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the stack is
>>>>>>>>>>>>>>>>>>>>>> empty
>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location that is
>>>>>>>>>>>>>>>>>>>>>> not specifiec by the
>>>>>>>>>>>>>>>>>>>>>>      program
>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition is much
>>>>>>>>>>>>>>>>>>>>>> better.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the Turing
>>>>>>>>>>>>>>>>>>>>> machine way of saying
>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of saying
>>>>>>>>>>>>>>>>>>>>> the same thing.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing machine
>>>>>>>>>>>>>>>>>>>> equivalent of an "abnormal termination" in C?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.  It either
>>>>>>>>>>>>>>>>>> runs and halts,
>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final state of a
>>>>>>>>>>>>>>>>>> turing machine,
>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM ceasing to
>>>>>>>>>>>>>>>>> calculate computation steps for some computation, and
>>>>>>>>>>>>>>>>> going on to calculate something else instead.  It does
>>>>>>>>>>>>>>>>> not mean: a)  that the TM (doing the simulation) has
>>>>>>>>>>>>>>>>> halted b)  that the simulated computation halts
>>>>>>>>>>>>>>>>> c)  that the simulated computation never halts
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about nice
>>>>>>>>>>>>>>>> shades of words than
>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
>>>>>>>>>>>>>>>> aborting it will bring
>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is merely
>>>>>>>>>>>>>>>> part of the TM, then the word "halt" has a different
>>>>>>>>>>>>>>>> meaning when applied to that simulation part from when
>>>>>>>>>>>>>>>> applied to the entire TM.  I'm not even sure
>>>>>>>>>>>>>>>> what you mean when you say a part of a TM has halted or
>>>>>>>>>>>>>>>> not halted.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I never
>>>>>>>>>>>>>>> talked about /part/ of a TM halting, and like you, I
>>>>>>>>>>>>>>> can't work out what that would mean!  I used "halt"
>>>>>>>>>>>>>>> only with respect to a computation, meaning that the
>>>>>>>>>>>>>>> computation halts [there is an n such that computation
>>>>>>>>>>>>>>> step n is a TM final state].
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Reading what you say very carefully, I think that by
>>>>>>>>>>>>>>> your definition of simulation, the simulating TM must
>>>>>>>>>>>>>>> be a "pure" simulator that does nothing but simulate
>>>>>>>>>>>>>>> computation steps until the simulation halts, at which
>>>>>>>>>>>>>>> point the simulating TM halts (like a UTM).  I get that
>>>>>>>>>>>>>>> with that interpretation what you said:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>  >>> Your aborted simulation is just one final
>>>>>>>>>>>>>>> state of a turing machine,
>>>>>>>>>>>>>>>  >>> which has thus halted.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   makes sense and is correct.  I'd just say I don't
>>>>>>>>>>>>>>> think that usage of "simulation" is very useful, and is
>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about (so it would be
>>>>>>>>>>>>>>> wrong if applied PO's posts...)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply the
>>>>>>>>>>>>>>> activity performed by a TM which consists of calculating
>>>>>>>>>>>>>>> computation steps of some given computation.  As such
>>>>>>>>>>>>>>> it's just a part of the TM logic. A TM's typical use of
>>>>>>>>>>>>>>> simulation might be something like "..the TM simulates
>>>>>>>>>>>>>>> the computation for n steps, and if the simulation halts
>>>>>>>>>>>>>>> during those n steps, the TM [blah blah], /otherwise/
>>>>>>>>>>>>>>> the TM [blah blah blah]...". Just about every reference
>>>>>>>>>>>>>>> in the literature I can recall is something like that.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is just the TM
>>>>>>>>>>>>>>> ceasing to calculate >> computation steps for some
>>>>>>>>>>>>>>> computation, and going on to calculate >> something else
>>>>>>>>>>>>>>> instead.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of P(P),
>>>>>>>>>>>>>>> the TM either halts or enters an infinite loop.  (That
>>>>>>>>>>>>>>> logic is not part of the simulation, IMO.)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>  >> a)  that the TM (doing the simulation) has
>>>>>>>>>>>>>>> halted
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> obviously, because now P has gone on to something
>>>>>>>>>>>>>>> else...
>>>>>>>>>>>>>>>  >> b)  that the simulated computation halts
>>>>>>>>>>>>>>>  >> c)  that the simulated computation never halts
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> obviously - in general different exacmples of a
>>>>>>>>>>>>>>> simulated computation P(I) might halt or never halt,
>>>>>>>>>>>>>>> and this is unaffected by a simulator's decision to
>>>>>>>>>>>>>>> simulate no further computation steps. [The TM may have
>>>>>>>>>>>>>>> spotted some pattern in the simulated computation which
>>>>>>>>>>>>>>> implies P(I) never halts - that is a separate matter,
>>>>>>>>>>>>>>> but for sure the mere act of "aborting" the simulation
>>>>>>>>>>>>>>> doesn't imply P(I) never halts, or imply that it
>>>>>>>>>>>>>>> halts...
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating TM
>>>>>>>>>>>>>>> steps (aka aborts its simulation), NOTHING HALTS: not
>>>>>>>>>>>>>>> the simulating TM, not the simulated computation, and
>>>>>>>>>>>>>>> NOT ANY PART OF EITHER OF THOSE. (Like you say, what
>>>>>>>>>>>>>>> would part of a TM halting mean?)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I think of a TM and an input string as defining a
>>>>>>>>>>>>>> sequence (an ordered list). The elements of the sequence
>>>>>>>>>>>>>> are pairs of a TM state name and a string representing
>>>>>>>>>>>>>> the "tape" contents when the state was entered. Note
>>>>>>>>>>>>>> that this view has no character of animation in it and
>>>>>>>>>>>>>> makes the definition of the halt predicate (H) trivial:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite then
>>>>>>>>>>>>>> TRUE else FALSE.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least meant).
>>>>>>>>>>>>> Your sequence is my computation steps. Formally, these
>>>>>>>>>>>>> would be defined inductively via the rule to go from step
>>>>>>>>>>>>> n to step n+1. (Not an animation, but the induction gives
>>>>>>>>>>>>> some /sense/ of step-by-step calculation, and a simulator
>>>>>>>>>>>>> will follow this, starting at step 1, then calculate step
>>>>>>>>>>>>> 2 and so on.  Still, I agree the entire sequence [the
>>>>>>>>>>>>> "computation"] exists as one timeless structure.  Too
>>>>>>>>>>>>> abstract for PO...)
>>>>>>>>>>>>
>>>>>>>>>>>> In other words when we make sure to conflate the program
>>>>>>>>>>>> under test with the test program as a single computation
>>>>>>>>>>>> then the whole idea of a halt decider becomes less coherent
>>>>>>>>>>>> and
>>>>>>>>>>>>
>>>>>>>>>>>> this can be used as an excuse to pretend that you don't
>>>>>>>>>>>> already know that H(P,P)==0 is correct and the H/P
>>>>>>>>>>>> relationship matches the halting problem counter example
>>>>>>>>>>>> template.
>>>>>>>>>>>>
>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>> {
>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>    return;
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> int main()
>>>>>>>>>>>> {
>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>>       For any program H that might determine if
>>>>>>>>>>>> programs halt, a "pathological"
>>>>>>>>>>>>       program P, called with some input, can pass its
>>>>>>>>>>>> own source and its input to
>>>>>>>>>>>>       H and then specifically do the opposite of what H
>>>>>>>>>>>> predicts P will do. No H
>>>>>>>>>>>>       can exist that handles this case.
>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> A simulator animates the production of the sequence and
>>>>>>>>>>>>>> that causes some difficulties in the same way that
>>>>>>>>>>>>>> elaborating an infinite sum or sequence does in math
>>>>>>>>>>>>>> classes. An (ultimate) value only exists if there is some
>>>>>>>>>>>>>> notation of convergence or limit which typically is the
>>>>>>>>>>>>>> case with examples used in a math class. There is no
>>>>>>>>>>>>>> definition of convergence or limit with the sequence
>>>>>>>>>>>>>> defined by TM(STRING); rather, we simply ask about the
>>>>>>>>>>>>>> last pair if the sequence is finite.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>> The question right now is what you would call a TM which
>>>>>>>>>>>>> evaluates the first 10 steps of a computation, and then
>>>>>>>>>>>>> does something else. What is it doing while evaluating
>>>>>>>>>>>>> those 10 steps?
>>>>>>>>>>>>>
>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>
>>>>>>>>>>>>> My terminology would be that it's "simulating" the
>>>>>>>>>>>>> computation (just for 10 steps) - then it stops simulating
>>>>>>>>>>>>> and does something else. Obviously I wouldn't describe it
>>>>>>>>>>>>> as "correctly" simulating, because nobody considers
>>>>>>>>>>>>> incorrect simulations, so the word would be redundant!
>>>>>>>>>>>>
>>>>>>>>>>>> It is required because my reviewers are making their best
>>>>>>>>>>>> possible effort to form rebuttals and the most persistent
>>>>>>>>>>>> of the fake rebuttals has been that the simulation is
>>>>>>>>>>>> incorrect. It is very easy to verify the correct x86
>>>>>>>>>>>> emulation on the basis of the x86 language.
>>>>>>>>>>>
>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct simulation
>>>>>>>>>>> needs show the same behavior of the thing it is simulating.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is trying to
>>>>>>>>>> claim that it is utterly impossible to create a C program
>>>>>>>>>> that examines the x86 execution trace derived from
>>>>>>>>>> simulating the input to H0(Infinite_Loop) with an x86
>>>>>>>>>> emulator to correctly determine that Infinite_Loop()
>>>>>>>>>> infinitely loops.
>>>>>>>>>>
>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>> {
>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> int main()
>>>>>>>>>> {
>>>>>>>>>> Output("Input_Halts = ", H0(Infinite_Loop));
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>
>>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace Stored
>>>>>>>>>> at:212343 [00001342][00212333][00212337] 55 push ebp
>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
>>>>>>>>>> Local Halt Decider: Infinite Loop Detected Simulation
>>>>>>>>>> Stopped
>>>>>>>>>
>>>>>>>>> But he isn't doing that; the issue is not the infinite loop
>>>>>>>>> but the logic used to decide to enter the infinite loop. Post
>>>>>>>>> *full* traces.
>>>>>>>>>
>>>>>>>>> /Flibble
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> In other words you are unable to tell that _Infinite_Loop()
>>>>>>>> contains an infinite loop.
>>>>>>>
>>>>>>> Again that isn't the issue; the issue is the logic used to
>>>>>>> decide when to enter the infinite loop;
>>>>>>
>>>>>>
>>>>>> In other words when H0(Infinite_Loop) is invoked we have no idea
>>>>>> that a correct x86 emulation of Infinite_Loop would reach the
>>>>>> instruction at machine address [00001345] or not.
>>>>>>
>>>>>> It might be the case that a correct x86 emulation of
>>>>>> Infinite_Loop might instead involve emulating an entirely
>>>>>> different function that plays tic-tac-toe?
>>>>>
>>>>> Detecting an infinite loop is indeed trivial however your program
>>>>> and trace are not telling the full story as far as the HP proofs
>>>>> are concerned;
>>>>
>>>> The only thing that my program trace conclusively proves is that
>>>> H(P,P)==0 is the correct return value that does correctly
>>>> correspond to the actual behavior of the actual input.
>>>>
>>>> For any program H that might determine if programs halt, a
>>>> "pathological"
>>>> program P, called with some input, can pass its own source
>>>> and its input to
>>>> H and then specifically do the opposite of what H predicts P
>>>> will do. No H
>>>> can exist that handles this case.
>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>
>>>>
>>>> void P(u32 x)
>>>> {
>>>> if (H(x, x))
>>>> HERE: goto HERE;
>>>> return;
>>>> }
>>>>
>>>> int main()
>>>> {
>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>> }
>>>>
>>>> _P()
>>>> [00001352](01) 55 push ebp
>>>> [00001353](02) 8bec mov ebp,esp
>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>> [00001358](01) 50 push eax // push P
>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
>>>> [0000135c](01) 51 push ecx // push P
>>>> [0000135d](05) e840feffff call 000011a2 // call H
>>>> [00001362](03) 83c408 add esp,+08
>>>> [00001365](02) 85c0 test eax,eax
>>>> [00001367](02) 7402 jz 0000136b
>>>> [00001369](02) ebfe jmp 00001369
>>>> [0000136b](01) 5d pop ebp
>>>> [0000136c](01) c3 ret
>>>> Size in bytes:(0027) [0000136c]
>>>>
>>>> It is completely obvious that when H(P,P) correctly emulates its
>>>> input that it must emulate the first seven instructions of P.
>>>> Because the seventh instruction of P repeats this process we can
>>>> know with complete certainty that the emulated P never reaches its
>>>> final “ret” instruction, thus never halts.
>>>
>>> But the halting problem proofs (including [Strachey 1965]) that you
>>> are trying to refute don't do that, they DO NOT make any recursive
>>> calls
>>
>> Because the idea of a simulating halt decider being applied to the
>> halting problem counter-example is brand new with me you won't find
>> other references that refer to "infinitely nested simulation".
>>
>>> which is what you are doing with "call H" above. Why are you doing
>>> something different to what the proofs you are trying to refute do
>>> given doing so is no longer related to the Halting Problem?
>>>
>>> /Flibble
>>>
>>
>> The proofs never bothered to examine my idea because it was unknown
>> by everyone prior to me creating it in 2016.
>
> It seems to me that your idea would only be novel because it is a
> mistake. Your mistake is to have the candidate program call into the
> SAME INSTANCE of the decider which is deciding the candidate program.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220607210605.00004d5c@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21867&group=comp.lang.c#21867

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!npeer.as286.net!npeer-ng0.as286.net!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx01.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220607210605.00004d5c@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<t7hvlv$5e5$1@dont-email.me>
<rcSdncOuUMYvGwH_nZ2dnUU7_81g4p2d@giganews.com>
<t7i32v$j5n$1@news.muc.de>
<V4qdnY-VjKcsDAH_nZ2dnUU7_83NnZ2d@giganews.com>
<t7i6o1$1bk1$1@news.muc.de>
<t7ifji$hn8$1@gioia.aioe.org>
<t7ihd1$1qaq$1@news.muc.de>
<t7j2et$gmt$1@gioia.aioe.org>
<t7j8vh$2i1$1@dont-email.me>
<t7jg0k$1qko$1@gioia.aioe.org>
<SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 430
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 20:06:03 UTC
Date: Tue, 7 Jun 2022 21:06:05 +0100
X-Received-Bytes: 22766
 by: Mr Flibble - Tue, 7 Jun 2022 20:06 UTC

On Tue, 7 Jun 2022 15:01:13 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 14:09:14 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com> wrote:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott said:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt whenever it
> >>>>>>>>>>>>>>>>>>>>>>> reaches a configuration for which δ is not
> >>>>>>>>>>>>>>>>>>>>>>> defined; this is possible because
> >>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact, we will
> >>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are defined for
> >>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing machine
> >>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a final state.
> >>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to Formal
> >>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and Company.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
> >>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
> >>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function this
> >>>>>>>>>>>>>>>>>>>>>>> means reaching the "ret"
> >>>>>>>>>>>>>>>>>>>>>>> instruction.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is not
> >>>>>>>>>>>>>>>>>>>>>> "ret". Instead, "not
> >>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
> >>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means
> >>>>>>>>>>>>>>>>>>>>>> 'halt'
> >>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the stack is
> >>>>>>>>>>>>>>>>>>>>>> empty
> >>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location that is
> >>>>>>>>>>>>>>>>>>>>>> not specifiec by the
> >>>>>>>>>>>>>>>>>>>>>>      program
> >>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition is
> >>>>>>>>>>>>>>>>>>>>>> much better.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the Turing
> >>>>>>>>>>>>>>>>>>>>> machine way of saying
> >>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of
> >>>>>>>>>>>>>>>>>>>>> saying the same thing.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing machine
> >>>>>>>>>>>>>>>>>>>> equivalent of an "abnormal termination" in C?
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.  It
> >>>>>>>>>>>>>>>>>> either runs and halts,
> >>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> Your aborted simulation is just one final state of
> >>>>>>>>>>>>>>>>>> a turing machine,
> >>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM ceasing
> >>>>>>>>>>>>>>>>> to calculate computation steps for some
> >>>>>>>>>>>>>>>>> computation, and going on to calculate something
> >>>>>>>>>>>>>>>>> else instead.  It does not mean: a)  that the TM
> >>>>>>>>>>>>>>>>> (doing the simulation) has halted b)  that the
> >>>>>>>>>>>>>>>>> simulated computation halts c)  that the simulated
> >>>>>>>>>>>>>>>>> computation never halts
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about nice
> >>>>>>>>>>>>>>>> shades of words than
> >>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
> >>>>>>>>>>>>>>>> aborting it will bring
> >>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is merely
> >>>>>>>>>>>>>>>> part of the TM, then the word "halt" has a different
> >>>>>>>>>>>>>>>> meaning when applied to that simulation part from
> >>>>>>>>>>>>>>>> when applied to the entire TM.  I'm not even sure
> >>>>>>>>>>>>>>>> what you mean when you say a part of a TM has halted
> >>>>>>>>>>>>>>>> or not halted.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> We are clearly talking at cross purposes - I never
> >>>>>>>>>>>>>>> talked about /part/ of a TM halting, and like you, I
> >>>>>>>>>>>>>>> can't work out what that would mean!  I used "halt"
> >>>>>>>>>>>>>>> only with respect to a computation, meaning that the
> >>>>>>>>>>>>>>> computation halts [there is an n such that computation
> >>>>>>>>>>>>>>> step n is a TM final state].
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Reading what you say very carefully, I think that by
> >>>>>>>>>>>>>>> your definition of simulation, the simulating TM must
> >>>>>>>>>>>>>>> be a "pure" simulator that does nothing but simulate
> >>>>>>>>>>>>>>> computation steps until the simulation halts, at which
> >>>>>>>>>>>>>>> point the simulating TM halts (like a UTM).  I get
> >>>>>>>>>>>>>>> that with that interpretation what you said:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>  >>> Your aborted simulation is just one final
> >>>>>>>>>>>>>>> state of a turing machine,
> >>>>>>>>>>>>>>>  >>> which has thus halted.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>   makes sense and is correct.  I'd just say I
> >>>>>>>>>>>>>>> don't think that usage of "simulation" is very
> >>>>>>>>>>>>>>> useful, and is DEFINITELY not what PO is talking
> >>>>>>>>>>>>>>> about (so it would be wrong if applied PO's posts...)
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply the
> >>>>>>>>>>>>>>> activity performed by a TM which consists of
> >>>>>>>>>>>>>>> calculating computation steps of some given
> >>>>>>>>>>>>>>> computation.  As such it's just a part of the TM
> >>>>>>>>>>>>>>> logic. A TM's typical use of simulation might be
> >>>>>>>>>>>>>>> something like "..the TM simulates the computation
> >>>>>>>>>>>>>>> for n steps, and if the simulation halts during those
> >>>>>>>>>>>>>>> n steps, the TM [blah blah], /otherwise/ the TM [blah
> >>>>>>>>>>>>>>> blah blah]...". Just about every reference in the
> >>>>>>>>>>>>>>> literature I can recall is something like that.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is just the TM
> >>>>>>>>>>>>>>> ceasing to calculate >> computation steps for some
> >>>>>>>>>>>>>>> computation, and going on to calculate >> something
> >>>>>>>>>>>>>>> else instead.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of P(P),
> >>>>>>>>>>>>>>> the TM either halts or enters an infinite loop.  (That
> >>>>>>>>>>>>>>> logic is not part of the simulation, IMO.)
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>  >> It does *NOT* mean:
> >>>>>>>>>>>>>>>  >> a)  that the TM (doing the simulation) has
> >>>>>>>>>>>>>>> halted
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> obviously, because now P has gone on to something
> >>>>>>>>>>>>>>> else...
> >>>>>>>>>>>>>>>  >> b)  that the simulated computation halts
> >>>>>>>>>>>>>>>  >> c)  that the simulated computation never
> >>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> obviously - in general different exacmples of a
> >>>>>>>>>>>>>>> simulated computation P(I) might halt or never halt,
> >>>>>>>>>>>>>>> and this is unaffected by a simulator's decision to
> >>>>>>>>>>>>>>> simulate no further computation steps. [The TM may
> >>>>>>>>>>>>>>> have spotted some pattern in the simulated
> >>>>>>>>>>>>>>> computation which implies P(I) never halts - that is
> >>>>>>>>>>>>>>> a separate matter, but for sure the mere act of
> >>>>>>>>>>>>>>> "aborting" the simulation doesn't imply P(I) never
> >>>>>>>>>>>>>>> halts, or imply that it halts...
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating TM
> >>>>>>>>>>>>>>> steps (aka aborts its simulation), NOTHING HALTS: not
> >>>>>>>>>>>>>>> the simulating TM, not the simulated computation, and
> >>>>>>>>>>>>>>> NOT ANY PART OF EITHER OF THOSE. (Like you say, what
> >>>>>>>>>>>>>>> would part of a TM halting mean?)
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I think of a TM and an input string as defining a
> >>>>>>>>>>>>>> sequence (an ordered list). The elements of the
> >>>>>>>>>>>>>> sequence are pairs of a TM state name and a string
> >>>>>>>>>>>>>> representing the "tape" contents when the state was
> >>>>>>>>>>>>>> entered. Note that this view has no character of
> >>>>>>>>>>>>>> animation in it and makes the definition of the halt
> >>>>>>>>>>>>>> predicate (H) trivial:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite then
> >>>>>>>>>>>>>> TRUE else FALSE.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least
> >>>>>>>>>>>>> meant). Your sequence is my computation steps.
> >>>>>>>>>>>>> Formally, these would be defined inductively via the
> >>>>>>>>>>>>> rule to go from step n to step n+1. (Not an animation,
> >>>>>>>>>>>>> but the induction gives some /sense/ of step-by-step
> >>>>>>>>>>>>> calculation, and a simulator will follow this, starting
> >>>>>>>>>>>>> at step 1, then calculate step 2 and so on.  Still, I
> >>>>>>>>>>>>> agree the entire sequence [the "computation"] exists as
> >>>>>>>>>>>>> one timeless structure.  Too abstract for PO...)
> >>>>>>>>>>>>
> >>>>>>>>>>>> In other words when we make sure to conflate the program
> >>>>>>>>>>>> under test with the test program as a single computation
> >>>>>>>>>>>> then the whole idea of a halt decider becomes less
> >>>>>>>>>>>> coherent and
> >>>>>>>>>>>>
> >>>>>>>>>>>> this can be used as an excuse to pretend that you don't
> >>>>>>>>>>>> already know that H(P,P)==0 is correct and the H/P
> >>>>>>>>>>>> relationship matches the halting problem counter example
> >>>>>>>>>>>> template.
> >>>>>>>>>>>>
> >>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>> {
> >>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>    return;
> >>>>>>>>>>>> }
> >>>>>>>>>>>>
> >>>>>>>>>>>> int main()
> >>>>>>>>>>>> {
> >>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P, (u32)P));
> >>>>>>>>>>>> }
> >>>>>>>>>>>>
> >>>>>>>>>>>>       For any program H that might determine if
> >>>>>>>>>>>> programs halt, a "pathological"
> >>>>>>>>>>>>       program P, called with some input, can pass
> >>>>>>>>>>>> its own source and its input to
> >>>>>>>>>>>>       H and then specifically do the opposite of
> >>>>>>>>>>>> what H predicts P will do. No H
> >>>>>>>>>>>>       can exist that handles this case.
> >>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> A simulator animates the production of the sequence and
> >>>>>>>>>>>>>> that causes some difficulties in the same way that
> >>>>>>>>>>>>>> elaborating an infinite sum or sequence does in math
> >>>>>>>>>>>>>> classes. An (ultimate) value only exists if there is
> >>>>>>>>>>>>>> some notation of convergence or limit which typically
> >>>>>>>>>>>>>> is the case with examples used in a math class. There
> >>>>>>>>>>>>>> is no definition of convergence or limit with the
> >>>>>>>>>>>>>> sequence defined by TM(STRING); rather, we simply ask
> >>>>>>>>>>>>>> about the last pair if the sequence is finite.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>> The question right now is what you would call a TM which
> >>>>>>>>>>>>> evaluates the first 10 steps of a computation, and then
> >>>>>>>>>>>>> does something else. What is it doing while evaluating
> >>>>>>>>>>>>> those 10 steps?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> My terminology would be that it's "simulating" the
> >>>>>>>>>>>>> computation (just for 10 steps) - then it stops
> >>>>>>>>>>>>> simulating and does something else. Obviously I
> >>>>>>>>>>>>> wouldn't describe it as "correctly" simulating, because
> >>>>>>>>>>>>> nobody considers incorrect simulations, so the word
> >>>>>>>>>>>>> would be redundant!
> >>>>>>>>>>>>
> >>>>>>>>>>>> It is required because my reviewers are making their best
> >>>>>>>>>>>> possible effort to form rebuttals and the most persistent
> >>>>>>>>>>>> of the fake rebuttals has been that the simulation is
> >>>>>>>>>>>> incorrect. It is very easy to verify the correct x86
> >>>>>>>>>>>> emulation on the basis of the x86 language.
> >>>>>>>>>>>
> >>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
> >>>>>>>>>>> simulation needs show the same behavior of the thing it
> >>>>>>>>>>> is simulating.
> >>>>>>>>>>
> >>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is trying
> >>>>>>>>>> to claim that it is utterly impossible to create a C
> >>>>>>>>>> program that examines the x86 execution trace derived from
> >>>>>>>>>> simulating the input to H0(Infinite_Loop) with an x86
> >>>>>>>>>> emulator to correctly determine that Infinite_Loop()
> >>>>>>>>>> infinitely loops.
> >>>>>>>>>>
> >>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>> {
> >>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>> }
> >>>>>>>>>>
> >>>>>>>>>> int main()
> >>>>>>>>>> {
> >>>>>>>>>> Output("Input_Halts = ", H0(Infinite_Loop));
> >>>>>>>>>> }
> >>>>>>>>>>
> >>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>
> >>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace
> >>>>>>>>>> Stored at:212343 [00001342][00212333][00212337] 55
> >>>>>>>>>> push ebp [00001343][00212333][00212337] 8bec mov
> >>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>> 00001345 Local Halt Decider: Infinite Loop Detected
> >>>>>>>>>> Simulation Stopped
> >>>>>>>>>
> >>>>>>>>> But he isn't doing that; the issue is not the infinite loop
> >>>>>>>>> but the logic used to decide to enter the infinite loop.
> >>>>>>>>> Post *full* traces.
> >>>>>>>>>
> >>>>>>>>> /Flibble
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> In other words you are unable to tell that _Infinite_Loop()
> >>>>>>>> contains an infinite loop.
> >>>>>>>
> >>>>>>> Again that isn't the issue; the issue is the logic used to
> >>>>>>> decide when to enter the infinite loop;
> >>>>>>
> >>>>>>
> >>>>>> In other words when H0(Infinite_Loop) is invoked we have no
> >>>>>> idea that a correct x86 emulation of Infinite_Loop would reach
> >>>>>> the instruction at machine address [00001345] or not.
> >>>>>>
> >>>>>> It might be the case that a correct x86 emulation of
> >>>>>> Infinite_Loop might instead involve emulating an entirely
> >>>>>> different function that plays tic-tac-toe?
> >>>>>
> >>>>> Detecting an infinite loop is indeed trivial however your
> >>>>> program and trace are not telling the full story as far as the
> >>>>> HP proofs are concerned;
> >>>>
> >>>> The only thing that my program trace conclusively proves is that
> >>>> H(P,P)==0 is the correct return value that does correctly
> >>>> correspond to the actual behavior of the actual input.
> >>>>
> >>>> For any program H that might determine if programs halt,
> >>>> a "pathological"
> >>>> program P, called with some input, can pass its own
> >>>> source and its input to
> >>>> H and then specifically do the opposite of what H
> >>>> predicts P will do. No H
> >>>> can exist that handles this case.
> >>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>
> >>>>
> >>>> void P(u32 x)
> >>>> {
> >>>> if (H(x, x))
> >>>> HERE: goto HERE;
> >>>> return;
> >>>> }
> >>>>
> >>>> int main()
> >>>> {
> >>>> Output("Input_Halts = ", H((u32)P, (u32)P));
> >>>> }
> >>>>
> >>>> _P()
> >>>> [00001352](01) 55 push ebp
> >>>> [00001353](02) 8bec mov ebp,esp
> >>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>> [00001358](01) 50 push eax // push P
> >>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
> >>>> [0000135c](01) 51 push ecx // push P
> >>>> [0000135d](05) e840feffff call 000011a2 // call H
> >>>> [00001362](03) 83c408 add esp,+08
> >>>> [00001365](02) 85c0 test eax,eax
> >>>> [00001367](02) 7402 jz 0000136b
> >>>> [00001369](02) ebfe jmp 00001369
> >>>> [0000136b](01) 5d pop ebp
> >>>> [0000136c](01) c3 ret
> >>>> Size in bytes:(0027) [0000136c]
> >>>>
> >>>> It is completely obvious that when H(P,P) correctly emulates its
> >>>> input that it must emulate the first seven instructions of P.
> >>>> Because the seventh instruction of P repeats this process we can
> >>>> know with complete certainty that the emulated P never reaches
> >>>> its final “ret” instruction, thus never halts.
> >>>
> >>> But the halting problem proofs (including [Strachey 1965]) that
> >>> you are trying to refute don't do that, they DO NOT make any
> >>> recursive calls
> >>
> >> Because the idea of a simulating halt decider being applied to the
> >> halting problem counter-example is brand new with me you won't find
> >> other references that refer to "infinitely nested simulation".
> >>
> >>> which is what you are doing with "call H" above. Why are you doing
> >>> something different to what the proofs you are trying to refute do
> >>> given doing so is no longer related to the Halting Problem?
> >>>
> >>> /Flibble
> >>>
> >>
> >> The proofs never bothered to examine my idea because it was unknown
> >> by everyone prior to me creating it in 2016.
> >
> > It seems to me that your idea would only be novel because it is a
> > mistake. Your mistake is to have the candidate program call into the
> > SAME INSTANCE of the decider which is deciding the candidate
> > program.
>
> Where the Hell did you ever get this idea from ?
> Whenever H simulates its input it creates a whole new process context.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21868&group=comp.lang.c#21868

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 15:14:31 -0500
Date: Tue, 7 Jun 2022 15:14:30 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<t7hvlv$5e5$1@dont-email.me> <rcSdncOuUMYvGwH_nZ2dnUU7_81g4p2d@giganews.com>
<t7i32v$j5n$1@news.muc.de> <V4qdnY-VjKcsDAH_nZ2dnUU7_83NnZ2d@giganews.com>
<t7i6o1$1bk1$1@news.muc.de> <t7ifji$hn8$1@gioia.aioe.org>
<t7ihd1$1qaq$1@news.muc.de> <t7j2et$gmt$1@gioia.aioe.org>
<t7j8vh$2i1$1@dont-email.me> <t7jg0k$1qko$1@gioia.aioe.org>
<SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220607210605.00004d5c@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
Lines: 441
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-xytCDTh1D7C86iHyH56U+DL3IiFFBN3aGTmDGj2D4f0Z1zgTnjlg0yO4C+eHhKb42fscFr3vvJul0Aq!DPUdNBevK/k5fGYop53e5OUVFVJpPKsefYBNlrSjYy7vF8Jl27J6Gyl/NQBtLIO20MDhN6IM2IuJ
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 23642
 by: olcott - Tue, 7 Jun 2022 20:14 UTC

On 6/7/2022 3:06 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 15:01:13 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott said:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt whenever it
>>>>>>>>>>>>>>>>>>>>>>>>> reaches a configuration for which δ is not
>>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible because
>>>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact, we will
>>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are defined for
>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing machine
>>>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a final state.
>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to Formal
>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and Company.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function this
>>>>>>>>>>>>>>>>>>>>>>>>> means reaching the "ret"
>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is not
>>>>>>>>>>>>>>>>>>>>>>>> "ret". Instead, "not
>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means
>>>>>>>>>>>>>>>>>>>>>>>> 'halt'
>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the stack is
>>>>>>>>>>>>>>>>>>>>>>>> empty
>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location that is
>>>>>>>>>>>>>>>>>>>>>>>> not specifiec by the
>>>>>>>>>>>>>>>>>>>>>>>>      program
>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition is
>>>>>>>>>>>>>>>>>>>>>>>> much better.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the Turing
>>>>>>>>>>>>>>>>>>>>>>> machine way of saying
>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of
>>>>>>>>>>>>>>>>>>>>>>> saying the same thing.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing machine
>>>>>>>>>>>>>>>>>>>>>> equivalent of an "abnormal termination" in C?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.  It
>>>>>>>>>>>>>>>>>>>> either runs and halts,
>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final state of
>>>>>>>>>>>>>>>>>>>> a turing machine,
>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM ceasing
>>>>>>>>>>>>>>>>>>> to calculate computation steps for some
>>>>>>>>>>>>>>>>>>> computation, and going on to calculate something
>>>>>>>>>>>>>>>>>>> else instead.  It does not mean: a)  that the TM
>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted b)  that the
>>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the simulated
>>>>>>>>>>>>>>>>>>> computation never halts
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about nice
>>>>>>>>>>>>>>>>>> shades of words than
>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
>>>>>>>>>>>>>>>>>> aborting it will bring
>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is merely
>>>>>>>>>>>>>>>>>> part of the TM, then the word "halt" has a different
>>>>>>>>>>>>>>>>>> meaning when applied to that simulation part from
>>>>>>>>>>>>>>>>>> when applied to the entire TM.  I'm not even sure
>>>>>>>>>>>>>>>>>> what you mean when you say a part of a TM has halted
>>>>>>>>>>>>>>>>>> or not halted.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I never
>>>>>>>>>>>>>>>>> talked about /part/ of a TM halting, and like you, I
>>>>>>>>>>>>>>>>> can't work out what that would mean!  I used "halt"
>>>>>>>>>>>>>>>>> only with respect to a computation, meaning that the
>>>>>>>>>>>>>>>>> computation halts [there is an n such that computation
>>>>>>>>>>>>>>>>> step n is a TM final state].
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think that by
>>>>>>>>>>>>>>>>> your definition of simulation, the simulating TM must
>>>>>>>>>>>>>>>>> be a "pure" simulator that does nothing but simulate
>>>>>>>>>>>>>>>>> computation steps until the simulation halts, at which
>>>>>>>>>>>>>>>>> point the simulating TM halts (like a UTM).  I get
>>>>>>>>>>>>>>>>> that with that interpretation what you said:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just one final
>>>>>>>>>>>>>>>>> state of a turing machine,
>>>>>>>>>>>>>>>>>  >>> which has thus halted.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd just say I
>>>>>>>>>>>>>>>>> don't think that usage of "simulation" is very
>>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what PO is talking
>>>>>>>>>>>>>>>>> about (so it would be wrong if applied PO's posts...)
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply the
>>>>>>>>>>>>>>>>> activity performed by a TM which consists of
>>>>>>>>>>>>>>>>> calculating computation steps of some given
>>>>>>>>>>>>>>>>> computation.  As such it's just a part of the TM
>>>>>>>>>>>>>>>>> logic. A TM's typical use of simulation might be
>>>>>>>>>>>>>>>>> something like "..the TM simulates the computation
>>>>>>>>>>>>>>>>> for n steps, and if the simulation halts during those
>>>>>>>>>>>>>>>>> n steps, the TM [blah blah], /otherwise/ the TM [blah
>>>>>>>>>>>>>>>>> blah blah]...". Just about every reference in the
>>>>>>>>>>>>>>>>> literature I can recall is something like that.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is just the TM
>>>>>>>>>>>>>>>>> ceasing to calculate >> computation steps for some
>>>>>>>>>>>>>>>>> computation, and going on to calculate >> something
>>>>>>>>>>>>>>>>> else instead.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of P(P),
>>>>>>>>>>>>>>>>> the TM either halts or enters an infinite loop.  (That
>>>>>>>>>>>>>>>>> logic is not part of the simulation, IMO.)
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the simulation) has
>>>>>>>>>>>>>>>>> halted
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> obviously, because now P has gone on to something
>>>>>>>>>>>>>>>>> else...
>>>>>>>>>>>>>>>>>  >> b)  that the simulated computation halts
>>>>>>>>>>>>>>>>>  >> c)  that the simulated computation never
>>>>>>>>>>>>>>>>> halts
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> obviously - in general different exacmples of a
>>>>>>>>>>>>>>>>> simulated computation P(I) might halt or never halt,
>>>>>>>>>>>>>>>>> and this is unaffected by a simulator's decision to
>>>>>>>>>>>>>>>>> simulate no further computation steps. [The TM may
>>>>>>>>>>>>>>>>> have spotted some pattern in the simulated
>>>>>>>>>>>>>>>>> computation which implies P(I) never halts - that is
>>>>>>>>>>>>>>>>> a separate matter, but for sure the mere act of
>>>>>>>>>>>>>>>>> "aborting" the simulation doesn't imply P(I) never
>>>>>>>>>>>>>>>>> halts, or imply that it halts...
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating TM
>>>>>>>>>>>>>>>>> steps (aka aborts its simulation), NOTHING HALTS: not
>>>>>>>>>>>>>>>>> the simulating TM, not the simulated computation, and
>>>>>>>>>>>>>>>>> NOT ANY PART OF EITHER OF THOSE. (Like you say, what
>>>>>>>>>>>>>>>>> would part of a TM halting mean?)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I think of a TM and an input string as defining a
>>>>>>>>>>>>>>>> sequence (an ordered list). The elements of the
>>>>>>>>>>>>>>>> sequence are pairs of a TM state name and a string
>>>>>>>>>>>>>>>> representing the "tape" contents when the state was
>>>>>>>>>>>>>>>> entered. Note that this view has no character of
>>>>>>>>>>>>>>>> animation in it and makes the definition of the halt
>>>>>>>>>>>>>>>> predicate (H) trivial:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite then
>>>>>>>>>>>>>>>> TRUE else FALSE.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least
>>>>>>>>>>>>>>> meant). Your sequence is my computation steps.
>>>>>>>>>>>>>>> Formally, these would be defined inductively via the
>>>>>>>>>>>>>>> rule to go from step n to step n+1. (Not an animation,
>>>>>>>>>>>>>>> but the induction gives some /sense/ of step-by-step
>>>>>>>>>>>>>>> calculation, and a simulator will follow this, starting
>>>>>>>>>>>>>>> at step 1, then calculate step 2 and so on.  Still, I
>>>>>>>>>>>>>>> agree the entire sequence [the "computation"] exists as
>>>>>>>>>>>>>>> one timeless structure.  Too abstract for PO...)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> In other words when we make sure to conflate the program
>>>>>>>>>>>>>> under test with the test program as a single computation
>>>>>>>>>>>>>> then the whole idea of a halt decider becomes less
>>>>>>>>>>>>>> coherent and
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> this can be used as an excuse to pretend that you don't
>>>>>>>>>>>>>> already know that H(P,P)==0 is correct and the H/P
>>>>>>>>>>>>>> relationship matches the halting problem counter example
>>>>>>>>>>>>>> template.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>       For any program H that might determine if
>>>>>>>>>>>>>> programs halt, a "pathological"
>>>>>>>>>>>>>>       program P, called with some input, can pass
>>>>>>>>>>>>>> its own source and its input to
>>>>>>>>>>>>>>       H and then specifically do the opposite of
>>>>>>>>>>>>>> what H predicts P will do. No H
>>>>>>>>>>>>>>       can exist that handles this case.
>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> A simulator animates the production of the sequence and
>>>>>>>>>>>>>>>> that causes some difficulties in the same way that
>>>>>>>>>>>>>>>> elaborating an infinite sum or sequence does in math
>>>>>>>>>>>>>>>> classes. An (ultimate) value only exists if there is
>>>>>>>>>>>>>>>> some notation of convergence or limit which typically
>>>>>>>>>>>>>>>> is the case with examples used in a math class. There
>>>>>>>>>>>>>>>> is no definition of convergence or limit with the
>>>>>>>>>>>>>>>> sequence defined by TM(STRING); rather, we simply ask
>>>>>>>>>>>>>>>> about the last pair if the sequence is finite.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>> The question right now is what you would call a TM which
>>>>>>>>>>>>>>> evaluates the first 10 steps of a computation, and then
>>>>>>>>>>>>>>> does something else. What is it doing while evaluating
>>>>>>>>>>>>>>> those 10 steps?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> My terminology would be that it's "simulating" the
>>>>>>>>>>>>>>> computation (just for 10 steps) - then it stops
>>>>>>>>>>>>>>> simulating and does something else. Obviously I
>>>>>>>>>>>>>>> wouldn't describe it as "correctly" simulating, because
>>>>>>>>>>>>>>> nobody considers incorrect simulations, so the word
>>>>>>>>>>>>>>> would be redundant!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> It is required because my reviewers are making their best
>>>>>>>>>>>>>> possible effort to form rebuttals and the most persistent
>>>>>>>>>>>>>> of the fake rebuttals has been that the simulation is
>>>>>>>>>>>>>> incorrect. It is very easy to verify the correct x86
>>>>>>>>>>>>>> emulation on the basis of the x86 language.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
>>>>>>>>>>>>> simulation needs show the same behavior of the thing it
>>>>>>>>>>>>> is simulating.
>>>>>>>>>>>>
>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is trying
>>>>>>>>>>>> to claim that it is utterly impossible to create a C
>>>>>>>>>>>> program that examines the x86 execution trace derived from
>>>>>>>>>>>> simulating the input to H0(Infinite_Loop) with an x86
>>>>>>>>>>>> emulator to correctly determine that Infinite_Loop()
>>>>>>>>>>>> infinitely loops.
>>>>>>>>>>>>
>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>> {
>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> int main()
>>>>>>>>>>>> {
>>>>>>>>>>>> Output("Input_Halts = ", H0(Infinite_Loop));
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>
>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace
>>>>>>>>>>>> Stored at:212343 [00001342][00212333][00212337] 55
>>>>>>>>>>>> push ebp [00001343][00212333][00212337] 8bec mov
>>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe jmp
>>>>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe jmp
>>>>>>>>>>>> 00001345 Local Halt Decider: Infinite Loop Detected
>>>>>>>>>>>> Simulation Stopped
>>>>>>>>>>>
>>>>>>>>>>> But he isn't doing that; the issue is not the infinite loop
>>>>>>>>>>> but the logic used to decide to enter the infinite loop.
>>>>>>>>>>> Post *full* traces.
>>>>>>>>>>>
>>>>>>>>>>> /Flibble
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> In other words you are unable to tell that _Infinite_Loop()
>>>>>>>>>> contains an infinite loop.
>>>>>>>>>
>>>>>>>>> Again that isn't the issue; the issue is the logic used to
>>>>>>>>> decide when to enter the infinite loop;
>>>>>>>>
>>>>>>>>
>>>>>>>> In other words when H0(Infinite_Loop) is invoked we have no
>>>>>>>> idea that a correct x86 emulation of Infinite_Loop would reach
>>>>>>>> the instruction at machine address [00001345] or not.
>>>>>>>>
>>>>>>>> It might be the case that a correct x86 emulation of
>>>>>>>> Infinite_Loop might instead involve emulating an entirely
>>>>>>>> different function that plays tic-tac-toe?
>>>>>>>
>>>>>>> Detecting an infinite loop is indeed trivial however your
>>>>>>> program and trace are not telling the full story as far as the
>>>>>>> HP proofs are concerned;
>>>>>>
>>>>>> The only thing that my program trace conclusively proves is that
>>>>>> H(P,P)==0 is the correct return value that does correctly
>>>>>> correspond to the actual behavior of the actual input.
>>>>>>
>>>>>> For any program H that might determine if programs halt,
>>>>>> a "pathological"
>>>>>> program P, called with some input, can pass its own
>>>>>> source and its input to
>>>>>> H and then specifically do the opposite of what H
>>>>>> predicts P will do. No H
>>>>>> can exist that handles this case.
>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>
>>>>>>
>>>>>> void P(u32 x)
>>>>>> {
>>>>>> if (H(x, x))
>>>>>> HERE: goto HERE;
>>>>>> return;
>>>>>> }
>>>>>>
>>>>>> int main()
>>>>>> {
>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>> }
>>>>>>
>>>>>> _P()
>>>>>> [00001352](01) 55 push ebp
>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>> [00001358](01) 50 push eax // push P
>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
>>>>>> [0000135c](01) 51 push ecx // push P
>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
>>>>>> [00001362](03) 83c408 add esp,+08
>>>>>> [00001365](02) 85c0 test eax,eax
>>>>>> [00001367](02) 7402 jz 0000136b
>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>> [0000136b](01) 5d pop ebp
>>>>>> [0000136c](01) c3 ret
>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>
>>>>>> It is completely obvious that when H(P,P) correctly emulates its
>>>>>> input that it must emulate the first seven instructions of P.
>>>>>> Because the seventh instruction of P repeats this process we can
>>>>>> know with complete certainty that the emulated P never reaches
>>>>>> its final “ret” instruction, thus never halts.
>>>>>
>>>>> But the halting problem proofs (including [Strachey 1965]) that
>>>>> you are trying to refute don't do that, they DO NOT make any
>>>>> recursive calls
>>>>
>>>> Because the idea of a simulating halt decider being applied to the
>>>> halting problem counter-example is brand new with me you won't find
>>>> other references that refer to "infinitely nested simulation".
>>>>
>>>>> which is what you are doing with "call H" above. Why are you doing
>>>>> something different to what the proofs you are trying to refute do
>>>>> given doing so is no longer related to the Halting Problem?
>>>>>
>>>>> /Flibble
>>>>>
>>>>
>>>> The proofs never bothered to examine my idea because it was unknown
>>>> by everyone prior to me creating it in 2016.
>>>
>>> It seems to me that your idea would only be novel because it is a
>>> mistake. Your mistake is to have the candidate program call into the
>>> SAME INSTANCE of the decider which is deciding the candidate
>>> program.
>>
>> Where the Hell did you ever get this idea from ?
>> Whenever H simulates its input it creates a whole new process context.
>
> You cannot make a direct function call into another process; it has to
> be the same process.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220607211856.000075de@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21869&group=comp.lang.c#21869

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx01.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220607211856.000075de@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<t7i32v$j5n$1@news.muc.de>
<V4qdnY-VjKcsDAH_nZ2dnUU7_83NnZ2d@giganews.com>
<t7i6o1$1bk1$1@news.muc.de>
<t7ifji$hn8$1@gioia.aioe.org>
<t7ihd1$1qaq$1@news.muc.de>
<t7j2et$gmt$1@gioia.aioe.org>
<t7j8vh$2i1$1@dont-email.me>
<t7jg0k$1qko$1@gioia.aioe.org>
<SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 475
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 20:18:55 UTC
Date: Tue, 7 Jun 2022 21:18:56 +0100
X-Received-Bytes: 25182
 by: Mr Flibble - Tue, 7 Jun 2022 20:18 UTC

On Tue, 7 Jun 2022 15:14:30 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 15:01:13 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott said:
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt whenever it
> >>>>>>>>>>>>>>>>>>>>>>>>> reaches a configuration for which δ is not
> >>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible because
> >>>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact, we will
> >>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are defined for
> >>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing machine
> >>>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a final state.
> >>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to Formal
> >>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and Company.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
> >>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
> >>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function this
> >>>>>>>>>>>>>>>>>>>>>>>>> means reaching the "ret"
> >>>>>>>>>>>>>>>>>>>>>>>>> instruction.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is not
> >>>>>>>>>>>>>>>>>>>>>>>> "ret". Instead, "not
> >>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
> >>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means
> >>>>>>>>>>>>>>>>>>>>>>>> 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the stack
> >>>>>>>>>>>>>>>>>>>>>>>> is empty
> >>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location that
> >>>>>>>>>>>>>>>>>>>>>>>> is not specifiec by the
> >>>>>>>>>>>>>>>>>>>>>>>>      program
> >>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition is
> >>>>>>>>>>>>>>>>>>>>>>>> much better.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the Turing
> >>>>>>>>>>>>>>>>>>>>>>> machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of
> >>>>>>>>>>>>>>>>>>>>>>> saying the same thing.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing machine
> >>>>>>>>>>>>>>>>>>>>>> equivalent of an "abnormal termination" in C?
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.  It
> >>>>>>>>>>>>>>>>>>>> either runs and halts,
> >>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final state
> >>>>>>>>>>>>>>>>>>>> of a turing machine,
> >>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM
> >>>>>>>>>>>>>>>>>>> ceasing to calculate computation steps for some
> >>>>>>>>>>>>>>>>>>> computation, and going on to calculate something
> >>>>>>>>>>>>>>>>>>> else instead.  It does not mean: a)  that the TM
> >>>>>>>>>>>>>>>>>>> (doing the simulation) has halted b)  that the
> >>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the simulated
> >>>>>>>>>>>>>>>>>>> computation never halts
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about nice
> >>>>>>>>>>>>>>>>>> shades of words than
> >>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
> >>>>>>>>>>>>>>>>>> aborting it will bring
> >>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is
> >>>>>>>>>>>>>>>>>> merely part of the TM, then the word "halt" has a
> >>>>>>>>>>>>>>>>>> different meaning when applied to that simulation
> >>>>>>>>>>>>>>>>>> part from when applied to the entire TM.  I'm not
> >>>>>>>>>>>>>>>>>> even sure what you mean when you say a part of a
> >>>>>>>>>>>>>>>>>> TM has halted or not halted.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I never
> >>>>>>>>>>>>>>>>> talked about /part/ of a TM halting, and like you, I
> >>>>>>>>>>>>>>>>> can't work out what that would mean!  I used "halt"
> >>>>>>>>>>>>>>>>> only with respect to a computation, meaning that the
> >>>>>>>>>>>>>>>>> computation halts [there is an n such that
> >>>>>>>>>>>>>>>>> computation step n is a TM final state].
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Reading what you say very carefully, I think that by
> >>>>>>>>>>>>>>>>> your definition of simulation, the simulating TM
> >>>>>>>>>>>>>>>>> must be a "pure" simulator that does nothing but
> >>>>>>>>>>>>>>>>> simulate computation steps until the simulation
> >>>>>>>>>>>>>>>>> halts, at which point the simulating TM halts (like
> >>>>>>>>>>>>>>>>> a UTM).  I get that with that interpretation what
> >>>>>>>>>>>>>>>>> you said:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just one
> >>>>>>>>>>>>>>>>> final state of a turing machine,
> >>>>>>>>>>>>>>>>>  >>> which has thus halted.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd just say I
> >>>>>>>>>>>>>>>>> don't think that usage of "simulation" is very
> >>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what PO is talking
> >>>>>>>>>>>>>>>>> about (so it would be wrong if applied PO's
> >>>>>>>>>>>>>>>>> posts...)
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply the
> >>>>>>>>>>>>>>>>> activity performed by a TM which consists of
> >>>>>>>>>>>>>>>>> calculating computation steps of some given
> >>>>>>>>>>>>>>>>> computation.  As such it's just a part of the TM
> >>>>>>>>>>>>>>>>> logic. A TM's typical use of simulation might be
> >>>>>>>>>>>>>>>>> something like "..the TM simulates the computation
> >>>>>>>>>>>>>>>>> for n steps, and if the simulation halts during
> >>>>>>>>>>>>>>>>> those n steps, the TM [blah blah], /otherwise/ the
> >>>>>>>>>>>>>>>>> TM [blah blah blah]...". Just about every reference
> >>>>>>>>>>>>>>>>> in the literature I can recall is something like
> >>>>>>>>>>>>>>>>> that.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is just the
> >>>>>>>>>>>>>>>>> TM ceasing to calculate >> computation steps for
> >>>>>>>>>>>>>>>>> some computation, and going on to calculate >>
> >>>>>>>>>>>>>>>>> something else instead.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of
> >>>>>>>>>>>>>>>>> P(P), the TM either halts or enters an infinite
> >>>>>>>>>>>>>>>>> loop.  (That logic is not part of the simulation,
> >>>>>>>>>>>>>>>>> IMO.)
> >>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
> >>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the simulation)
> >>>>>>>>>>>>>>>>> has halted
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> obviously, because now P has gone on to something
> >>>>>>>>>>>>>>>>> else...
> >>>>>>>>>>>>>>>>>  >> b)  that the simulated computation halts
> >>>>>>>>>>>>>>>>>  >> c)  that the simulated computation never
> >>>>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> obviously - in general different exacmples of a
> >>>>>>>>>>>>>>>>> simulated computation P(I) might halt or never halt,
> >>>>>>>>>>>>>>>>> and this is unaffected by a simulator's decision to
> >>>>>>>>>>>>>>>>> simulate no further computation steps. [The TM may
> >>>>>>>>>>>>>>>>> have spotted some pattern in the simulated
> >>>>>>>>>>>>>>>>> computation which implies P(I) never halts - that is
> >>>>>>>>>>>>>>>>> a separate matter, but for sure the mere act of
> >>>>>>>>>>>>>>>>> "aborting" the simulation doesn't imply P(I) never
> >>>>>>>>>>>>>>>>> halts, or imply that it halts...
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating TM
> >>>>>>>>>>>>>>>>> steps (aka aborts its simulation), NOTHING HALTS:
> >>>>>>>>>>>>>>>>> not the simulating TM, not the simulated
> >>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF THOSE.
> >>>>>>>>>>>>>>>>> (Like you say, what would part of a TM halting
> >>>>>>>>>>>>>>>>> mean?)
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> I think of a TM and an input string as defining a
> >>>>>>>>>>>>>>>> sequence (an ordered list). The elements of the
> >>>>>>>>>>>>>>>> sequence are pairs of a TM state name and a string
> >>>>>>>>>>>>>>>> representing the "tape" contents when the state was
> >>>>>>>>>>>>>>>> entered. Note that this view has no character of
> >>>>>>>>>>>>>>>> animation in it and makes the definition of the halt
> >>>>>>>>>>>>>>>> predicate (H) trivial:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite then
> >>>>>>>>>>>>>>>> TRUE else FALSE.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least
> >>>>>>>>>>>>>>> meant). Your sequence is my computation steps.
> >>>>>>>>>>>>>>> Formally, these would be defined inductively via the
> >>>>>>>>>>>>>>> rule to go from step n to step n+1. (Not an animation,
> >>>>>>>>>>>>>>> but the induction gives some /sense/ of step-by-step
> >>>>>>>>>>>>>>> calculation, and a simulator will follow this,
> >>>>>>>>>>>>>>> starting at step 1, then calculate step 2 and so on.
> >>>>>>>>>>>>>>> Still, I agree the entire sequence [the
> >>>>>>>>>>>>>>> "computation"] exists as one timeless structure.  Too
> >>>>>>>>>>>>>>> abstract for PO...)
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> In other words when we make sure to conflate the
> >>>>>>>>>>>>>> program under test with the test program as a single
> >>>>>>>>>>>>>> computation then the whole idea of a halt decider
> >>>>>>>>>>>>>> becomes less coherent and
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> this can be used as an excuse to pretend that you don't
> >>>>>>>>>>>>>> already know that H(P,P)==0 is correct and the H/P
> >>>>>>>>>>>>>> relationship matches the halting problem counter
> >>>>>>>>>>>>>> example template.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P, (u32)P));
> >>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>       For any program H that might determine if
> >>>>>>>>>>>>>> programs halt, a "pathological"
> >>>>>>>>>>>>>>       program P, called with some input, can pass
> >>>>>>>>>>>>>> its own source and its input to
> >>>>>>>>>>>>>>       H and then specifically do the opposite of
> >>>>>>>>>>>>>> what H predicts P will do. No H
> >>>>>>>>>>>>>>       can exist that handles this case.
> >>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> A simulator animates the production of the sequence
> >>>>>>>>>>>>>>>> and that causes some difficulties in the same way
> >>>>>>>>>>>>>>>> that elaborating an infinite sum or sequence does in
> >>>>>>>>>>>>>>>> math classes. An (ultimate) value only exists if
> >>>>>>>>>>>>>>>> there is some notation of convergence or limit which
> >>>>>>>>>>>>>>>> typically is the case with examples used in a math
> >>>>>>>>>>>>>>>> class. There is no definition of convergence or
> >>>>>>>>>>>>>>>> limit with the sequence defined by TM(STRING);
> >>>>>>>>>>>>>>>> rather, we simply ask about the last pair if the
> >>>>>>>>>>>>>>>> sequence is finite.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>> The question right now is what you would call a TM
> >>>>>>>>>>>>>>> which evaluates the first 10 steps of a computation,
> >>>>>>>>>>>>>>> and then does something else. What is it doing while
> >>>>>>>>>>>>>>> evaluating those 10 steps?
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> My terminology would be that it's "simulating" the
> >>>>>>>>>>>>>>> computation (just for 10 steps) - then it stops
> >>>>>>>>>>>>>>> simulating and does something else. Obviously I
> >>>>>>>>>>>>>>> wouldn't describe it as "correctly" simulating,
> >>>>>>>>>>>>>>> because nobody considers incorrect simulations, so
> >>>>>>>>>>>>>>> the word would be redundant!
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> It is required because my reviewers are making their
> >>>>>>>>>>>>>> best possible effort to form rebuttals and the most
> >>>>>>>>>>>>>> persistent of the fake rebuttals has been that the
> >>>>>>>>>>>>>> simulation is incorrect. It is very easy to verify the
> >>>>>>>>>>>>>> correct x86 emulation on the basis of the x86
> >>>>>>>>>>>>>> language.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
> >>>>>>>>>>>>> simulation needs show the same behavior of the thing it
> >>>>>>>>>>>>> is simulating.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is trying
> >>>>>>>>>>>> to claim that it is utterly impossible to create a C
> >>>>>>>>>>>> program that examines the x86 execution trace derived
> >>>>>>>>>>>> from simulating the input to H0(Infinite_Loop) with an
> >>>>>>>>>>>> x86 emulator to correctly determine that Infinite_Loop()
> >>>>>>>>>>>> infinitely loops.
> >>>>>>>>>>>>
> >>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>> {
> >>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>> }
> >>>>>>>>>>>>
> >>>>>>>>>>>> int main()
> >>>>>>>>>>>> {
> >>>>>>>>>>>> Output("Input_Halts = ", H0(Infinite_Loop));
> >>>>>>>>>>>> }
> >>>>>>>>>>>>
> >>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>
> >>>>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace
> >>>>>>>>>>>> Stored at:212343 [00001342][00212333][00212337] 55
> >>>>>>>>>>>> push ebp [00001343][00212333][00212337] 8bec mov
> >>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>>>> 00001345 Local Halt Decider: Infinite Loop Detected
> >>>>>>>>>>>> Simulation Stopped
> >>>>>>>>>>>
> >>>>>>>>>>> But he isn't doing that; the issue is not the infinite
> >>>>>>>>>>> loop but the logic used to decide to enter the infinite
> >>>>>>>>>>> loop. Post *full* traces.
> >>>>>>>>>>>
> >>>>>>>>>>> /Flibble
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> In other words you are unable to tell that _Infinite_Loop()
> >>>>>>>>>> contains an infinite loop.
> >>>>>>>>>
> >>>>>>>>> Again that isn't the issue; the issue is the logic used to
> >>>>>>>>> decide when to enter the infinite loop;
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> In other words when H0(Infinite_Loop) is invoked we have no
> >>>>>>>> idea that a correct x86 emulation of Infinite_Loop would
> >>>>>>>> reach the instruction at machine address [00001345] or not.
> >>>>>>>>
> >>>>>>>> It might be the case that a correct x86 emulation of
> >>>>>>>> Infinite_Loop might instead involve emulating an entirely
> >>>>>>>> different function that plays tic-tac-toe?
> >>>>>>>
> >>>>>>> Detecting an infinite loop is indeed trivial however your
> >>>>>>> program and trace are not telling the full story as far as the
> >>>>>>> HP proofs are concerned;
> >>>>>>
> >>>>>> The only thing that my program trace conclusively proves is
> >>>>>> that H(P,P)==0 is the correct return value that does correctly
> >>>>>> correspond to the actual behavior of the actual input.
> >>>>>>
> >>>>>> For any program H that might determine if programs
> >>>>>> halt, a "pathological"
> >>>>>> program P, called with some input, can pass its own
> >>>>>> source and its input to
> >>>>>> H and then specifically do the opposite of what H
> >>>>>> predicts P will do. No H
> >>>>>> can exist that handles this case.
> >>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>
> >>>>>>
> >>>>>> void P(u32 x)
> >>>>>> {
> >>>>>> if (H(x, x))
> >>>>>> HERE: goto HERE;
> >>>>>> return;
> >>>>>> }
> >>>>>>
> >>>>>> int main()
> >>>>>> {
> >>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
> >>>>>> }
> >>>>>>
> >>>>>> _P()
> >>>>>> [00001352](01) 55 push ebp
> >>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>> [00001358](01) 50 push eax // push P
> >>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
> >>>>>> [0000135c](01) 51 push ecx // push P
> >>>>>> [0000135d](05) e840feffff call 000011a2 // call H
> >>>>>> [00001362](03) 83c408 add esp,+08
> >>>>>> [00001365](02) 85c0 test eax,eax
> >>>>>> [00001367](02) 7402 jz 0000136b
> >>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>> [0000136b](01) 5d pop ebp
> >>>>>> [0000136c](01) c3 ret
> >>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>
> >>>>>> It is completely obvious that when H(P,P) correctly emulates
> >>>>>> its input that it must emulate the first seven instructions of
> >>>>>> P. Because the seventh instruction of P repeats this process
> >>>>>> we can know with complete certainty that the emulated P never
> >>>>>> reaches its final “ret” instruction, thus never halts.
> >>>>>
> >>>>> But the halting problem proofs (including [Strachey 1965]) that
> >>>>> you are trying to refute don't do that, they DO NOT make any
> >>>>> recursive calls
> >>>>
> >>>> Because the idea of a simulating halt decider being applied to
> >>>> the halting problem counter-example is brand new with me you
> >>>> won't find other references that refer to "infinitely nested
> >>>> simulation".
> >>>>> which is what you are doing with "call H" above. Why are you
> >>>>> doing something different to what the proofs you are trying to
> >>>>> refute do given doing so is no longer related to the Halting
> >>>>> Problem?
> >>>>>
> >>>>> /Flibble
> >>>>>
> >>>>
> >>>> The proofs never bothered to examine my idea because it was
> >>>> unknown by everyone prior to me creating it in 2016.
> >>>
> >>> It seems to me that your idea would only be novel because it is a
> >>> mistake. Your mistake is to have the candidate program call into
> >>> the SAME INSTANCE of the decider which is deciding the candidate
> >>> program.
> >>
> >> Where the Hell did you ever get this idea from ?
> >> Whenever H simulates its input it creates a whole new process
> >> context.
> >
> > You cannot make a direct function call into another process; it has
> > to be the same process.
>
> As I have said very many hundreds of times I created the x86utm
> operating system that enables any C function to execute another C
> function using an x86 emulator.
>
> In the case of H(P,P) H creates a separate process context to
> simulate its input every time that it is invoked, thus subsequent
> invocations of H(P,P) execute in the process context that was
> previously created.
>
> > As far as getting ideas as to what you are
> > actually doing: publish all your source so we can see for ourselves
> > so we don't have to guess.
> >
> > /Flibble
> >
>
>
> That would be 100,000-fold more complex then simply paying complete
> attention to what I am saying. Everyone that is not bright enough to
> understand 14 lines of code keeps saying that they could easily
> understand 250 pages of code, even though the 14 lines proves to be
> too much for them.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21870&group=comp.lang.c#21870

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 15:34:14 -0500
Date: Tue, 7 Jun 2022 15:34:13 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<V4qdnY-VjKcsDAH_nZ2dnUU7_83NnZ2d@giganews.com> <t7i6o1$1bk1$1@news.muc.de>
<t7ifji$hn8$1@gioia.aioe.org> <t7ihd1$1qaq$1@news.muc.de>
<t7j2et$gmt$1@gioia.aioe.org> <t7j8vh$2i1$1@dont-email.me>
<t7jg0k$1qko$1@gioia.aioe.org>
<SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220607211856.000075de@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
Lines: 485
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-tN2gRlRpIH+LeOcuhXMNX2lyF2BA2sRBDGXYkzpAwPVJncL47CjNMhx/NzpbQbSDAlLWkpfImCMKtU+!zCQFRqj0nF3EW7C+Zds+TI3LpdOgy1ceDYTLVmOjGEldTqPDj8N8X5vFaxnHV4NFjTGcEQo/D27j
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 25856
 by: olcott - Tue, 7 Jun 2022 20:34 UTC

On 6/7/2022 3:18 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 15:14:30 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott said:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt whenever it
>>>>>>>>>>>>>>>>>>>>>>>>>>> reaches a configuration for which δ is not
>>>>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible because
>>>>>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact, we will
>>>>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are defined for
>>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing machine
>>>>>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a final state.
>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to Formal
>>>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and Company.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function this
>>>>>>>>>>>>>>>>>>>>>>>>>>> means reaching the "ret"
>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is not
>>>>>>>>>>>>>>>>>>>>>>>>>> "ret". Instead, "not
>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means
>>>>>>>>>>>>>>>>>>>>>>>>>> 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the stack
>>>>>>>>>>>>>>>>>>>>>>>>>> is empty
>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location that
>>>>>>>>>>>>>>>>>>>>>>>>>> is not specifiec by the
>>>>>>>>>>>>>>>>>>>>>>>>>>      program
>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition is
>>>>>>>>>>>>>>>>>>>>>>>>>> much better.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the Turing
>>>>>>>>>>>>>>>>>>>>>>>>> machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of
>>>>>>>>>>>>>>>>>>>>>>>>> saying the same thing.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing machine
>>>>>>>>>>>>>>>>>>>>>>>> equivalent of an "abnormal termination" in C?
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.  It
>>>>>>>>>>>>>>>>>>>>>> either runs and halts,
>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final state
>>>>>>>>>>>>>>>>>>>>>> of a turing machine,
>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM
>>>>>>>>>>>>>>>>>>>>> ceasing to calculate computation steps for some
>>>>>>>>>>>>>>>>>>>>> computation, and going on to calculate something
>>>>>>>>>>>>>>>>>>>>> else instead.  It does not mean: a)  that the TM
>>>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted b)  that the
>>>>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the simulated
>>>>>>>>>>>>>>>>>>>>> computation never halts
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about nice
>>>>>>>>>>>>>>>>>>>> shades of words than
>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
>>>>>>>>>>>>>>>>>>>> aborting it will bring
>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is
>>>>>>>>>>>>>>>>>>>> merely part of the TM, then the word "halt" has a
>>>>>>>>>>>>>>>>>>>> different meaning when applied to that simulation
>>>>>>>>>>>>>>>>>>>> part from when applied to the entire TM.  I'm not
>>>>>>>>>>>>>>>>>>>> even sure what you mean when you say a part of a
>>>>>>>>>>>>>>>>>>>> TM has halted or not halted.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I never
>>>>>>>>>>>>>>>>>>> talked about /part/ of a TM halting, and like you, I
>>>>>>>>>>>>>>>>>>> can't work out what that would mean!  I used "halt"
>>>>>>>>>>>>>>>>>>> only with respect to a computation, meaning that the
>>>>>>>>>>>>>>>>>>> computation halts [there is an n such that
>>>>>>>>>>>>>>>>>>> computation step n is a TM final state].
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think that by
>>>>>>>>>>>>>>>>>>> your definition of simulation, the simulating TM
>>>>>>>>>>>>>>>>>>> must be a "pure" simulator that does nothing but
>>>>>>>>>>>>>>>>>>> simulate computation steps until the simulation
>>>>>>>>>>>>>>>>>>> halts, at which point the simulating TM halts (like
>>>>>>>>>>>>>>>>>>> a UTM).  I get that with that interpretation what
>>>>>>>>>>>>>>>>>>> you said:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just one
>>>>>>>>>>>>>>>>>>> final state of a turing machine,
>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd just say I
>>>>>>>>>>>>>>>>>>> don't think that usage of "simulation" is very
>>>>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what PO is talking
>>>>>>>>>>>>>>>>>>> about (so it would be wrong if applied PO's
>>>>>>>>>>>>>>>>>>> posts...)
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply the
>>>>>>>>>>>>>>>>>>> activity performed by a TM which consists of
>>>>>>>>>>>>>>>>>>> calculating computation steps of some given
>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part of the TM
>>>>>>>>>>>>>>>>>>> logic. A TM's typical use of simulation might be
>>>>>>>>>>>>>>>>>>> something like "..the TM simulates the computation
>>>>>>>>>>>>>>>>>>> for n steps, and if the simulation halts during
>>>>>>>>>>>>>>>>>>> those n steps, the TM [blah blah], /otherwise/ the
>>>>>>>>>>>>>>>>>>> TM [blah blah blah]...". Just about every reference
>>>>>>>>>>>>>>>>>>> in the literature I can recall is something like
>>>>>>>>>>>>>>>>>>> that.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is just the
>>>>>>>>>>>>>>>>>>> TM ceasing to calculate >> computation steps for
>>>>>>>>>>>>>>>>>>> some computation, and going on to calculate >>
>>>>>>>>>>>>>>>>>>> something else instead.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of
>>>>>>>>>>>>>>>>>>> P(P), the TM either halts or enters an infinite
>>>>>>>>>>>>>>>>>>> loop.  (That logic is not part of the simulation,
>>>>>>>>>>>>>>>>>>> IMO.)
>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the simulation)
>>>>>>>>>>>>>>>>>>> has halted
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to something
>>>>>>>>>>>>>>>>>>> else...
>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated computation halts
>>>>>>>>>>>>>>>>>>>  >> c)  that the simulated computation never
>>>>>>>>>>>>>>>>>>> halts
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples of a
>>>>>>>>>>>>>>>>>>> simulated computation P(I) might halt or never halt,
>>>>>>>>>>>>>>>>>>> and this is unaffected by a simulator's decision to
>>>>>>>>>>>>>>>>>>> simulate no further computation steps. [The TM may
>>>>>>>>>>>>>>>>>>> have spotted some pattern in the simulated
>>>>>>>>>>>>>>>>>>> computation which implies P(I) never halts - that is
>>>>>>>>>>>>>>>>>>> a separate matter, but for sure the mere act of
>>>>>>>>>>>>>>>>>>> "aborting" the simulation doesn't imply P(I) never
>>>>>>>>>>>>>>>>>>> halts, or imply that it halts...
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating TM
>>>>>>>>>>>>>>>>>>> steps (aka aborts its simulation), NOTHING HALTS:
>>>>>>>>>>>>>>>>>>> not the simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF THOSE.
>>>>>>>>>>>>>>>>>>> (Like you say, what would part of a TM halting
>>>>>>>>>>>>>>>>>>> mean?)
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I think of a TM and an input string as defining a
>>>>>>>>>>>>>>>>>> sequence (an ordered list). The elements of the
>>>>>>>>>>>>>>>>>> sequence are pairs of a TM state name and a string
>>>>>>>>>>>>>>>>>> representing the "tape" contents when the state was
>>>>>>>>>>>>>>>>>> entered. Note that this view has no character of
>>>>>>>>>>>>>>>>>> animation in it and makes the definition of the halt
>>>>>>>>>>>>>>>>>> predicate (H) trivial:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite then
>>>>>>>>>>>>>>>>>> TRUE else FALSE.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least
>>>>>>>>>>>>>>>>> meant). Your sequence is my computation steps.
>>>>>>>>>>>>>>>>> Formally, these would be defined inductively via the
>>>>>>>>>>>>>>>>> rule to go from step n to step n+1. (Not an animation,
>>>>>>>>>>>>>>>>> but the induction gives some /sense/ of step-by-step
>>>>>>>>>>>>>>>>> calculation, and a simulator will follow this,
>>>>>>>>>>>>>>>>> starting at step 1, then calculate step 2 and so on.
>>>>>>>>>>>>>>>>> Still, I agree the entire sequence [the
>>>>>>>>>>>>>>>>> "computation"] exists as one timeless structure.  Too
>>>>>>>>>>>>>>>>> abstract for PO...)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> In other words when we make sure to conflate the
>>>>>>>>>>>>>>>> program under test with the test program as a single
>>>>>>>>>>>>>>>> computation then the whole idea of a halt decider
>>>>>>>>>>>>>>>> becomes less coherent and
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that you don't
>>>>>>>>>>>>>>>> already know that H(P,P)==0 is correct and the H/P
>>>>>>>>>>>>>>>> relationship matches the halting problem counter
>>>>>>>>>>>>>>>> example template.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>       For any program H that might determine if
>>>>>>>>>>>>>>>> programs halt, a "pathological"
>>>>>>>>>>>>>>>>       program P, called with some input, can pass
>>>>>>>>>>>>>>>> its own source and its input to
>>>>>>>>>>>>>>>>       H and then specifically do the opposite of
>>>>>>>>>>>>>>>> what H predicts P will do. No H
>>>>>>>>>>>>>>>>       can exist that handles this case.
>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> A simulator animates the production of the sequence
>>>>>>>>>>>>>>>>>> and that causes some difficulties in the same way
>>>>>>>>>>>>>>>>>> that elaborating an infinite sum or sequence does in
>>>>>>>>>>>>>>>>>> math classes. An (ultimate) value only exists if
>>>>>>>>>>>>>>>>>> there is some notation of convergence or limit which
>>>>>>>>>>>>>>>>>> typically is the case with examples used in a math
>>>>>>>>>>>>>>>>>> class. There is no definition of convergence or
>>>>>>>>>>>>>>>>>> limit with the sequence defined by TM(STRING);
>>>>>>>>>>>>>>>>>> rather, we simply ask about the last pair if the
>>>>>>>>>>>>>>>>>> sequence is finite.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>> The question right now is what you would call a TM
>>>>>>>>>>>>>>>>> which evaluates the first 10 steps of a computation,
>>>>>>>>>>>>>>>>> and then does something else. What is it doing while
>>>>>>>>>>>>>>>>> evaluating those 10 steps?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating" the
>>>>>>>>>>>>>>>>> computation (just for 10 steps) - then it stops
>>>>>>>>>>>>>>>>> simulating and does something else. Obviously I
>>>>>>>>>>>>>>>>> wouldn't describe it as "correctly" simulating,
>>>>>>>>>>>>>>>>> because nobody considers incorrect simulations, so
>>>>>>>>>>>>>>>>> the word would be redundant!
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> It is required because my reviewers are making their
>>>>>>>>>>>>>>>> best possible effort to form rebuttals and the most
>>>>>>>>>>>>>>>> persistent of the fake rebuttals has been that the
>>>>>>>>>>>>>>>> simulation is incorrect. It is very easy to verify the
>>>>>>>>>>>>>>>> correct x86 emulation on the basis of the x86
>>>>>>>>>>>>>>>> language.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
>>>>>>>>>>>>>>> simulation needs show the same behavior of the thing it
>>>>>>>>>>>>>>> is simulating.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is trying
>>>>>>>>>>>>>> to claim that it is utterly impossible to create a C
>>>>>>>>>>>>>> program that examines the x86 execution trace derived
>>>>>>>>>>>>>> from simulating the input to H0(Infinite_Loop) with an
>>>>>>>>>>>>>> x86 emulator to correctly determine that Infinite_Loop()
>>>>>>>>>>>>>> infinitely loops.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>> {
>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>> {
>>>>>>>>>>>>>> Output("Input_Halts = ", H0(Infinite_Loop));
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace
>>>>>>>>>>>>>> Stored at:212343 [00001342][00212333][00212337] 55
>>>>>>>>>>>>>> push ebp [00001343][00212333][00212337] 8bec mov
>>>>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe jmp
>>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe jmp
>>>>>>>>>>>>>> 00001345 Local Halt Decider: Infinite Loop Detected
>>>>>>>>>>>>>> Simulation Stopped
>>>>>>>>>>>>>
>>>>>>>>>>>>> But he isn't doing that; the issue is not the infinite
>>>>>>>>>>>>> loop but the logic used to decide to enter the infinite
>>>>>>>>>>>>> loop. Post *full* traces.
>>>>>>>>>>>>>
>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> In other words you are unable to tell that _Infinite_Loop()
>>>>>>>>>>>> contains an infinite loop.
>>>>>>>>>>>
>>>>>>>>>>> Again that isn't the issue; the issue is the logic used to
>>>>>>>>>>> decide when to enter the infinite loop;
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we have no
>>>>>>>>>> idea that a correct x86 emulation of Infinite_Loop would
>>>>>>>>>> reach the instruction at machine address [00001345] or not.
>>>>>>>>>>
>>>>>>>>>> It might be the case that a correct x86 emulation of
>>>>>>>>>> Infinite_Loop might instead involve emulating an entirely
>>>>>>>>>> different function that plays tic-tac-toe?
>>>>>>>>>
>>>>>>>>> Detecting an infinite loop is indeed trivial however your
>>>>>>>>> program and trace are not telling the full story as far as the
>>>>>>>>> HP proofs are concerned;
>>>>>>>>
>>>>>>>> The only thing that my program trace conclusively proves is
>>>>>>>> that H(P,P)==0 is the correct return value that does correctly
>>>>>>>> correspond to the actual behavior of the actual input.
>>>>>>>>
>>>>>>>> For any program H that might determine if programs
>>>>>>>> halt, a "pathological"
>>>>>>>> program P, called with some input, can pass its own
>>>>>>>> source and its input to
>>>>>>>> H and then specifically do the opposite of what H
>>>>>>>> predicts P will do. No H
>>>>>>>> can exist that handles this case.
>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>
>>>>>>>>
>>>>>>>> void P(u32 x)
>>>>>>>> {
>>>>>>>> if (H(x, x))
>>>>>>>> HERE: goto HERE;
>>>>>>>> return;
>>>>>>>> }
>>>>>>>>
>>>>>>>> int main()
>>>>>>>> {
>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>> }
>>>>>>>>
>>>>>>>> _P()
>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>> [00001358](01) 50 push eax // push P
>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
>>>>>>>> [0000135c](01) 51 push ecx // push P
>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
>>>>>>>> [00001362](03) 83c408 add esp,+08
>>>>>>>> [00001365](02) 85c0 test eax,eax
>>>>>>>> [00001367](02) 7402 jz 0000136b
>>>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>>>> [0000136b](01) 5d pop ebp
>>>>>>>> [0000136c](01) c3 ret
>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>
>>>>>>>> It is completely obvious that when H(P,P) correctly emulates
>>>>>>>> its input that it must emulate the first seven instructions of
>>>>>>>> P. Because the seventh instruction of P repeats this process
>>>>>>>> we can know with complete certainty that the emulated P never
>>>>>>>> reaches its final “ret” instruction, thus never halts.
>>>>>>>
>>>>>>> But the halting problem proofs (including [Strachey 1965]) that
>>>>>>> you are trying to refute don't do that, they DO NOT make any
>>>>>>> recursive calls
>>>>>>
>>>>>> Because the idea of a simulating halt decider being applied to
>>>>>> the halting problem counter-example is brand new with me you
>>>>>> won't find other references that refer to "infinitely nested
>>>>>> simulation".
>>>>>>> which is what you are doing with "call H" above. Why are you
>>>>>>> doing something different to what the proofs you are trying to
>>>>>>> refute do given doing so is no longer related to the Halting
>>>>>>> Problem?
>>>>>>>
>>>>>>> /Flibble
>>>>>>>
>>>>>>
>>>>>> The proofs never bothered to examine my idea because it was
>>>>>> unknown by everyone prior to me creating it in 2016.
>>>>>
>>>>> It seems to me that your idea would only be novel because it is a
>>>>> mistake. Your mistake is to have the candidate program call into
>>>>> the SAME INSTANCE of the decider which is deciding the candidate
>>>>> program.
>>>>
>>>> Where the Hell did you ever get this idea from ?
>>>> Whenever H simulates its input it creates a whole new process
>>>> context.
>>>
>>> You cannot make a direct function call into another process; it has
>>> to be the same process.
>>
>> As I have said very many hundreds of times I created the x86utm
>> operating system that enables any C function to execute another C
>> function using an x86 emulator.
>>
>> In the case of H(P,P) H creates a separate process context to
>> simulate its input every time that it is invoked, thus subsequent
>> invocations of H(P,P) execute in the process context that was
>> previously created.
>>
>>> As far as getting ideas as to what you are
>>> actually doing: publish all your source so we can see for ourselves
>>> so we don't have to guess.
>>>
>>> /Flibble
>>>
>>
>>
>> That would be 100,000-fold more complex then simply paying complete
>> attention to what I am saying. Everyone that is not bright enough to
>> understand 14 lines of code keeps saying that they could easily
>> understand 250 pages of code, even though the 14 lines proves to be
>> too much for them.
>
> Your code:
>
> call 000011a2 // call H
>
> is simply a function call into the address space of the current process,
> it doesn't look like code to spawn a new process to me.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220607215105.0000548c@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21871&group=comp.lang.c#21871

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!news.uzoreto.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220607215105.0000548c@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<t7ifji$hn8$1@gioia.aioe.org>
<t7ihd1$1qaq$1@news.muc.de>
<t7j2et$gmt$1@gioia.aioe.org>
<t7j8vh$2i1$1@dont-email.me>
<t7jg0k$1qko$1@gioia.aioe.org>
<SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 490
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 20:51:04 UTC
Date: Tue, 7 Jun 2022 21:51:05 +0100
X-Received-Bytes: 26596
 by: Mr Flibble - Tue, 7 Jun 2022 20:51 UTC

On Tue, 7 Jun 2022 15:34:13 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 15:14:30 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt whenever
> >>>>>>>>>>>>>>>>>>>>>>>>>>> it reaches a configuration for which δ is
> >>>>>>>>>>>>>>>>>>>>>>>>>>> not defined; this is possible because
> >>>>>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact, we will
> >>>>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are defined for
> >>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing machine
> >>>>>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a final
> >>>>>>>>>>>>>>>>>>>>>>>>>>> state. (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
> >>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
> >>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function this
> >>>>>>>>>>>>>>>>>>>>>>>>>>> means reaching the "ret"
> >>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is not
> >>>>>>>>>>>>>>>>>>>>>>>>>> "ret". Instead, "not
> >>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
> >>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means
> >>>>>>>>>>>>>>>>>>>>>>>>>> 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the
> >>>>>>>>>>>>>>>>>>>>>>>>>> stack is empty
> >>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location that
> >>>>>>>>>>>>>>>>>>>>>>>>>> is not specifiec by the
> >>>>>>>>>>>>>>>>>>>>>>>>>>      program
> >>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition is
> >>>>>>>>>>>>>>>>>>>>>>>>>> much better.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the Turing
> >>>>>>>>>>>>>>>>>>>>>>>>> machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of
> >>>>>>>>>>>>>>>>>>>>>>>>> saying the same thing.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing machine
> >>>>>>>>>>>>>>>>>>>>>>>> equivalent of an "abnormal termination" in
> >>>>>>>>>>>>>>>>>>>>>>>> C?
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.  It
> >>>>>>>>>>>>>>>>>>>>>> either runs and halts,
> >>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final state
> >>>>>>>>>>>>>>>>>>>>>> of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM
> >>>>>>>>>>>>>>>>>>>>> ceasing to calculate computation steps for some
> >>>>>>>>>>>>>>>>>>>>> computation, and going on to calculate something
> >>>>>>>>>>>>>>>>>>>>> else instead.  It does not mean: a)  that the TM
> >>>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted b)  that the
> >>>>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the
> >>>>>>>>>>>>>>>>>>>>> simulated computation never halts
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about nice
> >>>>>>>>>>>>>>>>>>>> shades of words than
> >>>>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
> >>>>>>>>>>>>>>>>>>>> aborting it will bring
> >>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is
> >>>>>>>>>>>>>>>>>>>> merely part of the TM, then the word "halt" has a
> >>>>>>>>>>>>>>>>>>>> different meaning when applied to that simulation
> >>>>>>>>>>>>>>>>>>>> part from when applied to the entire TM.  I'm not
> >>>>>>>>>>>>>>>>>>>> even sure what you mean when you say a part of a
> >>>>>>>>>>>>>>>>>>>> TM has halted or not halted.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I never
> >>>>>>>>>>>>>>>>>>> talked about /part/ of a TM halting, and like
> >>>>>>>>>>>>>>>>>>> you, I can't work out what that would mean!  I
> >>>>>>>>>>>>>>>>>>> used "halt" only with respect to a computation,
> >>>>>>>>>>>>>>>>>>> meaning that the computation halts [there is an n
> >>>>>>>>>>>>>>>>>>> such that computation step n is a TM final state].
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think that
> >>>>>>>>>>>>>>>>>>> by your definition of simulation, the simulating
> >>>>>>>>>>>>>>>>>>> TM must be a "pure" simulator that does nothing
> >>>>>>>>>>>>>>>>>>> but simulate computation steps until the
> >>>>>>>>>>>>>>>>>>> simulation halts, at which point the simulating
> >>>>>>>>>>>>>>>>>>> TM halts (like a UTM).  I get that with that
> >>>>>>>>>>>>>>>>>>> interpretation what you said:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just one
> >>>>>>>>>>>>>>>>>>> final state of a turing machine,
> >>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd just
> >>>>>>>>>>>>>>>>>>> say I don't think that usage of "simulation" is
> >>>>>>>>>>>>>>>>>>> very useful, and is DEFINITELY not what PO is
> >>>>>>>>>>>>>>>>>>> talking about (so it would be wrong if applied
> >>>>>>>>>>>>>>>>>>> PO's posts...)
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply the
> >>>>>>>>>>>>>>>>>>> activity performed by a TM which consists of
> >>>>>>>>>>>>>>>>>>> calculating computation steps of some given
> >>>>>>>>>>>>>>>>>>> computation.  As such it's just a part of the TM
> >>>>>>>>>>>>>>>>>>> logic. A TM's typical use of simulation might be
> >>>>>>>>>>>>>>>>>>> something like "..the TM simulates the computation
> >>>>>>>>>>>>>>>>>>> for n steps, and if the simulation halts during
> >>>>>>>>>>>>>>>>>>> those n steps, the TM [blah blah], /otherwise/ the
> >>>>>>>>>>>>>>>>>>> TM [blah blah blah]...". Just about every
> >>>>>>>>>>>>>>>>>>> reference in the literature I can recall is
> >>>>>>>>>>>>>>>>>>> something like that.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is just
> >>>>>>>>>>>>>>>>>>> the TM ceasing to calculate >> computation steps
> >>>>>>>>>>>>>>>>>>> for some computation, and going on to calculate >>
> >>>>>>>>>>>>>>>>>>> something else instead.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of
> >>>>>>>>>>>>>>>>>>> P(P), the TM either halts or enters an infinite
> >>>>>>>>>>>>>>>>>>> loop.  (That logic is not part of the simulation,
> >>>>>>>>>>>>>>>>>>> IMO.)
> >>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
> >>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the simulation)
> >>>>>>>>>>>>>>>>>>> has halted
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to something
> >>>>>>>>>>>>>>>>>>> else...
> >>>>>>>>>>>>>>>>>>>  >> b)  that the simulated computation
> >>>>>>>>>>>>>>>>>>> halts >> c)  that the simulated computation never
> >>>>>>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> obviously - in general different exacmples of a
> >>>>>>>>>>>>>>>>>>> simulated computation P(I) might halt or never
> >>>>>>>>>>>>>>>>>>> halt, and this is unaffected by a simulator's
> >>>>>>>>>>>>>>>>>>> decision to simulate no further computation
> >>>>>>>>>>>>>>>>>>> steps. [The TM may have spotted some pattern in
> >>>>>>>>>>>>>>>>>>> the simulated computation which implies P(I)
> >>>>>>>>>>>>>>>>>>> never halts - that is a separate matter, but for
> >>>>>>>>>>>>>>>>>>> sure the mere act of "aborting" the simulation
> >>>>>>>>>>>>>>>>>>> doesn't imply P(I) never halts, or imply that it
> >>>>>>>>>>>>>>>>>>> halts...
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating
> >>>>>>>>>>>>>>>>>>> TM steps (aka aborts its simulation), NOTHING
> >>>>>>>>>>>>>>>>>>> HALTS: not the simulating TM, not the simulated
> >>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF THOSE.
> >>>>>>>>>>>>>>>>>>> (Like you say, what would part of a TM halting
> >>>>>>>>>>>>>>>>>>> mean?)
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> I think of a TM and an input string as defining a
> >>>>>>>>>>>>>>>>>> sequence (an ordered list). The elements of the
> >>>>>>>>>>>>>>>>>> sequence are pairs of a TM state name and a string
> >>>>>>>>>>>>>>>>>> representing the "tape" contents when the state was
> >>>>>>>>>>>>>>>>>> entered. Note that this view has no character of
> >>>>>>>>>>>>>>>>>> animation in it and makes the definition of the
> >>>>>>>>>>>>>>>>>> halt predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite
> >>>>>>>>>>>>>>>>>> then TRUE else FALSE.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least
> >>>>>>>>>>>>>>>>> meant). Your sequence is my computation steps.
> >>>>>>>>>>>>>>>>> Formally, these would be defined inductively via the
> >>>>>>>>>>>>>>>>> rule to go from step n to step n+1. (Not an
> >>>>>>>>>>>>>>>>> animation, but the induction gives some /sense/ of
> >>>>>>>>>>>>>>>>> step-by-step calculation, and a simulator will
> >>>>>>>>>>>>>>>>> follow this, starting at step 1, then calculate
> >>>>>>>>>>>>>>>>> step 2 and so on. Still, I agree the entire
> >>>>>>>>>>>>>>>>> sequence [the "computation"] exists as one timeless
> >>>>>>>>>>>>>>>>> structure.  Too abstract for PO...)
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> In other words when we make sure to conflate the
> >>>>>>>>>>>>>>>> program under test with the test program as a single
> >>>>>>>>>>>>>>>> computation then the whole idea of a halt decider
> >>>>>>>>>>>>>>>> becomes less coherent and
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> this can be used as an excuse to pretend that you
> >>>>>>>>>>>>>>>> don't already know that H(P,P)==0 is correct and the
> >>>>>>>>>>>>>>>> H/P relationship matches the halting problem counter
> >>>>>>>>>>>>>>>> example template.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
> >>>>>>>>>>>>>>>> (u32)P)); }
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>       For any program H that might determine
> >>>>>>>>>>>>>>>> if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>       program P, called with some input, can
> >>>>>>>>>>>>>>>> pass its own source and its input to
> >>>>>>>>>>>>>>>>       H and then specifically do the opposite
> >>>>>>>>>>>>>>>> of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>       can exist that handles this case.
> >>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> A simulator animates the production of the sequence
> >>>>>>>>>>>>>>>>>> and that causes some difficulties in the same way
> >>>>>>>>>>>>>>>>>> that elaborating an infinite sum or sequence does
> >>>>>>>>>>>>>>>>>> in math classes. An (ultimate) value only exists if
> >>>>>>>>>>>>>>>>>> there is some notation of convergence or limit
> >>>>>>>>>>>>>>>>>> which typically is the case with examples used in
> >>>>>>>>>>>>>>>>>> a math class. There is no definition of
> >>>>>>>>>>>>>>>>>> convergence or limit with the sequence defined by
> >>>>>>>>>>>>>>>>>> TM(STRING); rather, we simply ask about the last
> >>>>>>>>>>>>>>>>>> pair if the sequence is finite.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>> The question right now is what you would call a TM
> >>>>>>>>>>>>>>>>> which evaluates the first 10 steps of a computation,
> >>>>>>>>>>>>>>>>> and then does something else. What is it doing while
> >>>>>>>>>>>>>>>>> evaluating those 10 steps?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> My terminology would be that it's "simulating" the
> >>>>>>>>>>>>>>>>> computation (just for 10 steps) - then it stops
> >>>>>>>>>>>>>>>>> simulating and does something else. Obviously I
> >>>>>>>>>>>>>>>>> wouldn't describe it as "correctly" simulating,
> >>>>>>>>>>>>>>>>> because nobody considers incorrect simulations, so
> >>>>>>>>>>>>>>>>> the word would be redundant!
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> It is required because my reviewers are making their
> >>>>>>>>>>>>>>>> best possible effort to form rebuttals and the most
> >>>>>>>>>>>>>>>> persistent of the fake rebuttals has been that the
> >>>>>>>>>>>>>>>> simulation is incorrect. It is very easy to verify
> >>>>>>>>>>>>>>>> the correct x86 emulation on the basis of the x86
> >>>>>>>>>>>>>>>> language.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
> >>>>>>>>>>>>>>> simulation needs show the same behavior of the thing
> >>>>>>>>>>>>>>> it is simulating.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is
> >>>>>>>>>>>>>> trying to claim that it is utterly impossible to
> >>>>>>>>>>>>>> create a C program that examines the x86 execution
> >>>>>>>>>>>>>> trace derived from simulating the input to
> >>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to correctly
> >>>>>>>>>>>>>> determine that Infinite_Loop() infinitely loops.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>> {
> >>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>> {
> >>>>>>>>>>>>>> Output("Input_Halts = ", H0(Infinite_Loop));
> >>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace
> >>>>>>>>>>>>>> Stored at:212343 [00001342][00212333][00212337] 55
> >>>>>>>>>>>>>> push ebp [00001343][00212333][00212337] 8bec mov
> >>>>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>>>>>> 00001345 Local Halt Decider: Infinite Loop Detected
> >>>>>>>>>>>>>> Simulation Stopped
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> But he isn't doing that; the issue is not the infinite
> >>>>>>>>>>>>> loop but the logic used to decide to enter the infinite
> >>>>>>>>>>>>> loop. Post *full* traces.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> >>>>>>>>>>>
> >>>>>>>>>>> Again that isn't the issue; the issue is the logic used to
> >>>>>>>>>>> decide when to enter the infinite loop;
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we have no
> >>>>>>>>>> idea that a correct x86 emulation of Infinite_Loop would
> >>>>>>>>>> reach the instruction at machine address [00001345] or not.
> >>>>>>>>>>
> >>>>>>>>>> It might be the case that a correct x86 emulation of
> >>>>>>>>>> Infinite_Loop might instead involve emulating an entirely
> >>>>>>>>>> different function that plays tic-tac-toe?
> >>>>>>>>>
> >>>>>>>>> Detecting an infinite loop is indeed trivial however your
> >>>>>>>>> program and trace are not telling the full story as far as
> >>>>>>>>> the HP proofs are concerned;
> >>>>>>>>
> >>>>>>>> The only thing that my program trace conclusively proves is
> >>>>>>>> that H(P,P)==0 is the correct return value that does
> >>>>>>>> correctly correspond to the actual behavior of the actual
> >>>>>>>> input.
> >>>>>>>>
> >>>>>>>> For any program H that might determine if programs
> >>>>>>>> halt, a "pathological"
> >>>>>>>> program P, called with some input, can pass its own
> >>>>>>>> source and its input to
> >>>>>>>> H and then specifically do the opposite of what H
> >>>>>>>> predicts P will do. No H
> >>>>>>>> can exist that handles this case.
> >>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> void P(u32 x)
> >>>>>>>> {
> >>>>>>>> if (H(x, x))
> >>>>>>>> HERE: goto HERE;
> >>>>>>>> return;
> >>>>>>>> }
> >>>>>>>>
> >>>>>>>> int main()
> >>>>>>>> {
> >>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
> >>>>>>>> }
> >>>>>>>>
> >>>>>>>> _P()
> >>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>>>> [00001358](01) 50 push eax // push P
> >>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
> >>>>>>>> [0000135c](01) 51 push ecx // push P
> >>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
> >>>>>>>> [00001362](03) 83c408 add esp,+08
> >>>>>>>> [00001365](02) 85c0 test eax,eax
> >>>>>>>> [00001367](02) 7402 jz 0000136b
> >>>>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>>>> [0000136b](01) 5d pop ebp
> >>>>>>>> [0000136c](01) c3 ret
> >>>>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>>>
> >>>>>>>> It is completely obvious that when H(P,P) correctly emulates
> >>>>>>>> its input that it must emulate the first seven instructions
> >>>>>>>> of P. Because the seventh instruction of P repeats this
> >>>>>>>> process we can know with complete certainty that the
> >>>>>>>> emulated P never reaches its final “ret” instruction, thus
> >>>>>>>> never halts.
> >>>>>>>
> >>>>>>> But the halting problem proofs (including [Strachey 1965])
> >>>>>>> that you are trying to refute don't do that, they DO NOT make
> >>>>>>> any recursive calls
> >>>>>>
> >>>>>> Because the idea of a simulating halt decider being applied to
> >>>>>> the halting problem counter-example is brand new with me you
> >>>>>> won't find other references that refer to "infinitely nested
> >>>>>> simulation".
> >>>>>>> which is what you are doing with "call H" above. Why are you
> >>>>>>> doing something different to what the proofs you are trying to
> >>>>>>> refute do given doing so is no longer related to the Halting
> >>>>>>> Problem?
> >>>>>>>
> >>>>>>> /Flibble
> >>>>>>>
> >>>>>>
> >>>>>> The proofs never bothered to examine my idea because it was
> >>>>>> unknown by everyone prior to me creating it in 2016.
> >>>>>
> >>>>> It seems to me that your idea would only be novel because it is
> >>>>> a mistake. Your mistake is to have the candidate program call
> >>>>> into the SAME INSTANCE of the decider which is deciding the
> >>>>> candidate program.
> >>>>
> >>>> Where the Hell did you ever get this idea from ?
> >>>> Whenever H simulates its input it creates a whole new process
> >>>> context.
> >>>
> >>> You cannot make a direct function call into another process; it
> >>> has to be the same process.
> >>
> >> As I have said very many hundreds of times I created the x86utm
> >> operating system that enables any C function to execute another C
> >> function using an x86 emulator.
> >>
> >> In the case of H(P,P) H creates a separate process context to
> >> simulate its input every time that it is invoked, thus subsequent
> >> invocations of H(P,P) execute in the process context that was
> >> previously created.
> >>
> >>> As far as getting ideas as to what you are
> >>> actually doing: publish all your source so we can see for
> >>> ourselves so we don't have to guess.
> >>>
> >>> /Flibble
> >>>
> >>
> >>
> >> That would be 100,000-fold more complex then simply paying complete
> >> attention to what I am saying. Everyone that is not bright enough
> >> to understand 14 lines of code keeps saying that they could easily
> >> understand 250 pages of code, even though the 14 lines proves to be
> >> too much for them.
> >
> > Your code:
> >
> > call 000011a2 // call H
> >
> > is simply a function call into the address space of the current
> > process, it doesn't look like code to spawn a new process to me.
>
> How many times do I have to say this before you notice that I said it
> at least once? H (in the current process) always creates a new
> process context to emulate its its input with an x86 emulator.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21872&group=comp.lang.c#21872

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 16:01:54 -0500
Date: Tue, 7 Jun 2022 16:01:53 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<t7ifji$hn8$1@gioia.aioe.org> <t7ihd1$1qaq$1@news.muc.de>
<t7j2et$gmt$1@gioia.aioe.org> <t7j8vh$2i1$1@dont-email.me>
<t7jg0k$1qko$1@gioia.aioe.org>
<SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220607215105.0000548c@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
Lines: 493
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-yWMEGbTc8L9TvraTJdcxntqzS5A6KP52OC8cRIxo7WmCR4JhGMHVpiMR0HgkWQqaCR15Mh9iBe9YeRo!ryzizPrYGifcc33pGFHk24vvxk79UmKD1XfHnilYXBtxcLIFt0RDivSD438b7cLipd4tKD7u7CfL
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 27113
 by: olcott - Tue, 7 Jun 2022 21:01 UTC

On 6/7/2022 3:51 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 15:34:13 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt whenever
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it reaches a configuration for which δ is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not defined; this is possible because
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact, we will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are defined for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing machine
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a final
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state. (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means reaching the "ret"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is not
>>>>>>>>>>>>>>>>>>>>>>>>>>>> "ret". Instead, "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means
>>>>>>>>>>>>>>>>>>>>>>>>>>>> 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> stack is empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location that
>>>>>>>>>>>>>>>>>>>>>>>>>>>> is not specifiec by the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition is
>>>>>>>>>>>>>>>>>>>>>>>>>>>> much better.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the Turing
>>>>>>>>>>>>>>>>>>>>>>>>>>> machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of
>>>>>>>>>>>>>>>>>>>>>>>>>>> saying the same thing.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing machine
>>>>>>>>>>>>>>>>>>>>>>>>>> equivalent of an "abnormal termination" in
>>>>>>>>>>>>>>>>>>>>>>>>>> C?
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.  It
>>>>>>>>>>>>>>>>>>>>>>>> either runs and halts,
>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final state
>>>>>>>>>>>>>>>>>>>>>>>> of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM
>>>>>>>>>>>>>>>>>>>>>>> ceasing to calculate computation steps for some
>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to calculate something
>>>>>>>>>>>>>>>>>>>>>>> else instead.  It does not mean: a)  that the TM
>>>>>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted b)  that the
>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the
>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about nice
>>>>>>>>>>>>>>>>>>>>>> shades of words than
>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
>>>>>>>>>>>>>>>>>>>>>> aborting it will bring
>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is
>>>>>>>>>>>>>>>>>>>>>> merely part of the TM, then the word "halt" has a
>>>>>>>>>>>>>>>>>>>>>> different meaning when applied to that simulation
>>>>>>>>>>>>>>>>>>>>>> part from when applied to the entire TM.  I'm not
>>>>>>>>>>>>>>>>>>>>>> even sure what you mean when you say a part of a
>>>>>>>>>>>>>>>>>>>>>> TM has halted or not halted.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I never
>>>>>>>>>>>>>>>>>>>>> talked about /part/ of a TM halting, and like
>>>>>>>>>>>>>>>>>>>>> you, I can't work out what that would mean!  I
>>>>>>>>>>>>>>>>>>>>> used "halt" only with respect to a computation,
>>>>>>>>>>>>>>>>>>>>> meaning that the computation halts [there is an n
>>>>>>>>>>>>>>>>>>>>> such that computation step n is a TM final state].
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think that
>>>>>>>>>>>>>>>>>>>>> by your definition of simulation, the simulating
>>>>>>>>>>>>>>>>>>>>> TM must be a "pure" simulator that does nothing
>>>>>>>>>>>>>>>>>>>>> but simulate computation steps until the
>>>>>>>>>>>>>>>>>>>>> simulation halts, at which point the simulating
>>>>>>>>>>>>>>>>>>>>> TM halts (like a UTM).  I get that with that
>>>>>>>>>>>>>>>>>>>>> interpretation what you said:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just one
>>>>>>>>>>>>>>>>>>>>> final state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd just
>>>>>>>>>>>>>>>>>>>>> say I don't think that usage of "simulation" is
>>>>>>>>>>>>>>>>>>>>> very useful, and is DEFINITELY not what PO is
>>>>>>>>>>>>>>>>>>>>> talking about (so it would be wrong if applied
>>>>>>>>>>>>>>>>>>>>> PO's posts...)
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply the
>>>>>>>>>>>>>>>>>>>>> activity performed by a TM which consists of
>>>>>>>>>>>>>>>>>>>>> calculating computation steps of some given
>>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part of the TM
>>>>>>>>>>>>>>>>>>>>> logic. A TM's typical use of simulation might be
>>>>>>>>>>>>>>>>>>>>> something like "..the TM simulates the computation
>>>>>>>>>>>>>>>>>>>>> for n steps, and if the simulation halts during
>>>>>>>>>>>>>>>>>>>>> those n steps, the TM [blah blah], /otherwise/ the
>>>>>>>>>>>>>>>>>>>>> TM [blah blah blah]...". Just about every
>>>>>>>>>>>>>>>>>>>>> reference in the literature I can recall is
>>>>>>>>>>>>>>>>>>>>> something like that.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is just
>>>>>>>>>>>>>>>>>>>>> the TM ceasing to calculate >> computation steps
>>>>>>>>>>>>>>>>>>>>> for some computation, and going on to calculate >>
>>>>>>>>>>>>>>>>>>>>> something else instead.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of
>>>>>>>>>>>>>>>>>>>>> P(P), the TM either halts or enters an infinite
>>>>>>>>>>>>>>>>>>>>> loop.  (That logic is not part of the simulation,
>>>>>>>>>>>>>>>>>>>>> IMO.)
>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the simulation)
>>>>>>>>>>>>>>>>>>>>> has halted
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to something
>>>>>>>>>>>>>>>>>>>>> else...
>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated computation
>>>>>>>>>>>>>>>>>>>>> halts >> c)  that the simulated computation never
>>>>>>>>>>>>>>>>>>>>> halts
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples of a
>>>>>>>>>>>>>>>>>>>>> simulated computation P(I) might halt or never
>>>>>>>>>>>>>>>>>>>>> halt, and this is unaffected by a simulator's
>>>>>>>>>>>>>>>>>>>>> decision to simulate no further computation
>>>>>>>>>>>>>>>>>>>>> steps. [The TM may have spotted some pattern in
>>>>>>>>>>>>>>>>>>>>> the simulated computation which implies P(I)
>>>>>>>>>>>>>>>>>>>>> never halts - that is a separate matter, but for
>>>>>>>>>>>>>>>>>>>>> sure the mere act of "aborting" the simulation
>>>>>>>>>>>>>>>>>>>>> doesn't imply P(I) never halts, or imply that it
>>>>>>>>>>>>>>>>>>>>> halts...
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating
>>>>>>>>>>>>>>>>>>>>> TM steps (aka aborts its simulation), NOTHING
>>>>>>>>>>>>>>>>>>>>> HALTS: not the simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF THOSE.
>>>>>>>>>>>>>>>>>>>>> (Like you say, what would part of a TM halting
>>>>>>>>>>>>>>>>>>>>> mean?)
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as defining a
>>>>>>>>>>>>>>>>>>>> sequence (an ordered list). The elements of the
>>>>>>>>>>>>>>>>>>>> sequence are pairs of a TM state name and a string
>>>>>>>>>>>>>>>>>>>> representing the "tape" contents when the state was
>>>>>>>>>>>>>>>>>>>> entered. Note that this view has no character of
>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of the
>>>>>>>>>>>>>>>>>>>> halt predicate (H) trivial:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite
>>>>>>>>>>>>>>>>>>>> then TRUE else FALSE.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least
>>>>>>>>>>>>>>>>>>> meant). Your sequence is my computation steps.
>>>>>>>>>>>>>>>>>>> Formally, these would be defined inductively via the
>>>>>>>>>>>>>>>>>>> rule to go from step n to step n+1. (Not an
>>>>>>>>>>>>>>>>>>> animation, but the induction gives some /sense/ of
>>>>>>>>>>>>>>>>>>> step-by-step calculation, and a simulator will
>>>>>>>>>>>>>>>>>>> follow this, starting at step 1, then calculate
>>>>>>>>>>>>>>>>>>> step 2 and so on. Still, I agree the entire
>>>>>>>>>>>>>>>>>>> sequence [the "computation"] exists as one timeless
>>>>>>>>>>>>>>>>>>> structure.  Too abstract for PO...)
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate the
>>>>>>>>>>>>>>>>>> program under test with the test program as a single
>>>>>>>>>>>>>>>>>> computation then the whole idea of a halt decider
>>>>>>>>>>>>>>>>>> becomes less coherent and
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that you
>>>>>>>>>>>>>>>>>> don't already know that H(P,P)==0 is correct and the
>>>>>>>>>>>>>>>>>> H/P relationship matches the halting problem counter
>>>>>>>>>>>>>>>>>> example template.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
>>>>>>>>>>>>>>>>>> (u32)P)); }
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>       For any program H that might determine
>>>>>>>>>>>>>>>>>> if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>       program P, called with some input, can
>>>>>>>>>>>>>>>>>> pass its own source and its input to
>>>>>>>>>>>>>>>>>>       H and then specifically do the opposite
>>>>>>>>>>>>>>>>>> of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>       can exist that handles this case.
>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the sequence
>>>>>>>>>>>>>>>>>>>> and that causes some difficulties in the same way
>>>>>>>>>>>>>>>>>>>> that elaborating an infinite sum or sequence does
>>>>>>>>>>>>>>>>>>>> in math classes. An (ultimate) value only exists if
>>>>>>>>>>>>>>>>>>>> there is some notation of convergence or limit
>>>>>>>>>>>>>>>>>>>> which typically is the case with examples used in
>>>>>>>>>>>>>>>>>>>> a math class. There is no definition of
>>>>>>>>>>>>>>>>>>>> convergence or limit with the sequence defined by
>>>>>>>>>>>>>>>>>>>> TM(STRING); rather, we simply ask about the last
>>>>>>>>>>>>>>>>>>>> pair if the sequence is finite.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>> The question right now is what you would call a TM
>>>>>>>>>>>>>>>>>>> which evaluates the first 10 steps of a computation,
>>>>>>>>>>>>>>>>>>> and then does something else. What is it doing while
>>>>>>>>>>>>>>>>>>> evaluating those 10 steps?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating" the
>>>>>>>>>>>>>>>>>>> computation (just for 10 steps) - then it stops
>>>>>>>>>>>>>>>>>>> simulating and does something else. Obviously I
>>>>>>>>>>>>>>>>>>> wouldn't describe it as "correctly" simulating,
>>>>>>>>>>>>>>>>>>> because nobody considers incorrect simulations, so
>>>>>>>>>>>>>>>>>>> the word would be redundant!
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> It is required because my reviewers are making their
>>>>>>>>>>>>>>>>>> best possible effort to form rebuttals and the most
>>>>>>>>>>>>>>>>>> persistent of the fake rebuttals has been that the
>>>>>>>>>>>>>>>>>> simulation is incorrect. It is very easy to verify
>>>>>>>>>>>>>>>>>> the correct x86 emulation on the basis of the x86
>>>>>>>>>>>>>>>>>> language.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
>>>>>>>>>>>>>>>>> simulation needs show the same behavior of the thing
>>>>>>>>>>>>>>>>> it is simulating.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is
>>>>>>>>>>>>>>>> trying to claim that it is utterly impossible to
>>>>>>>>>>>>>>>> create a C program that examines the x86 execution
>>>>>>>>>>>>>>>> trace derived from simulating the input to
>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to correctly
>>>>>>>>>>>>>>>> determine that Infinite_Loop() infinitely loops.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>> Output("Input_Halts = ", H0(Infinite_Loop));
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace
>>>>>>>>>>>>>>>> Stored at:212343 [00001342][00212333][00212337] 55
>>>>>>>>>>>>>>>> push ebp [00001343][00212333][00212337] 8bec mov
>>>>>>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe jmp
>>>>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe jmp
>>>>>>>>>>>>>>>> 00001345 Local Halt Decider: Infinite Loop Detected
>>>>>>>>>>>>>>>> Simulation Stopped
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the infinite
>>>>>>>>>>>>>>> loop but the logic used to decide to enter the infinite
>>>>>>>>>>>>>>> loop. Post *full* traces.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic used to
>>>>>>>>>>>>> decide when to enter the infinite loop;
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we have no
>>>>>>>>>>>> idea that a correct x86 emulation of Infinite_Loop would
>>>>>>>>>>>> reach the instruction at machine address [00001345] or not.
>>>>>>>>>>>>
>>>>>>>>>>>> It might be the case that a correct x86 emulation of
>>>>>>>>>>>> Infinite_Loop might instead involve emulating an entirely
>>>>>>>>>>>> different function that plays tic-tac-toe?
>>>>>>>>>>>
>>>>>>>>>>> Detecting an infinite loop is indeed trivial however your
>>>>>>>>>>> program and trace are not telling the full story as far as
>>>>>>>>>>> the HP proofs are concerned;
>>>>>>>>>>
>>>>>>>>>> The only thing that my program trace conclusively proves is
>>>>>>>>>> that H(P,P)==0 is the correct return value that does
>>>>>>>>>> correctly correspond to the actual behavior of the actual
>>>>>>>>>> input.
>>>>>>>>>>
>>>>>>>>>> For any program H that might determine if programs
>>>>>>>>>> halt, a "pathological"
>>>>>>>>>> program P, called with some input, can pass its own
>>>>>>>>>> source and its input to
>>>>>>>>>> H and then specifically do the opposite of what H
>>>>>>>>>> predicts P will do. No H
>>>>>>>>>> can exist that handles this case.
>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> void P(u32 x)
>>>>>>>>>> {
>>>>>>>>>> if (H(x, x))
>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>> return;
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> int main()
>>>>>>>>>> {
>>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>> _P()
>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>>>> [00001358](01) 50 push eax // push P
>>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
>>>>>>>>>> [0000135c](01) 51 push ecx // push P
>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
>>>>>>>>>> [00001362](03) 83c408 add esp,+08
>>>>>>>>>> [00001365](02) 85c0 test eax,eax
>>>>>>>>>> [00001367](02) 7402 jz 0000136b
>>>>>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>>>>>> [0000136b](01) 5d pop ebp
>>>>>>>>>> [0000136c](01) c3 ret
>>>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>>>
>>>>>>>>>> It is completely obvious that when H(P,P) correctly emulates
>>>>>>>>>> its input that it must emulate the first seven instructions
>>>>>>>>>> of P. Because the seventh instruction of P repeats this
>>>>>>>>>> process we can know with complete certainty that the
>>>>>>>>>> emulated P never reaches its final “ret” instruction, thus
>>>>>>>>>> never halts.
>>>>>>>>>
>>>>>>>>> But the halting problem proofs (including [Strachey 1965])
>>>>>>>>> that you are trying to refute don't do that, they DO NOT make
>>>>>>>>> any recursive calls
>>>>>>>>
>>>>>>>> Because the idea of a simulating halt decider being applied to
>>>>>>>> the halting problem counter-example is brand new with me you
>>>>>>>> won't find other references that refer to "infinitely nested
>>>>>>>> simulation".
>>>>>>>>> which is what you are doing with "call H" above. Why are you
>>>>>>>>> doing something different to what the proofs you are trying to
>>>>>>>>> refute do given doing so is no longer related to the Halting
>>>>>>>>> Problem?
>>>>>>>>>
>>>>>>>>> /Flibble
>>>>>>>>>
>>>>>>>>
>>>>>>>> The proofs never bothered to examine my idea because it was
>>>>>>>> unknown by everyone prior to me creating it in 2016.
>>>>>>>
>>>>>>> It seems to me that your idea would only be novel because it is
>>>>>>> a mistake. Your mistake is to have the candidate program call
>>>>>>> into the SAME INSTANCE of the decider which is deciding the
>>>>>>> candidate program.
>>>>>>
>>>>>> Where the Hell did you ever get this idea from ?
>>>>>> Whenever H simulates its input it creates a whole new process
>>>>>> context.
>>>>>
>>>>> You cannot make a direct function call into another process; it
>>>>> has to be the same process.
>>>>
>>>> As I have said very many hundreds of times I created the x86utm
>>>> operating system that enables any C function to execute another C
>>>> function using an x86 emulator.
>>>>
>>>> In the case of H(P,P) H creates a separate process context to
>>>> simulate its input every time that it is invoked, thus subsequent
>>>> invocations of H(P,P) execute in the process context that was
>>>> previously created.
>>>>
>>>>> As far as getting ideas as to what you are
>>>>> actually doing: publish all your source so we can see for
>>>>> ourselves so we don't have to guess.
>>>>>
>>>>> /Flibble
>>>>>
>>>>
>>>>
>>>> That would be 100,000-fold more complex then simply paying complete
>>>> attention to what I am saying. Everyone that is not bright enough
>>>> to understand 14 lines of code keeps saying that they could easily
>>>> understand 250 pages of code, even though the 14 lines proves to be
>>>> too much for them.
>>>
>>> Your code:
>>>
>>> call 000011a2 // call H
>>>
>>> is simply a function call into the address space of the current
>>> process, it doesn't look like code to spawn a new process to me.
>>
>> How many times do I have to say this before you notice that I said it
>> at least once? H (in the current process) always creates a new
>> process context to emulate its its input with an x86 emulator.
>
> I will have to take your word for it as you refuse to publish source
> code. Why not just stick your project on GitHub? Open source is de
> rigueur these days. What are you trying to hide?
>
> If a new process context is made then how is nested simulation
> detected? I assume the data segment of each process is private...
>
> /Flibble
>


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220607222206.00002234@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21873&group=comp.lang.c#21873

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!feeder.usenetexpress.com!tr2.eu1.usenetexpress.com!81.171.65.13.MISMATCH!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]
Message-ID: <20220607222206.00002234@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com> <t7j8vh$2i1$1@dont-email.me> <t7jg0k$1qko$1@gioia.aioe.org> <SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com> <rhcnK.65120$ntj.43005@fx15.iad> <H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com> <20220606174525.0000745f@reddwarf.jmc> <ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com> <20220606185031.0000254f@reddwarf.jmc> <H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com> <20220606194152.00004098@reddwarf.jmc> <X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com> <20220607200210.000000e6@reddwarf.jmc> <4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com> <20220607204944.000027de@reddwarf.jmc> <8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com> <20220607210605.00004d5c@reddwarf.jmc> <HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com> <20220607211856.000075de@reddwarf.jmc> <3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com> <20220607215105.0000548c@reddwarf.jmc> <2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 518
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 21:22:06 UTC
Date: Tue, 7 Jun 2022 22:22:06 +0100
X-Received-Bytes: 28804
 by: Mr Flibble - Tue, 7 Jun 2022 21:22 UTC

On Tue, 7 Jun 2022 16:01:53 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 15:34:13 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a configuration for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> which δ is not defined; this is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a partial
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will assume that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> no transitions are defined for any
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state so the Turing machine will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it enters a final state.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> this means reaching the "ret"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> not "ret". Instead, "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> stack is empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> that is not specifiec by the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> is much better.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of
> >>>>>>>>>>>>>>>>>>>>>>>>>>> saying the same thing.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
> >>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
> >>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.
> >>>>>>>>>>>>>>>>>>>>>>>> It either runs and halts,
> >>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final
> >>>>>>>>>>>>>>>>>>>>>>>> state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM
> >>>>>>>>>>>>>>>>>>>>>>> ceasing to calculate computation steps for
> >>>>>>>>>>>>>>>>>>>>>>> some computation, and going on to calculate
> >>>>>>>>>>>>>>>>>>>>>>> something else instead.  It does not mean: a)
> >>>>>>>>>>>>>>>>>>>>>>> that the TM (doing the simulation) has
> >>>>>>>>>>>>>>>>>>>>>>> halted b)  that the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>> halts c)  that the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>> never halts
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about
> >>>>>>>>>>>>>>>>>>>>>> nice shades of words than
> >>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
> >>>>>>>>>>>>>>>>>>>>>> aborting it will bring
> >>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is
> >>>>>>>>>>>>>>>>>>>>>> merely part of the TM, then the word "halt"
> >>>>>>>>>>>>>>>>>>>>>> has a different meaning when applied to that
> >>>>>>>>>>>>>>>>>>>>>> simulation part from when applied to the
> >>>>>>>>>>>>>>>>>>>>>> entire TM.  I'm not even sure what you mean
> >>>>>>>>>>>>>>>>>>>>>> when you say a part of a TM has halted or not
> >>>>>>>>>>>>>>>>>>>>>> halted.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I
> >>>>>>>>>>>>>>>>>>>>> never talked about /part/ of a TM halting, and
> >>>>>>>>>>>>>>>>>>>>> like you, I can't work out what that would
> >>>>>>>>>>>>>>>>>>>>> mean!  I used "halt" only with respect to a
> >>>>>>>>>>>>>>>>>>>>> computation, meaning that the computation halts
> >>>>>>>>>>>>>>>>>>>>> [there is an n such that computation step n is
> >>>>>>>>>>>>>>>>>>>>> a TM final state].
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think
> >>>>>>>>>>>>>>>>>>>>> that by your definition of simulation, the
> >>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure" simulator that
> >>>>>>>>>>>>>>>>>>>>> does nothing but simulate computation steps
> >>>>>>>>>>>>>>>>>>>>> until the simulation halts, at which point the
> >>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM).  I get that
> >>>>>>>>>>>>>>>>>>>>> with that interpretation what you said:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just
> >>>>>>>>>>>>>>>>>>>>> one final state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd just
> >>>>>>>>>>>>>>>>>>>>> say I don't think that usage of "simulation" is
> >>>>>>>>>>>>>>>>>>>>> very useful, and is DEFINITELY not what PO is
> >>>>>>>>>>>>>>>>>>>>> talking about (so it would be wrong if applied
> >>>>>>>>>>>>>>>>>>>>> PO's posts...)
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply
> >>>>>>>>>>>>>>>>>>>>> the activity performed by a TM which consists of
> >>>>>>>>>>>>>>>>>>>>> calculating computation steps of some given
> >>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part of the TM
> >>>>>>>>>>>>>>>>>>>>> logic. A TM's typical use of simulation might be
> >>>>>>>>>>>>>>>>>>>>> something like "..the TM simulates the
> >>>>>>>>>>>>>>>>>>>>> computation for n steps, and if the simulation
> >>>>>>>>>>>>>>>>>>>>> halts during those n steps, the TM [blah blah],
> >>>>>>>>>>>>>>>>>>>>> /otherwise/ the TM [blah blah blah]...". Just
> >>>>>>>>>>>>>>>>>>>>> about every reference in the literature I can
> >>>>>>>>>>>>>>>>>>>>> recall is something like that.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is
> >>>>>>>>>>>>>>>>>>>>> just the TM ceasing to calculate >> computation
> >>>>>>>>>>>>>>>>>>>>> steps for some computation, and going on to
> >>>>>>>>>>>>>>>>>>>>> calculate >> something else instead.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of
> >>>>>>>>>>>>>>>>>>>>> P(P), the TM either halts or enters an infinite
> >>>>>>>>>>>>>>>>>>>>> loop.  (That logic is not part of the
> >>>>>>>>>>>>>>>>>>>>> simulation, IMO.)
> >>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
> >>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
> >>>>>>>>>>>>>>>>>>>>> simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
> >>>>>>>>>>>>>>>>>>>>> something else...
> >>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated computation
> >>>>>>>>>>>>>>>>>>>>> halts >> c)  that the simulated computation
> >>>>>>>>>>>>>>>>>>>>> never halts
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples of a
> >>>>>>>>>>>>>>>>>>>>> simulated computation P(I) might halt or never
> >>>>>>>>>>>>>>>>>>>>> halt, and this is unaffected by a simulator's
> >>>>>>>>>>>>>>>>>>>>> decision to simulate no further computation
> >>>>>>>>>>>>>>>>>>>>> steps. [The TM may have spotted some pattern in
> >>>>>>>>>>>>>>>>>>>>> the simulated computation which implies P(I)
> >>>>>>>>>>>>>>>>>>>>> never halts - that is a separate matter, but for
> >>>>>>>>>>>>>>>>>>>>> sure the mere act of "aborting" the simulation
> >>>>>>>>>>>>>>>>>>>>> doesn't imply P(I) never halts, or imply that it
> >>>>>>>>>>>>>>>>>>>>> halts...
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating
> >>>>>>>>>>>>>>>>>>>>> TM steps (aka aborts its simulation), NOTHING
> >>>>>>>>>>>>>>>>>>>>> HALTS: not the simulating TM, not the simulated
> >>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
> >>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a TM
> >>>>>>>>>>>>>>>>>>>>> halting mean?)
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as defining a
> >>>>>>>>>>>>>>>>>>>> sequence (an ordered list). The elements of the
> >>>>>>>>>>>>>>>>>>>> sequence are pairs of a TM state name and a
> >>>>>>>>>>>>>>>>>>>> string representing the "tape" contents when the
> >>>>>>>>>>>>>>>>>>>> state was entered. Note that this view has no
> >>>>>>>>>>>>>>>>>>>> character of animation in it and makes the
> >>>>>>>>>>>>>>>>>>>> definition of the halt predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite
> >>>>>>>>>>>>>>>>>>>> then TRUE else FALSE.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least
> >>>>>>>>>>>>>>>>>>> meant). Your sequence is my computation steps.
> >>>>>>>>>>>>>>>>>>> Formally, these would be defined inductively via
> >>>>>>>>>>>>>>>>>>> the rule to go from step n to step n+1. (Not an
> >>>>>>>>>>>>>>>>>>> animation, but the induction gives some /sense/ of
> >>>>>>>>>>>>>>>>>>> step-by-step calculation, and a simulator will
> >>>>>>>>>>>>>>>>>>> follow this, starting at step 1, then calculate
> >>>>>>>>>>>>>>>>>>> step 2 and so on. Still, I agree the entire
> >>>>>>>>>>>>>>>>>>> sequence [the "computation"] exists as one
> >>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract for PO...)
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> In other words when we make sure to conflate the
> >>>>>>>>>>>>>>>>>> program under test with the test program as a
> >>>>>>>>>>>>>>>>>> single computation then the whole idea of a halt
> >>>>>>>>>>>>>>>>>> decider becomes less coherent and
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that you
> >>>>>>>>>>>>>>>>>> don't already know that H(P,P)==0 is correct and
> >>>>>>>>>>>>>>>>>> the H/P relationship matches the halting problem
> >>>>>>>>>>>>>>>>>> counter example template.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
> >>>>>>>>>>>>>>>>>> (u32)P)); }
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>       For any program H that might
> >>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>>>       program P, called with some input,
> >>>>>>>>>>>>>>>>>> can pass its own source and its input to
> >>>>>>>>>>>>>>>>>>       H and then specifically do the
> >>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>       can exist that handles this case.
> >>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
> >>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties in
> >>>>>>>>>>>>>>>>>>>> the same way that elaborating an infinite sum or
> >>>>>>>>>>>>>>>>>>>> sequence does in math classes. An (ultimate)
> >>>>>>>>>>>>>>>>>>>> value only exists if there is some notation of
> >>>>>>>>>>>>>>>>>>>> convergence or limit which typically is the case
> >>>>>>>>>>>>>>>>>>>> with examples used in a math class. There is no
> >>>>>>>>>>>>>>>>>>>> definition of convergence or limit with the
> >>>>>>>>>>>>>>>>>>>> sequence defined by TM(STRING); rather, we
> >>>>>>>>>>>>>>>>>>>> simply ask about the last pair if the sequence
> >>>>>>>>>>>>>>>>>>>> is finite.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>> The question right now is what you would call a TM
> >>>>>>>>>>>>>>>>>>> which evaluates the first 10 steps of a
> >>>>>>>>>>>>>>>>>>> computation, and then does something else. What
> >>>>>>>>>>>>>>>>>>> is it doing while evaluating those 10 steps?
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating" the
> >>>>>>>>>>>>>>>>>>> computation (just for 10 steps) - then it stops
> >>>>>>>>>>>>>>>>>>> simulating and does something else. Obviously I
> >>>>>>>>>>>>>>>>>>> wouldn't describe it as "correctly" simulating,
> >>>>>>>>>>>>>>>>>>> because nobody considers incorrect simulations, so
> >>>>>>>>>>>>>>>>>>> the word would be redundant!
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> It is required because my reviewers are making
> >>>>>>>>>>>>>>>>>> their best possible effort to form rebuttals and
> >>>>>>>>>>>>>>>>>> the most persistent of the fake rebuttals has been
> >>>>>>>>>>>>>>>>>> that the simulation is incorrect. It is very easy
> >>>>>>>>>>>>>>>>>> to verify the correct x86 emulation on the basis
> >>>>>>>>>>>>>>>>>> of the x86 language.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
> >>>>>>>>>>>>>>>>> simulation needs show the same behavior of the thing
> >>>>>>>>>>>>>>>>> it is simulating.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is
> >>>>>>>>>>>>>>>> trying to claim that it is utterly impossible to
> >>>>>>>>>>>>>>>> create a C program that examines the x86 execution
> >>>>>>>>>>>>>>>> trace derived from simulating the input to
> >>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to correctly
> >>>>>>>>>>>>>>>> determine that Infinite_Loop() infinitely loops.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace
> >>>>>>>>>>>>>>>> Stored at:212343 [00001342][00212333][00212337] 55
> >>>>>>>>>>>>>>>> push ebp [00001343][00212333][00212337] 8bec
> >>>>>>>>>>>>>>>> mov ebp,esp [00001345][00212333][00212337] ebfe
> >>>>>>>>>>>>>>>> jmp 00001345 [00001345][00212333][00212337] ebfe
> >>>>>>>>>>>>>>>> jmp 00001345 Local Halt Decider: Infinite Loop
> >>>>>>>>>>>>>>>> Detected Simulation Stopped
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> But he isn't doing that; the issue is not the infinite
> >>>>>>>>>>>>>>> loop but the logic used to decide to enter the
> >>>>>>>>>>>>>>> infinite loop. Post *full* traces.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Again that isn't the issue; the issue is the logic used
> >>>>>>>>>>>>> to decide when to enter the infinite loop;
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we have
> >>>>>>>>>>>> no idea that a correct x86 emulation of Infinite_Loop
> >>>>>>>>>>>> would reach the instruction at machine address
> >>>>>>>>>>>> [00001345] or not.
> >>>>>>>>>>>>
> >>>>>>>>>>>> It might be the case that a correct x86 emulation of
> >>>>>>>>>>>> Infinite_Loop might instead involve emulating an entirely
> >>>>>>>>>>>> different function that plays tic-tac-toe?
> >>>>>>>>>>>
> >>>>>>>>>>> Detecting an infinite loop is indeed trivial however your
> >>>>>>>>>>> program and trace are not telling the full story as far as
> >>>>>>>>>>> the HP proofs are concerned;
> >>>>>>>>>>
> >>>>>>>>>> The only thing that my program trace conclusively proves is
> >>>>>>>>>> that H(P,P)==0 is the correct return value that does
> >>>>>>>>>> correctly correspond to the actual behavior of the actual
> >>>>>>>>>> input.
> >>>>>>>>>>
> >>>>>>>>>> For any program H that might determine if
> >>>>>>>>>> programs halt, a "pathological"
> >>>>>>>>>> program P, called with some input, can pass its
> >>>>>>>>>> own source and its input to
> >>>>>>>>>> H and then specifically do the opposite of what
> >>>>>>>>>> H predicts P will do. No H
> >>>>>>>>>> can exist that handles this case.
> >>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> void P(u32 x)
> >>>>>>>>>> {
> >>>>>>>>>> if (H(x, x))
> >>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>> return;
> >>>>>>>>>> }
> >>>>>>>>>>
> >>>>>>>>>> int main()
> >>>>>>>>>> {
> >>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
> >>>>>>>>>> }
> >>>>>>>>>>
> >>>>>>>>>> _P()
> >>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>>>>>> [00001358](01) 50 push eax // push P
> >>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
> >>>>>>>>>> [0000135c](01) 51 push ecx // push P
> >>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
> >>>>>>>>>> [00001362](03) 83c408 add esp,+08
> >>>>>>>>>> [00001365](02) 85c0 test eax,eax
> >>>>>>>>>> [00001367](02) 7402 jz 0000136b
> >>>>>>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>>>>>> [0000136b](01) 5d pop ebp
> >>>>>>>>>> [0000136c](01) c3 ret
> >>>>>>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>>>>>
> >>>>>>>>>> It is completely obvious that when H(P,P) correctly
> >>>>>>>>>> emulates its input that it must emulate the first seven
> >>>>>>>>>> instructions of P. Because the seventh instruction of P
> >>>>>>>>>> repeats this process we can know with complete certainty
> >>>>>>>>>> that the emulated P never reaches its final “ret”
> >>>>>>>>>> instruction, thus never halts.
> >>>>>>>>>
> >>>>>>>>> But the halting problem proofs (including [Strachey 1965])
> >>>>>>>>> that you are trying to refute don't do that, they DO NOT
> >>>>>>>>> make any recursive calls
> >>>>>>>>
> >>>>>>>> Because the idea of a simulating halt decider being applied
> >>>>>>>> to the halting problem counter-example is brand new with me
> >>>>>>>> you won't find other references that refer to "infinitely
> >>>>>>>> nested simulation".
> >>>>>>>>> which is what you are doing with "call H" above. Why are you
> >>>>>>>>> doing something different to what the proofs you are trying
> >>>>>>>>> to refute do given doing so is no longer related to the
> >>>>>>>>> Halting Problem?
> >>>>>>>>>
> >>>>>>>>> /Flibble
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> The proofs never bothered to examine my idea because it was
> >>>>>>>> unknown by everyone prior to me creating it in 2016.
> >>>>>>>
> >>>>>>> It seems to me that your idea would only be novel because it
> >>>>>>> is a mistake. Your mistake is to have the candidate program
> >>>>>>> call into the SAME INSTANCE of the decider which is deciding
> >>>>>>> the candidate program.
> >>>>>>
> >>>>>> Where the Hell did you ever get this idea from ?
> >>>>>> Whenever H simulates its input it creates a whole new process
> >>>>>> context.
> >>>>>
> >>>>> You cannot make a direct function call into another process; it
> >>>>> has to be the same process.
> >>>>
> >>>> As I have said very many hundreds of times I created the x86utm
> >>>> operating system that enables any C function to execute another C
> >>>> function using an x86 emulator.
> >>>>
> >>>> In the case of H(P,P) H creates a separate process context to
> >>>> simulate its input every time that it is invoked, thus subsequent
> >>>> invocations of H(P,P) execute in the process context that was
> >>>> previously created.
> >>>>
> >>>>> As far as getting ideas as to what you are
> >>>>> actually doing: publish all your source so we can see for
> >>>>> ourselves so we don't have to guess.
> >>>>>
> >>>>> /Flibble
> >>>>>
> >>>>
> >>>>
> >>>> That would be 100,000-fold more complex then simply paying
> >>>> complete attention to what I am saying. Everyone that is not
> >>>> bright enough to understand 14 lines of code keeps saying that
> >>>> they could easily understand 250 pages of code, even though the
> >>>> 14 lines proves to be too much for them.
> >>>
> >>> Your code:
> >>>
> >>> call 000011a2 // call H
> >>>
> >>> is simply a function call into the address space of the current
> >>> process, it doesn't look like code to spawn a new process to me.
> >>
> >> How many times do I have to say this before you notice that I said
> >> it at least once? H (in the current process) always creates a new
> >> process context to emulate its its input with an x86 emulator.
> >
> > I will have to take your word for it as you refuse to publish source
> > code. Why not just stick your project on GitHub? Open source is de
> > rigueur these days. What are you trying to hide?
> >
> > If a new process context is made then how is nested simulation
> > detected? I assume the data segment of each process is private...
> >
> > /Flibble
> >
>
> An honest dialogue requires points of mutual agreement. The price of
> moving beyond H(P,P)==0 is universal agreement that H(P,P)==0 is
> correct. The next point beyond H(P,P)==0 is computer science thus not
> appropriate for the C/C++ forum.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21874&group=comp.lang.c#21874

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 16:28:22 -0500
Date: Tue, 7 Jun 2022 16:28:21 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<t7j8vh$2i1$1@dont-email.me> <t7jg0k$1qko$1@gioia.aioe.org>
<SfSdnQ0vIqRj1AD_nZ2dnUU7_83NnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220607222206.00002234@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
Lines: 538
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-wYSz5pYWhDfqasrQe15lf0yE9klpsIgH+fjhrdsUE23qYmyrFLy+BFC7uHIuhuvdqzh/4NIm0z1rf8d!g9PKcZHbFSKBrIhH+lYDHCqZgEnN5hPGU1iYMkgVqERotsfkhpUfhtjLg87r4x173c4tRVv0hJbp
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 29932
 by: olcott - Tue, 7 Jun 2022 21:28 UTC

On 6/7/2022 4:22 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 16:01:53 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 15:34:13 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a configuration for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which δ is not defined; this is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a partial
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will assume that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> no transitions are defined for any
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state so the Turing machine will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it enters a final state.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this means reaching the "ret"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not "ret". Instead, "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that means
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> stack is empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that is not specifiec by the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz' definition
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is much better.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> saying the same thing.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
>>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.
>>>>>>>>>>>>>>>>>>>>>>>>>> It either runs and halts,
>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final
>>>>>>>>>>>>>>>>>>>>>>>>>> state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM
>>>>>>>>>>>>>>>>>>>>>>>>> ceasing to calculate computation steps for
>>>>>>>>>>>>>>>>>>>>>>>>> some computation, and going on to calculate
>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.  It does not mean: a)
>>>>>>>>>>>>>>>>>>>>>>>>> that the TM (doing the simulation) has
>>>>>>>>>>>>>>>>>>>>>>>>> halted b)  that the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>> halts c)  that the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>> never halts
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about
>>>>>>>>>>>>>>>>>>>>>>>> nice shades of words than
>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing machine,
>>>>>>>>>>>>>>>>>>>>>>>> aborting it will bring
>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation is
>>>>>>>>>>>>>>>>>>>>>>>> merely part of the TM, then the word "halt"
>>>>>>>>>>>>>>>>>>>>>>>> has a different meaning when applied to that
>>>>>>>>>>>>>>>>>>>>>>>> simulation part from when applied to the
>>>>>>>>>>>>>>>>>>>>>>>> entire TM.  I'm not even sure what you mean
>>>>>>>>>>>>>>>>>>>>>>>> when you say a part of a TM has halted or not
>>>>>>>>>>>>>>>>>>>>>>>> halted.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I
>>>>>>>>>>>>>>>>>>>>>>> never talked about /part/ of a TM halting, and
>>>>>>>>>>>>>>>>>>>>>>> like you, I can't work out what that would
>>>>>>>>>>>>>>>>>>>>>>> mean!  I used "halt" only with respect to a
>>>>>>>>>>>>>>>>>>>>>>> computation, meaning that the computation halts
>>>>>>>>>>>>>>>>>>>>>>> [there is an n such that computation step n is
>>>>>>>>>>>>>>>>>>>>>>> a TM final state].
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think
>>>>>>>>>>>>>>>>>>>>>>> that by your definition of simulation, the
>>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure" simulator that
>>>>>>>>>>>>>>>>>>>>>>> does nothing but simulate computation steps
>>>>>>>>>>>>>>>>>>>>>>> until the simulation halts, at which point the
>>>>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM).  I get that
>>>>>>>>>>>>>>>>>>>>>>> with that interpretation what you said:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just
>>>>>>>>>>>>>>>>>>>>>>> one final state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd just
>>>>>>>>>>>>>>>>>>>>>>> say I don't think that usage of "simulation" is
>>>>>>>>>>>>>>>>>>>>>>> very useful, and is DEFINITELY not what PO is
>>>>>>>>>>>>>>>>>>>>>>> talking about (so it would be wrong if applied
>>>>>>>>>>>>>>>>>>>>>>> PO's posts...)
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply
>>>>>>>>>>>>>>>>>>>>>>> the activity performed by a TM which consists of
>>>>>>>>>>>>>>>>>>>>>>> calculating computation steps of some given
>>>>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part of the TM
>>>>>>>>>>>>>>>>>>>>>>> logic. A TM's typical use of simulation might be
>>>>>>>>>>>>>>>>>>>>>>> something like "..the TM simulates the
>>>>>>>>>>>>>>>>>>>>>>> computation for n steps, and if the simulation
>>>>>>>>>>>>>>>>>>>>>>> halts during those n steps, the TM [blah blah],
>>>>>>>>>>>>>>>>>>>>>>> /otherwise/ the TM [blah blah blah]...". Just
>>>>>>>>>>>>>>>>>>>>>>> about every reference in the literature I can
>>>>>>>>>>>>>>>>>>>>>>> recall is something like that.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is
>>>>>>>>>>>>>>>>>>>>>>> just the TM ceasing to calculate >> computation
>>>>>>>>>>>>>>>>>>>>>>> steps for some computation, and going on to
>>>>>>>>>>>>>>>>>>>>>>> calculate >> something else instead.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation of
>>>>>>>>>>>>>>>>>>>>>>> P(P), the TM either halts or enters an infinite
>>>>>>>>>>>>>>>>>>>>>>> loop.  (That logic is not part of the
>>>>>>>>>>>>>>>>>>>>>>> simulation, IMO.)
>>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
>>>>>>>>>>>>>>>>>>>>>>> something else...
>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated computation
>>>>>>>>>>>>>>>>>>>>>>> halts >> c)  that the simulated computation
>>>>>>>>>>>>>>>>>>>>>>> never halts
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples of a
>>>>>>>>>>>>>>>>>>>>>>> simulated computation P(I) might halt or never
>>>>>>>>>>>>>>>>>>>>>>> halt, and this is unaffected by a simulator's
>>>>>>>>>>>>>>>>>>>>>>> decision to simulate no further computation
>>>>>>>>>>>>>>>>>>>>>>> steps. [The TM may have spotted some pattern in
>>>>>>>>>>>>>>>>>>>>>>> the simulated computation which implies P(I)
>>>>>>>>>>>>>>>>>>>>>>> never halts - that is a separate matter, but for
>>>>>>>>>>>>>>>>>>>>>>> sure the mere act of "aborting" the simulation
>>>>>>>>>>>>>>>>>>>>>>> doesn't imply P(I) never halts, or imply that it
>>>>>>>>>>>>>>>>>>>>>>> halts...
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops calculating
>>>>>>>>>>>>>>>>>>>>>>> TM steps (aka aborts its simulation), NOTHING
>>>>>>>>>>>>>>>>>>>>>>> HALTS: not the simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
>>>>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a TM
>>>>>>>>>>>>>>>>>>>>>>> halting mean?)
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as defining a
>>>>>>>>>>>>>>>>>>>>>> sequence (an ordered list). The elements of the
>>>>>>>>>>>>>>>>>>>>>> sequence are pairs of a TM state name and a
>>>>>>>>>>>>>>>>>>>>>> string representing the "tape" contents when the
>>>>>>>>>>>>>>>>>>>>>> state was entered. Note that this view has no
>>>>>>>>>>>>>>>>>>>>>> character of animation in it and makes the
>>>>>>>>>>>>>>>>>>>>>> definition of the halt predicate (H) trivial:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is finite
>>>>>>>>>>>>>>>>>>>>>> then TRUE else FALSE.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at least
>>>>>>>>>>>>>>>>>>>>> meant). Your sequence is my computation steps.
>>>>>>>>>>>>>>>>>>>>> Formally, these would be defined inductively via
>>>>>>>>>>>>>>>>>>>>> the rule to go from step n to step n+1. (Not an
>>>>>>>>>>>>>>>>>>>>> animation, but the induction gives some /sense/ of
>>>>>>>>>>>>>>>>>>>>> step-by-step calculation, and a simulator will
>>>>>>>>>>>>>>>>>>>>> follow this, starting at step 1, then calculate
>>>>>>>>>>>>>>>>>>>>> step 2 and so on. Still, I agree the entire
>>>>>>>>>>>>>>>>>>>>> sequence [the "computation"] exists as one
>>>>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract for PO...)
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate the
>>>>>>>>>>>>>>>>>>>> program under test with the test program as a
>>>>>>>>>>>>>>>>>>>> single computation then the whole idea of a halt
>>>>>>>>>>>>>>>>>>>> decider becomes less coherent and
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that you
>>>>>>>>>>>>>>>>>>>> don't already know that H(P,P)==0 is correct and
>>>>>>>>>>>>>>>>>>>> the H/P relationship matches the halting problem
>>>>>>>>>>>>>>>>>>>> counter example template.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
>>>>>>>>>>>>>>>>>>>> (u32)P)); }
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>       For any program H that might
>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>>>       program P, called with some input,
>>>>>>>>>>>>>>>>>>>> can pass its own source and its input to
>>>>>>>>>>>>>>>>>>>>       H and then specifically do the
>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>>       can exist that handles this case.
>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
>>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties in
>>>>>>>>>>>>>>>>>>>>>> the same way that elaborating an infinite sum or
>>>>>>>>>>>>>>>>>>>>>> sequence does in math classes. An (ultimate)
>>>>>>>>>>>>>>>>>>>>>> value only exists if there is some notation of
>>>>>>>>>>>>>>>>>>>>>> convergence or limit which typically is the case
>>>>>>>>>>>>>>>>>>>>>> with examples used in a math class. There is no
>>>>>>>>>>>>>>>>>>>>>> definition of convergence or limit with the
>>>>>>>>>>>>>>>>>>>>>> sequence defined by TM(STRING); rather, we
>>>>>>>>>>>>>>>>>>>>>> simply ask about the last pair if the sequence
>>>>>>>>>>>>>>>>>>>>>> is finite.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>>>> The question right now is what you would call a TM
>>>>>>>>>>>>>>>>>>>>> which evaluates the first 10 steps of a
>>>>>>>>>>>>>>>>>>>>> computation, and then does something else. What
>>>>>>>>>>>>>>>>>>>>> is it doing while evaluating those 10 steps?
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating" the
>>>>>>>>>>>>>>>>>>>>> computation (just for 10 steps) - then it stops
>>>>>>>>>>>>>>>>>>>>> simulating and does something else. Obviously I
>>>>>>>>>>>>>>>>>>>>> wouldn't describe it as "correctly" simulating,
>>>>>>>>>>>>>>>>>>>>> because nobody considers incorrect simulations, so
>>>>>>>>>>>>>>>>>>>>> the word would be redundant!
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are making
>>>>>>>>>>>>>>>>>>>> their best possible effort to form rebuttals and
>>>>>>>>>>>>>>>>>>>> the most persistent of the fake rebuttals has been
>>>>>>>>>>>>>>>>>>>> that the simulation is incorrect. It is very easy
>>>>>>>>>>>>>>>>>>>> to verify the correct x86 emulation on the basis
>>>>>>>>>>>>>>>>>>>> of the x86 language.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
>>>>>>>>>>>>>>>>>>> simulation needs show the same behavior of the thing
>>>>>>>>>>>>>>>>>>> it is simulating.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is
>>>>>>>>>>>>>>>>>> trying to claim that it is utterly impossible to
>>>>>>>>>>>>>>>>>> create a C program that examines the x86 execution
>>>>>>>>>>>>>>>>>> trace derived from simulating the input to
>>>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to correctly
>>>>>>>>>>>>>>>>>> determine that Infinite_Loop() infinitely loops.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution Trace
>>>>>>>>>>>>>>>>>> Stored at:212343 [00001342][00212333][00212337] 55
>>>>>>>>>>>>>>>>>> push ebp [00001343][00212333][00212337] 8bec
>>>>>>>>>>>>>>>>>> mov ebp,esp [00001345][00212333][00212337] ebfe
>>>>>>>>>>>>>>>>>> jmp 00001345 [00001345][00212333][00212337] ebfe
>>>>>>>>>>>>>>>>>> jmp 00001345 Local Halt Decider: Infinite Loop
>>>>>>>>>>>>>>>>>> Detected Simulation Stopped
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the infinite
>>>>>>>>>>>>>>>>> loop but the logic used to decide to enter the
>>>>>>>>>>>>>>>>> infinite loop. Post *full* traces.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic used
>>>>>>>>>>>>>>> to decide when to enter the infinite loop;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we have
>>>>>>>>>>>>>> no idea that a correct x86 emulation of Infinite_Loop
>>>>>>>>>>>>>> would reach the instruction at machine address
>>>>>>>>>>>>>> [00001345] or not.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> It might be the case that a correct x86 emulation of
>>>>>>>>>>>>>> Infinite_Loop might instead involve emulating an entirely
>>>>>>>>>>>>>> different function that plays tic-tac-toe?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however your
>>>>>>>>>>>>> program and trace are not telling the full story as far as
>>>>>>>>>>>>> the HP proofs are concerned;
>>>>>>>>>>>>
>>>>>>>>>>>> The only thing that my program trace conclusively proves is
>>>>>>>>>>>> that H(P,P)==0 is the correct return value that does
>>>>>>>>>>>> correctly correspond to the actual behavior of the actual
>>>>>>>>>>>> input.
>>>>>>>>>>>>
>>>>>>>>>>>> For any program H that might determine if
>>>>>>>>>>>> programs halt, a "pathological"
>>>>>>>>>>>> program P, called with some input, can pass its
>>>>>>>>>>>> own source and its input to
>>>>>>>>>>>> H and then specifically do the opposite of what
>>>>>>>>>>>> H predicts P will do. No H
>>>>>>>>>>>> can exist that handles this case.
>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>> {
>>>>>>>>>>>> if (H(x, x))
>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>> return;
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> int main()
>>>>>>>>>>>> {
>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> _P()
>>>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>>>>>> [00001358](01) 50 push eax // push P
>>>>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
>>>>>>>>>>>> [0000135c](01) 51 push ecx // push P
>>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
>>>>>>>>>>>> [00001362](03) 83c408 add esp,+08
>>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
>>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>>>>>>>> [0000136b](01) 5d pop ebp
>>>>>>>>>>>> [0000136c](01) c3 ret
>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>>>>>
>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
>>>>>>>>>>>> emulates its input that it must emulate the first seven
>>>>>>>>>>>> instructions of P. Because the seventh instruction of P
>>>>>>>>>>>> repeats this process we can know with complete certainty
>>>>>>>>>>>> that the emulated P never reaches its final “ret”
>>>>>>>>>>>> instruction, thus never halts.
>>>>>>>>>>>
>>>>>>>>>>> But the halting problem proofs (including [Strachey 1965])
>>>>>>>>>>> that you are trying to refute don't do that, they DO NOT
>>>>>>>>>>> make any recursive calls
>>>>>>>>>>
>>>>>>>>>> Because the idea of a simulating halt decider being applied
>>>>>>>>>> to the halting problem counter-example is brand new with me
>>>>>>>>>> you won't find other references that refer to "infinitely
>>>>>>>>>> nested simulation".
>>>>>>>>>>> which is what you are doing with "call H" above. Why are you
>>>>>>>>>>> doing something different to what the proofs you are trying
>>>>>>>>>>> to refute do given doing so is no longer related to the
>>>>>>>>>>> Halting Problem?
>>>>>>>>>>>
>>>>>>>>>>> /Flibble
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> The proofs never bothered to examine my idea because it was
>>>>>>>>>> unknown by everyone prior to me creating it in 2016.
>>>>>>>>>
>>>>>>>>> It seems to me that your idea would only be novel because it
>>>>>>>>> is a mistake. Your mistake is to have the candidate program
>>>>>>>>> call into the SAME INSTANCE of the decider which is deciding
>>>>>>>>> the candidate program.
>>>>>>>>
>>>>>>>> Where the Hell did you ever get this idea from ?
>>>>>>>> Whenever H simulates its input it creates a whole new process
>>>>>>>> context.
>>>>>>>
>>>>>>> You cannot make a direct function call into another process; it
>>>>>>> has to be the same process.
>>>>>>
>>>>>> As I have said very many hundreds of times I created the x86utm
>>>>>> operating system that enables any C function to execute another C
>>>>>> function using an x86 emulator.
>>>>>>
>>>>>> In the case of H(P,P) H creates a separate process context to
>>>>>> simulate its input every time that it is invoked, thus subsequent
>>>>>> invocations of H(P,P) execute in the process context that was
>>>>>> previously created.
>>>>>>
>>>>>>> As far as getting ideas as to what you are
>>>>>>> actually doing: publish all your source so we can see for
>>>>>>> ourselves so we don't have to guess.
>>>>>>>
>>>>>>> /Flibble
>>>>>>>
>>>>>>
>>>>>>
>>>>>> That would be 100,000-fold more complex then simply paying
>>>>>> complete attention to what I am saying. Everyone that is not
>>>>>> bright enough to understand 14 lines of code keeps saying that
>>>>>> they could easily understand 250 pages of code, even though the
>>>>>> 14 lines proves to be too much for them.
>>>>>
>>>>> Your code:
>>>>>
>>>>> call 000011a2 // call H
>>>>>
>>>>> is simply a function call into the address space of the current
>>>>> process, it doesn't look like code to spawn a new process to me.
>>>>
>>>> How many times do I have to say this before you notice that I said
>>>> it at least once? H (in the current process) always creates a new
>>>> process context to emulate its its input with an x86 emulator.
>>>
>>> I will have to take your word for it as you refuse to publish source
>>> code. Why not just stick your project on GitHub? Open source is de
>>> rigueur these days. What are you trying to hide?
>>>
>>> If a new process context is made then how is nested simulation
>>> detected? I assume the data segment of each process is private...
>>>
>>> /Flibble
>>>
>>
>> An honest dialogue requires points of mutual agreement. The price of
>> moving beyond H(P,P)==0 is universal agreement that H(P,P)==0 is
>> correct. The next point beyond H(P,P)==0 is computer science thus not
>> appropriate for the C/C++ forum.
>
> I agree that H(P,P)==0 for pathological input assuming your method for
> detecting pathological input is sufficiently robust however how is that
> distinguished from H(P1,P1)==0 where P1 is normal non-halting (i.e.
> non-pathological)?


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220607230822.00004da6@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21875&group=comp.lang.c#21875

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!feeder1.feed.usenet.farm!feed.usenet.farm!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220607230822.00004da6@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 543
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 22:08:22 UTC
Date: Tue, 7 Jun 2022 23:08:22 +0100
X-Received-Bytes: 30680
 by: Mr Flibble - Tue, 7 Jun 2022 22:08 UTC

On Tue, 7 Jun 2022 16:28:21 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 4:22 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 16:01:53 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 15:34:13 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a configuration
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for which δ is not defined; this is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a partial
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will assume that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> no transitions are defined for any
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state so the Turing machine will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it enters a final state.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this means reaching the "ret"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not "ret". Instead, "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> stack is empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that is not specifiec by the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> of saying the same thing.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.
> >>>>>>>>>>>>>>>>>>>>>>>>>> It either runs and halts,
> >>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final
> >>>>>>>>>>>>>>>>>>>>>>>>>> state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM
> >>>>>>>>>>>>>>>>>>>>>>>>> ceasing to calculate computation steps for
> >>>>>>>>>>>>>>>>>>>>>>>>> some computation, and going on to calculate
> >>>>>>>>>>>>>>>>>>>>>>>>> something else instead.  It does not mean:
> >>>>>>>>>>>>>>>>>>>>>>>>> a) that the TM (doing the simulation) has
> >>>>>>>>>>>>>>>>>>>>>>>>> halted b)  that the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>> halts c)  that the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>> never halts
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about
> >>>>>>>>>>>>>>>>>>>>>>>> nice shades of words than
> >>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
> >>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
> >>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation
> >>>>>>>>>>>>>>>>>>>>>>>> is merely part of the TM, then the word
> >>>>>>>>>>>>>>>>>>>>>>>> "halt" has a different meaning when applied
> >>>>>>>>>>>>>>>>>>>>>>>> to that simulation part from when applied to
> >>>>>>>>>>>>>>>>>>>>>>>> the entire TM.  I'm not even sure what you
> >>>>>>>>>>>>>>>>>>>>>>>> mean when you say a part of a TM has halted
> >>>>>>>>>>>>>>>>>>>>>>>> or not halted.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I
> >>>>>>>>>>>>>>>>>>>>>>> never talked about /part/ of a TM halting, and
> >>>>>>>>>>>>>>>>>>>>>>> like you, I can't work out what that would
> >>>>>>>>>>>>>>>>>>>>>>> mean!  I used "halt" only with respect to a
> >>>>>>>>>>>>>>>>>>>>>>> computation, meaning that the computation
> >>>>>>>>>>>>>>>>>>>>>>> halts [there is an n such that computation
> >>>>>>>>>>>>>>>>>>>>>>> step n is a TM final state].
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think
> >>>>>>>>>>>>>>>>>>>>>>> that by your definition of simulation, the
> >>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure" simulator that
> >>>>>>>>>>>>>>>>>>>>>>> does nothing but simulate computation steps
> >>>>>>>>>>>>>>>>>>>>>>> until the simulation halts, at which point the
> >>>>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM).  I get that
> >>>>>>>>>>>>>>>>>>>>>>> with that interpretation what you said:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just
> >>>>>>>>>>>>>>>>>>>>>>> one final state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd
> >>>>>>>>>>>>>>>>>>>>>>> just say I don't think that usage of
> >>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
> >>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about (so
> >>>>>>>>>>>>>>>>>>>>>>> it would be wrong if applied PO's posts...)
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply
> >>>>>>>>>>>>>>>>>>>>>>> the activity performed by a TM which consists
> >>>>>>>>>>>>>>>>>>>>>>> of calculating computation steps of some given
> >>>>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part of the
> >>>>>>>>>>>>>>>>>>>>>>> TM logic. A TM's typical use of simulation
> >>>>>>>>>>>>>>>>>>>>>>> might be something like "..the TM simulates
> >>>>>>>>>>>>>>>>>>>>>>> the computation for n steps, and if the
> >>>>>>>>>>>>>>>>>>>>>>> simulation halts during those n steps, the TM
> >>>>>>>>>>>>>>>>>>>>>>> [blah blah], /otherwise/ the TM [blah blah
> >>>>>>>>>>>>>>>>>>>>>>> blah]...". Just about every reference in the
> >>>>>>>>>>>>>>>>>>>>>>> literature I can recall is something like
> >>>>>>>>>>>>>>>>>>>>>>> that.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is
> >>>>>>>>>>>>>>>>>>>>>>> just the TM ceasing to calculate >>
> >>>>>>>>>>>>>>>>>>>>>>> computation steps for some computation, and
> >>>>>>>>>>>>>>>>>>>>>>> going on to calculate >> something else
> >>>>>>>>>>>>>>>>>>>>>>> instead.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation
> >>>>>>>>>>>>>>>>>>>>>>> of P(P), the TM either halts or enters an
> >>>>>>>>>>>>>>>>>>>>>>> infinite loop.  (That logic is not part of the
> >>>>>>>>>>>>>>>>>>>>>>> simulation, IMO.)
> >>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
> >>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
> >>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
> >>>>>>>>>>>>>>>>>>>>>>> something else...
> >>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
> >>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the simulated
> >>>>>>>>>>>>>>>>>>>>>>> computation never halts
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples of
> >>>>>>>>>>>>>>>>>>>>>>> a simulated computation P(I) might halt or
> >>>>>>>>>>>>>>>>>>>>>>> never halt, and this is unaffected by a
> >>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no further
> >>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have spotted
> >>>>>>>>>>>>>>>>>>>>>>> some pattern in the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>> which implies P(I) never halts - that is a
> >>>>>>>>>>>>>>>>>>>>>>> separate matter, but for sure the mere act of
> >>>>>>>>>>>>>>>>>>>>>>> "aborting" the simulation doesn't imply P(I)
> >>>>>>>>>>>>>>>>>>>>>>> never halts, or imply that it halts...
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
> >>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
> >>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
> >>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated computation,
> >>>>>>>>>>>>>>>>>>>>>>> and NOT ANY PART OF EITHER OF THOSE. (Like
> >>>>>>>>>>>>>>>>>>>>>>> you say, what would part of a TM halting
> >>>>>>>>>>>>>>>>>>>>>>> mean?)
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
> >>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
> >>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
> >>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
> >>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
> >>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
> >>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
> >>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
> >>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
> >>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my computation
> >>>>>>>>>>>>>>>>>>>>> steps. Formally, these would be defined
> >>>>>>>>>>>>>>>>>>>>> inductively via the rule to go from step n to
> >>>>>>>>>>>>>>>>>>>>> step n+1. (Not an animation, but the induction
> >>>>>>>>>>>>>>>>>>>>> gives some /sense/ of step-by-step calculation,
> >>>>>>>>>>>>>>>>>>>>> and a simulator will follow this, starting at
> >>>>>>>>>>>>>>>>>>>>> step 1, then calculate step 2 and so on. Still,
> >>>>>>>>>>>>>>>>>>>>> I agree the entire sequence [the "computation"]
> >>>>>>>>>>>>>>>>>>>>> exists as one timeless structure.  Too abstract
> >>>>>>>>>>>>>>>>>>>>> for PO...)
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate the
> >>>>>>>>>>>>>>>>>>>> program under test with the test program as a
> >>>>>>>>>>>>>>>>>>>> single computation then the whole idea of a halt
> >>>>>>>>>>>>>>>>>>>> decider becomes less coherent and
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that you
> >>>>>>>>>>>>>>>>>>>> don't already know that H(P,P)==0 is correct and
> >>>>>>>>>>>>>>>>>>>> the H/P relationship matches the halting problem
> >>>>>>>>>>>>>>>>>>>> counter example template.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
> >>>>>>>>>>>>>>>>>>>> (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>       For any program H that might
> >>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>>>>>       program P, called with some input,
> >>>>>>>>>>>>>>>>>>>> can pass its own source and its input to
> >>>>>>>>>>>>>>>>>>>>       H and then specifically do the
> >>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>>>       can exist that handles this case.
> >>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
> >>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties in
> >>>>>>>>>>>>>>>>>>>>>> the same way that elaborating an infinite sum
> >>>>>>>>>>>>>>>>>>>>>> or sequence does in math classes. An (ultimate)
> >>>>>>>>>>>>>>>>>>>>>> value only exists if there is some notation of
> >>>>>>>>>>>>>>>>>>>>>> convergence or limit which typically is the
> >>>>>>>>>>>>>>>>>>>>>> case with examples used in a math class. There
> >>>>>>>>>>>>>>>>>>>>>> is no definition of convergence or limit with
> >>>>>>>>>>>>>>>>>>>>>> the sequence defined by TM(STRING); rather, we
> >>>>>>>>>>>>>>>>>>>>>> simply ask about the last pair if the sequence
> >>>>>>>>>>>>>>>>>>>>>> is finite.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>>>> The question right now is what you would call a
> >>>>>>>>>>>>>>>>>>>>> TM which evaluates the first 10 steps of a
> >>>>>>>>>>>>>>>>>>>>> computation, and then does something else. What
> >>>>>>>>>>>>>>>>>>>>> is it doing while evaluating those 10 steps?
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating"
> >>>>>>>>>>>>>>>>>>>>> the computation (just for 10 steps) - then it
> >>>>>>>>>>>>>>>>>>>>> stops simulating and does something else.
> >>>>>>>>>>>>>>>>>>>>> Obviously I wouldn't describe it as "correctly"
> >>>>>>>>>>>>>>>>>>>>> simulating, because nobody considers incorrect
> >>>>>>>>>>>>>>>>>>>>> simulations, so the word would be redundant!
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> It is required because my reviewers are making
> >>>>>>>>>>>>>>>>>>>> their best possible effort to form rebuttals and
> >>>>>>>>>>>>>>>>>>>> the most persistent of the fake rebuttals has
> >>>>>>>>>>>>>>>>>>>> been that the simulation is incorrect. It is
> >>>>>>>>>>>>>>>>>>>> very easy to verify the correct x86 emulation on
> >>>>>>>>>>>>>>>>>>>> the basis of the x86 language.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
> >>>>>>>>>>>>>>>>>>> simulation needs show the same behavior of the
> >>>>>>>>>>>>>>>>>>> thing it is simulating.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is
> >>>>>>>>>>>>>>>>>> trying to claim that it is utterly impossible to
> >>>>>>>>>>>>>>>>>> create a C program that examines the x86 execution
> >>>>>>>>>>>>>>>>>> trace derived from simulating the input to
> >>>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to correctly
> >>>>>>>>>>>>>>>>>> determine that Infinite_Loop() infinitely loops.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
> >>>>>>>>>>>>>>>>>> Trace Stored at:212343
> >>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
> >>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>> Local Halt Decider: Infinite Loop Detected
> >>>>>>>>>>>>>>>>>> Simulation Stopped
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
> >>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to enter
> >>>>>>>>>>>>>>>>> the infinite loop. Post *full* traces.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
> >>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
> >>>>>>>>>>>>>> have no idea that a correct x86 emulation of
> >>>>>>>>>>>>>> Infinite_Loop would reach the instruction at machine
> >>>>>>>>>>>>>> address [00001345] or not.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> It might be the case that a correct x86 emulation of
> >>>>>>>>>>>>>> Infinite_Loop might instead involve emulating an
> >>>>>>>>>>>>>> entirely different function that plays tic-tac-toe?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
> >>>>>>>>>>>>> your program and trace are not telling the full story
> >>>>>>>>>>>>> as far as the HP proofs are concerned;
> >>>>>>>>>>>>
> >>>>>>>>>>>> The only thing that my program trace conclusively proves
> >>>>>>>>>>>> is that H(P,P)==0 is the correct return value that does
> >>>>>>>>>>>> correctly correspond to the actual behavior of the actual
> >>>>>>>>>>>> input.
> >>>>>>>>>>>>
> >>>>>>>>>>>> For any program H that might determine if
> >>>>>>>>>>>> programs halt, a "pathological"
> >>>>>>>>>>>> program P, called with some input, can pass
> >>>>>>>>>>>> its own source and its input to
> >>>>>>>>>>>> H and then specifically do the opposite of
> >>>>>>>>>>>> what H predicts P will do. No H
> >>>>>>>>>>>> can exist that handles this case.
> >>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>> {
> >>>>>>>>>>>> if (H(x, x))
> >>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>> return;
> >>>>>>>>>>>> }
> >>>>>>>>>>>>
> >>>>>>>>>>>> int main()
> >>>>>>>>>>>> {
> >>>>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
> >>>>>>>>>>>> }
> >>>>>>>>>>>>
> >>>>>>>>>>>> _P()
> >>>>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>>>>>>>> [00001358](01) 50 push eax // push P
> >>>>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
> >>>>>>>>>>>> [0000135c](01) 51 push ecx // push P
> >>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
> >>>>>>>>>>>> [00001362](03) 83c408 add esp,+08
> >>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
> >>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
> >>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>>>>>>>> [0000136b](01) 5d pop ebp
> >>>>>>>>>>>> [0000136c](01) c3 ret
> >>>>>>>>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>>>>>>>
> >>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
> >>>>>>>>>>>> emulates its input that it must emulate the first seven
> >>>>>>>>>>>> instructions of P. Because the seventh instruction of P
> >>>>>>>>>>>> repeats this process we can know with complete certainty
> >>>>>>>>>>>> that the emulated P never reaches its final “ret”
> >>>>>>>>>>>> instruction, thus never halts.
> >>>>>>>>>>>
> >>>>>>>>>>> But the halting problem proofs (including [Strachey 1965])
> >>>>>>>>>>> that you are trying to refute don't do that, they DO NOT
> >>>>>>>>>>> make any recursive calls
> >>>>>>>>>>
> >>>>>>>>>> Because the idea of a simulating halt decider being applied
> >>>>>>>>>> to the halting problem counter-example is brand new with me
> >>>>>>>>>> you won't find other references that refer to "infinitely
> >>>>>>>>>> nested simulation".
> >>>>>>>>>>> which is what you are doing with "call H" above. Why are
> >>>>>>>>>>> you doing something different to what the proofs you are
> >>>>>>>>>>> trying to refute do given doing so is no longer related
> >>>>>>>>>>> to the Halting Problem?
> >>>>>>>>>>>
> >>>>>>>>>>> /Flibble
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> The proofs never bothered to examine my idea because it was
> >>>>>>>>>> unknown by everyone prior to me creating it in 2016.
> >>>>>>>>>
> >>>>>>>>> It seems to me that your idea would only be novel because it
> >>>>>>>>> is a mistake. Your mistake is to have the candidate program
> >>>>>>>>> call into the SAME INSTANCE of the decider which is deciding
> >>>>>>>>> the candidate program.
> >>>>>>>>
> >>>>>>>> Where the Hell did you ever get this idea from ?
> >>>>>>>> Whenever H simulates its input it creates a whole new process
> >>>>>>>> context.
> >>>>>>>
> >>>>>>> You cannot make a direct function call into another process;
> >>>>>>> it has to be the same process.
> >>>>>>
> >>>>>> As I have said very many hundreds of times I created the x86utm
> >>>>>> operating system that enables any C function to execute
> >>>>>> another C function using an x86 emulator.
> >>>>>>
> >>>>>> In the case of H(P,P) H creates a separate process context to
> >>>>>> simulate its input every time that it is invoked, thus
> >>>>>> subsequent invocations of H(P,P) execute in the process
> >>>>>> context that was previously created.
> >>>>>>
> >>>>>>> As far as getting ideas as to what you are
> >>>>>>> actually doing: publish all your source so we can see for
> >>>>>>> ourselves so we don't have to guess.
> >>>>>>>
> >>>>>>> /Flibble
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> That would be 100,000-fold more complex then simply paying
> >>>>>> complete attention to what I am saying. Everyone that is not
> >>>>>> bright enough to understand 14 lines of code keeps saying that
> >>>>>> they could easily understand 250 pages of code, even though the
> >>>>>> 14 lines proves to be too much for them.
> >>>>>
> >>>>> Your code:
> >>>>>
> >>>>> call 000011a2 // call H
> >>>>>
> >>>>> is simply a function call into the address space of the current
> >>>>> process, it doesn't look like code to spawn a new process to
> >>>>> me.
> >>>>
> >>>> How many times do I have to say this before you notice that I
> >>>> said it at least once? H (in the current process) always creates
> >>>> a new process context to emulate its its input with an x86
> >>>> emulator.
> >>>
> >>> I will have to take your word for it as you refuse to publish
> >>> source code. Why not just stick your project on GitHub? Open
> >>> source is de rigueur these days. What are you trying to hide?
> >>>
> >>> If a new process context is made then how is nested simulation
> >>> detected? I assume the data segment of each process is private...
> >>>
> >>> /Flibble
> >>>
> >>
> >> An honest dialogue requires points of mutual agreement. The price
> >> of moving beyond H(P,P)==0 is universal agreement that H(P,P)==0 is
> >> correct. The next point beyond H(P,P)==0 is computer science thus
> >> not appropriate for the C/C++ forum.
> >
> > I agree that H(P,P)==0 for pathological input assuming your method
> > for detecting pathological input is sufficiently robust however how
> > is that distinguished from H(P1,P1)==0 where P1 is normal
> > non-halting (i.e. non-pathological)?
>
> When-so-ever the correct and complete emulation of the input to H
> would never stop running H(x,y)==0 is correct.
>
> > If you are pattern matching op codes "EB FE" to detect the infinite
> > loop then how do you solve the problem of there being 2^n different
> > patterns equivalent to that loop so someone could come along and
> > write a pathological program that defeats your pattern matcher?
> > This is why we need your source code to answer these kinds of
> > questions.
> >
> > /Flibble
> >
>
> To refute all of the HP conventional proofs only requires correctly
> determining that H(P,P)==0.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220607232935.00001136@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21876&group=comp.lang.c#21876

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!news.uzoreto.com!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220607232935.00001136@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 575
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 22:29:35 UTC
Date: Tue, 7 Jun 2022 23:29:35 +0100
X-Received-Bytes: 32711
 by: Mr Flibble - Tue, 7 Jun 2022 22:29 UTC

On Tue, 7 Jun 2022 23:08:22 +0100
Mr Flibble <flibble@reddwarf.jmc> wrote:

> On Tue, 7 Jun 2022 16:28:21 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
> > On 6/7/2022 4:22 PM, Mr Flibble wrote:
> > > On Tue, 7 Jun 2022 16:01:53 -0500
> > > olcott <NoOne@NoWhere.com> wrote:
> > >
> > >> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> > >>> On Tue, 7 Jun 2022 15:34:13 -0500
> > >>> olcott <NoOne@NoWhere.com> wrote:
> > >>>
> > >>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> > >>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> > >>>>> olcott <NoOne@NoWhere.com> wrote:
> > >>>>>
> > >>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> > >>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> > >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> > >>>>>>>
> > >>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> > >>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> > >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> > >>>>>>>>>
> > >>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> > >>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> > >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> > >>>>>>>>>>>
> > >>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> > >>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> > >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> > >>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> > >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> > >>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> > >>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> > >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> > >>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> > >>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> > >>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> > >>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> > >>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> > >>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> > >>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> > >>>>>>>>>>>>>>>>>>>>>>>> wrote:
> > >>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
> > >>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> > >>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> > >>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
> > >>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a configuration
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for which δ is not defined; this is
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a partial
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will assume
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that no transitions are defined for
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine will halt whenever it
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> enters a final state.
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a C
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function this means reaching the
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "ret" instruction.
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined"
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is not "ret". Instead, "not
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the stack is empty
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by the
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>> way of saying the same thing.
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
> > >>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
> > >>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final
> > >>>>>>>>>>>>>>>>>>>>>>>>>> state of a turing machine,
> > >>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the
> > >>>>>>>>>>>>>>>>>>>>>>>>> TM ceasing to calculate computation steps
> > >>>>>>>>>>>>>>>>>>>>>>>>> for some computation, and going on to
> > >>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead.  It
> > >>>>>>>>>>>>>>>>>>>>>>>>> does not mean: a) that the TM (doing the
> > >>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted b)  that the
> > >>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the
> > >>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
> > >>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
> > >>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
> > >>>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
> > >>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
> > >>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation
> > >>>>>>>>>>>>>>>>>>>>>>>> is merely part of the TM, then the word
> > >>>>>>>>>>>>>>>>>>>>>>>> "halt" has a different meaning when applied
> > >>>>>>>>>>>>>>>>>>>>>>>> to that simulation part from when applied
> > >>>>>>>>>>>>>>>>>>>>>>>> to the entire TM.  I'm not even sure what
> > >>>>>>>>>>>>>>>>>>>>>>>> you mean when you say a part of a TM has
> > >>>>>>>>>>>>>>>>>>>>>>>> halted or not halted.
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I
> > >>>>>>>>>>>>>>>>>>>>>>> never talked about /part/ of a TM halting,
> > >>>>>>>>>>>>>>>>>>>>>>> and like you, I can't work out what that
> > >>>>>>>>>>>>>>>>>>>>>>> would mean!  I used "halt" only with
> > >>>>>>>>>>>>>>>>>>>>>>> respect to a computation, meaning that the
> > >>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n such that
> > >>>>>>>>>>>>>>>>>>>>>>> computation step n is a TM final state].
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think
> > >>>>>>>>>>>>>>>>>>>>>>> that by your definition of simulation, the
> > >>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure" simulator
> > >>>>>>>>>>>>>>>>>>>>>>> that does nothing but simulate computation
> > >>>>>>>>>>>>>>>>>>>>>>> steps until the simulation halts, at which
> > >>>>>>>>>>>>>>>>>>>>>>> point the simulating TM halts (like a UTM).
> > >>>>>>>>>>>>>>>>>>>>>>> I get that with that interpretation what
> > >>>>>>>>>>>>>>>>>>>>>>> you said:
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> > >>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is
> > >>>>>>>>>>>>>>>>>>>>>>> just one final state of a turing machine,
> > >>>>>>>>>>>>>>>>>>>>>>> >>> which has thus halted.
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct..  I'd
> > >>>>>>>>>>>>>>>>>>>>>>> just say I don't think that usage of
> > >>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
> > >>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about (so
> > >>>>>>>>>>>>>>>>>>>>>>> it would be wrong if applied PO's posts...)
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
> > >>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM which
> > >>>>>>>>>>>>>>>>>>>>>>> consists of calculating computation steps
> > >>>>>>>>>>>>>>>>>>>>>>> of some given computation.  As such it's
> > >>>>>>>>>>>>>>>>>>>>>>> just a part of the TM logic. A TM's typical
> > >>>>>>>>>>>>>>>>>>>>>>> use of simulation might be something like
> > >>>>>>>>>>>>>>>>>>>>>>> "..the TM simulates the computation for n
> > >>>>>>>>>>>>>>>>>>>>>>> steps, and if the simulation halts during
> > >>>>>>>>>>>>>>>>>>>>>>> those n steps, the TM [blah blah],
> > >>>>>>>>>>>>>>>>>>>>>>> /otherwise/ the TM [blah blah blah]...".
> > >>>>>>>>>>>>>>>>>>>>>>> Just about every reference in the
> > >>>>>>>>>>>>>>>>>>>>>>> literature I can recall is something like
> > >>>>>>>>>>>>>>>>>>>>>>> that.
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> > >>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation
> > >>>>>>>>>>>>>>>>>>>>>>> is just the TM ceasing to calculate >>
> > >>>>>>>>>>>>>>>>>>>>>>> computation steps for some computation, and
> > >>>>>>>>>>>>>>>>>>>>>>> going on to calculate >> something else
> > >>>>>>>>>>>>>>>>>>>>>>> instead.
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
> > >>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts or
> > >>>>>>>>>>>>>>>>>>>>>>> enters an infinite loop.  (That logic is
> > >>>>>>>>>>>>>>>>>>>>>>> not part of the simulation, IMO.)
> > >>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
> > >>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
> > >>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
> > >>>>>>>>>>>>>>>>>>>>>>> something else...
> > >>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
> > >>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the simulated
> > >>>>>>>>>>>>>>>>>>>>>>> computation never halts
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples
> > >>>>>>>>>>>>>>>>>>>>>>> of a simulated computation P(I) might halt
> > >>>>>>>>>>>>>>>>>>>>>>> or never halt, and this is unaffected by a
> > >>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no further
> > >>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have spotted
> > >>>>>>>>>>>>>>>>>>>>>>> some pattern in the simulated computation
> > >>>>>>>>>>>>>>>>>>>>>>> which implies P(I) never halts - that is a
> > >>>>>>>>>>>>>>>>>>>>>>> separate matter, but for sure the mere act
> > >>>>>>>>>>>>>>>>>>>>>>> of "aborting" the simulation doesn't imply
> > >>>>>>>>>>>>>>>>>>>>>>> P(I) never halts, or imply that it halts...
> > >>>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
> > >>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
> > >>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
> > >>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
> > >>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
> > >>>>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a
> > >>>>>>>>>>>>>>>>>>>>>>> TM halting mean?)
> > >>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
> > >>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
> > >>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
> > >>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
> > >>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
> > >>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
> > >>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
> > >>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
> > >>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
> > >>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
> > >>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
> > >>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my computation
> > >>>>>>>>>>>>>>>>>>>>> steps. Formally, these would be defined
> > >>>>>>>>>>>>>>>>>>>>> inductively via the rule to go from step n to
> > >>>>>>>>>>>>>>>>>>>>> step n+1. (Not an animation, but the induction
> > >>>>>>>>>>>>>>>>>>>>> gives some /sense/ of step-by-step
> > >>>>>>>>>>>>>>>>>>>>> calculation, and a simulator will follow
> > >>>>>>>>>>>>>>>>>>>>> this, starting at step 1, then calculate step
> > >>>>>>>>>>>>>>>>>>>>> 2 and so on. Still, I agree the entire
> > >>>>>>>>>>>>>>>>>>>>> sequence [the "computation"] exists as one
> > >>>>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract for PO...)
> > >>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate
> > >>>>>>>>>>>>>>>>>>>> the program under test with the test program
> > >>>>>>>>>>>>>>>>>>>> as a single computation then the whole idea of
> > >>>>>>>>>>>>>>>>>>>> a halt decider becomes less coherent and
> > >>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that
> > >>>>>>>>>>>>>>>>>>>> you don't already know that H(P,P)==0 is
> > >>>>>>>>>>>>>>>>>>>> correct and the H/P relationship matches the
> > >>>>>>>>>>>>>>>>>>>> halting problem counter example template.
> > >>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>> void P(u32 x)
> > >>>>>>>>>>>>>>>>>>>> {
> > >>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> > >>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> > >>>>>>>>>>>>>>>>>>>>    return;
> > >>>>>>>>>>>>>>>>>>>> }
> > >>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>> int main()
> > >>>>>>>>>>>>>>>>>>>> {
> > >>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
> > >>>>>>>>>>>>>>>>>>>> (u32)P)); }
> > >>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>       For any program H that might
> > >>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> > >>>>>>>>>>>>>>>>>>>>       program P, called with some
> > >>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input to
> > >>>>>>>>>>>>>>>>>>>>       H and then specifically do the
> > >>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> > >>>>>>>>>>>>>>>>>>>>       can exist that handles this
> > >>>>>>>>>>>>>>>>>>>> case.
> > >>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> > >>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
> > >>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties in
> > >>>>>>>>>>>>>>>>>>>>>> the same way that elaborating an infinite sum
> > >>>>>>>>>>>>>>>>>>>>>> or sequence does in math classes. An
> > >>>>>>>>>>>>>>>>>>>>>> (ultimate) value only exists if there is
> > >>>>>>>>>>>>>>>>>>>>>> some notation of convergence or limit which
> > >>>>>>>>>>>>>>>>>>>>>> typically is the case with examples used in
> > >>>>>>>>>>>>>>>>>>>>>> a math class. There is no definition of
> > >>>>>>>>>>>>>>>>>>>>>> convergence or limit with the sequence
> > >>>>>>>>>>>>>>>>>>>>>> defined by TM(STRING); rather, we simply ask
> > >>>>>>>>>>>>>>>>>>>>>> about the last pair if the sequence is
> > >>>>>>>>>>>>>>>>>>>>>> finite.
> > >>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>> Sure.
> > >>>>>>>>>>>>>>>>>>>>> The question right now is what you would call
> > >>>>>>>>>>>>>>>>>>>>> a TM which evaluates the first 10 steps of a
> > >>>>>>>>>>>>>>>>>>>>> computation, and then does something else.
> > >>>>>>>>>>>>>>>>>>>>> What is it doing while evaluating those 10
> > >>>>>>>>>>>>>>>>>>>>> steps?
> > >>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> > >>>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating"
> > >>>>>>>>>>>>>>>>>>>>> the computation (just for 10 steps) - then it
> > >>>>>>>>>>>>>>>>>>>>> stops simulating and does something else.
> > >>>>>>>>>>>>>>>>>>>>> Obviously I wouldn't describe it as
> > >>>>>>>>>>>>>>>>>>>>> "correctly" simulating, because nobody
> > >>>>>>>>>>>>>>>>>>>>> considers incorrect simulations, so the word
> > >>>>>>>>>>>>>>>>>>>>> would be redundant!
> > >>>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>>> It is required because my reviewers are making
> > >>>>>>>>>>>>>>>>>>>> their best possible effort to form rebuttals
> > >>>>>>>>>>>>>>>>>>>> and the most persistent of the fake rebuttals
> > >>>>>>>>>>>>>>>>>>>> has been that the simulation is incorrect. It
> > >>>>>>>>>>>>>>>>>>>> is very easy to verify the correct x86
> > >>>>>>>>>>>>>>>>>>>> emulation on the basis of the x86 language.
> > >>>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
> > >>>>>>>>>>>>>>>>>>> simulation needs show the same behavior of the
> > >>>>>>>>>>>>>>>>>>> thing it is simulating.
> > >>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot
> > >>>>>>>>>>>>>>>>>> is trying to claim that it is utterly impossible
> > >>>>>>>>>>>>>>>>>> to create a C program that examines the x86
> > >>>>>>>>>>>>>>>>>> execution trace derived from simulating the
> > >>>>>>>>>>>>>>>>>> input to H0(Infinite_Loop) with an x86 emulator
> > >>>>>>>>>>>>>>>>>> to correctly determine that Infinite_Loop()
> > >>>>>>>>>>>>>>>>>> infinitely loops.
> > >>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>> void Infinite_Loop()
> > >>>>>>>>>>>>>>>>>> {
> > >>>>>>>>>>>>>>>>>> HERE: goto HERE;
> > >>>>>>>>>>>>>>>>>> }
> > >>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>> int main()
> > >>>>>>>>>>>>>>>>>> {
> > >>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> > >>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> > >>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>> _Infinite_Loop()
> > >>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> > >>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> > >>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> > >>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
> > >>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
> > >>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> > >>>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
> > >>>>>>>>>>>>>>>>>> Trace Stored at:212343
> > >>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
> > >>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
> > >>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
> > >>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
> > >>>>>>>>>>>>>>>>>> Local Halt Decider: Infinite Loop Detected
> > >>>>>>>>>>>>>>>>>> Simulation Stopped
> > >>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
> > >>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
> > >>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
> > >>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>> /Flibble
> > >>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>>> In other words you are unable to tell that
> > >>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> > >>>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
> > >>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
> > >>>>>>>>>>>>>>
> > >>>>>>>>>>>>>>
> > >>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
> > >>>>>>>>>>>>>> have no idea that a correct x86 emulation of
> > >>>>>>>>>>>>>> Infinite_Loop would reach the instruction at machine
> > >>>>>>>>>>>>>> address [00001345] or not.
> > >>>>>>>>>>>>>>
> > >>>>>>>>>>>>>> It might be the case that a correct x86 emulation of
> > >>>>>>>>>>>>>> Infinite_Loop might instead involve emulating an
> > >>>>>>>>>>>>>> entirely different function that plays tic-tac-toe?
> > >>>>>>>>>>>>>>
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
> > >>>>>>>>>>>>> your program and trace are not telling the full story
> > >>>>>>>>>>>>> as far as the HP proofs are concerned;
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> The only thing that my program trace conclusively
> > >>>>>>>>>>>> proves is that H(P,P)==0 is the correct return value
> > >>>>>>>>>>>> that does correctly correspond to the actual behavior
> > >>>>>>>>>>>> of the actual input.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> For any program H that might determine if
> > >>>>>>>>>>>> programs halt, a "pathological"
> > >>>>>>>>>>>> program P, called with some input, can pass
> > >>>>>>>>>>>> its own source and its input to
> > >>>>>>>>>>>> H and then specifically do the opposite of
> > >>>>>>>>>>>> what H predicts P will do. No H
> > >>>>>>>>>>>> can exist that handles this case.
> > >>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> void P(u32 x)
> > >>>>>>>>>>>> {
> > >>>>>>>>>>>> if (H(x, x))
> > >>>>>>>>>>>> HERE: goto HERE;
> > >>>>>>>>>>>> return;
> > >>>>>>>>>>>> }
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> int main()
> > >>>>>>>>>>>> {
> > >>>>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
> > >>>>>>>>>>>> }
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> _P()
> > >>>>>>>>>>>> [00001352](01) 55 push ebp
> > >>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> > >>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> > >>>>>>>>>>>> [00001358](01) 50 push eax // push P
> > >>>>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
> > >>>>>>>>>>>> [0000135c](01) 51 push ecx // push P
> > >>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
> > >>>>>>>>>>>> [00001362](03) 83c408 add esp,+08
> > >>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
> > >>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
> > >>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
> > >>>>>>>>>>>> [0000136b](01) 5d pop ebp
> > >>>>>>>>>>>> [0000136c](01) c3 ret
> > >>>>>>>>>>>> Size in bytes:(0027) [0000136c]
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
> > >>>>>>>>>>>> emulates its input that it must emulate the first seven
> > >>>>>>>>>>>> instructions of P. Because the seventh instruction of P
> > >>>>>>>>>>>> repeats this process we can know with complete
> > >>>>>>>>>>>> certainty that the emulated P never reaches its final
> > >>>>>>>>>>>> “ret” instruction, thus never halts.
> > >>>>>>>>>>>
> > >>>>>>>>>>> But the halting problem proofs (including [Strachey
> > >>>>>>>>>>> 1965]) that you are trying to refute don't do that,
> > >>>>>>>>>>> they DO NOT make any recursive calls
> > >>>>>>>>>>
> > >>>>>>>>>> Because the idea of a simulating halt decider being
> > >>>>>>>>>> applied to the halting problem counter-example is brand
> > >>>>>>>>>> new with me you won't find other references that refer
> > >>>>>>>>>> to "infinitely nested simulation".
> > >>>>>>>>>>> which is what you are doing with "call H" above. Why are
> > >>>>>>>>>>> you doing something different to what the proofs you are
> > >>>>>>>>>>> trying to refute do given doing so is no longer related
> > >>>>>>>>>>> to the Halting Problem?
> > >>>>>>>>>>>
> > >>>>>>>>>>> /Flibble
> > >>>>>>>>>>>
> > >>>>>>>>>>
> > >>>>>>>>>> The proofs never bothered to examine my idea because it
> > >>>>>>>>>> was unknown by everyone prior to me creating it in 2016.
> > >>>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>> It seems to me that your idea would only be novel because
> > >>>>>>>>> it is a mistake. Your mistake is to have the candidate
> > >>>>>>>>> program call into the SAME INSTANCE of the decider which
> > >>>>>>>>> is deciding the candidate program.
> > >>>>>>>>
> > >>>>>>>> Where the Hell did you ever get this idea from ?
> > >>>>>>>> Whenever H simulates its input it creates a whole new
> > >>>>>>>> process context.
> > >>>>>>>
> > >>>>>>> You cannot make a direct function call into another process;
> > >>>>>>> it has to be the same process.
> > >>>>>>
> > >>>>>> As I have said very many hundreds of times I created the
> > >>>>>> x86utm operating system that enables any C function to
> > >>>>>> execute another C function using an x86 emulator.
> > >>>>>>
> > >>>>>> In the case of H(P,P) H creates a separate process context to
> > >>>>>> simulate its input every time that it is invoked, thus
> > >>>>>> subsequent invocations of H(P,P) execute in the process
> > >>>>>> context that was previously created.
> > >>>>>>
> > >>>>>>> As far as getting ideas as to what you are
> > >>>>>>> actually doing: publish all your source so we can see for
> > >>>>>>> ourselves so we don't have to guess.
> > >>>>>>>
> > >>>>>>> /Flibble
> > >>>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> That would be 100,000-fold more complex then simply paying
> > >>>>>> complete attention to what I am saying. Everyone that is not
> > >>>>>> bright enough to understand 14 lines of code keeps saying
> > >>>>>> that they could easily understand 250 pages of code, even
> > >>>>>> though the 14 lines proves to be too much for them.
> > >>>>>
> > >>>>> Your code:
> > >>>>>
> > >>>>> call 000011a2 // call H
> > >>>>>
> > >>>>> is simply a function call into the address space of the
> > >>>>> current process, it doesn't look like code to spawn a new
> > >>>>> process to me.
> > >>>>
> > >>>> How many times do I have to say this before you notice that I
> > >>>> said it at least once? H (in the current process) always
> > >>>> creates a new process context to emulate its its input with an
> > >>>> x86 emulator.
> > >>>
> > >>> I will have to take your word for it as you refuse to publish
> > >>> source code. Why not just stick your project on GitHub? Open
> > >>> source is de rigueur these days. What are you trying to hide?
> > >>>
> > >>> If a new process context is made then how is nested simulation
> > >>> detected? I assume the data segment of each process is
> > >>> private...
> > >>>
> > >>> /Flibble
> > >>>
> > >>
> > >> An honest dialogue requires points of mutual agreement. The price
> > >> of moving beyond H(P,P)==0 is universal agreement that H(P,P)==0
> > >> is correct. The next point beyond H(P,P)==0 is computer science
> > >> thus not appropriate for the C/C++ forum.
> > >
> > > I agree that H(P,P)==0 for pathological input assuming your method
> > > for detecting pathological input is sufficiently robust however
> > > how is that distinguished from H(P1,P1)==0 where P1 is normal
> > > non-halting (i.e. non-pathological)?
> >
> > When-so-ever the correct and complete emulation of the input to H
> > would never stop running H(x,y)==0 is correct.
> >
> > > If you are pattern matching op codes "EB FE" to detect the
> > > infinite loop then how do you solve the problem of there being
> > > 2^n different patterns equivalent to that loop so someone could
> > > come along and write a pathological program that defeats your
> > > pattern matcher? This is why we need your source code to answer
> > > these kinds of questions.
> > >
> > > /Flibble
> > >
> >
> > To refute all of the HP conventional proofs only requires correctly
> > determining that H(P,P)==0.
>
> Are you using pattern matching to detect the infinite loop or not?


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21877&group=comp.lang.c#21877

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 17:37:45 -0500
Date: Tue, 7 Jun 2022 17:37:44 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<rhcnK.65120$ntj.43005@fx15.iad>
<H5qdnS0tq-s9yQD_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220607230822.00004da6@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
Lines: 544
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-ej0t6x9FMe60+tR4bazoQ0Kb2ikAjjKIEAimibwl0DuvInfMLcKWIylaXMpDZ4IgV2LSAyIWE1Szc8D!lcP9fV9JWD+onJeKpN+OopzwEw/grVjVomgGKkV79o3UkU8wex9oU3eUTM0+qPD18vnsYmdm+Vfu
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 30981
 by: olcott - Tue, 7 Jun 2022 22:37 UTC

On 6/7/2022 5:08 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 16:28:21 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 16:01:53 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a configuration
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for which δ is not defined; this is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a partial
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will assume that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> no transitions are defined for any
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state so the Turing machine will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it enters a final state.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary software
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this means
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. In a C function
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this means reaching the "ret"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined" is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not "ret". Instead, "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> stack is empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a location
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that is not specifiec by the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C way
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of saying the same thing.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing machine.
>>>>>>>>>>>>>>>>>>>>>>>>>>>> It either runs and halts,
>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final
>>>>>>>>>>>>>>>>>>>>>>>>>>>> state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the TM
>>>>>>>>>>>>>>>>>>>>>>>>>>> ceasing to calculate computation steps for
>>>>>>>>>>>>>>>>>>>>>>>>>>> some computation, and going on to calculate
>>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.  It does not mean:
>>>>>>>>>>>>>>>>>>>>>>>>>>> a) that the TM (doing the simulation) has
>>>>>>>>>>>>>>>>>>>>>>>>>>> halted b)  that the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>> halts c)  that the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>> never halts
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more about
>>>>>>>>>>>>>>>>>>>>>>>>>> nice shades of words than
>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
>>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
>>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation
>>>>>>>>>>>>>>>>>>>>>>>>>> is merely part of the TM, then the word
>>>>>>>>>>>>>>>>>>>>>>>>>> "halt" has a different meaning when applied
>>>>>>>>>>>>>>>>>>>>>>>>>> to that simulation part from when applied to
>>>>>>>>>>>>>>>>>>>>>>>>>> the entire TM.  I'm not even sure what you
>>>>>>>>>>>>>>>>>>>>>>>>>> mean when you say a part of a TM has halted
>>>>>>>>>>>>>>>>>>>>>>>>>> or not halted.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I
>>>>>>>>>>>>>>>>>>>>>>>>> never talked about /part/ of a TM halting, and
>>>>>>>>>>>>>>>>>>>>>>>>> like you, I can't work out what that would
>>>>>>>>>>>>>>>>>>>>>>>>> mean!  I used "halt" only with respect to a
>>>>>>>>>>>>>>>>>>>>>>>>> computation, meaning that the computation
>>>>>>>>>>>>>>>>>>>>>>>>> halts [there is an n such that computation
>>>>>>>>>>>>>>>>>>>>>>>>> step n is a TM final state].
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think
>>>>>>>>>>>>>>>>>>>>>>>>> that by your definition of simulation, the
>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure" simulator that
>>>>>>>>>>>>>>>>>>>>>>>>> does nothing but simulate computation steps
>>>>>>>>>>>>>>>>>>>>>>>>> until the simulation halts, at which point the
>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM).  I get that
>>>>>>>>>>>>>>>>>>>>>>>>> with that interpretation what you said:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is just
>>>>>>>>>>>>>>>>>>>>>>>>> one final state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd
>>>>>>>>>>>>>>>>>>>>>>>>> just say I don't think that usage of
>>>>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
>>>>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about (so
>>>>>>>>>>>>>>>>>>>>>>>>> it would be wrong if applied PO's posts...)
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's simply
>>>>>>>>>>>>>>>>>>>>>>>>> the activity performed by a TM which consists
>>>>>>>>>>>>>>>>>>>>>>>>> of calculating computation steps of some given
>>>>>>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part of the
>>>>>>>>>>>>>>>>>>>>>>>>> TM logic. A TM's typical use of simulation
>>>>>>>>>>>>>>>>>>>>>>>>> might be something like "..the TM simulates
>>>>>>>>>>>>>>>>>>>>>>>>> the computation for n steps, and if the
>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts during those n steps, the TM
>>>>>>>>>>>>>>>>>>>>>>>>> [blah blah], /otherwise/ the TM [blah blah
>>>>>>>>>>>>>>>>>>>>>>>>> blah]...". Just about every reference in the
>>>>>>>>>>>>>>>>>>>>>>>>> literature I can recall is something like
>>>>>>>>>>>>>>>>>>>>>>>>> that.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation is
>>>>>>>>>>>>>>>>>>>>>>>>> just the TM ceasing to calculate >>
>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some computation, and
>>>>>>>>>>>>>>>>>>>>>>>>> going on to calculate >> something else
>>>>>>>>>>>>>>>>>>>>>>>>> instead.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its simulation
>>>>>>>>>>>>>>>>>>>>>>>>> of P(P), the TM either halts or enters an
>>>>>>>>>>>>>>>>>>>>>>>>> infinite loop.  (That logic is not part of the
>>>>>>>>>>>>>>>>>>>>>>>>> simulation, IMO.)
>>>>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
>>>>>>>>>>>>>>>>>>>>>>>>> something else...
>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>> computation never halts
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples of
>>>>>>>>>>>>>>>>>>>>>>>>> a simulated computation P(I) might halt or
>>>>>>>>>>>>>>>>>>>>>>>>> never halt, and this is unaffected by a
>>>>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no further
>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have spotted
>>>>>>>>>>>>>>>>>>>>>>>>> some pattern in the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>> which implies P(I) never halts - that is a
>>>>>>>>>>>>>>>>>>>>>>>>> separate matter, but for sure the mere act of
>>>>>>>>>>>>>>>>>>>>>>>>> "aborting" the simulation doesn't imply P(I)
>>>>>>>>>>>>>>>>>>>>>>>>> never halts, or imply that it halts...
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated computation,
>>>>>>>>>>>>>>>>>>>>>>>>> and NOT ANY PART OF EITHER OF THOSE. (Like
>>>>>>>>>>>>>>>>>>>>>>>>> you say, what would part of a TM halting
>>>>>>>>>>>>>>>>>>>>>>>>> mean?)
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
>>>>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
>>>>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
>>>>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
>>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
>>>>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
>>>>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
>>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
>>>>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my computation
>>>>>>>>>>>>>>>>>>>>>>> steps. Formally, these would be defined
>>>>>>>>>>>>>>>>>>>>>>> inductively via the rule to go from step n to
>>>>>>>>>>>>>>>>>>>>>>> step n+1. (Not an animation, but the induction
>>>>>>>>>>>>>>>>>>>>>>> gives some /sense/ of step-by-step calculation,
>>>>>>>>>>>>>>>>>>>>>>> and a simulator will follow this, starting at
>>>>>>>>>>>>>>>>>>>>>>> step 1, then calculate step 2 and so on. Still,
>>>>>>>>>>>>>>>>>>>>>>> I agree the entire sequence [the "computation"]
>>>>>>>>>>>>>>>>>>>>>>> exists as one timeless structure.  Too abstract
>>>>>>>>>>>>>>>>>>>>>>> for PO...)
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate the
>>>>>>>>>>>>>>>>>>>>>> program under test with the test program as a
>>>>>>>>>>>>>>>>>>>>>> single computation then the whole idea of a halt
>>>>>>>>>>>>>>>>>>>>>> decider becomes less coherent and
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that you
>>>>>>>>>>>>>>>>>>>>>> don't already know that H(P,P)==0 is correct and
>>>>>>>>>>>>>>>>>>>>>> the H/P relationship matches the halting problem
>>>>>>>>>>>>>>>>>>>>>> counter example template.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
>>>>>>>>>>>>>>>>>>>>>> (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>       For any program H that might
>>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>>>>>       program P, called with some input,
>>>>>>>>>>>>>>>>>>>>>> can pass its own source and its input to
>>>>>>>>>>>>>>>>>>>>>>       H and then specifically do the
>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>>>>       can exist that handles this case.
>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
>>>>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties in
>>>>>>>>>>>>>>>>>>>>>>>> the same way that elaborating an infinite sum
>>>>>>>>>>>>>>>>>>>>>>>> or sequence does in math classes. An (ultimate)
>>>>>>>>>>>>>>>>>>>>>>>> value only exists if there is some notation of
>>>>>>>>>>>>>>>>>>>>>>>> convergence or limit which typically is the
>>>>>>>>>>>>>>>>>>>>>>>> case with examples used in a math class. There
>>>>>>>>>>>>>>>>>>>>>>>> is no definition of convergence or limit with
>>>>>>>>>>>>>>>>>>>>>>>> the sequence defined by TM(STRING); rather, we
>>>>>>>>>>>>>>>>>>>>>>>> simply ask about the last pair if the sequence
>>>>>>>>>>>>>>>>>>>>>>>> is finite.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would call a
>>>>>>>>>>>>>>>>>>>>>>> TM which evaluates the first 10 steps of a
>>>>>>>>>>>>>>>>>>>>>>> computation, and then does something else. What
>>>>>>>>>>>>>>>>>>>>>>> is it doing while evaluating those 10 steps?
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating"
>>>>>>>>>>>>>>>>>>>>>>> the computation (just for 10 steps) - then it
>>>>>>>>>>>>>>>>>>>>>>> stops simulating and does something else.
>>>>>>>>>>>>>>>>>>>>>>> Obviously I wouldn't describe it as "correctly"
>>>>>>>>>>>>>>>>>>>>>>> simulating, because nobody considers incorrect
>>>>>>>>>>>>>>>>>>>>>>> simulations, so the word would be redundant!
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are making
>>>>>>>>>>>>>>>>>>>>>> their best possible effort to form rebuttals and
>>>>>>>>>>>>>>>>>>>>>> the most persistent of the fake rebuttals has
>>>>>>>>>>>>>>>>>>>>>> been that the simulation is incorrect. It is
>>>>>>>>>>>>>>>>>>>>>> very easy to verify the correct x86 emulation on
>>>>>>>>>>>>>>>>>>>>>> the basis of the x86 language.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
>>>>>>>>>>>>>>>>>>>>> simulation needs show the same behavior of the
>>>>>>>>>>>>>>>>>>>>> thing it is simulating.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot is
>>>>>>>>>>>>>>>>>>>> trying to claim that it is utterly impossible to
>>>>>>>>>>>>>>>>>>>> create a C program that examines the x86 execution
>>>>>>>>>>>>>>>>>>>> trace derived from simulating the input to
>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to correctly
>>>>>>>>>>>>>>>>>>>> determine that Infinite_Loop() infinitely loops.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
>>>>>>>>>>>>>>>>>>>> Trace Stored at:212343
>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>> Local Halt Decider: Infinite Loop Detected
>>>>>>>>>>>>>>>>>>>> Simulation Stopped
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
>>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to enter
>>>>>>>>>>>>>>>>>>> the infinite loop. Post *full* traces.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
>>>>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
>>>>>>>>>>>>>>>> have no idea that a correct x86 emulation of
>>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at machine
>>>>>>>>>>>>>>>> address [00001345] or not.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation of
>>>>>>>>>>>>>>>> Infinite_Loop might instead involve emulating an
>>>>>>>>>>>>>>>> entirely different function that plays tic-tac-toe?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
>>>>>>>>>>>>>>> your program and trace are not telling the full story
>>>>>>>>>>>>>>> as far as the HP proofs are concerned;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The only thing that my program trace conclusively proves
>>>>>>>>>>>>>> is that H(P,P)==0 is the correct return value that does
>>>>>>>>>>>>>> correctly correspond to the actual behavior of the actual
>>>>>>>>>>>>>> input.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> For any program H that might determine if
>>>>>>>>>>>>>> programs halt, a "pathological"
>>>>>>>>>>>>>> program P, called with some input, can pass
>>>>>>>>>>>>>> its own source and its input to
>>>>>>>>>>>>>> H and then specifically do the opposite of
>>>>>>>>>>>>>> what H predicts P will do. No H
>>>>>>>>>>>>>> can exist that handles this case.
>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>> {
>>>>>>>>>>>>>> if (H(x, x))
>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>> return;
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>> {
>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _P()
>>>>>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>>>>>>>> [00001358](01) 50 push eax // push P
>>>>>>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
>>>>>>>>>>>>>> [0000135c](01) 51 push ecx // push P
>>>>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
>>>>>>>>>>>>>> [00001362](03) 83c408 add esp,+08
>>>>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
>>>>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
>>>>>>>>>>>>>> [0000136c](01) c3 ret
>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
>>>>>>>>>>>>>> emulates its input that it must emulate the first seven
>>>>>>>>>>>>>> instructions of P. Because the seventh instruction of P
>>>>>>>>>>>>>> repeats this process we can know with complete certainty
>>>>>>>>>>>>>> that the emulated P never reaches its final “ret”
>>>>>>>>>>>>>> instruction, thus never halts.
>>>>>>>>>>>>>
>>>>>>>>>>>>> But the halting problem proofs (including [Strachey 1965])
>>>>>>>>>>>>> that you are trying to refute don't do that, they DO NOT
>>>>>>>>>>>>> make any recursive calls
>>>>>>>>>>>>
>>>>>>>>>>>> Because the idea of a simulating halt decider being applied
>>>>>>>>>>>> to the halting problem counter-example is brand new with me
>>>>>>>>>>>> you won't find other references that refer to "infinitely
>>>>>>>>>>>> nested simulation".
>>>>>>>>>>>>> which is what you are doing with "call H" above. Why are
>>>>>>>>>>>>> you doing something different to what the proofs you are
>>>>>>>>>>>>> trying to refute do given doing so is no longer related
>>>>>>>>>>>>> to the Halting Problem?
>>>>>>>>>>>>>
>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> The proofs never bothered to examine my idea because it was
>>>>>>>>>>>> unknown by everyone prior to me creating it in 2016.
>>>>>>>>>>>
>>>>>>>>>>> It seems to me that your idea would only be novel because it
>>>>>>>>>>> is a mistake. Your mistake is to have the candidate program
>>>>>>>>>>> call into the SAME INSTANCE of the decider which is deciding
>>>>>>>>>>> the candidate program.
>>>>>>>>>>
>>>>>>>>>> Where the Hell did you ever get this idea from ?
>>>>>>>>>> Whenever H simulates its input it creates a whole new process
>>>>>>>>>> context.
>>>>>>>>>
>>>>>>>>> You cannot make a direct function call into another process;
>>>>>>>>> it has to be the same process.
>>>>>>>>
>>>>>>>> As I have said very many hundreds of times I created the x86utm
>>>>>>>> operating system that enables any C function to execute
>>>>>>>> another C function using an x86 emulator.
>>>>>>>>
>>>>>>>> In the case of H(P,P) H creates a separate process context to
>>>>>>>> simulate its input every time that it is invoked, thus
>>>>>>>> subsequent invocations of H(P,P) execute in the process
>>>>>>>> context that was previously created.
>>>>>>>>
>>>>>>>>> As far as getting ideas as to what you are
>>>>>>>>> actually doing: publish all your source so we can see for
>>>>>>>>> ourselves so we don't have to guess.
>>>>>>>>>
>>>>>>>>> /Flibble
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> That would be 100,000-fold more complex then simply paying
>>>>>>>> complete attention to what I am saying. Everyone that is not
>>>>>>>> bright enough to understand 14 lines of code keeps saying that
>>>>>>>> they could easily understand 250 pages of code, even though the
>>>>>>>> 14 lines proves to be too much for them.
>>>>>>>
>>>>>>> Your code:
>>>>>>>
>>>>>>> call 000011a2 // call H
>>>>>>>
>>>>>>> is simply a function call into the address space of the current
>>>>>>> process, it doesn't look like code to spawn a new process to
>>>>>>> me.
>>>>>>
>>>>>> How many times do I have to say this before you notice that I
>>>>>> said it at least once? H (in the current process) always creates
>>>>>> a new process context to emulate its its input with an x86
>>>>>> emulator.
>>>>>
>>>>> I will have to take your word for it as you refuse to publish
>>>>> source code. Why not just stick your project on GitHub? Open
>>>>> source is de rigueur these days. What are you trying to hide?
>>>>>
>>>>> If a new process context is made then how is nested simulation
>>>>> detected? I assume the data segment of each process is private...
>>>>>
>>>>> /Flibble
>>>>>
>>>>
>>>> An honest dialogue requires points of mutual agreement. The price
>>>> of moving beyond H(P,P)==0 is universal agreement that H(P,P)==0 is
>>>> correct. The next point beyond H(P,P)==0 is computer science thus
>>>> not appropriate for the C/C++ forum.
>>>
>>> I agree that H(P,P)==0 for pathological input assuming your method
>>> for detecting pathological input is sufficiently robust however how
>>> is that distinguished from H(P1,P1)==0 where P1 is normal
>>> non-halting (i.e. non-pathological)?
>>
>> When-so-ever the correct and complete emulation of the input to H
>> would never stop running H(x,y)==0 is correct.
>>
>>> If you are pattern matching op codes "EB FE" to detect the infinite
>>> loop then how do you solve the problem of there being 2^n different
>>> patterns equivalent to that loop so someone could come along and
>>> write a pathological program that defeats your pattern matcher?
>>> This is why we need your source code to answer these kinds of
>>> questions.
>>>
>>> /Flibble
>>>
>>
>> To refute all of the HP conventional proofs only requires correctly
>> determining that H(P,P)==0.
>
> Are you using pattern matching to detect the infinite loop or not?
>
> /Flibble
>


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220607234526.00001f04@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21878&group=comp.lang.c#21878

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220607234526.00001f04@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 582
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 22:45:26 UTC
Date: Tue, 7 Jun 2022 23:45:26 +0100
X-Received-Bytes: 32820
 by: Mr Flibble - Tue, 7 Jun 2022 22:45 UTC

On Tue, 7 Jun 2022 17:37:44 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 5:08 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 16:28:21 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 4:22 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 16:01:53 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 15:34:13 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a configuration
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for which δ is not defined; this is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a partial
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will assume
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that no transitions are defined for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine will halt whenever it
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> enters a final state.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a C
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function this means reaching the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "ret" instruction.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is not "ret". Instead, "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the stack is empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> way of saying the same thing.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> TM ceasing to calculate computation steps
> >>>>>>>>>>>>>>>>>>>>>>>>>>> for some computation, and going on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead.  It
> >>>>>>>>>>>>>>>>>>>>>>>>>>> does not mean: a) that the TM (doing the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted b)  that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
> >>>>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
> >>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
> >>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
> >>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>> is merely part of the TM, then the word
> >>>>>>>>>>>>>>>>>>>>>>>>>> "halt" has a different meaning when applied
> >>>>>>>>>>>>>>>>>>>>>>>>>> to that simulation part from when applied
> >>>>>>>>>>>>>>>>>>>>>>>>>> to the entire TM.  I'm not even sure what
> >>>>>>>>>>>>>>>>>>>>>>>>>> you mean when you say a part of a TM has
> >>>>>>>>>>>>>>>>>>>>>>>>>> halted or not halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I
> >>>>>>>>>>>>>>>>>>>>>>>>> never talked about /part/ of a TM halting,
> >>>>>>>>>>>>>>>>>>>>>>>>> and like you, I can't work out what that
> >>>>>>>>>>>>>>>>>>>>>>>>> would mean!  I used "halt" only with
> >>>>>>>>>>>>>>>>>>>>>>>>> respect to a computation, meaning that the
> >>>>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n such that
> >>>>>>>>>>>>>>>>>>>>>>>>> computation step n is a TM final state].
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think
> >>>>>>>>>>>>>>>>>>>>>>>>> that by your definition of simulation, the
> >>>>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure" simulator
> >>>>>>>>>>>>>>>>>>>>>>>>> that does nothing but simulate computation
> >>>>>>>>>>>>>>>>>>>>>>>>> steps until the simulation halts, at which
> >>>>>>>>>>>>>>>>>>>>>>>>> point the simulating TM halts (like a UTM).
> >>>>>>>>>>>>>>>>>>>>>>>>> I get that with that interpretation what
> >>>>>>>>>>>>>>>>>>>>>>>>> you said:
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is
> >>>>>>>>>>>>>>>>>>>>>>>>> just one final state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd
> >>>>>>>>>>>>>>>>>>>>>>>>> just say I don't think that usage of
> >>>>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
> >>>>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about (so
> >>>>>>>>>>>>>>>>>>>>>>>>> it would be wrong if applied PO's posts...)
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
> >>>>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM which
> >>>>>>>>>>>>>>>>>>>>>>>>> consists of calculating computation steps
> >>>>>>>>>>>>>>>>>>>>>>>>> of some given computation.  As such it's
> >>>>>>>>>>>>>>>>>>>>>>>>> just a part of the TM logic. A TM's typical
> >>>>>>>>>>>>>>>>>>>>>>>>> use of simulation might be something like
> >>>>>>>>>>>>>>>>>>>>>>>>> "..the TM simulates the computation for n
> >>>>>>>>>>>>>>>>>>>>>>>>> steps, and if the simulation halts during
> >>>>>>>>>>>>>>>>>>>>>>>>> those n steps, the TM [blah blah],
> >>>>>>>>>>>>>>>>>>>>>>>>> /otherwise/ the TM [blah blah blah]...".
> >>>>>>>>>>>>>>>>>>>>>>>>> Just about every reference in the
> >>>>>>>>>>>>>>>>>>>>>>>>> literature I can recall is something like
> >>>>>>>>>>>>>>>>>>>>>>>>> that.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation
> >>>>>>>>>>>>>>>>>>>>>>>>> is just the TM ceasing to calculate >>
> >>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some computation, and
> >>>>>>>>>>>>>>>>>>>>>>>>> going on to calculate >> something else
> >>>>>>>>>>>>>>>>>>>>>>>>> instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts or
> >>>>>>>>>>>>>>>>>>>>>>>>> enters an infinite loop.  (That logic is
> >>>>>>>>>>>>>>>>>>>>>>>>> not part of the simulation, IMO.)
> >>>>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
> >>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
> >>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
> >>>>>>>>>>>>>>>>>>>>>>>>> something else...
> >>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>> computation never halts
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples
> >>>>>>>>>>>>>>>>>>>>>>>>> of a simulated computation P(I) might halt
> >>>>>>>>>>>>>>>>>>>>>>>>> or never halt, and this is unaffected by a
> >>>>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no further
> >>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have spotted
> >>>>>>>>>>>>>>>>>>>>>>>>> some pattern in the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>> which implies P(I) never halts - that is a
> >>>>>>>>>>>>>>>>>>>>>>>>> separate matter, but for sure the mere act
> >>>>>>>>>>>>>>>>>>>>>>>>> of "aborting" the simulation doesn't imply
> >>>>>>>>>>>>>>>>>>>>>>>>> P(I) never halts, or imply that it halts...
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
> >>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
> >>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
> >>>>>>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a
> >>>>>>>>>>>>>>>>>>>>>>>>> TM halting mean?)
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
> >>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
> >>>>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
> >>>>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
> >>>>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
> >>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
> >>>>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
> >>>>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
> >>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
> >>>>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my computation
> >>>>>>>>>>>>>>>>>>>>>>> steps. Formally, these would be defined
> >>>>>>>>>>>>>>>>>>>>>>> inductively via the rule to go from step n to
> >>>>>>>>>>>>>>>>>>>>>>> step n+1. (Not an animation, but the induction
> >>>>>>>>>>>>>>>>>>>>>>> gives some /sense/ of step-by-step
> >>>>>>>>>>>>>>>>>>>>>>> calculation, and a simulator will follow
> >>>>>>>>>>>>>>>>>>>>>>> this, starting at step 1, then calculate step
> >>>>>>>>>>>>>>>>>>>>>>> 2 and so on. Still, I agree the entire
> >>>>>>>>>>>>>>>>>>>>>>> sequence [the "computation"] exists as one
> >>>>>>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract for PO...)
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate
> >>>>>>>>>>>>>>>>>>>>>> the program under test with the test program
> >>>>>>>>>>>>>>>>>>>>>> as a single computation then the whole idea of
> >>>>>>>>>>>>>>>>>>>>>> a halt decider becomes less coherent and
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that
> >>>>>>>>>>>>>>>>>>>>>> you don't already know that H(P,P)==0 is
> >>>>>>>>>>>>>>>>>>>>>> correct and the H/P relationship matches the
> >>>>>>>>>>>>>>>>>>>>>> halting problem counter example template.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
> >>>>>>>>>>>>>>>>>>>>>> (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>       For any program H that might
> >>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>>>>>>>       program P, called with some
> >>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input to
> >>>>>>>>>>>>>>>>>>>>>>       H and then specifically do the
> >>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>>>>>       can exist that handles this
> >>>>>>>>>>>>>>>>>>>>>> case.
> >>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
> >>>>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties in
> >>>>>>>>>>>>>>>>>>>>>>>> the same way that elaborating an infinite sum
> >>>>>>>>>>>>>>>>>>>>>>>> or sequence does in math classes. An
> >>>>>>>>>>>>>>>>>>>>>>>> (ultimate) value only exists if there is
> >>>>>>>>>>>>>>>>>>>>>>>> some notation of convergence or limit which
> >>>>>>>>>>>>>>>>>>>>>>>> typically is the case with examples used in
> >>>>>>>>>>>>>>>>>>>>>>>> a math class. There is no definition of
> >>>>>>>>>>>>>>>>>>>>>>>> convergence or limit with the sequence
> >>>>>>>>>>>>>>>>>>>>>>>> defined by TM(STRING); rather, we simply ask
> >>>>>>>>>>>>>>>>>>>>>>>> about the last pair if the sequence is
> >>>>>>>>>>>>>>>>>>>>>>>> finite.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would call
> >>>>>>>>>>>>>>>>>>>>>>> a TM which evaluates the first 10 steps of a
> >>>>>>>>>>>>>>>>>>>>>>> computation, and then does something else.
> >>>>>>>>>>>>>>>>>>>>>>> What is it doing while evaluating those 10
> >>>>>>>>>>>>>>>>>>>>>>> steps?
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating"
> >>>>>>>>>>>>>>>>>>>>>>> the computation (just for 10 steps) - then it
> >>>>>>>>>>>>>>>>>>>>>>> stops simulating and does something else.
> >>>>>>>>>>>>>>>>>>>>>>> Obviously I wouldn't describe it as
> >>>>>>>>>>>>>>>>>>>>>>> "correctly" simulating, because nobody
> >>>>>>>>>>>>>>>>>>>>>>> considers incorrect simulations, so the word
> >>>>>>>>>>>>>>>>>>>>>>> would be redundant!
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are making
> >>>>>>>>>>>>>>>>>>>>>> their best possible effort to form rebuttals
> >>>>>>>>>>>>>>>>>>>>>> and the most persistent of the fake rebuttals
> >>>>>>>>>>>>>>>>>>>>>> has been that the simulation is incorrect. It
> >>>>>>>>>>>>>>>>>>>>>> is very easy to verify the correct x86
> >>>>>>>>>>>>>>>>>>>>>> emulation on the basis of the x86 language.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
> >>>>>>>>>>>>>>>>>>>>> simulation needs show the same behavior of the
> >>>>>>>>>>>>>>>>>>>>> thing it is simulating.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot
> >>>>>>>>>>>>>>>>>>>> is trying to claim that it is utterly impossible
> >>>>>>>>>>>>>>>>>>>> to create a C program that examines the x86
> >>>>>>>>>>>>>>>>>>>> execution trace derived from simulating the
> >>>>>>>>>>>>>>>>>>>> input to H0(Infinite_Loop) with an x86 emulator
> >>>>>>>>>>>>>>>>>>>> to correctly determine that Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>> infinitely loops.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
> >>>>>>>>>>>>>>>>>>>> Trace Stored at:212343
> >>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
> >>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>>>> Local Halt Decider: Infinite Loop Detected
> >>>>>>>>>>>>>>>>>>>> Simulation Stopped
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
> >>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
> >>>>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
> >>>>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
> >>>>>>>>>>>>>>>> have no idea that a correct x86 emulation of
> >>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at machine
> >>>>>>>>>>>>>>>> address [00001345] or not.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation of
> >>>>>>>>>>>>>>>> Infinite_Loop might instead involve emulating an
> >>>>>>>>>>>>>>>> entirely different function that plays tic-tac-toe?
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
> >>>>>>>>>>>>>>> your program and trace are not telling the full story
> >>>>>>>>>>>>>>> as far as the HP proofs are concerned;
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> The only thing that my program trace conclusively
> >>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return value
> >>>>>>>>>>>>>> that does correctly correspond to the actual behavior
> >>>>>>>>>>>>>> of the actual input.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> For any program H that might determine if
> >>>>>>>>>>>>>> programs halt, a "pathological"
> >>>>>>>>>>>>>> program P, called with some input, can
> >>>>>>>>>>>>>> pass its own source and its input to
> >>>>>>>>>>>>>> H and then specifically do the opposite of
> >>>>>>>>>>>>>> what H predicts P will do. No H
> >>>>>>>>>>>>>> can exist that handles this case.
> >>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>> {
> >>>>>>>>>>>>>> if (H(x, x))
> >>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>> return;
> >>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>> {
> >>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
> >>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> _P()
> >>>>>>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>>>>>>>>>> [00001358](01) 50 push eax // push P
> >>>>>>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
> >>>>>>>>>>>>>> [0000135c](01) 51 push ecx // push P
> >>>>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
> >>>>>>>>>>>>>> [00001362](03) 83c408 add esp,+08
> >>>>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
> >>>>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
> >>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
> >>>>>>>>>>>>>> [0000136c](01) c3 ret
> >>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
> >>>>>>>>>>>>>> emulates its input that it must emulate the first seven
> >>>>>>>>>>>>>> instructions of P. Because the seventh instruction of P
> >>>>>>>>>>>>>> repeats this process we can know with complete
> >>>>>>>>>>>>>> certainty that the emulated P never reaches its final
> >>>>>>>>>>>>>> “ret” instruction, thus never halts.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> But the halting problem proofs (including [Strachey
> >>>>>>>>>>>>> 1965]) that you are trying to refute don't do that,
> >>>>>>>>>>>>> they DO NOT make any recursive calls
> >>>>>>>>>>>>
> >>>>>>>>>>>> Because the idea of a simulating halt decider being
> >>>>>>>>>>>> applied to the halting problem counter-example is brand
> >>>>>>>>>>>> new with me you won't find other references that refer
> >>>>>>>>>>>> to "infinitely nested simulation".
> >>>>>>>>>>>>> which is what you are doing with "call H" above. Why are
> >>>>>>>>>>>>> you doing something different to what the proofs you are
> >>>>>>>>>>>>> trying to refute do given doing so is no longer related
> >>>>>>>>>>>>> to the Halting Problem?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> The proofs never bothered to examine my idea because it
> >>>>>>>>>>>> was unknown by everyone prior to me creating it in 2016.
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> It seems to me that your idea would only be novel because
> >>>>>>>>>>> it is a mistake. Your mistake is to have the candidate
> >>>>>>>>>>> program call into the SAME INSTANCE of the decider which
> >>>>>>>>>>> is deciding the candidate program.
> >>>>>>>>>>
> >>>>>>>>>> Where the Hell did you ever get this idea from ?
> >>>>>>>>>> Whenever H simulates its input it creates a whole new
> >>>>>>>>>> process context.
> >>>>>>>>>
> >>>>>>>>> You cannot make a direct function call into another process;
> >>>>>>>>> it has to be the same process.
> >>>>>>>>
> >>>>>>>> As I have said very many hundreds of times I created the
> >>>>>>>> x86utm operating system that enables any C function to
> >>>>>>>> execute another C function using an x86 emulator.
> >>>>>>>>
> >>>>>>>> In the case of H(P,P) H creates a separate process context to
> >>>>>>>> simulate its input every time that it is invoked, thus
> >>>>>>>> subsequent invocations of H(P,P) execute in the process
> >>>>>>>> context that was previously created.
> >>>>>>>>
> >>>>>>>>> As far as getting ideas as to what you are
> >>>>>>>>> actually doing: publish all your source so we can see for
> >>>>>>>>> ourselves so we don't have to guess.
> >>>>>>>>>
> >>>>>>>>> /Flibble
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> That would be 100,000-fold more complex then simply paying
> >>>>>>>> complete attention to what I am saying. Everyone that is not
> >>>>>>>> bright enough to understand 14 lines of code keeps saying
> >>>>>>>> that they could easily understand 250 pages of code, even
> >>>>>>>> though the 14 lines proves to be too much for them.
> >>>>>>>
> >>>>>>> Your code:
> >>>>>>>
> >>>>>>> call 000011a2 // call H
> >>>>>>>
> >>>>>>> is simply a function call into the address space of the
> >>>>>>> current process, it doesn't look like code to spawn a new
> >>>>>>> process to me.
> >>>>>>
> >>>>>> How many times do I have to say this before you notice that I
> >>>>>> said it at least once? H (in the current process) always
> >>>>>> creates a new process context to emulate its its input with an
> >>>>>> x86 emulator.
> >>>>>
> >>>>> I will have to take your word for it as you refuse to publish
> >>>>> source code. Why not just stick your project on GitHub? Open
> >>>>> source is de rigueur these days. What are you trying to hide?
> >>>>>
> >>>>> If a new process context is made then how is nested simulation
> >>>>> detected? I assume the data segment of each process is
> >>>>> private...
> >>>>>
> >>>>> /Flibble
> >>>>>
> >>>>
> >>>> An honest dialogue requires points of mutual agreement. The price
> >>>> of moving beyond H(P,P)==0 is universal agreement that H(P,P)==0
> >>>> is correct. The next point beyond H(P,P)==0 is computer science
> >>>> thus not appropriate for the C/C++ forum.
> >>>
> >>> I agree that H(P,P)==0 for pathological input assuming your method
> >>> for detecting pathological input is sufficiently robust however
> >>> how is that distinguished from H(P1,P1)==0 where P1 is normal
> >>> non-halting (i.e. non-pathological)?
> >>
> >> When-so-ever the correct and complete emulation of the input to H
> >> would never stop running H(x,y)==0 is correct.
> >>
> >>> If you are pattern matching op codes "EB FE" to detect the
> >>> infinite loop then how do you solve the problem of there being
> >>> 2^n different patterns equivalent to that loop so someone could
> >>> come along and write a pathological program that defeats your
> >>> pattern matcher? This is why we need your source code to answer
> >>> these kinds of questions.
> >>>
> >>> /Flibble
> >>>
> >>
> >> To refute all of the HP conventional proofs only requires correctly
> >> determining that H(P,P)==0.
> >
> > Are you using pattern matching to detect the infinite loop or not?
> >
> > /Flibble
> >
>
> Even if H(P,P) simply makes a wild guess that its input never halts
> H(P,P)==0 is correct because the correct and complete x86 emulation
> of this input would never stop running.

Click here to read the complete article

Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<J4WdnaSN1JolSgL_nZ2dnUU7_8xh4p2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21879&group=comp.lang.c#21879

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 17:56:56 -0500
Date: Tue, 7 Jun 2022 17:56:55 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220607234526.00001f04@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <J4WdnaSN1JolSgL_nZ2dnUU7_8xh4p2d@giganews.com>
Lines: 583
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-w3iLWvw/byvDMkvzxo46jOGTXul9u10CtW7xxchKHjtZBhwT0WWwWBgx3QhV4ntSA1WlIw7eZJJ/aJh!ZmDvzuJ9xeU8u/IZgWSZ/bRsc+Y3X33zFw3xRkafOT7/uvhmToN3TUIax96v5p4svLyN202dkdtd
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 32997
 by: olcott - Tue, 7 Jun 2022 22:56 UTC

On 6/7/2022 5:45 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 17:37:44 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 16:28:21 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a configuration
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for which δ is not defined; this is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a partial
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will assume
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that no transitions are defined for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine will halt whenever it
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> enters a final state.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a C
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function this means reaching the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "ret" instruction.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is not "ret". Instead, "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the stack is empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> way of saying the same thing.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM ceasing to calculate computation steps
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for some computation, and going on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead.  It
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does not mean: a) that the TM (doing the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted b)  that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
>>>>>>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
>>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>> is merely part of the TM, then the word
>>>>>>>>>>>>>>>>>>>>>>>>>>>> "halt" has a different meaning when applied
>>>>>>>>>>>>>>>>>>>>>>>>>>>> to that simulation part from when applied
>>>>>>>>>>>>>>>>>>>>>>>>>>>> to the entire TM.  I'm not even sure what
>>>>>>>>>>>>>>>>>>>>>>>>>>>> you mean when you say a part of a TM has
>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted or not halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I
>>>>>>>>>>>>>>>>>>>>>>>>>>> never talked about /part/ of a TM halting,
>>>>>>>>>>>>>>>>>>>>>>>>>>> and like you, I can't work out what that
>>>>>>>>>>>>>>>>>>>>>>>>>>> would mean!  I used "halt" only with
>>>>>>>>>>>>>>>>>>>>>>>>>>> respect to a computation, meaning that the
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n such that
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation step n is a TM final state].
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think
>>>>>>>>>>>>>>>>>>>>>>>>>>> that by your definition of simulation, the
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure" simulator
>>>>>>>>>>>>>>>>>>>>>>>>>>> that does nothing but simulate computation
>>>>>>>>>>>>>>>>>>>>>>>>>>> steps until the simulation halts, at which
>>>>>>>>>>>>>>>>>>>>>>>>>>> point the simulating TM halts (like a UTM).
>>>>>>>>>>>>>>>>>>>>>>>>>>> I get that with that interpretation what
>>>>>>>>>>>>>>>>>>>>>>>>>>> you said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is
>>>>>>>>>>>>>>>>>>>>>>>>>>> just one final state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd
>>>>>>>>>>>>>>>>>>>>>>>>>>> just say I don't think that usage of
>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
>>>>>>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about (so
>>>>>>>>>>>>>>>>>>>>>>>>>>> it would be wrong if applied PO's posts...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
>>>>>>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM which
>>>>>>>>>>>>>>>>>>>>>>>>>>> consists of calculating computation steps
>>>>>>>>>>>>>>>>>>>>>>>>>>> of some given computation.  As such it's
>>>>>>>>>>>>>>>>>>>>>>>>>>> just a part of the TM logic. A TM's typical
>>>>>>>>>>>>>>>>>>>>>>>>>>> use of simulation might be something like
>>>>>>>>>>>>>>>>>>>>>>>>>>> "..the TM simulates the computation for n
>>>>>>>>>>>>>>>>>>>>>>>>>>> steps, and if the simulation halts during
>>>>>>>>>>>>>>>>>>>>>>>>>>> those n steps, the TM [blah blah],
>>>>>>>>>>>>>>>>>>>>>>>>>>> /otherwise/ the TM [blah blah blah]...".
>>>>>>>>>>>>>>>>>>>>>>>>>>> Just about every reference in the
>>>>>>>>>>>>>>>>>>>>>>>>>>> literature I can recall is something like
>>>>>>>>>>>>>>>>>>>>>>>>>>> that.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>> is just the TM ceasing to calculate >>
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some computation, and
>>>>>>>>>>>>>>>>>>>>>>>>>>> going on to calculate >> something else
>>>>>>>>>>>>>>>>>>>>>>>>>>> instead.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts or
>>>>>>>>>>>>>>>>>>>>>>>>>>> enters an infinite loop.  (That logic is
>>>>>>>>>>>>>>>>>>>>>>>>>>> not part of the simulation, IMO.)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
>>>>>>>>>>>>>>>>>>>>>>>>>>> something else...
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation never halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples
>>>>>>>>>>>>>>>>>>>>>>>>>>> of a simulated computation P(I) might halt
>>>>>>>>>>>>>>>>>>>>>>>>>>> or never halt, and this is unaffected by a
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no further
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have spotted
>>>>>>>>>>>>>>>>>>>>>>>>>>> some pattern in the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>> which implies P(I) never halts - that is a
>>>>>>>>>>>>>>>>>>>>>>>>>>> separate matter, but for sure the mere act
>>>>>>>>>>>>>>>>>>>>>>>>>>> of "aborting" the simulation doesn't imply
>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) never halts, or imply that it halts...
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
>>>>>>>>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a
>>>>>>>>>>>>>>>>>>>>>>>>>>> TM halting mean?)
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
>>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
>>>>>>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
>>>>>>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
>>>>>>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
>>>>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
>>>>>>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
>>>>>>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
>>>>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
>>>>>>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my computation
>>>>>>>>>>>>>>>>>>>>>>>>> steps. Formally, these would be defined
>>>>>>>>>>>>>>>>>>>>>>>>> inductively via the rule to go from step n to
>>>>>>>>>>>>>>>>>>>>>>>>> step n+1. (Not an animation, but the induction
>>>>>>>>>>>>>>>>>>>>>>>>> gives some /sense/ of step-by-step
>>>>>>>>>>>>>>>>>>>>>>>>> calculation, and a simulator will follow
>>>>>>>>>>>>>>>>>>>>>>>>> this, starting at step 1, then calculate step
>>>>>>>>>>>>>>>>>>>>>>>>> 2 and so on. Still, I agree the entire
>>>>>>>>>>>>>>>>>>>>>>>>> sequence [the "computation"] exists as one
>>>>>>>>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract for PO...)
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate
>>>>>>>>>>>>>>>>>>>>>>>> the program under test with the test program
>>>>>>>>>>>>>>>>>>>>>>>> as a single computation then the whole idea of
>>>>>>>>>>>>>>>>>>>>>>>> a halt decider becomes less coherent and
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that
>>>>>>>>>>>>>>>>>>>>>>>> you don't already know that H(P,P)==0 is
>>>>>>>>>>>>>>>>>>>>>>>> correct and the H/P relationship matches the
>>>>>>>>>>>>>>>>>>>>>>>> halting problem counter example template.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
>>>>>>>>>>>>>>>>>>>>>>>> (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>       For any program H that might
>>>>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>>>>>>>       program P, called with some
>>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input to
>>>>>>>>>>>>>>>>>>>>>>>>       H and then specifically do the
>>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>>>>>>       can exist that handles this
>>>>>>>>>>>>>>>>>>>>>>>> case.
>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
>>>>>>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties in
>>>>>>>>>>>>>>>>>>>>>>>>>> the same way that elaborating an infinite sum
>>>>>>>>>>>>>>>>>>>>>>>>>> or sequence does in math classes. An
>>>>>>>>>>>>>>>>>>>>>>>>>> (ultimate) value only exists if there is
>>>>>>>>>>>>>>>>>>>>>>>>>> some notation of convergence or limit which
>>>>>>>>>>>>>>>>>>>>>>>>>> typically is the case with examples used in
>>>>>>>>>>>>>>>>>>>>>>>>>> a math class. There is no definition of
>>>>>>>>>>>>>>>>>>>>>>>>>> convergence or limit with the sequence
>>>>>>>>>>>>>>>>>>>>>>>>>> defined by TM(STRING); rather, we simply ask
>>>>>>>>>>>>>>>>>>>>>>>>>> about the last pair if the sequence is
>>>>>>>>>>>>>>>>>>>>>>>>>> finite.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would call
>>>>>>>>>>>>>>>>>>>>>>>>> a TM which evaluates the first 10 steps of a
>>>>>>>>>>>>>>>>>>>>>>>>> computation, and then does something else.
>>>>>>>>>>>>>>>>>>>>>>>>> What is it doing while evaluating those 10
>>>>>>>>>>>>>>>>>>>>>>>>> steps?
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating"
>>>>>>>>>>>>>>>>>>>>>>>>> the computation (just for 10 steps) - then it
>>>>>>>>>>>>>>>>>>>>>>>>> stops simulating and does something else.
>>>>>>>>>>>>>>>>>>>>>>>>> Obviously I wouldn't describe it as
>>>>>>>>>>>>>>>>>>>>>>>>> "correctly" simulating, because nobody
>>>>>>>>>>>>>>>>>>>>>>>>> considers incorrect simulations, so the word
>>>>>>>>>>>>>>>>>>>>>>>>> would be redundant!
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are making
>>>>>>>>>>>>>>>>>>>>>>>> their best possible effort to form rebuttals
>>>>>>>>>>>>>>>>>>>>>>>> and the most persistent of the fake rebuttals
>>>>>>>>>>>>>>>>>>>>>>>> has been that the simulation is incorrect. It
>>>>>>>>>>>>>>>>>>>>>>>> is very easy to verify the correct x86
>>>>>>>>>>>>>>>>>>>>>>>> emulation on the basis of the x86 language.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
>>>>>>>>>>>>>>>>>>>>>>> simulation needs show the same behavior of the
>>>>>>>>>>>>>>>>>>>>>>> thing it is simulating.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot
>>>>>>>>>>>>>>>>>>>>>> is trying to claim that it is utterly impossible
>>>>>>>>>>>>>>>>>>>>>> to create a C program that examines the x86
>>>>>>>>>>>>>>>>>>>>>> execution trace derived from simulating the
>>>>>>>>>>>>>>>>>>>>>> input to H0(Infinite_Loop) with an x86 emulator
>>>>>>>>>>>>>>>>>>>>>> to correctly determine that Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>> infinitely loops.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
>>>>>>>>>>>>>>>>>>>>>> Trace Stored at:212343
>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
>>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>>>> Local Halt Decider: Infinite Loop Detected
>>>>>>>>>>>>>>>>>>>>>> Simulation Stopped
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
>>>>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
>>>>>>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
>>>>>>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
>>>>>>>>>>>>>>>>>> have no idea that a correct x86 emulation of
>>>>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at machine
>>>>>>>>>>>>>>>>>> address [00001345] or not.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation of
>>>>>>>>>>>>>>>>>> Infinite_Loop might instead involve emulating an
>>>>>>>>>>>>>>>>>> entirely different function that plays tic-tac-toe?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
>>>>>>>>>>>>>>>>> your program and trace are not telling the full story
>>>>>>>>>>>>>>>>> as far as the HP proofs are concerned;
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The only thing that my program trace conclusively
>>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return value
>>>>>>>>>>>>>>>> that does correctly correspond to the actual behavior
>>>>>>>>>>>>>>>> of the actual input.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> For any program H that might determine if
>>>>>>>>>>>>>>>> programs halt, a "pathological"
>>>>>>>>>>>>>>>> program P, called with some input, can
>>>>>>>>>>>>>>>> pass its own source and its input to
>>>>>>>>>>>>>>>> H and then specifically do the opposite of
>>>>>>>>>>>>>>>> what H predicts P will do. No H
>>>>>>>>>>>>>>>> can exist that handles this case.
>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>> if (H(x, x))
>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>> return;
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> _P()
>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>>>>>>>>>> [00001358](01) 50 push eax // push P
>>>>>>>>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
>>>>>>>>>>>>>>>> [0000135c](01) 51 push ecx // push P
>>>>>>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
>>>>>>>>>>>>>>>> [00001362](03) 83c408 add esp,+08
>>>>>>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
>>>>>>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
>>>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
>>>>>>>>>>>>>>>> [0000136c](01) c3 ret
>>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
>>>>>>>>>>>>>>>> emulates its input that it must emulate the first seven
>>>>>>>>>>>>>>>> instructions of P. Because the seventh instruction of P
>>>>>>>>>>>>>>>> repeats this process we can know with complete
>>>>>>>>>>>>>>>> certainty that the emulated P never reaches its final
>>>>>>>>>>>>>>>> “ret” instruction, thus never halts.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> But the halting problem proofs (including [Strachey
>>>>>>>>>>>>>>> 1965]) that you are trying to refute don't do that,
>>>>>>>>>>>>>>> they DO NOT make any recursive calls
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Because the idea of a simulating halt decider being
>>>>>>>>>>>>>> applied to the halting problem counter-example is brand
>>>>>>>>>>>>>> new with me you won't find other references that refer
>>>>>>>>>>>>>> to "infinitely nested simulation".
>>>>>>>>>>>>>>> which is what you are doing with "call H" above. Why are
>>>>>>>>>>>>>>> you doing something different to what the proofs you are
>>>>>>>>>>>>>>> trying to refute do given doing so is no longer related
>>>>>>>>>>>>>>> to the Halting Problem?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The proofs never bothered to examine my idea because it
>>>>>>>>>>>>>> was unknown by everyone prior to me creating it in 2016.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> It seems to me that your idea would only be novel because
>>>>>>>>>>>>> it is a mistake. Your mistake is to have the candidate
>>>>>>>>>>>>> program call into the SAME INSTANCE of the decider which
>>>>>>>>>>>>> is deciding the candidate program.
>>>>>>>>>>>>
>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
>>>>>>>>>>>> Whenever H simulates its input it creates a whole new
>>>>>>>>>>>> process context.
>>>>>>>>>>>
>>>>>>>>>>> You cannot make a direct function call into another process;
>>>>>>>>>>> it has to be the same process.
>>>>>>>>>>
>>>>>>>>>> As I have said very many hundreds of times I created the
>>>>>>>>>> x86utm operating system that enables any C function to
>>>>>>>>>> execute another C function using an x86 emulator.
>>>>>>>>>>
>>>>>>>>>> In the case of H(P,P) H creates a separate process context to
>>>>>>>>>> simulate its input every time that it is invoked, thus
>>>>>>>>>> subsequent invocations of H(P,P) execute in the process
>>>>>>>>>> context that was previously created.
>>>>>>>>>>
>>>>>>>>>>> As far as getting ideas as to what you are
>>>>>>>>>>> actually doing: publish all your source so we can see for
>>>>>>>>>>> ourselves so we don't have to guess.
>>>>>>>>>>>
>>>>>>>>>>> /Flibble
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> That would be 100,000-fold more complex then simply paying
>>>>>>>>>> complete attention to what I am saying. Everyone that is not
>>>>>>>>>> bright enough to understand 14 lines of code keeps saying
>>>>>>>>>> that they could easily understand 250 pages of code, even
>>>>>>>>>> though the 14 lines proves to be too much for them.
>>>>>>>>>
>>>>>>>>> Your code:
>>>>>>>>>
>>>>>>>>> call 000011a2 // call H
>>>>>>>>>
>>>>>>>>> is simply a function call into the address space of the
>>>>>>>>> current process, it doesn't look like code to spawn a new
>>>>>>>>> process to me.
>>>>>>>>
>>>>>>>> How many times do I have to say this before you notice that I
>>>>>>>> said it at least once? H (in the current process) always
>>>>>>>> creates a new process context to emulate its its input with an
>>>>>>>> x86 emulator.
>>>>>>>
>>>>>>> I will have to take your word for it as you refuse to publish
>>>>>>> source code. Why not just stick your project on GitHub? Open
>>>>>>> source is de rigueur these days. What are you trying to hide?
>>>>>>>
>>>>>>> If a new process context is made then how is nested simulation
>>>>>>> detected? I assume the data segment of each process is
>>>>>>> private...
>>>>>>>
>>>>>>> /Flibble
>>>>>>>
>>>>>>
>>>>>> An honest dialogue requires points of mutual agreement. The price
>>>>>> of moving beyond H(P,P)==0 is universal agreement that H(P,P)==0
>>>>>> is correct. The next point beyond H(P,P)==0 is computer science
>>>>>> thus not appropriate for the C/C++ forum.
>>>>>
>>>>> I agree that H(P,P)==0 for pathological input assuming your method
>>>>> for detecting pathological input is sufficiently robust however
>>>>> how is that distinguished from H(P1,P1)==0 where P1 is normal
>>>>> non-halting (i.e. non-pathological)?
>>>>
>>>> When-so-ever the correct and complete emulation of the input to H
>>>> would never stop running H(x,y)==0 is correct.
>>>>
>>>>> If you are pattern matching op codes "EB FE" to detect the
>>>>> infinite loop then how do you solve the problem of there being
>>>>> 2^n different patterns equivalent to that loop so someone could
>>>>> come along and write a pathological program that defeats your
>>>>> pattern matcher? This is why we need your source code to answer
>>>>> these kinds of questions.
>>>>>
>>>>> /Flibble
>>>>>
>>>>
>>>> To refute all of the HP conventional proofs only requires correctly
>>>> determining that H(P,P)==0.
>>>
>>> Are you using pattern matching to detect the infinite loop or not?
>>>
>>> /Flibble
>>>
>>
>> Even if H(P,P) simply makes a wild guess that its input never halts
>> H(P,P)==0 is correct because the correct and complete x86 emulation
>> of this input would never stop running.
>
> How do you KNOW it would never stop running? Given
>
> void P(u32 x)
> {
> if (H(x, x))
> FUBAR(); // a disguised infinite loop
> return;
> }
>


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220608000053.0000143b@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21880&group=comp.lang.c#21880

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!news.neodome.net!feeder1.feed.usenet.farm!feed.usenet.farm!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220608000053.0000143b@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<J4WdnaSN1JolSgL_nZ2dnUU7_8xh4p2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 596
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 23:00:53 UTC
Date: Wed, 8 Jun 2022 00:00:53 +0100
X-Received-Bytes: 34387
 by: Mr Flibble - Tue, 7 Jun 2022 23:00 UTC

On Tue, 7 Jun 2022 17:56:55 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 5:45 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 17:37:44 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 5:08 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 16:28:21 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 16:01:53 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible because
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> we will assume that no
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> transitions are defined for any
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state so the Turing machine
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state. (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to Formal Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a C
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function this means reaching the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "ret" instruction.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret". Instead,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "not defined" should include at
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the stack is empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> way of saying the same thing.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM ceasing to calculate computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps for some computation, and going
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> on to calculate something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> It does not mean: a) that the TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted b)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation halts c)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is merely part of the TM,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> then the word "halt" has a different
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> meaning when applied to that simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> part from when applied to the entire TM.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> I'm not even sure what you mean when
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> you say a part of a TM has halted or not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes
> >>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>> halting, and like you, I can't work out
> >>>>>>>>>>>>>>>>>>>>>>>>>>> what that would mean!  I used "halt" only
> >>>>>>>>>>>>>>>>>>>>>>>>>>> with respect to a computation, meaning
> >>>>>>>>>>>>>>>>>>>>>>>>>>> that the computation halts [there is an n
> >>>>>>>>>>>>>>>>>>>>>>>>>>> such that computation step n is a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>> final state].
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I
> >>>>>>>>>>>>>>>>>>>>>>>>>>> think that by your definition of
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, the simulating TM must be a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> "pure" simulator that does nothing but
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulate computation steps until the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts, at which point the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM). I get
> >>>>>>>>>>>>>>>>>>>>>>>>>>> that with that interpretation what you
> >>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>> is just one final state of a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>> machine, >>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.
> >>>>>>>>>>>>>>>>>>>>>>>>>>> I'd just say I don't think that usage of
> >>>>>>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
> >>>>>>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about
> >>>>>>>>>>>>>>>>>>>>>>>>>>> (so it would be wrong if applied PO's
> >>>>>>>>>>>>>>>>>>>>>>>>>>> posts...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>> which consists of calculating computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>> steps of some given computation.  As such
> >>>>>>>>>>>>>>>>>>>>>>>>>>> it's just a part of the TM logic. A TM's
> >>>>>>>>>>>>>>>>>>>>>>>>>>> typical use of simulation might be
> >>>>>>>>>>>>>>>>>>>>>>>>>>> something like "..the TM simulates the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation for n steps, and if the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts during those n steps,
> >>>>>>>>>>>>>>>>>>>>>>>>>>> the TM [blah blah], /otherwise/ the TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>> [blah blah blah]...". Just about every
> >>>>>>>>>>>>>>>>>>>>>>>>>>> reference in the literature I can recall
> >>>>>>>>>>>>>>>>>>>>>>>>>>> is something like that.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
> >>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for some
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to calculate >>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts or
> >>>>>>>>>>>>>>>>>>>>>>>>>>> enters an infinite loop.  (That logic is
> >>>>>>>>>>>>>>>>>>>>>>>>>>> not part of the simulation, IMO.)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>> something else...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples
> >>>>>>>>>>>>>>>>>>>>>>>>>>> of a simulated computation P(I) might halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>> or never halt, and this is unaffected by a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no
> >>>>>>>>>>>>>>>>>>>>>>>>>>> further computation steps. [The TM may
> >>>>>>>>>>>>>>>>>>>>>>>>>>> have spotted some pattern in the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation which implies P(I)
> >>>>>>>>>>>>>>>>>>>>>>>>>>> never halts - that is a separate matter,
> >>>>>>>>>>>>>>>>>>>>>>>>>>> but for sure the mere act of "aborting"
> >>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation doesn't imply P(I) never
> >>>>>>>>>>>>>>>>>>>>>>>>>>> halts, or imply that it halts...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
> >>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
> >>>>>>>>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> TM halting mean?)
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
> >>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
> >>>>>>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
> >>>>>>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
> >>>>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
> >>>>>>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
> >>>>>>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
> >>>>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
> >>>>>>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my
> >>>>>>>>>>>>>>>>>>>>>>>>> computation steps. Formally, these would be
> >>>>>>>>>>>>>>>>>>>>>>>>> defined inductively via the rule to go from
> >>>>>>>>>>>>>>>>>>>>>>>>> step n to step n+1. (Not an animation, but
> >>>>>>>>>>>>>>>>>>>>>>>>> the induction gives some /sense/ of
> >>>>>>>>>>>>>>>>>>>>>>>>> step-by-step calculation, and a simulator
> >>>>>>>>>>>>>>>>>>>>>>>>> will follow this, starting at step 1, then
> >>>>>>>>>>>>>>>>>>>>>>>>> calculate step 2 and so on. Still, I agree
> >>>>>>>>>>>>>>>>>>>>>>>>> the entire sequence [the "computation"]
> >>>>>>>>>>>>>>>>>>>>>>>>> exists as one timeless structure.  Too
> >>>>>>>>>>>>>>>>>>>>>>>>> abstract for PO...)
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate
> >>>>>>>>>>>>>>>>>>>>>>>> the program under test with the test program
> >>>>>>>>>>>>>>>>>>>>>>>> as a single computation then the whole idea
> >>>>>>>>>>>>>>>>>>>>>>>> of a halt decider becomes less coherent and
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that
> >>>>>>>>>>>>>>>>>>>>>>>> you don't already know that H(P,P)==0 is
> >>>>>>>>>>>>>>>>>>>>>>>> correct and the H/P relationship matches the
> >>>>>>>>>>>>>>>>>>>>>>>> halting problem counter example template.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>       For any program H that might
> >>>>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>>>>>>>>>       program P, called with some
> >>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input
> >>>>>>>>>>>>>>>>>>>>>>>> to H and then specifically do the
> >>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>>>>>>>       can exist that handles this
> >>>>>>>>>>>>>>>>>>>>>>>> case.
> >>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
> >>>>>>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties
> >>>>>>>>>>>>>>>>>>>>>>>>>> in the same way that elaborating an
> >>>>>>>>>>>>>>>>>>>>>>>>>> infinite sum or sequence does in math
> >>>>>>>>>>>>>>>>>>>>>>>>>> classes. An (ultimate) value only exists
> >>>>>>>>>>>>>>>>>>>>>>>>>> if there is some notation of convergence
> >>>>>>>>>>>>>>>>>>>>>>>>>> or limit which typically is the case with
> >>>>>>>>>>>>>>>>>>>>>>>>>> examples used in a math class. There is no
> >>>>>>>>>>>>>>>>>>>>>>>>>> definition of convergence or limit with
> >>>>>>>>>>>>>>>>>>>>>>>>>> the sequence defined by TM(STRING);
> >>>>>>>>>>>>>>>>>>>>>>>>>> rather, we simply ask about the last pair
> >>>>>>>>>>>>>>>>>>>>>>>>>> if the sequence is finite.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would
> >>>>>>>>>>>>>>>>>>>>>>>>> call a TM which evaluates the first 10
> >>>>>>>>>>>>>>>>>>>>>>>>> steps of a computation, and then does
> >>>>>>>>>>>>>>>>>>>>>>>>> something else. What is it doing while
> >>>>>>>>>>>>>>>>>>>>>>>>> evaluating those 10 steps?
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
> >>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for 10
> >>>>>>>>>>>>>>>>>>>>>>>>> steps) - then it stops simulating and does
> >>>>>>>>>>>>>>>>>>>>>>>>> something else. Obviously I wouldn't
> >>>>>>>>>>>>>>>>>>>>>>>>> describe it as "correctly" simulating,
> >>>>>>>>>>>>>>>>>>>>>>>>> because nobody considers incorrect
> >>>>>>>>>>>>>>>>>>>>>>>>> simulations, so the word would be
> >>>>>>>>>>>>>>>>>>>>>>>>> redundant!
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
> >>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to form
> >>>>>>>>>>>>>>>>>>>>>>>> rebuttals and the most persistent of the
> >>>>>>>>>>>>>>>>>>>>>>>> fake rebuttals has been that the simulation
> >>>>>>>>>>>>>>>>>>>>>>>> is incorrect. It is very easy to verify the
> >>>>>>>>>>>>>>>>>>>>>>>> correct x86 emulation on the basis of the
> >>>>>>>>>>>>>>>>>>>>>>>> x86 language.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
> >>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
> >>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot
> >>>>>>>>>>>>>>>>>>>>>> is trying to claim that it is utterly
> >>>>>>>>>>>>>>>>>>>>>> impossible to create a C program that examines
> >>>>>>>>>>>>>>>>>>>>>> the x86 execution trace derived from
> >>>>>>>>>>>>>>>>>>>>>> simulating the input to H0(Infinite_Loop) with
> >>>>>>>>>>>>>>>>>>>>>> an x86 emulator to correctly determine that
> >>>>>>>>>>>>>>>>>>>>>> Infinite_Loop() infinitely loops.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
> >>>>>>>>>>>>>>>>>>>>>> Trace Stored at:212343
> >>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe
> >>>>>>>>>>>>>>>>>>>>>> jmp 00001345 Local Halt Decider: Infinite Loop
> >>>>>>>>>>>>>>>>>>>>>> Detected Simulation Stopped
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
> >>>>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
> >>>>>>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
> >>>>>>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
> >>>>>>>>>>>>>>>>>> have no idea that a correct x86 emulation of
> >>>>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at
> >>>>>>>>>>>>>>>>>> machine address [00001345] or not.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation
> >>>>>>>>>>>>>>>>>> of Infinite_Loop might instead involve emulating an
> >>>>>>>>>>>>>>>>>> entirely different function that plays
> >>>>>>>>>>>>>>>>>> tic-tac-toe?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
> >>>>>>>>>>>>>>>>> your program and trace are not telling the full
> >>>>>>>>>>>>>>>>> story as far as the HP proofs are concerned;
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> The only thing that my program trace conclusively
> >>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return value
> >>>>>>>>>>>>>>>> that does correctly correspond to the actual behavior
> >>>>>>>>>>>>>>>> of the actual input.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> For any program H that might determine
> >>>>>>>>>>>>>>>> if programs halt, a "pathological"
> >>>>>>>>>>>>>>>> program P, called with some input, can
> >>>>>>>>>>>>>>>> pass its own source and its input to
> >>>>>>>>>>>>>>>> H and then specifically do the
> >>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>> can exist that handles this case.
> >>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> if (H(x, x))
> >>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>> return;
> >>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P,
> >>>>>>>>>>>>>>>> (u32)P)); }
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> _P()
> >>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>>>>>>>>>>>> [00001358](01) 50 push eax //
> >>>>>>>>>>>>>>>> push P [00001359](03) 8b4d08 mov
> >>>>>>>>>>>>>>>> ecx,[ebp+08] [0000135c](01) 51 push
> >>>>>>>>>>>>>>>> ecx // push P [0000135d](05) e840feffff
> >>>>>>>>>>>>>>>> call 000011a2 // call H [00001362](03) 83c408
> >>>>>>>>>>>>>>>> add esp,+08 [00001365](02) 85c0 test
> >>>>>>>>>>>>>>>> eax,eax [00001367](02) 7402 jz 0000136b
> >>>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
> >>>>>>>>>>>>>>>> [0000136c](01) c3 ret
> >>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
> >>>>>>>>>>>>>>>> emulates its input that it must emulate the first
> >>>>>>>>>>>>>>>> seven instructions of P. Because the seventh
> >>>>>>>>>>>>>>>> instruction of P repeats this process we can know
> >>>>>>>>>>>>>>>> with complete certainty that the emulated P never
> >>>>>>>>>>>>>>>> reaches its final “ret” instruction, thus never
> >>>>>>>>>>>>>>>> halts.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> But the halting problem proofs (including [Strachey
> >>>>>>>>>>>>>>> 1965]) that you are trying to refute don't do that,
> >>>>>>>>>>>>>>> they DO NOT make any recursive calls
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Because the idea of a simulating halt decider being
> >>>>>>>>>>>>>> applied to the halting problem counter-example is brand
> >>>>>>>>>>>>>> new with me you won't find other references that refer
> >>>>>>>>>>>>>> to "infinitely nested simulation".
> >>>>>>>>>>>>>>> which is what you are doing with "call H" above. Why
> >>>>>>>>>>>>>>> are you doing something different to what the proofs
> >>>>>>>>>>>>>>> you are trying to refute do given doing so is no
> >>>>>>>>>>>>>>> longer related to the Halting Problem?
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> The proofs never bothered to examine my idea because it
> >>>>>>>>>>>>>> was unknown by everyone prior to me creating it in
> >>>>>>>>>>>>>> 2016.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> It seems to me that your idea would only be novel
> >>>>>>>>>>>>> because it is a mistake. Your mistake is to have the
> >>>>>>>>>>>>> candidate program call into the SAME INSTANCE of the
> >>>>>>>>>>>>> decider which is deciding the candidate program.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Where the Hell did you ever get this idea from ?
> >>>>>>>>>>>> Whenever H simulates its input it creates a whole new
> >>>>>>>>>>>> process context.
> >>>>>>>>>>>
> >>>>>>>>>>> You cannot make a direct function call into another
> >>>>>>>>>>> process; it has to be the same process.
> >>>>>>>>>>
> >>>>>>>>>> As I have said very many hundreds of times I created the
> >>>>>>>>>> x86utm operating system that enables any C function to
> >>>>>>>>>> execute another C function using an x86 emulator.
> >>>>>>>>>>
> >>>>>>>>>> In the case of H(P,P) H creates a separate process context
> >>>>>>>>>> to simulate its input every time that it is invoked, thus
> >>>>>>>>>> subsequent invocations of H(P,P) execute in the process
> >>>>>>>>>> context that was previously created.
> >>>>>>>>>>
> >>>>>>>>>>> As far as getting ideas as to what you are
> >>>>>>>>>>> actually doing: publish all your source so we can see for
> >>>>>>>>>>> ourselves so we don't have to guess.
> >>>>>>>>>>>
> >>>>>>>>>>> /Flibble
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> That would be 100,000-fold more complex then simply paying
> >>>>>>>>>> complete attention to what I am saying. Everyone that is
> >>>>>>>>>> not bright enough to understand 14 lines of code keeps
> >>>>>>>>>> saying that they could easily understand 250 pages of
> >>>>>>>>>> code, even though the 14 lines proves to be too much for
> >>>>>>>>>> them.
> >>>>>>>>>
> >>>>>>>>> Your code:
> >>>>>>>>>
> >>>>>>>>> call 000011a2 // call H
> >>>>>>>>>
> >>>>>>>>> is simply a function call into the address space of the
> >>>>>>>>> current process, it doesn't look like code to spawn a new
> >>>>>>>>> process to me.
> >>>>>>>>
> >>>>>>>> How many times do I have to say this before you notice that I
> >>>>>>>> said it at least once? H (in the current process) always
> >>>>>>>> creates a new process context to emulate its its input with
> >>>>>>>> an x86 emulator.
> >>>>>>>
> >>>>>>> I will have to take your word for it as you refuse to publish
> >>>>>>> source code. Why not just stick your project on GitHub? Open
> >>>>>>> source is de rigueur these days. What are you trying to hide?
> >>>>>>>
> >>>>>>> If a new process context is made then how is nested simulation
> >>>>>>> detected? I assume the data segment of each process is
> >>>>>>> private...
> >>>>>>>
> >>>>>>> /Flibble
> >>>>>>>
> >>>>>>
> >>>>>> An honest dialogue requires points of mutual agreement. The
> >>>>>> price of moving beyond H(P,P)==0 is universal agreement that
> >>>>>> H(P,P)==0 is correct. The next point beyond H(P,P)==0 is
> >>>>>> computer science thus not appropriate for the C/C++ forum.
> >>>>>
> >>>>> I agree that H(P,P)==0 for pathological input assuming your
> >>>>> method for detecting pathological input is sufficiently robust
> >>>>> however how is that distinguished from H(P1,P1)==0 where P1 is
> >>>>> normal non-halting (i.e. non-pathological)?
> >>>>
> >>>> When-so-ever the correct and complete emulation of the input to H
> >>>> would never stop running H(x,y)==0 is correct.
> >>>>
> >>>>> If you are pattern matching op codes "EB FE" to detect the
> >>>>> infinite loop then how do you solve the problem of there being
> >>>>> 2^n different patterns equivalent to that loop so someone could
> >>>>> come along and write a pathological program that defeats your
> >>>>> pattern matcher? This is why we need your source code to answer
> >>>>> these kinds of questions.
> >>>>>
> >>>>> /Flibble
> >>>>>
> >>>>
> >>>> To refute all of the HP conventional proofs only requires
> >>>> correctly determining that H(P,P)==0.
> >>>
> >>> Are you using pattern matching to detect the infinite loop or not?
> >>>
> >>> /Flibble
> >>>
> >>
> >> Even if H(P,P) simply makes a wild guess that its input never halts
> >> H(P,P)==0 is correct because the correct and complete x86 emulation
> >> of this input would never stop running.
> >
> > How do you KNOW it would never stop running? Given
> >
> > void P(u32 x)
> > {
> > if (H(x, x))
> > FUBAR(); // a disguised infinite loop
> > return;
> > }
> >
>
> It also looks inside FUBAR()


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21881&group=comp.lang.c#21881

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 18:01:26 -0500
Date: Tue, 7 Jun 2022 18:01:25 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220606174525.0000745f@reddwarf.jmc>
<ptmdnVhrKoWLrwP_nZ2dnUU7_81g4p2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220607234526.00001f04@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
Lines: 573
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-K8xnyQHBTfEttsqb4cpLUa/eHfHTQ3cZiS/RHWPoYQtSOFyY4tMQrgJEnfITmNWIupt8/bmrvrFe1qh!gNmgTBDIadLWvB6xWrguZ330kcFE0GZ1mAGlflOaJYKEkBwEIbR2TtoEZCq3rUit/lcJnff+dRMq
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 32812
 by: olcott - Tue, 7 Jun 2022 23:01 UTC

On 6/7/2022 5:45 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 17:37:44 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 16:28:21 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000, olcott
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a configuration
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for which δ is not defined; this is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a partial
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will assume
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that no transitions are defined for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the Turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine will halt whenever it
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> enters a final state.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formal Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a C
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function this means reaching the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "ret" instruction.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not defined"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is not "ret". Instead, "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" should include at least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the stack is empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> way of saying the same thing.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one final
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM ceasing to calculate computation steps
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for some computation, and going on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead.  It
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does not mean: a) that the TM (doing the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted b)  that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts c)  that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
>>>>>>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
>>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>> is merely part of the TM, then the word
>>>>>>>>>>>>>>>>>>>>>>>>>>>> "halt" has a different meaning when applied
>>>>>>>>>>>>>>>>>>>>>>>>>>>> to that simulation part from when applied
>>>>>>>>>>>>>>>>>>>>>>>>>>>> to the entire TM.  I'm not even sure what
>>>>>>>>>>>>>>>>>>>>>>>>>>>> you mean when you say a part of a TM has
>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted or not halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes - I
>>>>>>>>>>>>>>>>>>>>>>>>>>> never talked about /part/ of a TM halting,
>>>>>>>>>>>>>>>>>>>>>>>>>>> and like you, I can't work out what that
>>>>>>>>>>>>>>>>>>>>>>>>>>> would mean!  I used "halt" only with
>>>>>>>>>>>>>>>>>>>>>>>>>>> respect to a computation, meaning that the
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n such that
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation step n is a TM final state].
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I think
>>>>>>>>>>>>>>>>>>>>>>>>>>> that by your definition of simulation, the
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure" simulator
>>>>>>>>>>>>>>>>>>>>>>>>>>> that does nothing but simulate computation
>>>>>>>>>>>>>>>>>>>>>>>>>>> steps until the simulation halts, at which
>>>>>>>>>>>>>>>>>>>>>>>>>>> point the simulating TM halts (like a UTM).
>>>>>>>>>>>>>>>>>>>>>>>>>>> I get that with that interpretation what
>>>>>>>>>>>>>>>>>>>>>>>>>>> you said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation is
>>>>>>>>>>>>>>>>>>>>>>>>>>> just one final state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.  I'd
>>>>>>>>>>>>>>>>>>>>>>>>>>> just say I don't think that usage of
>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
>>>>>>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about (so
>>>>>>>>>>>>>>>>>>>>>>>>>>> it would be wrong if applied PO's posts...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
>>>>>>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM which
>>>>>>>>>>>>>>>>>>>>>>>>>>> consists of calculating computation steps
>>>>>>>>>>>>>>>>>>>>>>>>>>> of some given computation.  As such it's
>>>>>>>>>>>>>>>>>>>>>>>>>>> just a part of the TM logic. A TM's typical
>>>>>>>>>>>>>>>>>>>>>>>>>>> use of simulation might be something like
>>>>>>>>>>>>>>>>>>>>>>>>>>> "..the TM simulates the computation for n
>>>>>>>>>>>>>>>>>>>>>>>>>>> steps, and if the simulation halts during
>>>>>>>>>>>>>>>>>>>>>>>>>>> those n steps, the TM [blah blah],
>>>>>>>>>>>>>>>>>>>>>>>>>>> /otherwise/ the TM [blah blah blah]...".
>>>>>>>>>>>>>>>>>>>>>>>>>>> Just about every reference in the
>>>>>>>>>>>>>>>>>>>>>>>>>>> literature I can recall is something like
>>>>>>>>>>>>>>>>>>>>>>>>>>> that.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>> is just the TM ceasing to calculate >>
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some computation, and
>>>>>>>>>>>>>>>>>>>>>>>>>>> going on to calculate >> something else
>>>>>>>>>>>>>>>>>>>>>>>>>>> instead.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts or
>>>>>>>>>>>>>>>>>>>>>>>>>>> enters an infinite loop.  (That logic is
>>>>>>>>>>>>>>>>>>>>>>>>>>> not part of the simulation, IMO.)
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
>>>>>>>>>>>>>>>>>>>>>>>>>>> something else...
>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation never halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples
>>>>>>>>>>>>>>>>>>>>>>>>>>> of a simulated computation P(I) might halt
>>>>>>>>>>>>>>>>>>>>>>>>>>> or never halt, and this is unaffected by a
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no further
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have spotted
>>>>>>>>>>>>>>>>>>>>>>>>>>> some pattern in the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>> which implies P(I) never halts - that is a
>>>>>>>>>>>>>>>>>>>>>>>>>>> separate matter, but for sure the mere act
>>>>>>>>>>>>>>>>>>>>>>>>>>> of "aborting" the simulation doesn't imply
>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) never halts, or imply that it halts...
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
>>>>>>>>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a
>>>>>>>>>>>>>>>>>>>>>>>>>>> TM halting mean?)
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
>>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
>>>>>>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
>>>>>>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
>>>>>>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
>>>>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
>>>>>>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
>>>>>>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
>>>>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
>>>>>>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my computation
>>>>>>>>>>>>>>>>>>>>>>>>> steps. Formally, these would be defined
>>>>>>>>>>>>>>>>>>>>>>>>> inductively via the rule to go from step n to
>>>>>>>>>>>>>>>>>>>>>>>>> step n+1. (Not an animation, but the induction
>>>>>>>>>>>>>>>>>>>>>>>>> gives some /sense/ of step-by-step
>>>>>>>>>>>>>>>>>>>>>>>>> calculation, and a simulator will follow
>>>>>>>>>>>>>>>>>>>>>>>>> this, starting at step 1, then calculate step
>>>>>>>>>>>>>>>>>>>>>>>>> 2 and so on. Still, I agree the entire
>>>>>>>>>>>>>>>>>>>>>>>>> sequence [the "computation"] exists as one
>>>>>>>>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract for PO...)
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate
>>>>>>>>>>>>>>>>>>>>>>>> the program under test with the test program
>>>>>>>>>>>>>>>>>>>>>>>> as a single computation then the whole idea of
>>>>>>>>>>>>>>>>>>>>>>>> a halt decider becomes less coherent and
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that
>>>>>>>>>>>>>>>>>>>>>>>> you don't already know that H(P,P)==0 is
>>>>>>>>>>>>>>>>>>>>>>>> correct and the H/P relationship matches the
>>>>>>>>>>>>>>>>>>>>>>>> halting problem counter example template.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ", H((u32)P,
>>>>>>>>>>>>>>>>>>>>>>>> (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>       For any program H that might
>>>>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>>>>>>>       program P, called with some
>>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input to
>>>>>>>>>>>>>>>>>>>>>>>>       H and then specifically do the
>>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>>>>>>       can exist that handles this
>>>>>>>>>>>>>>>>>>>>>>>> case.
>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
>>>>>>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties in
>>>>>>>>>>>>>>>>>>>>>>>>>> the same way that elaborating an infinite sum
>>>>>>>>>>>>>>>>>>>>>>>>>> or sequence does in math classes. An
>>>>>>>>>>>>>>>>>>>>>>>>>> (ultimate) value only exists if there is
>>>>>>>>>>>>>>>>>>>>>>>>>> some notation of convergence or limit which
>>>>>>>>>>>>>>>>>>>>>>>>>> typically is the case with examples used in
>>>>>>>>>>>>>>>>>>>>>>>>>> a math class. There is no definition of
>>>>>>>>>>>>>>>>>>>>>>>>>> convergence or limit with the sequence
>>>>>>>>>>>>>>>>>>>>>>>>>> defined by TM(STRING); rather, we simply ask
>>>>>>>>>>>>>>>>>>>>>>>>>> about the last pair if the sequence is
>>>>>>>>>>>>>>>>>>>>>>>>>> finite.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would call
>>>>>>>>>>>>>>>>>>>>>>>>> a TM which evaluates the first 10 steps of a
>>>>>>>>>>>>>>>>>>>>>>>>> computation, and then does something else.
>>>>>>>>>>>>>>>>>>>>>>>>> What is it doing while evaluating those 10
>>>>>>>>>>>>>>>>>>>>>>>>> steps?
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's "simulating"
>>>>>>>>>>>>>>>>>>>>>>>>> the computation (just for 10 steps) - then it
>>>>>>>>>>>>>>>>>>>>>>>>> stops simulating and does something else.
>>>>>>>>>>>>>>>>>>>>>>>>> Obviously I wouldn't describe it as
>>>>>>>>>>>>>>>>>>>>>>>>> "correctly" simulating, because nobody
>>>>>>>>>>>>>>>>>>>>>>>>> considers incorrect simulations, so the word
>>>>>>>>>>>>>>>>>>>>>>>>> would be redundant!
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are making
>>>>>>>>>>>>>>>>>>>>>>>> their best possible effort to form rebuttals
>>>>>>>>>>>>>>>>>>>>>>>> and the most persistent of the fake rebuttals
>>>>>>>>>>>>>>>>>>>>>>>> has been that the simulation is incorrect. It
>>>>>>>>>>>>>>>>>>>>>>>> is very easy to verify the correct x86
>>>>>>>>>>>>>>>>>>>>>>>> emulation on the basis of the x86 language.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a correct
>>>>>>>>>>>>>>>>>>>>>>> simulation needs show the same behavior of the
>>>>>>>>>>>>>>>>>>>>>>> thing it is simulating.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot
>>>>>>>>>>>>>>>>>>>>>> is trying to claim that it is utterly impossible
>>>>>>>>>>>>>>>>>>>>>> to create a C program that examines the x86
>>>>>>>>>>>>>>>>>>>>>> execution trace derived from simulating the
>>>>>>>>>>>>>>>>>>>>>> input to H0(Infinite_Loop) with an x86 emulator
>>>>>>>>>>>>>>>>>>>>>> to correctly determine that Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>> infinitely loops.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
>>>>>>>>>>>>>>>>>>>>>> Trace Stored at:212343
>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
>>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>>>> Local Halt Decider: Infinite Loop Detected
>>>>>>>>>>>>>>>>>>>>>> Simulation Stopped
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
>>>>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
>>>>>>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
>>>>>>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
>>>>>>>>>>>>>>>>>> have no idea that a correct x86 emulation of
>>>>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at machine
>>>>>>>>>>>>>>>>>> address [00001345] or not.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation of
>>>>>>>>>>>>>>>>>> Infinite_Loop might instead involve emulating an
>>>>>>>>>>>>>>>>>> entirely different function that plays tic-tac-toe?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
>>>>>>>>>>>>>>>>> your program and trace are not telling the full story
>>>>>>>>>>>>>>>>> as far as the HP proofs are concerned;
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The only thing that my program trace conclusively
>>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return value
>>>>>>>>>>>>>>>> that does correctly correspond to the actual behavior
>>>>>>>>>>>>>>>> of the actual input.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> For any program H that might determine if
>>>>>>>>>>>>>>>> programs halt, a "pathological"
>>>>>>>>>>>>>>>> program P, called with some input, can
>>>>>>>>>>>>>>>> pass its own source and its input to
>>>>>>>>>>>>>>>> H and then specifically do the opposite of
>>>>>>>>>>>>>>>> what H predicts P will do. No H
>>>>>>>>>>>>>>>> can exist that handles this case.
>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>> if (H(x, x))
>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>> return;
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> _P()
>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>>>>>>>>>> [00001358](01) 50 push eax // push P
>>>>>>>>>>>>>>>> [00001359](03) 8b4d08 mov ecx,[ebp+08]
>>>>>>>>>>>>>>>> [0000135c](01) 51 push ecx // push P
>>>>>>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 // call H
>>>>>>>>>>>>>>>> [00001362](03) 83c408 add esp,+08
>>>>>>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
>>>>>>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
>>>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
>>>>>>>>>>>>>>>> [0000136c](01) c3 ret
>>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
>>>>>>>>>>>>>>>> emulates its input that it must emulate the first seven
>>>>>>>>>>>>>>>> instructions of P. Because the seventh instruction of P
>>>>>>>>>>>>>>>> repeats this process we can know with complete
>>>>>>>>>>>>>>>> certainty that the emulated P never reaches its final
>>>>>>>>>>>>>>>> “ret” instruction, thus never halts.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> But the halting problem proofs (including [Strachey
>>>>>>>>>>>>>>> 1965]) that you are trying to refute don't do that,
>>>>>>>>>>>>>>> they DO NOT make any recursive calls
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Because the idea of a simulating halt decider being
>>>>>>>>>>>>>> applied to the halting problem counter-example is brand
>>>>>>>>>>>>>> new with me you won't find other references that refer
>>>>>>>>>>>>>> to "infinitely nested simulation".
>>>>>>>>>>>>>>> which is what you are doing with "call H" above. Why are
>>>>>>>>>>>>>>> you doing something different to what the proofs you are
>>>>>>>>>>>>>>> trying to refute do given doing so is no longer related
>>>>>>>>>>>>>>> to the Halting Problem?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The proofs never bothered to examine my idea because it
>>>>>>>>>>>>>> was unknown by everyone prior to me creating it in 2016.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> It seems to me that your idea would only be novel because
>>>>>>>>>>>>> it is a mistake. Your mistake is to have the candidate
>>>>>>>>>>>>> program call into the SAME INSTANCE of the decider which
>>>>>>>>>>>>> is deciding the candidate program.
>>>>>>>>>>>>
>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
>>>>>>>>>>>> Whenever H simulates its input it creates a whole new
>>>>>>>>>>>> process context.
>>>>>>>>>>>
>>>>>>>>>>> You cannot make a direct function call into another process;
>>>>>>>>>>> it has to be the same process.
>>>>>>>>>>
>>>>>>>>>> As I have said very many hundreds of times I created the
>>>>>>>>>> x86utm operating system that enables any C function to
>>>>>>>>>> execute another C function using an x86 emulator.
>>>>>>>>>>
>>>>>>>>>> In the case of H(P,P) H creates a separate process context to
>>>>>>>>>> simulate its input every time that it is invoked, thus
>>>>>>>>>> subsequent invocations of H(P,P) execute in the process
>>>>>>>>>> context that was previously created.
>>>>>>>>>>
>>>>>>>>>>> As far as getting ideas as to what you are
>>>>>>>>>>> actually doing: publish all your source so we can see for
>>>>>>>>>>> ourselves so we don't have to guess.
>>>>>>>>>>>
>>>>>>>>>>> /Flibble
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> That would be 100,000-fold more complex then simply paying
>>>>>>>>>> complete attention to what I am saying. Everyone that is not
>>>>>>>>>> bright enough to understand 14 lines of code keeps saying
>>>>>>>>>> that they could easily understand 250 pages of code, even
>>>>>>>>>> though the 14 lines proves to be too much for them.
>>>>>>>>>
>>>>>>>>> Your code:
>>>>>>>>>
>>>>>>>>> call 000011a2 // call H
>>>>>>>>>
>>>>>>>>> is simply a function call into the address space of the
>>>>>>>>> current process, it doesn't look like code to spawn a new
>>>>>>>>> process to me.
>>>>>>>>
>>>>>>>> How many times do I have to say this before you notice that I
>>>>>>>> said it at least once? H (in the current process) always
>>>>>>>> creates a new process context to emulate its its input with an
>>>>>>>> x86 emulator.
>>>>>>>
>>>>>>> I will have to take your word for it as you refuse to publish
>>>>>>> source code. Why not just stick your project on GitHub? Open
>>>>>>> source is de rigueur these days. What are you trying to hide?
>>>>>>>
>>>>>>> If a new process context is made then how is nested simulation
>>>>>>> detected? I assume the data segment of each process is
>>>>>>> private...
>>>>>>>
>>>>>>> /Flibble
>>>>>>>
>>>>>>
>>>>>> An honest dialogue requires points of mutual agreement. The price
>>>>>> of moving beyond H(P,P)==0 is universal agreement that H(P,P)==0
>>>>>> is correct. The next point beyond H(P,P)==0 is computer science
>>>>>> thus not appropriate for the C/C++ forum.
>>>>>
>>>>> I agree that H(P,P)==0 for pathological input assuming your method
>>>>> for detecting pathological input is sufficiently robust however
>>>>> how is that distinguished from H(P1,P1)==0 where P1 is normal
>>>>> non-halting (i.e. non-pathological)?
>>>>
>>>> When-so-ever the correct and complete emulation of the input to H
>>>> would never stop running H(x,y)==0 is correct.
>>>>
>>>>> If you are pattern matching op codes "EB FE" to detect the
>>>>> infinite loop then how do you solve the problem of there being
>>>>> 2^n different patterns equivalent to that loop so someone could
>>>>> come along and write a pathological program that defeats your
>>>>> pattern matcher? This is why we need your source code to answer
>>>>> these kinds of questions.
>>>>>
>>>>> /Flibble
>>>>>
>>>>
>>>> To refute all of the HP conventional proofs only requires correctly
>>>> determining that H(P,P)==0.
>>>
>>> Are you using pattern matching to detect the infinite loop or not?
>>>
>>> /Flibble
>>>
>>
>> Even if H(P,P) simply makes a wild guess that its input never halts
>> H(P,P)==0 is correct because the correct and complete x86 emulation
>> of this input would never stop running.
>
> How do you KNOW it would never stop running? Given
>
> void P(u32 x)
> {
> if (H(x, x))
> FUBAR(); // a disguised infinite loop
> return;
> }
>


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220608000441.00000295@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21882&group=comp.lang.c#21882

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!news.uzoreto.com!feeder.usenetexpress.com!tr2.eu1.usenetexpress.com!81.171.65.13.MISMATCH!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]
Message-ID: <20220608000441.00000295@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com> <20220606185031.0000254f@reddwarf.jmc> <H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com> <20220606194152.00004098@reddwarf.jmc> <X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com> <20220607200210.000000e6@reddwarf.jmc> <4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com> <20220607204944.000027de@reddwarf.jmc> <8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com> <20220607210605.00004d5c@reddwarf.jmc> <HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com> <20220607211856.000075de@reddwarf.jmc> <3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com> <20220607215105.0000548c@reddwarf.jmc> <2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com> <20220607222206.00002234@reddwarf.jmc> <ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com> <20220607230822.00004da6@reddwarf.jmc> <U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com> <20220607234526.00001f04@reddwarf.jmc> <lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 597
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 23:04:41 UTC
Date: Wed, 8 Jun 2022 00:04:41 +0100
X-Received-Bytes: 34381
 by: Mr Flibble - Tue, 7 Jun 2022 23:04 UTC

On Tue, 7 Jun 2022 18:01:25 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 5:45 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 17:37:44 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 5:08 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 16:28:21 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 16:01:53 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible because
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> we will assume that no
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> transitions are defined for any
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state so the Turing machine
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state. (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to Formal Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a C
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function this means reaching the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "ret" instruction.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret". Instead,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "not defined" should include at
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the stack is empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> way of saying the same thing.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM ceasing to calculate computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps for some computation, and going
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> on to calculate something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> It does not mean: a) that the TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted b)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation halts c)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is merely part of the TM,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> then the word "halt" has a different
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> meaning when applied to that simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> part from when applied to the entire TM.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> I'm not even sure what you mean when
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> you say a part of a TM has halted or not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes
> >>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>> halting, and like you, I can't work out
> >>>>>>>>>>>>>>>>>>>>>>>>>>> what that would mean!  I used "halt" only
> >>>>>>>>>>>>>>>>>>>>>>>>>>> with respect to a computation, meaning
> >>>>>>>>>>>>>>>>>>>>>>>>>>> that the computation halts [there is an n
> >>>>>>>>>>>>>>>>>>>>>>>>>>> such that computation step n is a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>> final state].
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I
> >>>>>>>>>>>>>>>>>>>>>>>>>>> think that by your definition of
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, the simulating TM must be a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> "pure" simulator that does nothing but
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulate computation steps until the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts, at which point the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM). I get
> >>>>>>>>>>>>>>>>>>>>>>>>>>> that with that interpretation what you
> >>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>> is just one final state of a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>> machine, >>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.
> >>>>>>>>>>>>>>>>>>>>>>>>>>> I'd just say I don't think that usage of
> >>>>>>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
> >>>>>>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about
> >>>>>>>>>>>>>>>>>>>>>>>>>>> (so it would be wrong if applied PO's
> >>>>>>>>>>>>>>>>>>>>>>>>>>> posts...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>> which consists of calculating computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>> steps of some given computation.  As such
> >>>>>>>>>>>>>>>>>>>>>>>>>>> it's just a part of the TM logic. A TM's
> >>>>>>>>>>>>>>>>>>>>>>>>>>> typical use of simulation might be
> >>>>>>>>>>>>>>>>>>>>>>>>>>> something like "..the TM simulates the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation for n steps, and if the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts during those n steps,
> >>>>>>>>>>>>>>>>>>>>>>>>>>> the TM [blah blah], /otherwise/ the TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>> [blah blah blah]...". Just about every
> >>>>>>>>>>>>>>>>>>>>>>>>>>> reference in the literature I can recall
> >>>>>>>>>>>>>>>>>>>>>>>>>>> is something like that.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
> >>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for some
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to calculate >>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts or
> >>>>>>>>>>>>>>>>>>>>>>>>>>> enters an infinite loop.  (That logic is
> >>>>>>>>>>>>>>>>>>>>>>>>>>> not part of the simulation, IMO.)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>> something else...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples
> >>>>>>>>>>>>>>>>>>>>>>>>>>> of a simulated computation P(I) might halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>> or never halt, and this is unaffected by a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no
> >>>>>>>>>>>>>>>>>>>>>>>>>>> further computation steps. [The TM may
> >>>>>>>>>>>>>>>>>>>>>>>>>>> have spotted some pattern in the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation which implies P(I)
> >>>>>>>>>>>>>>>>>>>>>>>>>>> never halts - that is a separate matter,
> >>>>>>>>>>>>>>>>>>>>>>>>>>> but for sure the mere act of "aborting"
> >>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation doesn't imply P(I) never
> >>>>>>>>>>>>>>>>>>>>>>>>>>> halts, or imply that it halts...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
> >>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
> >>>>>>>>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> TM halting mean?)
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
> >>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
> >>>>>>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
> >>>>>>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
> >>>>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
> >>>>>>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
> >>>>>>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
> >>>>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
> >>>>>>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my
> >>>>>>>>>>>>>>>>>>>>>>>>> computation steps. Formally, these would be
> >>>>>>>>>>>>>>>>>>>>>>>>> defined inductively via the rule to go from
> >>>>>>>>>>>>>>>>>>>>>>>>> step n to step n+1. (Not an animation, but
> >>>>>>>>>>>>>>>>>>>>>>>>> the induction gives some /sense/ of
> >>>>>>>>>>>>>>>>>>>>>>>>> step-by-step calculation, and a simulator
> >>>>>>>>>>>>>>>>>>>>>>>>> will follow this, starting at step 1, then
> >>>>>>>>>>>>>>>>>>>>>>>>> calculate step 2 and so on. Still, I agree
> >>>>>>>>>>>>>>>>>>>>>>>>> the entire sequence [the "computation"]
> >>>>>>>>>>>>>>>>>>>>>>>>> exists as one timeless structure.  Too
> >>>>>>>>>>>>>>>>>>>>>>>>> abstract for PO...)
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate
> >>>>>>>>>>>>>>>>>>>>>>>> the program under test with the test program
> >>>>>>>>>>>>>>>>>>>>>>>> as a single computation then the whole idea
> >>>>>>>>>>>>>>>>>>>>>>>> of a halt decider becomes less coherent and
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that
> >>>>>>>>>>>>>>>>>>>>>>>> you don't already know that H(P,P)==0 is
> >>>>>>>>>>>>>>>>>>>>>>>> correct and the H/P relationship matches the
> >>>>>>>>>>>>>>>>>>>>>>>> halting problem counter example template.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>       For any program H that might
> >>>>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>>>>>>>>>       program P, called with some
> >>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input
> >>>>>>>>>>>>>>>>>>>>>>>> to H and then specifically do the
> >>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>>>>>>>       can exist that handles this
> >>>>>>>>>>>>>>>>>>>>>>>> case.
> >>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
> >>>>>>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties
> >>>>>>>>>>>>>>>>>>>>>>>>>> in the same way that elaborating an
> >>>>>>>>>>>>>>>>>>>>>>>>>> infinite sum or sequence does in math
> >>>>>>>>>>>>>>>>>>>>>>>>>> classes. An (ultimate) value only exists
> >>>>>>>>>>>>>>>>>>>>>>>>>> if there is some notation of convergence
> >>>>>>>>>>>>>>>>>>>>>>>>>> or limit which typically is the case with
> >>>>>>>>>>>>>>>>>>>>>>>>>> examples used in a math class. There is no
> >>>>>>>>>>>>>>>>>>>>>>>>>> definition of convergence or limit with
> >>>>>>>>>>>>>>>>>>>>>>>>>> the sequence defined by TM(STRING);
> >>>>>>>>>>>>>>>>>>>>>>>>>> rather, we simply ask about the last pair
> >>>>>>>>>>>>>>>>>>>>>>>>>> if the sequence is finite.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would
> >>>>>>>>>>>>>>>>>>>>>>>>> call a TM which evaluates the first 10
> >>>>>>>>>>>>>>>>>>>>>>>>> steps of a computation, and then does
> >>>>>>>>>>>>>>>>>>>>>>>>> something else. What is it doing while
> >>>>>>>>>>>>>>>>>>>>>>>>> evaluating those 10 steps?
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
> >>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for 10
> >>>>>>>>>>>>>>>>>>>>>>>>> steps) - then it stops simulating and does
> >>>>>>>>>>>>>>>>>>>>>>>>> something else. Obviously I wouldn't
> >>>>>>>>>>>>>>>>>>>>>>>>> describe it as "correctly" simulating,
> >>>>>>>>>>>>>>>>>>>>>>>>> because nobody considers incorrect
> >>>>>>>>>>>>>>>>>>>>>>>>> simulations, so the word would be
> >>>>>>>>>>>>>>>>>>>>>>>>> redundant!
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
> >>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to form
> >>>>>>>>>>>>>>>>>>>>>>>> rebuttals and the most persistent of the
> >>>>>>>>>>>>>>>>>>>>>>>> fake rebuttals has been that the simulation
> >>>>>>>>>>>>>>>>>>>>>>>> is incorrect. It is very easy to verify the
> >>>>>>>>>>>>>>>>>>>>>>>> correct x86 emulation on the basis of the
> >>>>>>>>>>>>>>>>>>>>>>>> x86 language.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
> >>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
> >>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot
> >>>>>>>>>>>>>>>>>>>>>> is trying to claim that it is utterly
> >>>>>>>>>>>>>>>>>>>>>> impossible to create a C program that examines
> >>>>>>>>>>>>>>>>>>>>>> the x86 execution trace derived from
> >>>>>>>>>>>>>>>>>>>>>> simulating the input to H0(Infinite_Loop) with
> >>>>>>>>>>>>>>>>>>>>>> an x86 emulator to correctly determine that
> >>>>>>>>>>>>>>>>>>>>>> Infinite_Loop() infinitely loops.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
> >>>>>>>>>>>>>>>>>>>>>> Trace Stored at:212343
> >>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe
> >>>>>>>>>>>>>>>>>>>>>> jmp 00001345 Local Halt Decider: Infinite Loop
> >>>>>>>>>>>>>>>>>>>>>> Detected Simulation Stopped
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
> >>>>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
> >>>>>>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
> >>>>>>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
> >>>>>>>>>>>>>>>>>> have no idea that a correct x86 emulation of
> >>>>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at
> >>>>>>>>>>>>>>>>>> machine address [00001345] or not.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation
> >>>>>>>>>>>>>>>>>> of Infinite_Loop might instead involve emulating an
> >>>>>>>>>>>>>>>>>> entirely different function that plays
> >>>>>>>>>>>>>>>>>> tic-tac-toe?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
> >>>>>>>>>>>>>>>>> your program and trace are not telling the full
> >>>>>>>>>>>>>>>>> story as far as the HP proofs are concerned;
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> The only thing that my program trace conclusively
> >>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return value
> >>>>>>>>>>>>>>>> that does correctly correspond to the actual behavior
> >>>>>>>>>>>>>>>> of the actual input.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> For any program H that might determine
> >>>>>>>>>>>>>>>> if programs halt, a "pathological"
> >>>>>>>>>>>>>>>> program P, called with some input, can
> >>>>>>>>>>>>>>>> pass its own source and its input to
> >>>>>>>>>>>>>>>> H and then specifically do the
> >>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>> can exist that handles this case.
> >>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> if (H(x, x))
> >>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>> return;
> >>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P,
> >>>>>>>>>>>>>>>> (u32)P)); }
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> _P()
> >>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>>>>>>>>>>>> [00001358](01) 50 push eax //
> >>>>>>>>>>>>>>>> push P [00001359](03) 8b4d08 mov
> >>>>>>>>>>>>>>>> ecx,[ebp+08] [0000135c](01) 51 push
> >>>>>>>>>>>>>>>> ecx // push P [0000135d](05) e840feffff
> >>>>>>>>>>>>>>>> call 000011a2 // call H [00001362](03) 83c408
> >>>>>>>>>>>>>>>> add esp,+08 [00001365](02) 85c0 test
> >>>>>>>>>>>>>>>> eax,eax [00001367](02) 7402 jz 0000136b
> >>>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
> >>>>>>>>>>>>>>>> [0000136c](01) c3 ret
> >>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
> >>>>>>>>>>>>>>>> emulates its input that it must emulate the first
> >>>>>>>>>>>>>>>> seven instructions of P. Because the seventh
> >>>>>>>>>>>>>>>> instruction of P repeats this process we can know
> >>>>>>>>>>>>>>>> with complete certainty that the emulated P never
> >>>>>>>>>>>>>>>> reaches its final “ret” instruction, thus never
> >>>>>>>>>>>>>>>> halts.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> But the halting problem proofs (including [Strachey
> >>>>>>>>>>>>>>> 1965]) that you are trying to refute don't do that,
> >>>>>>>>>>>>>>> they DO NOT make any recursive calls
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Because the idea of a simulating halt decider being
> >>>>>>>>>>>>>> applied to the halting problem counter-example is brand
> >>>>>>>>>>>>>> new with me you won't find other references that refer
> >>>>>>>>>>>>>> to "infinitely nested simulation".
> >>>>>>>>>>>>>>> which is what you are doing with "call H" above. Why
> >>>>>>>>>>>>>>> are you doing something different to what the proofs
> >>>>>>>>>>>>>>> you are trying to refute do given doing so is no
> >>>>>>>>>>>>>>> longer related to the Halting Problem?
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> The proofs never bothered to examine my idea because it
> >>>>>>>>>>>>>> was unknown by everyone prior to me creating it in
> >>>>>>>>>>>>>> 2016.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> It seems to me that your idea would only be novel
> >>>>>>>>>>>>> because it is a mistake. Your mistake is to have the
> >>>>>>>>>>>>> candidate program call into the SAME INSTANCE of the
> >>>>>>>>>>>>> decider which is deciding the candidate program.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Where the Hell did you ever get this idea from ?
> >>>>>>>>>>>> Whenever H simulates its input it creates a whole new
> >>>>>>>>>>>> process context.
> >>>>>>>>>>>
> >>>>>>>>>>> You cannot make a direct function call into another
> >>>>>>>>>>> process; it has to be the same process.
> >>>>>>>>>>
> >>>>>>>>>> As I have said very many hundreds of times I created the
> >>>>>>>>>> x86utm operating system that enables any C function to
> >>>>>>>>>> execute another C function using an x86 emulator.
> >>>>>>>>>>
> >>>>>>>>>> In the case of H(P,P) H creates a separate process context
> >>>>>>>>>> to simulate its input every time that it is invoked, thus
> >>>>>>>>>> subsequent invocations of H(P,P) execute in the process
> >>>>>>>>>> context that was previously created.
> >>>>>>>>>>
> >>>>>>>>>>> As far as getting ideas as to what you are
> >>>>>>>>>>> actually doing: publish all your source so we can see for
> >>>>>>>>>>> ourselves so we don't have to guess.
> >>>>>>>>>>>
> >>>>>>>>>>> /Flibble
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> That would be 100,000-fold more complex then simply paying
> >>>>>>>>>> complete attention to what I am saying. Everyone that is
> >>>>>>>>>> not bright enough to understand 14 lines of code keeps
> >>>>>>>>>> saying that they could easily understand 250 pages of
> >>>>>>>>>> code, even though the 14 lines proves to be too much for
> >>>>>>>>>> them.
> >>>>>>>>>
> >>>>>>>>> Your code:
> >>>>>>>>>
> >>>>>>>>> call 000011a2 // call H
> >>>>>>>>>
> >>>>>>>>> is simply a function call into the address space of the
> >>>>>>>>> current process, it doesn't look like code to spawn a new
> >>>>>>>>> process to me.
> >>>>>>>>
> >>>>>>>> How many times do I have to say this before you notice that I
> >>>>>>>> said it at least once? H (in the current process) always
> >>>>>>>> creates a new process context to emulate its its input with
> >>>>>>>> an x86 emulator.
> >>>>>>>
> >>>>>>> I will have to take your word for it as you refuse to publish
> >>>>>>> source code. Why not just stick your project on GitHub? Open
> >>>>>>> source is de rigueur these days. What are you trying to hide?
> >>>>>>>
> >>>>>>> If a new process context is made then how is nested simulation
> >>>>>>> detected? I assume the data segment of each process is
> >>>>>>> private...
> >>>>>>>
> >>>>>>> /Flibble
> >>>>>>>
> >>>>>>
> >>>>>> An honest dialogue requires points of mutual agreement. The
> >>>>>> price of moving beyond H(P,P)==0 is universal agreement that
> >>>>>> H(P,P)==0 is correct. The next point beyond H(P,P)==0 is
> >>>>>> computer science thus not appropriate for the C/C++ forum.
> >>>>>
> >>>>> I agree that H(P,P)==0 for pathological input assuming your
> >>>>> method for detecting pathological input is sufficiently robust
> >>>>> however how is that distinguished from H(P1,P1)==0 where P1 is
> >>>>> normal non-halting (i.e. non-pathological)?
> >>>>
> >>>> When-so-ever the correct and complete emulation of the input to H
> >>>> would never stop running H(x,y)==0 is correct.
> >>>>
> >>>>> If you are pattern matching op codes "EB FE" to detect the
> >>>>> infinite loop then how do you solve the problem of there being
> >>>>> 2^n different patterns equivalent to that loop so someone could
> >>>>> come along and write a pathological program that defeats your
> >>>>> pattern matcher? This is why we need your source code to answer
> >>>>> these kinds of questions.
> >>>>>
> >>>>> /Flibble
> >>>>>
> >>>>
> >>>> To refute all of the HP conventional proofs only requires
> >>>> correctly determining that H(P,P)==0.
> >>>
> >>> Are you using pattern matching to detect the infinite loop or not?
> >>>
> >>> /Flibble
> >>>
> >>
> >> Even if H(P,P) simply makes a wild guess that its input never halts
> >> H(P,P)==0 is correct because the correct and complete x86 emulation
> >> of this input would never stop running.
> >
> > How do you KNOW it would never stop running? Given
> >
> > void P(u32 x)
> > {
> > if (H(x, x))
> > FUBAR(); // a disguised infinite loop
> > return;
> > }
> >
>
> It never gets to FUBAR()


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21883&group=comp.lang.c#21883

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 18:14:02 -0500
Date: Tue, 7 Jun 2022 18:14:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220606185031.0000254f@reddwarf.jmc>
<H9CdnTisK_K52AP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608000441.00000295@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220608000441.00000295@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>
Lines: 597
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-lJB4KUiqkM9UXhUcro00fQloU9wPTWBEZfT46AEq4SHFNMalD5fExyzq7J4ZHQATqhEjwqX8fOhlhRg!Cb1HcoFrA1Aj8x9ItYvtEOLyFFis4K0h0nAy2jfMF4Ppi2396q/Xbssc1PtL/0HipC6/NQdlvB89
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 34718
 by: olcott - Tue, 7 Jun 2022 23:14 UTC

On 6/7/2022 6:04 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 18:01:25 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 5:45 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 17:37:44 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 16:28:21 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
>>>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible because
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> δ is a partial function. In fact,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> we will assume that no
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> transitions are defined for any
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state so the Turing machine
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> will halt whenever it enters a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state. (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An Introduction
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to Formal Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Company.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a C
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function this means reaching the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "ret" instruction.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret". Instead,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "not defined" should include at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction if
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the stack is empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the C
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> way of saying the same thing.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine equivalent of an "abnormal
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> termination" in C?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM ceasing to calculate computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps for some computation, and going
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on to calculate something else instead.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It does not mean: a) that the TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted b)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation halts c)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is merely part of the TM,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then the word "halt" has a different
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> meaning when applied to that simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> part from when applied to the entire TM.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I'm not even sure what you mean when
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> you say a part of a TM has halted or not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halting, and like you, I can't work out
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> what that would mean!  I used "halt" only
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> with respect to a computation, meaning
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the computation halts [there is an n
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> such that computation step n is a TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state].
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> think that by your definition of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, the simulating TM must be a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "pure" simulator that does nothing but
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulate computation steps until the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts, at which point the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM). I get
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that with that interpretation what you
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is just one final state of a turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, >>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is correct.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I'd just say I don't think that usage of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulation" is very useful, and is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DEFINITELY not what PO is talking about
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (so it would be wrong if applied PO's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> posts...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which consists of calculating computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps of some given computation.  As such
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's just a part of the TM logic. A TM's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> typical use of simulation might be
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something like "..the TM simulates the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation for n steps, and if the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts during those n steps,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM [blah blah], /otherwise/ the TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [blah blah blah]...". Just about every
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reference in the literature I can recall
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is something like that.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to calculate >>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts or
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> enters an infinite loop.  (That logic is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not part of the simulation, IMO.)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different exacmples
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of a simulated computation P(I) might halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or never halt, and this is unaffected by a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulator's decision to simulate no
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> further computation steps. [The TM may
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> have spotted some pattern in the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation which implies P(I)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> never halts - that is a separate matter,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> but for sure the mere act of "aborting"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation doesn't imply P(I) never
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts, or imply that it halts...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER OF
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> THOSE. (Like you say, what would part of a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM halting mean?)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
>>>>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list). The
>>>>>>>>>>>>>>>>>>>>>>>>>>>> elements of the sequence are pairs of a TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>> state name and a string representing the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> "tape" contents when the state was entered.
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character of
>>>>>>>>>>>>>>>>>>>>>>>>>>>> animation in it and makes the definition of
>>>>>>>>>>>>>>>>>>>>>>>>>>>> the halt predicate (H) trivial:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
>>>>>>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or at
>>>>>>>>>>>>>>>>>>>>>>>>>>> least meant). Your sequence is my
>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. Formally, these would be
>>>>>>>>>>>>>>>>>>>>>>>>>>> defined inductively via the rule to go from
>>>>>>>>>>>>>>>>>>>>>>>>>>> step n to step n+1. (Not an animation, but
>>>>>>>>>>>>>>>>>>>>>>>>>>> the induction gives some /sense/ of
>>>>>>>>>>>>>>>>>>>>>>>>>>> step-by-step calculation, and a simulator
>>>>>>>>>>>>>>>>>>>>>>>>>>> will follow this, starting at step 1, then
>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate step 2 and so on. Still, I agree
>>>>>>>>>>>>>>>>>>>>>>>>>>> the entire sequence [the "computation"]
>>>>>>>>>>>>>>>>>>>>>>>>>>> exists as one timeless structure.  Too
>>>>>>>>>>>>>>>>>>>>>>>>>>> abstract for PO...)
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to conflate
>>>>>>>>>>>>>>>>>>>>>>>>>> the program under test with the test program
>>>>>>>>>>>>>>>>>>>>>>>>>> as a single computation then the whole idea
>>>>>>>>>>>>>>>>>>>>>>>>>> of a halt decider becomes less coherent and
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend that
>>>>>>>>>>>>>>>>>>>>>>>>>> you don't already know that H(P,P)==0 is
>>>>>>>>>>>>>>>>>>>>>>>>>> correct and the H/P relationship matches the
>>>>>>>>>>>>>>>>>>>>>>>>>> halting problem counter example template.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>       For any program H that might
>>>>>>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>>>>>>>>>       program P, called with some
>>>>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input
>>>>>>>>>>>>>>>>>>>>>>>>>> to H and then specifically do the
>>>>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>>>>>>>>       can exist that handles this
>>>>>>>>>>>>>>>>>>>>>>>>>> case.
>>>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence and that causes some difficulties
>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the same way that elaborating an
>>>>>>>>>>>>>>>>>>>>>>>>>>>> infinite sum or sequence does in math
>>>>>>>>>>>>>>>>>>>>>>>>>>>> classes. An (ultimate) value only exists
>>>>>>>>>>>>>>>>>>>>>>>>>>>> if there is some notation of convergence
>>>>>>>>>>>>>>>>>>>>>>>>>>>> or limit which typically is the case with
>>>>>>>>>>>>>>>>>>>>>>>>>>>> examples used in a math class. There is no
>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition of convergence or limit with
>>>>>>>>>>>>>>>>>>>>>>>>>>>> the sequence defined by TM(STRING);
>>>>>>>>>>>>>>>>>>>>>>>>>>>> rather, we simply ask about the last pair
>>>>>>>>>>>>>>>>>>>>>>>>>>>> if the sequence is finite.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would
>>>>>>>>>>>>>>>>>>>>>>>>>>> call a TM which evaluates the first 10
>>>>>>>>>>>>>>>>>>>>>>>>>>> steps of a computation, and then does
>>>>>>>>>>>>>>>>>>>>>>>>>>> something else. What is it doing while
>>>>>>>>>>>>>>>>>>>>>>>>>>> evaluating those 10 steps?
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for 10
>>>>>>>>>>>>>>>>>>>>>>>>>>> steps) - then it stops simulating and does
>>>>>>>>>>>>>>>>>>>>>>>>>>> something else. Obviously I wouldn't
>>>>>>>>>>>>>>>>>>>>>>>>>>> describe it as "correctly" simulating,
>>>>>>>>>>>>>>>>>>>>>>>>>>> because nobody considers incorrect
>>>>>>>>>>>>>>>>>>>>>>>>>>> simulations, so the word would be
>>>>>>>>>>>>>>>>>>>>>>>>>>> redundant!
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
>>>>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to form
>>>>>>>>>>>>>>>>>>>>>>>>>> rebuttals and the most persistent of the
>>>>>>>>>>>>>>>>>>>>>>>>>> fake rebuttals has been that the simulation
>>>>>>>>>>>>>>>>>>>>>>>>>> is incorrect. It is very easy to verify the
>>>>>>>>>>>>>>>>>>>>>>>>>> correct x86 emulation on the basis of the
>>>>>>>>>>>>>>>>>>>>>>>>>> x86 language.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
>>>>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
>>>>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy idiot
>>>>>>>>>>>>>>>>>>>>>>>> is trying to claim that it is utterly
>>>>>>>>>>>>>>>>>>>>>>>> impossible to create a C program that examines
>>>>>>>>>>>>>>>>>>>>>>>> the x86 execution trace derived from
>>>>>>>>>>>>>>>>>>>>>>>> simulating the input to H0(Infinite_Loop) with
>>>>>>>>>>>>>>>>>>>>>>>> an x86 emulator to correctly determine that
>>>>>>>>>>>>>>>>>>>>>>>> Infinite_Loop() infinitely loops.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation Execution
>>>>>>>>>>>>>>>>>>>>>>>> Trace Stored at:212343
>>>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
>>>>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp
>>>>>>>>>>>>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337] ebfe
>>>>>>>>>>>>>>>>>>>>>>>> jmp 00001345 Local Halt Decider: Infinite Loop
>>>>>>>>>>>>>>>>>>>>>>>> Detected Simulation Stopped
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
>>>>>>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
>>>>>>>>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the logic
>>>>>>>>>>>>>>>>>>>>> used to decide when to enter the infinite loop;
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked we
>>>>>>>>>>>>>>>>>>>> have no idea that a correct x86 emulation of
>>>>>>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at
>>>>>>>>>>>>>>>>>>>> machine address [00001345] or not.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation
>>>>>>>>>>>>>>>>>>>> of Infinite_Loop might instead involve emulating an
>>>>>>>>>>>>>>>>>>>> entirely different function that plays
>>>>>>>>>>>>>>>>>>>> tic-tac-toe?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial however
>>>>>>>>>>>>>>>>>>> your program and trace are not telling the full
>>>>>>>>>>>>>>>>>>> story as far as the HP proofs are concerned;
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> The only thing that my program trace conclusively
>>>>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return value
>>>>>>>>>>>>>>>>>> that does correctly correspond to the actual behavior
>>>>>>>>>>>>>>>>>> of the actual input.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> For any program H that might determine
>>>>>>>>>>>>>>>>>> if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>> program P, called with some input, can
>>>>>>>>>>>>>>>>>> pass its own source and its input to
>>>>>>>>>>>>>>>>>> H and then specifically do the
>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>> can exist that handles this case.
>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>> if (H(x, x))
>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>> return;
>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P,
>>>>>>>>>>>>>>>>>> (u32)P)); }
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> _P()
>>>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>>>>>>>>>>>> [00001358](01) 50 push eax //
>>>>>>>>>>>>>>>>>> push P [00001359](03) 8b4d08 mov
>>>>>>>>>>>>>>>>>> ecx,[ebp+08] [0000135c](01) 51 push
>>>>>>>>>>>>>>>>>> ecx // push P [0000135d](05) e840feffff
>>>>>>>>>>>>>>>>>> call 000011a2 // call H [00001362](03) 83c408
>>>>>>>>>>>>>>>>>> add esp,+08 [00001365](02) 85c0 test
>>>>>>>>>>>>>>>>>> eax,eax [00001367](02) 7402 jz 0000136b
>>>>>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
>>>>>>>>>>>>>>>>>> [0000136c](01) c3 ret
>>>>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
>>>>>>>>>>>>>>>>>> emulates its input that it must emulate the first
>>>>>>>>>>>>>>>>>> seven instructions of P. Because the seventh
>>>>>>>>>>>>>>>>>> instruction of P repeats this process we can know
>>>>>>>>>>>>>>>>>> with complete certainty that the emulated P never
>>>>>>>>>>>>>>>>>> reaches its final “ret” instruction, thus never
>>>>>>>>>>>>>>>>>> halts.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> But the halting problem proofs (including [Strachey
>>>>>>>>>>>>>>>>> 1965]) that you are trying to refute don't do that,
>>>>>>>>>>>>>>>>> they DO NOT make any recursive calls
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Because the idea of a simulating halt decider being
>>>>>>>>>>>>>>>> applied to the halting problem counter-example is brand
>>>>>>>>>>>>>>>> new with me you won't find other references that refer
>>>>>>>>>>>>>>>> to "infinitely nested simulation".
>>>>>>>>>>>>>>>>> which is what you are doing with "call H" above. Why
>>>>>>>>>>>>>>>>> are you doing something different to what the proofs
>>>>>>>>>>>>>>>>> you are trying to refute do given doing so is no
>>>>>>>>>>>>>>>>> longer related to the Halting Problem?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> The proofs never bothered to examine my idea because it
>>>>>>>>>>>>>>>> was unknown by everyone prior to me creating it in
>>>>>>>>>>>>>>>> 2016.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> It seems to me that your idea would only be novel
>>>>>>>>>>>>>>> because it is a mistake. Your mistake is to have the
>>>>>>>>>>>>>>> candidate program call into the SAME INSTANCE of the
>>>>>>>>>>>>>>> decider which is deciding the candidate program.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
>>>>>>>>>>>>>> Whenever H simulates its input it creates a whole new
>>>>>>>>>>>>>> process context.
>>>>>>>>>>>>>
>>>>>>>>>>>>> You cannot make a direct function call into another
>>>>>>>>>>>>> process; it has to be the same process.
>>>>>>>>>>>>
>>>>>>>>>>>> As I have said very many hundreds of times I created the
>>>>>>>>>>>> x86utm operating system that enables any C function to
>>>>>>>>>>>> execute another C function using an x86 emulator.
>>>>>>>>>>>>
>>>>>>>>>>>> In the case of H(P,P) H creates a separate process context
>>>>>>>>>>>> to simulate its input every time that it is invoked, thus
>>>>>>>>>>>> subsequent invocations of H(P,P) execute in the process
>>>>>>>>>>>> context that was previously created.
>>>>>>>>>>>>
>>>>>>>>>>>>> As far as getting ideas as to what you are
>>>>>>>>>>>>> actually doing: publish all your source so we can see for
>>>>>>>>>>>>> ourselves so we don't have to guess.
>>>>>>>>>>>>>
>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> That would be 100,000-fold more complex then simply paying
>>>>>>>>>>>> complete attention to what I am saying. Everyone that is
>>>>>>>>>>>> not bright enough to understand 14 lines of code keeps
>>>>>>>>>>>> saying that they could easily understand 250 pages of
>>>>>>>>>>>> code, even though the 14 lines proves to be too much for
>>>>>>>>>>>> them.
>>>>>>>>>>>
>>>>>>>>>>> Your code:
>>>>>>>>>>>
>>>>>>>>>>> call 000011a2 // call H
>>>>>>>>>>>
>>>>>>>>>>> is simply a function call into the address space of the
>>>>>>>>>>> current process, it doesn't look like code to spawn a new
>>>>>>>>>>> process to me.
>>>>>>>>>>
>>>>>>>>>> How many times do I have to say this before you notice that I
>>>>>>>>>> said it at least once? H (in the current process) always
>>>>>>>>>> creates a new process context to emulate its its input with
>>>>>>>>>> an x86 emulator.
>>>>>>>>>
>>>>>>>>> I will have to take your word for it as you refuse to publish
>>>>>>>>> source code. Why not just stick your project on GitHub? Open
>>>>>>>>> source is de rigueur these days. What are you trying to hide?
>>>>>>>>>
>>>>>>>>> If a new process context is made then how is nested simulation
>>>>>>>>> detected? I assume the data segment of each process is
>>>>>>>>> private...
>>>>>>>>>
>>>>>>>>> /Flibble
>>>>>>>>>
>>>>>>>>
>>>>>>>> An honest dialogue requires points of mutual agreement. The
>>>>>>>> price of moving beyond H(P,P)==0 is universal agreement that
>>>>>>>> H(P,P)==0 is correct. The next point beyond H(P,P)==0 is
>>>>>>>> computer science thus not appropriate for the C/C++ forum.
>>>>>>>
>>>>>>> I agree that H(P,P)==0 for pathological input assuming your
>>>>>>> method for detecting pathological input is sufficiently robust
>>>>>>> however how is that distinguished from H(P1,P1)==0 where P1 is
>>>>>>> normal non-halting (i.e. non-pathological)?
>>>>>>
>>>>>> When-so-ever the correct and complete emulation of the input to H
>>>>>> would never stop running H(x,y)==0 is correct.
>>>>>>
>>>>>>> If you are pattern matching op codes "EB FE" to detect the
>>>>>>> infinite loop then how do you solve the problem of there being
>>>>>>> 2^n different patterns equivalent to that loop so someone could
>>>>>>> come along and write a pathological program that defeats your
>>>>>>> pattern matcher? This is why we need your source code to answer
>>>>>>> these kinds of questions.
>>>>>>>
>>>>>>> /Flibble
>>>>>>>
>>>>>>
>>>>>> To refute all of the HP conventional proofs only requires
>>>>>> correctly determining that H(P,P)==0.
>>>>>
>>>>> Are you using pattern matching to detect the infinite loop or not?
>>>>>
>>>>> /Flibble
>>>>>
>>>>
>>>> Even if H(P,P) simply makes a wild guess that its input never halts
>>>> H(P,P)==0 is correct because the correct and complete x86 emulation
>>>> of this input would never stop running.
>>>
>>> How do you KNOW it would never stop running? Given
>>>
>>> void P(u32 x)
>>> {
>>> if (H(x, x))
>>> FUBAR(); // a disguised infinite loop
>>> return;
>>> }
>>>
>>
>> It never gets to FUBAR()
>
> This is your second reply to my post, your first reply said it "looks
> inside" FUBAR so you are contradicting yourself.
>
> /Flibble


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220608001721.000030ce@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21884&group=comp.lang.c#21884

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!news.uzoreto.com!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220608001721.000030ce@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608000441.00000295@reddwarf.jmc>
<noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 637
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 23:17:21 UTC
Date: Wed, 8 Jun 2022 00:17:21 +0100
X-Received-Bytes: 36782
 by: Mr Flibble - Tue, 7 Jun 2022 23:17 UTC

On Tue, 7 Jun 2022 18:14:01 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 6:04 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 18:01:25 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 5:45 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 17:37:44 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 16:28:21 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> >>>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> because δ is a partial
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined for any final state so
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine will halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it enters a final
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state. (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Introduction to Formal
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and Company.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C function this means reaching
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the "ret" instruction.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret". Instead,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "not defined" should include at
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that means 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if the stack is empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C way of saying the same thing.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine equivalent of an
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "abnormal termination" in C?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM ceasing to calculate
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead. It
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does not mean: a) that the TM (doing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted b) that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulated computation halts c)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is merely part of the TM,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then the word "halt" has a different
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> meaning when applied to that simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> part from when applied to the entire
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM. I'm not even sure what you mean
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> when you say a part of a TM has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or not halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> halting, and like you, I can't work out
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> what that would mean!  I used "halt"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> only with respect to a computation,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> meaning that the computation halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> [there is an n such that computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> step n is a TM final state].
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> think that by your definition of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, the simulating TM must be a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> "pure" simulator that does nothing but
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulate computation steps until the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts, at which point the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM). I get
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> that with that interpretation what you
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just one final state of a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine, >>> which has thus
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct. I'd just say I don't think
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> that usage of "simulation" is very
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what PO
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> is talking about (so it would be wrong
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> if applied PO's posts...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> which consists of calculating
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps of some given
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the TM logic. A TM's typical use of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation might be something like
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> "..the TM simulates the computation for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> n steps, and if the simulation halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> during those n steps, the TM [blah
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah], /otherwise/ the TM [blah blah
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah]...". Just about every reference
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the literature I can recall is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> something like that.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to calculate
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >> something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> or enters an infinite loop.  (That
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> logic is not part of the simulation,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> IMO.) >> It does *NOT* mean:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> exacmples of a simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) might halt or never halt, and this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> is unaffected by a simulator's decision
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> to simulate no further computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps. [The TM may have spotted some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> pattern in the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> which implies P(I) never halts - that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> is a separate matter, but for sure the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> mere act of "aborting" the simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> doesn't imply P(I) never halts, or
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> imply that it halts...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> OF THOSE. (Like you say, what would
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> part of a TM halting mean?)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list).
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> The elements of the sequence are pairs
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> of a TM state name and a string
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> representing the "tape" contents when
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> the state was entered. Note that this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> view has no character of animation in it
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> and makes the definition of the halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or
> >>>>>>>>>>>>>>>>>>>>>>>>>>> at least meant). Your sequence is my
> >>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. Formally, these would
> >>>>>>>>>>>>>>>>>>>>>>>>>>> be defined inductively via the rule to go
> >>>>>>>>>>>>>>>>>>>>>>>>>>> from step n to step n+1. (Not an
> >>>>>>>>>>>>>>>>>>>>>>>>>>> animation, but the induction gives some
> >>>>>>>>>>>>>>>>>>>>>>>>>>> /sense/ of step-by-step calculation, and
> >>>>>>>>>>>>>>>>>>>>>>>>>>> a simulator will follow this, starting at
> >>>>>>>>>>>>>>>>>>>>>>>>>>> step 1, then calculate step 2 and so on.
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Still, I agree the entire sequence [the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> "computation"] exists as one timeless
> >>>>>>>>>>>>>>>>>>>>>>>>>>> structure.  Too abstract for PO...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to
> >>>>>>>>>>>>>>>>>>>>>>>>>> conflate the program under test with the
> >>>>>>>>>>>>>>>>>>>>>>>>>> test program as a single computation then
> >>>>>>>>>>>>>>>>>>>>>>>>>> the whole idea of a halt decider becomes
> >>>>>>>>>>>>>>>>>>>>>>>>>> less coherent and
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend
> >>>>>>>>>>>>>>>>>>>>>>>>>> that you don't already know that H(P,P)==0
> >>>>>>>>>>>>>>>>>>>>>>>>>> is correct and the H/P relationship
> >>>>>>>>>>>>>>>>>>>>>>>>>> matches the halting problem counter
> >>>>>>>>>>>>>>>>>>>>>>>>>> example template.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>       For any program H that
> >>>>>>>>>>>>>>>>>>>>>>>>>> might determine if programs halt, a
> >>>>>>>>>>>>>>>>>>>>>>>>>> "pathological" program P, called with some
> >>>>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its
> >>>>>>>>>>>>>>>>>>>>>>>>>> input to H and then specifically do the
> >>>>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>>>>>>>>>       can exist that handles
> >>>>>>>>>>>>>>>>>>>>>>>>>> this case.
> >>>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> the sequence and that causes some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> difficulties in the same way that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> elaborating an infinite sum or sequence
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> does in math classes. An (ultimate)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> value only exists if there is some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> notation of convergence or limit which
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> typically is the case with examples used
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> in a math class. There is no definition
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> of convergence or limit with the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence defined by TM(STRING); rather,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> we simply ask about the last pair if the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence is finite.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would
> >>>>>>>>>>>>>>>>>>>>>>>>>>> call a TM which evaluates the first 10
> >>>>>>>>>>>>>>>>>>>>>>>>>>> steps of a computation, and then does
> >>>>>>>>>>>>>>>>>>>>>>>>>>> something else. What is it doing while
> >>>>>>>>>>>>>>>>>>>>>>>>>>> evaluating those 10 steps?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
> >>>>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for 10
> >>>>>>>>>>>>>>>>>>>>>>>>>>> steps) - then it stops simulating and does
> >>>>>>>>>>>>>>>>>>>>>>>>>>> something else. Obviously I wouldn't
> >>>>>>>>>>>>>>>>>>>>>>>>>>> describe it as "correctly" simulating,
> >>>>>>>>>>>>>>>>>>>>>>>>>>> because nobody considers incorrect
> >>>>>>>>>>>>>>>>>>>>>>>>>>> simulations, so the word would be
> >>>>>>>>>>>>>>>>>>>>>>>>>>> redundant!
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
> >>>>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to form
> >>>>>>>>>>>>>>>>>>>>>>>>>> rebuttals and the most persistent of the
> >>>>>>>>>>>>>>>>>>>>>>>>>> fake rebuttals has been that the simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>> is incorrect. It is very easy to verify the
> >>>>>>>>>>>>>>>>>>>>>>>>>> correct x86 emulation on the basis of the
> >>>>>>>>>>>>>>>>>>>>>>>>>> x86 language.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
> >>>>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
> >>>>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy
> >>>>>>>>>>>>>>>>>>>>>>>> idiot is trying to claim that it is utterly
> >>>>>>>>>>>>>>>>>>>>>>>> impossible to create a C program that
> >>>>>>>>>>>>>>>>>>>>>>>> examines the x86 execution trace derived from
> >>>>>>>>>>>>>>>>>>>>>>>> simulating the input to H0(Infinite_Loop)
> >>>>>>>>>>>>>>>>>>>>>>>> with an x86 emulator to correctly determine
> >>>>>>>>>>>>>>>>>>>>>>>> that Infinite_Loop() infinitely loops.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
> >>>>>>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
> >>>>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation
> >>>>>>>>>>>>>>>>>>>>>>>> Execution Trace Stored at:212343
> >>>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov
> >>>>>>>>>>>>>>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe
> >>>>>>>>>>>>>>>>>>>>>>>> jmp 00001345 [00001345][00212333][00212337]
> >>>>>>>>>>>>>>>>>>>>>>>> ebfe jmp 00001345 Local Halt Decider:
> >>>>>>>>>>>>>>>>>>>>>>>> Infinite Loop Detected Simulation Stopped
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
> >>>>>>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
> >>>>>>>>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the
> >>>>>>>>>>>>>>>>>>>>> logic used to decide when to enter the infinite
> >>>>>>>>>>>>>>>>>>>>> loop;
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked
> >>>>>>>>>>>>>>>>>>>> we have no idea that a correct x86 emulation of
> >>>>>>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at
> >>>>>>>>>>>>>>>>>>>> machine address [00001345] or not.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation
> >>>>>>>>>>>>>>>>>>>> of Infinite_Loop might instead involve emulating
> >>>>>>>>>>>>>>>>>>>> an entirely different function that plays
> >>>>>>>>>>>>>>>>>>>> tic-tac-toe?
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial
> >>>>>>>>>>>>>>>>>>> however your program and trace are not telling
> >>>>>>>>>>>>>>>>>>> the full story as far as the HP proofs are
> >>>>>>>>>>>>>>>>>>> concerned;
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> The only thing that my program trace conclusively
> >>>>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return
> >>>>>>>>>>>>>>>>>> value that does correctly correspond to the actual
> >>>>>>>>>>>>>>>>>> behavior of the actual input.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> For any program H that might
> >>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>>> program P, called with some input,
> >>>>>>>>>>>>>>>>>> can pass its own source and its input to
> >>>>>>>>>>>>>>>>>> H and then specifically do the
> >>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>> can exist that handles this case.
> >>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>> if (H(x, x))
> >>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>> return;
> >>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P,
> >>>>>>>>>>>>>>>>>> (u32)P)); }
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> _P()
> >>>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>>>>>>>>>>>>>> [00001358](01) 50 push eax //
> >>>>>>>>>>>>>>>>>> push P [00001359](03) 8b4d08 mov
> >>>>>>>>>>>>>>>>>> ecx,[ebp+08] [0000135c](01) 51 push
> >>>>>>>>>>>>>>>>>> ecx // push P [0000135d](05) e840feffff
> >>>>>>>>>>>>>>>>>> call 000011a2 // call H [00001362](03) 83c408
> >>>>>>>>>>>>>>>>>> add esp,+08 [00001365](02) 85c0
> >>>>>>>>>>>>>>>>>> test eax,eax [00001367](02) 7402 jz
> >>>>>>>>>>>>>>>>>> 0000136b [00001369](02) ebfe jmp
> >>>>>>>>>>>>>>>>>> 00001369 [0000136b](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>> [0000136c](01) c3 ret
> >>>>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
> >>>>>>>>>>>>>>>>>> emulates its input that it must emulate the first
> >>>>>>>>>>>>>>>>>> seven instructions of P. Because the seventh
> >>>>>>>>>>>>>>>>>> instruction of P repeats this process we can know
> >>>>>>>>>>>>>>>>>> with complete certainty that the emulated P never
> >>>>>>>>>>>>>>>>>> reaches its final “ret” instruction, thus never
> >>>>>>>>>>>>>>>>>> halts.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> But the halting problem proofs (including [Strachey
> >>>>>>>>>>>>>>>>> 1965]) that you are trying to refute don't do that,
> >>>>>>>>>>>>>>>>> they DO NOT make any recursive calls
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Because the idea of a simulating halt decider being
> >>>>>>>>>>>>>>>> applied to the halting problem counter-example is
> >>>>>>>>>>>>>>>> brand new with me you won't find other references
> >>>>>>>>>>>>>>>> that refer to "infinitely nested simulation".
> >>>>>>>>>>>>>>>>> which is what you are doing with "call H" above. Why
> >>>>>>>>>>>>>>>>> are you doing something different to what the proofs
> >>>>>>>>>>>>>>>>> you are trying to refute do given doing so is no
> >>>>>>>>>>>>>>>>> longer related to the Halting Problem?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> The proofs never bothered to examine my idea because
> >>>>>>>>>>>>>>>> it was unknown by everyone prior to me creating it in
> >>>>>>>>>>>>>>>> 2016.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> It seems to me that your idea would only be novel
> >>>>>>>>>>>>>>> because it is a mistake. Your mistake is to have the
> >>>>>>>>>>>>>>> candidate program call into the SAME INSTANCE of the
> >>>>>>>>>>>>>>> decider which is deciding the candidate program.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
> >>>>>>>>>>>>>> Whenever H simulates its input it creates a whole new
> >>>>>>>>>>>>>> process context.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> You cannot make a direct function call into another
> >>>>>>>>>>>>> process; it has to be the same process.
> >>>>>>>>>>>>
> >>>>>>>>>>>> As I have said very many hundreds of times I created the
> >>>>>>>>>>>> x86utm operating system that enables any C function to
> >>>>>>>>>>>> execute another C function using an x86 emulator.
> >>>>>>>>>>>>
> >>>>>>>>>>>> In the case of H(P,P) H creates a separate process
> >>>>>>>>>>>> context to simulate its input every time that it is
> >>>>>>>>>>>> invoked, thus subsequent invocations of H(P,P) execute
> >>>>>>>>>>>> in the process context that was previously created.
> >>>>>>>>>>>>
> >>>>>>>>>>>>> As far as getting ideas as to what you are
> >>>>>>>>>>>>> actually doing: publish all your source so we can see
> >>>>>>>>>>>>> for ourselves so we don't have to guess.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> That would be 100,000-fold more complex then simply
> >>>>>>>>>>>> paying complete attention to what I am saying. Everyone
> >>>>>>>>>>>> that is not bright enough to understand 14 lines of code
> >>>>>>>>>>>> keeps saying that they could easily understand 250 pages
> >>>>>>>>>>>> of code, even though the 14 lines proves to be too much
> >>>>>>>>>>>> for them.
> >>>>>>>>>>>
> >>>>>>>>>>> Your code:
> >>>>>>>>>>>
> >>>>>>>>>>> call 000011a2 // call H
> >>>>>>>>>>>
> >>>>>>>>>>> is simply a function call into the address space of the
> >>>>>>>>>>> current process, it doesn't look like code to spawn a new
> >>>>>>>>>>> process to me.
> >>>>>>>>>>
> >>>>>>>>>> How many times do I have to say this before you notice
> >>>>>>>>>> that I said it at least once? H (in the current process)
> >>>>>>>>>> always creates a new process context to emulate its its
> >>>>>>>>>> input with an x86 emulator.
> >>>>>>>>>
> >>>>>>>>> I will have to take your word for it as you refuse to
> >>>>>>>>> publish source code. Why not just stick your project on
> >>>>>>>>> GitHub? Open source is de rigueur these days. What are you
> >>>>>>>>> trying to hide?
> >>>>>>>>>
> >>>>>>>>> If a new process context is made then how is nested
> >>>>>>>>> simulation detected? I assume the data segment of each
> >>>>>>>>> process is private...
> >>>>>>>>>
> >>>>>>>>> /Flibble
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> An honest dialogue requires points of mutual agreement. The
> >>>>>>>> price of moving beyond H(P,P)==0 is universal agreement that
> >>>>>>>> H(P,P)==0 is correct. The next point beyond H(P,P)==0 is
> >>>>>>>> computer science thus not appropriate for the C/C++ forum.
> >>>>>>>
> >>>>>>> I agree that H(P,P)==0 for pathological input assuming your
> >>>>>>> method for detecting pathological input is sufficiently robust
> >>>>>>> however how is that distinguished from H(P1,P1)==0 where P1 is
> >>>>>>> normal non-halting (i.e. non-pathological)?
> >>>>>>
> >>>>>> When-so-ever the correct and complete emulation of the input
> >>>>>> to H would never stop running H(x,y)==0 is correct.
> >>>>>>
> >>>>>>> If you are pattern matching op codes "EB FE" to detect the
> >>>>>>> infinite loop then how do you solve the problem of there being
> >>>>>>> 2^n different patterns equivalent to that loop so someone
> >>>>>>> could come along and write a pathological program that
> >>>>>>> defeats your pattern matcher? This is why we need your source
> >>>>>>> code to answer these kinds of questions.
> >>>>>>>
> >>>>>>> /Flibble
> >>>>>>>
> >>>>>>
> >>>>>> To refute all of the HP conventional proofs only requires
> >>>>>> correctly determining that H(P,P)==0.
> >>>>>
> >>>>> Are you using pattern matching to detect the infinite loop or
> >>>>> not?
> >>>>>
> >>>>> /Flibble
> >>>>>
> >>>>
> >>>> Even if H(P,P) simply makes a wild guess that its input never
> >>>> halts H(P,P)==0 is correct because the correct and complete x86
> >>>> emulation of this input would never stop running.
> >>>
> >>> How do you KNOW it would never stop running? Given
> >>>
> >>> void P(u32 x)
> >>> {
> >>> if (H(x, x))
> >>> FUBAR(); // a disguised infinite loop
> >>> return;
> >>> }
> >>>
> >>
> >> It never gets to FUBAR()
> >
> > This is your second reply to my post, your first reply said it
> > "looks inside" FUBAR so you are contradicting yourself.
> >
> > /Flibble
>
> Yes I realized that I was incorrect and corrected my mistake.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<SuadnQ_he-OBQgL_nZ2dnUU7_83NnZ2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21885&group=comp.lang.c#21885

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 18:28:28 -0500
Date: Tue, 7 Jun 2022 18:28:27 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220606194152.00004098@reddwarf.jmc>
<X8ednfXaH-ms0gP_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608000441.00000295@reddwarf.jmc>
<noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608001721.000030ce@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220608001721.000030ce@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <SuadnQ_he-OBQgL_nZ2dnUU7_83NnZ2d@giganews.com>
Lines: 643
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-QyHq5HO1hMMueoEgyYr/1I4DLFxNBDV+RdRL7DUPw+8kZctMH/Dy8DiIovy6Is6DSoXqSRcfozA10+0!luuY4EmNOIJPsPPkV+Vt+7RqTTsae+RNLUlBtBDIJUhJ2EEq3dTJYBHbzh29zGwAJ52/15VcxA2b
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 37209
 by: olcott - Tue, 7 Jun 2022 23:28 UTC

On 6/7/2022 6:17 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 18:14:01 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 6:04 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 18:01:25 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 5:45 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 17:37:44 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 16:28:21 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
>>>>>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
>>>>>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it reaches a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> because δ is a partial
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined for any final state so
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine will halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it enters a final
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state. (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Introduction to Formal
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and Company.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally. In a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C function this means reaching
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the "ret" instruction.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret". Instead,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "not defined" should include at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that means 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if the stack is empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec by
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C way of saying the same thing.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine equivalent of an
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "abnormal termination" in C?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM ceasing to calculate
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead. It
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does not mean: a) that the TM (doing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted b) that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulated computation halts c)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking more
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> about nice shades of words than
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, aborting it will bring
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM to a halt state.  If that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is merely part of the TM,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then the word "halt" has a different
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> meaning when applied to that simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> part from when applied to the entire
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM. I'm not even sure what you mean
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> when you say a part of a TM has halted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or not halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross purposes
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halting, and like you, I can't work out
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> what that would mean!  I used "halt"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> only with respect to a computation,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> meaning that the computation halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [there is an n such that computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> step n is a TM final state].
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> think that by your definition of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, the simulating TM must be a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "pure" simulator that does nothing but
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulate computation steps until the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation halts, at which point the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM halts (like a UTM). I get
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that with that interpretation what you
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just one final state of a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine, >>> which has thus
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct. I'd just say I don't think
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that usage of "simulation" is very
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what PO
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is talking about (so it would be wrong
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if applied PO's posts...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader: it's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simply the activity performed by a TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which consists of calculating
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps of some given
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the TM logic. A TM's typical use of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation might be something like
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "..the TM simulates the computation for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> n steps, and if the simulation halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> during those n steps, the TM [blah
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah], /otherwise/ the TM [blah blah
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah]...". Just about every reference
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the literature I can recall is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something like that.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to calculate
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or enters an infinite loop.  (That
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> logic is not part of the simulation,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> IMO.) >> It does *NOT* mean:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> a)  that the TM (doing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts >> c)  that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation never halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exacmples of a simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) might halt or never halt, and this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is unaffected by a simulator's decision
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to simulate no further computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps. [The TM may have spotted some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pattern in the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which implies P(I) never halts - that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is a separate matter, but for sure the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mere act of "aborting" the simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> doesn't imply P(I) never halts, or
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> imply that it halts...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF EITHER
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OF THOSE. (Like you say, what would
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> part of a TM halting mean?)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list).
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The elements of the sequence are pairs
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of a TM state name and a string
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> representing the "tape" contents when
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the state was entered. Note that this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> view has no character of animation in it
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and makes the definition of the halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> predicate (H) trivial:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING) is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> finite then TRUE else FALSE.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said (or
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at least meant). Your sequence is my
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. Formally, these would
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> be defined inductively via the rule to go
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> from step n to step n+1. (Not an
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> animation, but the induction gives some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /sense/ of step-by-step calculation, and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a simulator will follow this, starting at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> step 1, then calculate step 2 and so on.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Still, I agree the entire sequence [the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "computation"] exists as one timeless
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> structure.  Too abstract for PO...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to
>>>>>>>>>>>>>>>>>>>>>>>>>>>> conflate the program under test with the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> test program as a single computation then
>>>>>>>>>>>>>>>>>>>>>>>>>>>> the whole idea of a halt decider becomes
>>>>>>>>>>>>>>>>>>>>>>>>>>>> less coherent and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend
>>>>>>>>>>>>>>>>>>>>>>>>>>>> that you don't already know that H(P,P)==0
>>>>>>>>>>>>>>>>>>>>>>>>>>>> is correct and the H/P relationship
>>>>>>>>>>>>>>>>>>>>>>>>>>>> matches the halting problem counter
>>>>>>>>>>>>>>>>>>>>>>>>>>>> example template.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>       For any program H that
>>>>>>>>>>>>>>>>>>>>>>>>>>>> might determine if programs halt, a
>>>>>>>>>>>>>>>>>>>>>>>>>>>> "pathological" program P, called with some
>>>>>>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its
>>>>>>>>>>>>>>>>>>>>>>>>>>>> input to H and then specifically do the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>>>>>>>>>>       can exist that handles
>>>>>>>>>>>>>>>>>>>>>>>>>>>> this case.
>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the sequence and that causes some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> difficulties in the same way that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> elaborating an infinite sum or sequence
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does in math classes. An (ultimate)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> value only exists if there is some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> notation of convergence or limit which
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> typically is the case with examples used
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in a math class. There is no definition
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of convergence or limit with the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence defined by TM(STRING); rather,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> we simply ask about the last pair if the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence is finite.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> call a TM which evaluates the first 10
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps of a computation, and then does
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else. What is it doing while
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> evaluating those 10 steps?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for 10
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps) - then it stops simulating and does
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else. Obviously I wouldn't
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> describe it as "correctly" simulating,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> because nobody considers incorrect
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulations, so the word would be
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> redundant!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
>>>>>>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to form
>>>>>>>>>>>>>>>>>>>>>>>>>>>> rebuttals and the most persistent of the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> fake rebuttals has been that the simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>> is incorrect. It is very easy to verify the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct x86 emulation on the basis of the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> x86 language.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
>>>>>>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
>>>>>>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy
>>>>>>>>>>>>>>>>>>>>>>>>>> idiot is trying to claim that it is utterly
>>>>>>>>>>>>>>>>>>>>>>>>>> impossible to create a C program that
>>>>>>>>>>>>>>>>>>>>>>>>>> examines the x86 execution trace derived from
>>>>>>>>>>>>>>>>>>>>>>>>>> simulating the input to H0(Infinite_Loop)
>>>>>>>>>>>>>>>>>>>>>>>>>> with an x86 emulator to correctly determine
>>>>>>>>>>>>>>>>>>>>>>>>>> that Infinite_Loop() infinitely loops.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp 00001345
>>>>>>>>>>>>>>>>>>>>>>>>>> [00001347](01) 5d pop ebp
>>>>>>>>>>>>>>>>>>>>>>>>>> [00001348](01) c3 ret
>>>>>>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation
>>>>>>>>>>>>>>>>>>>>>>>>>> Execution Trace Stored at:212343
>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
>>>>>>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov
>>>>>>>>>>>>>>>>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe
>>>>>>>>>>>>>>>>>>>>>>>>>> jmp 00001345 [00001345][00212333][00212337]
>>>>>>>>>>>>>>>>>>>>>>>>>> ebfe jmp 00001345 Local Halt Decider:
>>>>>>>>>>>>>>>>>>>>>>>>>> Infinite Loop Detected Simulation Stopped
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not the
>>>>>>>>>>>>>>>>>>>>>>>>> infinite loop but the logic used to decide to
>>>>>>>>>>>>>>>>>>>>>>>>> enter the infinite loop. Post *full* traces.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the
>>>>>>>>>>>>>>>>>>>>>>> logic used to decide when to enter the infinite
>>>>>>>>>>>>>>>>>>>>>>> loop;
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is invoked
>>>>>>>>>>>>>>>>>>>>>> we have no idea that a correct x86 emulation of
>>>>>>>>>>>>>>>>>>>>>> Infinite_Loop would reach the instruction at
>>>>>>>>>>>>>>>>>>>>>> machine address [00001345] or not.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> It might be the case that a correct x86 emulation
>>>>>>>>>>>>>>>>>>>>>> of Infinite_Loop might instead involve emulating
>>>>>>>>>>>>>>>>>>>>>> an entirely different function that plays
>>>>>>>>>>>>>>>>>>>>>> tic-tac-toe?
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial
>>>>>>>>>>>>>>>>>>>>> however your program and trace are not telling
>>>>>>>>>>>>>>>>>>>>> the full story as far as the HP proofs are
>>>>>>>>>>>>>>>>>>>>> concerned;
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> The only thing that my program trace conclusively
>>>>>>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return
>>>>>>>>>>>>>>>>>>>> value that does correctly correspond to the actual
>>>>>>>>>>>>>>>>>>>> behavior of the actual input.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> For any program H that might
>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>>> program P, called with some input,
>>>>>>>>>>>>>>>>>>>> can pass its own source and its input to
>>>>>>>>>>>>>>>>>>>> H and then specifically do the
>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>> can exist that handles this case.
>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>> if (H(x, x))
>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>> return;
>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P,
>>>>>>>>>>>>>>>>>>>> (u32)P)); }
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> _P()
>>>>>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>>>>>>>>>>>>>> [00001358](01) 50 push eax //
>>>>>>>>>>>>>>>>>>>> push P [00001359](03) 8b4d08 mov
>>>>>>>>>>>>>>>>>>>> ecx,[ebp+08] [0000135c](01) 51 push
>>>>>>>>>>>>>>>>>>>> ecx // push P [0000135d](05) e840feffff
>>>>>>>>>>>>>>>>>>>> call 000011a2 // call H [00001362](03) 83c408
>>>>>>>>>>>>>>>>>>>> add esp,+08 [00001365](02) 85c0
>>>>>>>>>>>>>>>>>>>> test eax,eax [00001367](02) 7402 jz
>>>>>>>>>>>>>>>>>>>> 0000136b [00001369](02) ebfe jmp
>>>>>>>>>>>>>>>>>>>> 00001369 [0000136b](01) 5d pop ebp
>>>>>>>>>>>>>>>>>>>> [0000136c](01) c3 ret
>>>>>>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P) correctly
>>>>>>>>>>>>>>>>>>>> emulates its input that it must emulate the first
>>>>>>>>>>>>>>>>>>>> seven instructions of P. Because the seventh
>>>>>>>>>>>>>>>>>>>> instruction of P repeats this process we can know
>>>>>>>>>>>>>>>>>>>> with complete certainty that the emulated P never
>>>>>>>>>>>>>>>>>>>> reaches its final “ret” instruction, thus never
>>>>>>>>>>>>>>>>>>>> halts.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> But the halting problem proofs (including [Strachey
>>>>>>>>>>>>>>>>>>> 1965]) that you are trying to refute don't do that,
>>>>>>>>>>>>>>>>>>> they DO NOT make any recursive calls
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Because the idea of a simulating halt decider being
>>>>>>>>>>>>>>>>>> applied to the halting problem counter-example is
>>>>>>>>>>>>>>>>>> brand new with me you won't find other references
>>>>>>>>>>>>>>>>>> that refer to "infinitely nested simulation".
>>>>>>>>>>>>>>>>>>> which is what you are doing with "call H" above. Why
>>>>>>>>>>>>>>>>>>> are you doing something different to what the proofs
>>>>>>>>>>>>>>>>>>> you are trying to refute do given doing so is no
>>>>>>>>>>>>>>>>>>> longer related to the Halting Problem?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> The proofs never bothered to examine my idea because
>>>>>>>>>>>>>>>>>> it was unknown by everyone prior to me creating it in
>>>>>>>>>>>>>>>>>> 2016.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> It seems to me that your idea would only be novel
>>>>>>>>>>>>>>>>> because it is a mistake. Your mistake is to have the
>>>>>>>>>>>>>>>>> candidate program call into the SAME INSTANCE of the
>>>>>>>>>>>>>>>>> decider which is deciding the candidate program.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
>>>>>>>>>>>>>>>> Whenever H simulates its input it creates a whole new
>>>>>>>>>>>>>>>> process context.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> You cannot make a direct function call into another
>>>>>>>>>>>>>>> process; it has to be the same process.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> As I have said very many hundreds of times I created the
>>>>>>>>>>>>>> x86utm operating system that enables any C function to
>>>>>>>>>>>>>> execute another C function using an x86 emulator.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> In the case of H(P,P) H creates a separate process
>>>>>>>>>>>>>> context to simulate its input every time that it is
>>>>>>>>>>>>>> invoked, thus subsequent invocations of H(P,P) execute
>>>>>>>>>>>>>> in the process context that was previously created.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> As far as getting ideas as to what you are
>>>>>>>>>>>>>>> actually doing: publish all your source so we can see
>>>>>>>>>>>>>>> for ourselves so we don't have to guess.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> That would be 100,000-fold more complex then simply
>>>>>>>>>>>>>> paying complete attention to what I am saying. Everyone
>>>>>>>>>>>>>> that is not bright enough to understand 14 lines of code
>>>>>>>>>>>>>> keeps saying that they could easily understand 250 pages
>>>>>>>>>>>>>> of code, even though the 14 lines proves to be too much
>>>>>>>>>>>>>> for them.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Your code:
>>>>>>>>>>>>>
>>>>>>>>>>>>> call 000011a2 // call H
>>>>>>>>>>>>>
>>>>>>>>>>>>> is simply a function call into the address space of the
>>>>>>>>>>>>> current process, it doesn't look like code to spawn a new
>>>>>>>>>>>>> process to me.
>>>>>>>>>>>>
>>>>>>>>>>>> How many times do I have to say this before you notice
>>>>>>>>>>>> that I said it at least once? H (in the current process)
>>>>>>>>>>>> always creates a new process context to emulate its its
>>>>>>>>>>>> input with an x86 emulator.
>>>>>>>>>>>
>>>>>>>>>>> I will have to take your word for it as you refuse to
>>>>>>>>>>> publish source code. Why not just stick your project on
>>>>>>>>>>> GitHub? Open source is de rigueur these days. What are you
>>>>>>>>>>> trying to hide?
>>>>>>>>>>>
>>>>>>>>>>> If a new process context is made then how is nested
>>>>>>>>>>> simulation detected? I assume the data segment of each
>>>>>>>>>>> process is private...
>>>>>>>>>>>
>>>>>>>>>>> /Flibble
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> An honest dialogue requires points of mutual agreement. The
>>>>>>>>>> price of moving beyond H(P,P)==0 is universal agreement that
>>>>>>>>>> H(P,P)==0 is correct. The next point beyond H(P,P)==0 is
>>>>>>>>>> computer science thus not appropriate for the C/C++ forum.
>>>>>>>>>
>>>>>>>>> I agree that H(P,P)==0 for pathological input assuming your
>>>>>>>>> method for detecting pathological input is sufficiently robust
>>>>>>>>> however how is that distinguished from H(P1,P1)==0 where P1 is
>>>>>>>>> normal non-halting (i.e. non-pathological)?
>>>>>>>>
>>>>>>>> When-so-ever the correct and complete emulation of the input
>>>>>>>> to H would never stop running H(x,y)==0 is correct.
>>>>>>>>
>>>>>>>>> If you are pattern matching op codes "EB FE" to detect the
>>>>>>>>> infinite loop then how do you solve the problem of there being
>>>>>>>>> 2^n different patterns equivalent to that loop so someone
>>>>>>>>> could come along and write a pathological program that
>>>>>>>>> defeats your pattern matcher? This is why we need your source
>>>>>>>>> code to answer these kinds of questions.
>>>>>>>>>
>>>>>>>>> /Flibble
>>>>>>>>>
>>>>>>>>
>>>>>>>> To refute all of the HP conventional proofs only requires
>>>>>>>> correctly determining that H(P,P)==0.
>>>>>>>
>>>>>>> Are you using pattern matching to detect the infinite loop or
>>>>>>> not?
>>>>>>>
>>>>>>> /Flibble
>>>>>>>
>>>>>>
>>>>>> Even if H(P,P) simply makes a wild guess that its input never
>>>>>> halts H(P,P)==0 is correct because the correct and complete x86
>>>>>> emulation of this input would never stop running.
>>>>>
>>>>> How do you KNOW it would never stop running? Given
>>>>>
>>>>> void P(u32 x)
>>>>> {
>>>>> if (H(x, x))
>>>>> FUBAR(); // a disguised infinite loop
>>>>> return;
>>>>> }
>>>>>
>>>>
>>>> It never gets to FUBAR()
>>>
>>> This is your second reply to my post, your first reply said it
>>> "looks inside" FUBAR so you are contradicting yourself.
>>>
>>> /Flibble
>>
>> Yes I realized that I was incorrect and corrected my mistake.
>
> So you are now saying that it is merely the detection of the nested
> simulation upon which you evaluate H and not what P does after it
> invokes H?
>


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220608003149.00001cf5@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21886&group=comp.lang.c#21886

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!npeer.as286.net!npeer-ng0.as286.net!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220608003149.00001cf5@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608000441.00000295@reddwarf.jmc>
<noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608001721.000030ce@reddwarf.jmc>
<SuadnQ_he-OBQgL_nZ2dnUU7_83NnZ2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 680
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 23:31:49 UTC
Date: Wed, 8 Jun 2022 00:31:49 +0100
X-Received-Bytes: 39193
 by: Mr Flibble - Tue, 7 Jun 2022 23:31 UTC

On Tue, 7 Jun 2022 18:28:27 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 6:17 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 18:14:01 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 6:04 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 18:01:25 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 5:45 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 17:37:44 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 16:28:21 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
> >>>>>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus..com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it reaches a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not defined; this is possible
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> because δ is a partial
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined for any final state so
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine will halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it enters a final
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state. (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Introduction to Formal
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and Company.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this means terminated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> normally. In a C function
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this means reaching the "ret"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret". Instead,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "not defined" should include at
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that means 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if the stack is empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> by the program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine way of saying
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the C way of saying the same
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thing.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine equivalent of an
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "abnormal termination" in C?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state of a turing machine,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM ceasing to calculate
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead. It
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does not mean: a) that the TM (doing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted b) that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulated computation halts c)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> more about nice shades of words than
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine, aborting it will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bring the TM to a halt state.  If
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation is merely part of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM, then the word "halt" has a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> different meaning when applied to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation part from when
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> applied to the entire TM. I'm not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> even sure what you mean when you say
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a part of a TM has halted or not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> purposes
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halting, and like you, I can't work
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> out what that would mean!  I used
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "halt" only with respect to a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, meaning that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n such
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that computation step n is a TM final
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state].
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> think that by your definition of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, the simulating TM must be
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a "pure" simulator that does nothing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> but simulate computation steps until
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation halts, at which point
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulating TM halts (like a UTM).
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I get that with that interpretation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> what you said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just one final state of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a turing machine, >>> which has thus
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct. I'd just say I don't think
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that usage of "simulation" is very
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what PO
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is talking about (so it would be wrong
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if applied PO's posts...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's simply the activity performed by
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a TM which consists of calculating
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps of some given
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the TM logic. A TM's typical use of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation might be something like
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "..the TM simulates the computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for n steps, and if the simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts during those n steps, the TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [blah blah], /otherwise/ the TM [blah
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah blah]...". Just about every
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reference in the literature I can
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> recall is something like that.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some computation, and going on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts or enters an infinite loop.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (That logic is not part of the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, IMO.) >> It does *NOT*
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mean: >> a)  that the TM (doing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to something else...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts >> c)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exacmples of a simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) might halt or never halt, and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this is unaffected by a simulator's
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> decision to simulate no further
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> spotted some pattern in the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation which implies P(I) never
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts - that is a separate matter,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> but for sure the mere act of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "aborting" the simulation doesn't
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> imply P(I) never halts, or imply that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it halts...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> EITHER OF THOSE. (Like you say, what
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would part of a TM halting mean?)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list).
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The elements of the sequence are pairs
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of a TM state name and a string
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> representing the "tape" contents when
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the state was entered. Note that this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> view has no character of animation in
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it and makes the definition of the halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is finite then TRUE else FALSE.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> (or at least meant). Your sequence is my
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. Formally, these would
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> be defined inductively via the rule to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> go from step n to step n+1. (Not an
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> animation, but the induction gives some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> /sense/ of step-by-step calculation, and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> a simulator will follow this, starting
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> at step 1, then calculate step 2 and so
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> on. Still, I agree the entire sequence
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> [the "computation"] exists as one
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> PO...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> conflate the program under test with the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> test program as a single computation then
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> the whole idea of a halt decider becomes
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> less coherent and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> that you don't already know that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> H(P,P)==0 is correct and the H/P
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> relationship matches the halting problem
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> counter example template.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>       For any program H that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> might determine if programs halt, a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> "pathological" program P, called with
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> some input, can pass its own source and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> its input to H and then specifically do
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> the opposite of what H predicts P will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> do. No H can exist that handles
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> this case.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the sequence and that causes some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> difficulties in the same way that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> elaborating an infinite sum or sequence
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does in math classes. An (ultimate)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> value only exists if there is some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> notation of convergence or limit which
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> typically is the case with examples
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> used in a math class. There is no
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition of convergence or limit
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> with the sequence defined by
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM(STRING); rather, we simply ask
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> about the last pair if the sequence is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> finite.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> call a TM which evaluates the first 10
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps of a computation, and then does
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else. What is it doing while
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> evaluating those 10 steps?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 10 steps) - then it stops simulating
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> and does something else. Obviously I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> wouldn't describe it as "correctly"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating, because nobody considers
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> incorrect simulations, so the word
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be redundant!
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to form
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> rebuttals and the most persistent of the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> fake rebuttals has been that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is incorrect. It is very easy
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> to verify the correct x86 emulation on
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> the basis of the x86 language.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
> >>>>>>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
> >>>>>>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy
> >>>>>>>>>>>>>>>>>>>>>>>>>> idiot is trying to claim that it is utterly
> >>>>>>>>>>>>>>>>>>>>>>>>>> impossible to create a C program that
> >>>>>>>>>>>>>>>>>>>>>>>>>> examines the x86 execution trace derived
> >>>>>>>>>>>>>>>>>>>>>>>>>> from simulating the input to
> >>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to
> >>>>>>>>>>>>>>>>>>>>>>>>>> correctly determine that Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>>>> infinitely loops.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp
> >>>>>>>>>>>>>>>>>>>>>>>>>> 00001345 [00001347](01) 5d
> >>>>>>>>>>>>>>>>>>>>>>>>>> pop ebp [00001348](01) c3 ret
> >>>>>>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>> Execution Trace Stored at:212343
> >>>>>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov
> >>>>>>>>>>>>>>>>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe
> >>>>>>>>>>>>>>>>>>>>>>>>>> jmp 00001345 [00001345][00212333][00212337]
> >>>>>>>>>>>>>>>>>>>>>>>>>> ebfe jmp 00001345 Local Halt Decider:
> >>>>>>>>>>>>>>>>>>>>>>>>>> Infinite Loop Detected Simulation Stopped
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not
> >>>>>>>>>>>>>>>>>>>>>>>>> the infinite loop but the logic used to
> >>>>>>>>>>>>>>>>>>>>>>>>> decide to enter the infinite loop. Post
> >>>>>>>>>>>>>>>>>>>>>>>>> *full* traces.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the
> >>>>>>>>>>>>>>>>>>>>>>> logic used to decide when to enter the
> >>>>>>>>>>>>>>>>>>>>>>> infinite loop;
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is
> >>>>>>>>>>>>>>>>>>>>>> invoked we have no idea that a correct x86
> >>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop would reach the
> >>>>>>>>>>>>>>>>>>>>>> instruction at machine address [00001345] or
> >>>>>>>>>>>>>>>>>>>>>> not.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> It might be the case that a correct x86
> >>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop might instead
> >>>>>>>>>>>>>>>>>>>>>> involve emulating an entirely different
> >>>>>>>>>>>>>>>>>>>>>> function that plays tic-tac-toe?
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial
> >>>>>>>>>>>>>>>>>>>>> however your program and trace are not telling
> >>>>>>>>>>>>>>>>>>>>> the full story as far as the HP proofs are
> >>>>>>>>>>>>>>>>>>>>> concerned;
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> The only thing that my program trace conclusively
> >>>>>>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return
> >>>>>>>>>>>>>>>>>>>> value that does correctly correspond to the
> >>>>>>>>>>>>>>>>>>>> actual behavior of the actual input.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> For any program H that might
> >>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>>>>> program P, called with some
> >>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input to
> >>>>>>>>>>>>>>>>>>>> H and then specifically do the
> >>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>>> can exist that handles this case.
> >>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>> if (H(x, x))
> >>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>> return;
> >>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P,
> >>>>>>>>>>>>>>>>>>>> (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> _P()
> >>>>>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
> >>>>>>>>>>>>>>>>>>>> [00001358](01) 50 push eax //
> >>>>>>>>>>>>>>>>>>>> push P [00001359](03) 8b4d08 mov
> >>>>>>>>>>>>>>>>>>>> ecx,[ebp+08] [0000135c](01) 51 push
> >>>>>>>>>>>>>>>>>>>> ecx // push P [0000135d](05) e840feffff
> >>>>>>>>>>>>>>>>>>>> call 000011a2 // call H [00001362](03) 83c408
> >>>>>>>>>>>>>>>>>>>> add esp,+08 [00001365](02) 85c0
> >>>>>>>>>>>>>>>>>>>> test eax,eax [00001367](02) 7402 jz
> >>>>>>>>>>>>>>>>>>>> 0000136b [00001369](02) ebfe jmp
> >>>>>>>>>>>>>>>>>>>> 00001369 [0000136b](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>>>> [0000136c](01) c3 ret
> >>>>>>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P)
> >>>>>>>>>>>>>>>>>>>> correctly emulates its input that it must
> >>>>>>>>>>>>>>>>>>>> emulate the first seven instructions of P.
> >>>>>>>>>>>>>>>>>>>> Because the seventh instruction of P repeats
> >>>>>>>>>>>>>>>>>>>> this process we can know with complete certainty
> >>>>>>>>>>>>>>>>>>>> that the emulated P never reaches its final
> >>>>>>>>>>>>>>>>>>>> “ret” instruction, thus never halts.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> But the halting problem proofs (including
> >>>>>>>>>>>>>>>>>>> [Strachey 1965]) that you are trying to refute
> >>>>>>>>>>>>>>>>>>> don't do that, they DO NOT make any recursive
> >>>>>>>>>>>>>>>>>>> calls
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> Because the idea of a simulating halt decider being
> >>>>>>>>>>>>>>>>>> applied to the halting problem counter-example is
> >>>>>>>>>>>>>>>>>> brand new with me you won't find other references
> >>>>>>>>>>>>>>>>>> that refer to "infinitely nested simulation".
> >>>>>>>>>>>>>>>>>>> which is what you are doing with "call H" above.
> >>>>>>>>>>>>>>>>>>> Why are you doing something different to what the
> >>>>>>>>>>>>>>>>>>> proofs you are trying to refute do given doing so
> >>>>>>>>>>>>>>>>>>> is no longer related to the Halting Problem?
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> The proofs never bothered to examine my idea
> >>>>>>>>>>>>>>>>>> because it was unknown by everyone prior to me
> >>>>>>>>>>>>>>>>>> creating it in 2016.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> It seems to me that your idea would only be novel
> >>>>>>>>>>>>>>>>> because it is a mistake. Your mistake is to have the
> >>>>>>>>>>>>>>>>> candidate program call into the SAME INSTANCE of the
> >>>>>>>>>>>>>>>>> decider which is deciding the candidate program.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
> >>>>>>>>>>>>>>>> Whenever H simulates its input it creates a whole new
> >>>>>>>>>>>>>>>> process context.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> You cannot make a direct function call into another
> >>>>>>>>>>>>>>> process; it has to be the same process.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> As I have said very many hundreds of times I created
> >>>>>>>>>>>>>> the x86utm operating system that enables any C
> >>>>>>>>>>>>>> function to execute another C function using an x86
> >>>>>>>>>>>>>> emulator.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> In the case of H(P,P) H creates a separate process
> >>>>>>>>>>>>>> context to simulate its input every time that it is
> >>>>>>>>>>>>>> invoked, thus subsequent invocations of H(P,P) execute
> >>>>>>>>>>>>>> in the process context that was previously created.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> As far as getting ideas as to what you are
> >>>>>>>>>>>>>>> actually doing: publish all your source so we can see
> >>>>>>>>>>>>>>> for ourselves so we don't have to guess.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> That would be 100,000-fold more complex then simply
> >>>>>>>>>>>>>> paying complete attention to what I am saying. Everyone
> >>>>>>>>>>>>>> that is not bright enough to understand 14 lines of
> >>>>>>>>>>>>>> code keeps saying that they could easily understand
> >>>>>>>>>>>>>> 250 pages of code, even though the 14 lines proves to
> >>>>>>>>>>>>>> be too much for them.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Your code:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> call 000011a2 // call H
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> is simply a function call into the address space of the
> >>>>>>>>>>>>> current process, it doesn't look like code to spawn a
> >>>>>>>>>>>>> new process to me.
> >>>>>>>>>>>>
> >>>>>>>>>>>> How many times do I have to say this before you notice
> >>>>>>>>>>>> that I said it at least once? H (in the current process)
> >>>>>>>>>>>> always creates a new process context to emulate its its
> >>>>>>>>>>>> input with an x86 emulator.
> >>>>>>>>>>>
> >>>>>>>>>>> I will have to take your word for it as you refuse to
> >>>>>>>>>>> publish source code. Why not just stick your project on
> >>>>>>>>>>> GitHub? Open source is de rigueur these days. What are you
> >>>>>>>>>>> trying to hide?
> >>>>>>>>>>>
> >>>>>>>>>>> If a new process context is made then how is nested
> >>>>>>>>>>> simulation detected? I assume the data segment of each
> >>>>>>>>>>> process is private...
> >>>>>>>>>>>
> >>>>>>>>>>> /Flibble
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> An honest dialogue requires points of mutual agreement. The
> >>>>>>>>>> price of moving beyond H(P,P)==0 is universal agreement
> >>>>>>>>>> that H(P,P)==0 is correct. The next point beyond H(P,P)==0
> >>>>>>>>>> is computer science thus not appropriate for the C/C++
> >>>>>>>>>> forum.
> >>>>>>>>>
> >>>>>>>>> I agree that H(P,P)==0 for pathological input assuming your
> >>>>>>>>> method for detecting pathological input is sufficiently
> >>>>>>>>> robust however how is that distinguished from H(P1,P1)==0
> >>>>>>>>> where P1 is normal non-halting (i.e. non-pathological)?
> >>>>>>>>
> >>>>>>>> When-so-ever the correct and complete emulation of the input
> >>>>>>>> to H would never stop running H(x,y)==0 is correct.
> >>>>>>>>
> >>>>>>>>> If you are pattern matching op codes "EB FE" to detect the
> >>>>>>>>> infinite loop then how do you solve the problem of there
> >>>>>>>>> being 2^n different patterns equivalent to that loop so
> >>>>>>>>> someone could come along and write a pathological program
> >>>>>>>>> that defeats your pattern matcher? This is why we need your
> >>>>>>>>> source code to answer these kinds of questions.
> >>>>>>>>>
> >>>>>>>>> /Flibble
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> To refute all of the HP conventional proofs only requires
> >>>>>>>> correctly determining that H(P,P)==0.
> >>>>>>>
> >>>>>>> Are you using pattern matching to detect the infinite loop or
> >>>>>>> not?
> >>>>>>>
> >>>>>>> /Flibble
> >>>>>>>
> >>>>>>
> >>>>>> Even if H(P,P) simply makes a wild guess that its input never
> >>>>>> halts H(P,P)==0 is correct because the correct and complete x86
> >>>>>> emulation of this input would never stop running.
> >>>>>
> >>>>> How do you KNOW it would never stop running? Given
> >>>>>
> >>>>> void P(u32 x)
> >>>>> {
> >>>>> if (H(x, x))
> >>>>> FUBAR(); // a disguised infinite loop
> >>>>> return;
> >>>>> }
> >>>>>
> >>>>
> >>>> It never gets to FUBAR()
> >>>
> >>> This is your second reply to my post, your first reply said it
> >>> "looks inside" FUBAR so you are contradicting yourself.
> >>>
> >>> /Flibble
> >>
> >> Yes I realized that I was incorrect and corrected my mistake.
> >
> > So you are now saying that it is merely the detection of the nested
> > simulation upon which you evaluate H and not what P does after it
> > invokes H?
> >
>
> That really should have been obvious hundreds of messages ago.
> If a function gets stuck in infinitely nested simulation it never
> proceeds to any point after this infinitely nested simulation.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<eMydnV9UufImfQL_nZ2dnUU7_8xh4p2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21887&group=comp.lang.c#21887

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 18:35:23 -0500
Date: Tue, 7 Jun 2022 18:35:22 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607200210.000000e6@reddwarf.jmc>
<4Pydnegn-LfGPwL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608000441.00000295@reddwarf.jmc>
<noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608001721.000030ce@reddwarf.jmc>
<SuadnQ_he-OBQgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220608003149.00001cf5@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220608003149.00001cf5@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <eMydnV9UufImfQL_nZ2dnUU7_8xh4p2d@giganews.com>
Lines: 683
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-78iYZX1fUFx9kbfTb+/RkXbIVMYcoerBL0XX+iepPjDYoK5L94Plg/KohAvGFWoUYWQCKEJbqgiHfEK!l3IdDE4WMBkbNFxp4byRx0RxKpUY/NSro7FkJ1Vue8ewjARnZQIEdy8bjzEN4W1pkS30vc9vYbEj
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 40168
 by: olcott - Tue, 7 Jun 2022 23:35 UTC

On 6/7/2022 6:31 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 18:28:27 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 6:17 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 18:14:01 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 6:04 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 18:01:25 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 5:45 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 17:37:44 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
>>>>>>>>> On Tue, 7 Jun 2022 16:28:21 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
>>>>>>>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it reaches a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not defined; this is possible
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> because δ is a partial
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> assume that no transitions are
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined for any final state so
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine will halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it enters a final
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state. (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Introduction to Formal
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C. Heath
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and Company.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into ordinary
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> software engineering terms
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this means terminated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> normally. In a C function
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this means reaching the "ret"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret". Instead,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "not defined" should include at
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other instruction
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that means 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop instruction
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if the stack is empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not specifiec
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> by the program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is merely
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine way of saying
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> terminated normally. "ret" is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the C way of saying the same
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thing.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine equivalent of an
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "abnormal termination" in C?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and halts,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just one
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state of a turing machine,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is just
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM ceasing to calculate
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead. It
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does not mean: a) that the TM (doing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted b) that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulated computation halts c)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> more about nice shades of words than
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computer science here, but ....
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine, aborting it will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bring the TM to a halt state.  If
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation is merely part of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM, then the word "halt" has a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> different meaning when applied to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation part from when
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> applied to the entire TM. I'm not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> even sure what you mean when you say
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a part of a TM has halted or not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> purposes
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halting, and like you, I can't work
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> out what that would mean!  I used
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "halt" only with respect to a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, meaning that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n such
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that computation step n is a TM final
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state].
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very carefully, I
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> think that by your definition of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, the simulating TM must be
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a "pure" simulator that does nothing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> but simulate computation steps until
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation halts, at which point
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulating TM halts (like a UTM).
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I get that with that interpretation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> what you said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just one final state of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a turing machine, >>> which has thus
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct. I'd just say I don't think
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that usage of "simulation" is very
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what PO
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is talking about (so it would be wrong
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if applied PO's posts...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's simply the activity performed by
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a TM which consists of calculating
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps of some given
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation.  As such it's just a part
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the TM logic. A TM's typical use of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation might be something like
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "..the TM simulates the computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for n steps, and if the simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts during those n steps, the TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [blah blah], /otherwise/ the TM [blah
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah blah]...". Just about every
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reference in the literature I can
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> recall is something like that.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some computation, and going on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts or enters an infinite loop.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (That logic is not part of the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, IMO.) >> It does *NOT*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mean: >> a)  that the TM (doing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to something else...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts >> c)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exacmples of a simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) might halt or never halt, and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this is unaffected by a simulator's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> decision to simulate no further
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> spotted some pattern in the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation which implies P(I) never
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts - that is a separate matter,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> but for sure the mere act of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "aborting" the simulation doesn't
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> imply P(I) never halts, or imply that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it halts...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> EITHER OF THOSE. (Like you say, what
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would part of a TM halting mean?)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string as
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defining a sequence (an ordered list).
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The elements of the sequence are pairs
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of a TM state name and a string
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> representing the "tape" contents when
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the state was entered. Note that this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> view has no character of animation in
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it and makes the definition of the halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> predicate (H) trivial:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of TM(STRING)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is finite then TRUE else FALSE.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (or at least meant). Your sequence is my
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. Formally, these would
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> be defined inductively via the rule to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> go from step n to step n+1. (Not an
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> animation, but the induction gives some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /sense/ of step-by-step calculation, and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a simulator will follow this, starting
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at step 1, then calculate step 2 and so
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on. Still, I agree the entire sequence
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [the "computation"] exists as one
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PO...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> conflate the program under test with the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> test program as a single computation then
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the whole idea of a halt decider becomes
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> less coherent and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to pretend
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that you don't already know that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H(P,P)==0 is correct and the H/P
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> relationship matches the halting problem
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> counter example template.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>       For any program H that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> might determine if programs halt, a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "pathological" program P, called with
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some input, can pass its own source and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> its input to H and then specifically do
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the opposite of what H predicts P will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> do. No H can exist that handles
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this case.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the sequence and that causes some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> difficulties in the same way that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> elaborating an infinite sum or sequence
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> does in math classes. An (ultimate)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> value only exists if there is some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> notation of convergence or limit which
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> typically is the case with examples
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> used in a math class. There is no
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition of convergence or limit
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> with the sequence defined by
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM(STRING); rather, we simply ask
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> about the last pair if the sequence is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> finite.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you would
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> call a TM which evaluates the first 10
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps of a computation, and then does
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else. What is it doing while
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> evaluating those 10 steps?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 10 steps) - then it stops simulating
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and does something else. Obviously I
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wouldn't describe it as "correctly"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating, because nobody considers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> incorrect simulations, so the word
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be redundant!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to form
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rebuttals and the most persistent of the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> fake rebuttals has been that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is incorrect. It is very easy
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to verify the correct x86 emulation on
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the basis of the x86 language.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy
>>>>>>>>>>>>>>>>>>>>>>>>>>>> idiot is trying to claim that it is utterly
>>>>>>>>>>>>>>>>>>>>>>>>>>>> impossible to create a C program that
>>>>>>>>>>>>>>>>>>>>>>>>>>>> examines the x86 execution trace derived
>>>>>>>>>>>>>>>>>>>>>>>>>>>> from simulating the input to
>>>>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to
>>>>>>>>>>>>>>>>>>>>>>>>>>>> correctly determine that Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>>>>>> infinitely loops.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001345](02) ebfe jmp
>>>>>>>>>>>>>>>>>>>>>>>>>>>> 00001345 [00001347](01) 5d
>>>>>>>>>>>>>>>>>>>>>>>>>>>> pop ebp [00001348](01) c3 ret
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Execution Trace Stored at:212343
>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push ebp
>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001343][00212333][00212337] 8bec mov
>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebp,esp [00001345][00212333][00212337] ebfe
>>>>>>>>>>>>>>>>>>>>>>>>>>>> jmp 00001345 [00001345][00212333][00212337]
>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebfe jmp 00001345 Local Halt Decider:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Infinite Loop Detected Simulation Stopped
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not
>>>>>>>>>>>>>>>>>>>>>>>>>>> the infinite loop but the logic used to
>>>>>>>>>>>>>>>>>>>>>>>>>>> decide to enter the infinite loop. Post
>>>>>>>>>>>>>>>>>>>>>>>>>>> *full* traces.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite loop.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the
>>>>>>>>>>>>>>>>>>>>>>>>> logic used to decide when to enter the
>>>>>>>>>>>>>>>>>>>>>>>>> infinite loop;
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is
>>>>>>>>>>>>>>>>>>>>>>>> invoked we have no idea that a correct x86
>>>>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop would reach the
>>>>>>>>>>>>>>>>>>>>>>>> instruction at machine address [00001345] or
>>>>>>>>>>>>>>>>>>>>>>>> not.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> It might be the case that a correct x86
>>>>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop might instead
>>>>>>>>>>>>>>>>>>>>>>>> involve emulating an entirely different
>>>>>>>>>>>>>>>>>>>>>>>> function that plays tic-tac-toe?
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial
>>>>>>>>>>>>>>>>>>>>>>> however your program and trace are not telling
>>>>>>>>>>>>>>>>>>>>>>> the full story as far as the HP proofs are
>>>>>>>>>>>>>>>>>>>>>>> concerned;
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> The only thing that my program trace conclusively
>>>>>>>>>>>>>>>>>>>>>> proves is that H(P,P)==0 is the correct return
>>>>>>>>>>>>>>>>>>>>>> value that does correctly correspond to the
>>>>>>>>>>>>>>>>>>>>>> actual behavior of the actual input.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> For any program H that might
>>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>>>>> program P, called with some
>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input to
>>>>>>>>>>>>>>>>>>>>>> H and then specifically do the
>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>>>> can exist that handles this case.
>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>> if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>> return;
>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ", H((u32)P,
>>>>>>>>>>>>>>>>>>>>>> (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> _P()
>>>>>>>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov eax,[ebp+08]
>>>>>>>>>>>>>>>>>>>>>> [00001358](01) 50 push eax //
>>>>>>>>>>>>>>>>>>>>>> push P [00001359](03) 8b4d08 mov
>>>>>>>>>>>>>>>>>>>>>> ecx,[ebp+08] [0000135c](01) 51 push
>>>>>>>>>>>>>>>>>>>>>> ecx // push P [0000135d](05) e840feffff
>>>>>>>>>>>>>>>>>>>>>> call 000011a2 // call H [00001362](03) 83c408
>>>>>>>>>>>>>>>>>>>>>> add esp,+08 [00001365](02) 85c0
>>>>>>>>>>>>>>>>>>>>>> test eax,eax [00001367](02) 7402 jz
>>>>>>>>>>>>>>>>>>>>>> 0000136b [00001369](02) ebfe jmp
>>>>>>>>>>>>>>>>>>>>>> 00001369 [0000136b](01) 5d pop ebp
>>>>>>>>>>>>>>>>>>>>>> [0000136c](01) c3 ret
>>>>>>>>>>>>>>>>>>>>>> Size in bytes:(0027) [0000136c]
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P)
>>>>>>>>>>>>>>>>>>>>>> correctly emulates its input that it must
>>>>>>>>>>>>>>>>>>>>>> emulate the first seven instructions of P.
>>>>>>>>>>>>>>>>>>>>>> Because the seventh instruction of P repeats
>>>>>>>>>>>>>>>>>>>>>> this process we can know with complete certainty
>>>>>>>>>>>>>>>>>>>>>> that the emulated P never reaches its final
>>>>>>>>>>>>>>>>>>>>>> “ret” instruction, thus never halts.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> But the halting problem proofs (including
>>>>>>>>>>>>>>>>>>>>> [Strachey 1965]) that you are trying to refute
>>>>>>>>>>>>>>>>>>>>> don't do that, they DO NOT make any recursive
>>>>>>>>>>>>>>>>>>>>> calls
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Because the idea of a simulating halt decider being
>>>>>>>>>>>>>>>>>>>> applied to the halting problem counter-example is
>>>>>>>>>>>>>>>>>>>> brand new with me you won't find other references
>>>>>>>>>>>>>>>>>>>> that refer to "infinitely nested simulation".
>>>>>>>>>>>>>>>>>>>>> which is what you are doing with "call H" above.
>>>>>>>>>>>>>>>>>>>>> Why are you doing something different to what the
>>>>>>>>>>>>>>>>>>>>> proofs you are trying to refute do given doing so
>>>>>>>>>>>>>>>>>>>>> is no longer related to the Halting Problem?
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> The proofs never bothered to examine my idea
>>>>>>>>>>>>>>>>>>>> because it was unknown by everyone prior to me
>>>>>>>>>>>>>>>>>>>> creating it in 2016.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> It seems to me that your idea would only be novel
>>>>>>>>>>>>>>>>>>> because it is a mistake. Your mistake is to have the
>>>>>>>>>>>>>>>>>>> candidate program call into the SAME INSTANCE of the
>>>>>>>>>>>>>>>>>>> decider which is deciding the candidate program.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
>>>>>>>>>>>>>>>>>> Whenever H simulates its input it creates a whole new
>>>>>>>>>>>>>>>>>> process context.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> You cannot make a direct function call into another
>>>>>>>>>>>>>>>>> process; it has to be the same process.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> As I have said very many hundreds of times I created
>>>>>>>>>>>>>>>> the x86utm operating system that enables any C
>>>>>>>>>>>>>>>> function to execute another C function using an x86
>>>>>>>>>>>>>>>> emulator.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> In the case of H(P,P) H creates a separate process
>>>>>>>>>>>>>>>> context to simulate its input every time that it is
>>>>>>>>>>>>>>>> invoked, thus subsequent invocations of H(P,P) execute
>>>>>>>>>>>>>>>> in the process context that was previously created.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> As far as getting ideas as to what you are
>>>>>>>>>>>>>>>>> actually doing: publish all your source so we can see
>>>>>>>>>>>>>>>>> for ourselves so we don't have to guess.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> That would be 100,000-fold more complex then simply
>>>>>>>>>>>>>>>> paying complete attention to what I am saying. Everyone
>>>>>>>>>>>>>>>> that is not bright enough to understand 14 lines of
>>>>>>>>>>>>>>>> code keeps saying that they could easily understand
>>>>>>>>>>>>>>>> 250 pages of code, even though the 14 lines proves to
>>>>>>>>>>>>>>>> be too much for them.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Your code:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> call 000011a2 // call H
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> is simply a function call into the address space of the
>>>>>>>>>>>>>>> current process, it doesn't look like code to spawn a
>>>>>>>>>>>>>>> new process to me.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> How many times do I have to say this before you notice
>>>>>>>>>>>>>> that I said it at least once? H (in the current process)
>>>>>>>>>>>>>> always creates a new process context to emulate its its
>>>>>>>>>>>>>> input with an x86 emulator.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I will have to take your word for it as you refuse to
>>>>>>>>>>>>> publish source code. Why not just stick your project on
>>>>>>>>>>>>> GitHub? Open source is de rigueur these days. What are you
>>>>>>>>>>>>> trying to hide?
>>>>>>>>>>>>>
>>>>>>>>>>>>> If a new process context is made then how is nested
>>>>>>>>>>>>> simulation detected? I assume the data segment of each
>>>>>>>>>>>>> process is private...
>>>>>>>>>>>>>
>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> An honest dialogue requires points of mutual agreement. The
>>>>>>>>>>>> price of moving beyond H(P,P)==0 is universal agreement
>>>>>>>>>>>> that H(P,P)==0 is correct. The next point beyond H(P,P)==0
>>>>>>>>>>>> is computer science thus not appropriate for the C/C++
>>>>>>>>>>>> forum.
>>>>>>>>>>>
>>>>>>>>>>> I agree that H(P,P)==0 for pathological input assuming your
>>>>>>>>>>> method for detecting pathological input is sufficiently
>>>>>>>>>>> robust however how is that distinguished from H(P1,P1)==0
>>>>>>>>>>> where P1 is normal non-halting (i.e. non-pathological)?
>>>>>>>>>>
>>>>>>>>>> When-so-ever the correct and complete emulation of the input
>>>>>>>>>> to H would never stop running H(x,y)==0 is correct.
>>>>>>>>>>
>>>>>>>>>>> If you are pattern matching op codes "EB FE" to detect the
>>>>>>>>>>> infinite loop then how do you solve the problem of there
>>>>>>>>>>> being 2^n different patterns equivalent to that loop so
>>>>>>>>>>> someone could come along and write a pathological program
>>>>>>>>>>> that defeats your pattern matcher? This is why we need your
>>>>>>>>>>> source code to answer these kinds of questions.
>>>>>>>>>>>
>>>>>>>>>>> /Flibble
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> To refute all of the HP conventional proofs only requires
>>>>>>>>>> correctly determining that H(P,P)==0.
>>>>>>>>>
>>>>>>>>> Are you using pattern matching to detect the infinite loop or
>>>>>>>>> not?
>>>>>>>>>
>>>>>>>>> /Flibble
>>>>>>>>>
>>>>>>>>
>>>>>>>> Even if H(P,P) simply makes a wild guess that its input never
>>>>>>>> halts H(P,P)==0 is correct because the correct and complete x86
>>>>>>>> emulation of this input would never stop running.
>>>>>>>
>>>>>>> How do you KNOW it would never stop running? Given
>>>>>>>
>>>>>>> void P(u32 x)
>>>>>>> {
>>>>>>> if (H(x, x))
>>>>>>> FUBAR(); // a disguised infinite loop
>>>>>>> return;
>>>>>>> }
>>>>>>>
>>>>>>
>>>>>> It never gets to FUBAR()
>>>>>
>>>>> This is your second reply to my post, your first reply said it
>>>>> "looks inside" FUBAR so you are contradicting yourself.
>>>>>
>>>>> /Flibble
>>>>
>>>> Yes I realized that I was incorrect and corrected my mistake.
>>>
>>> So you are now saying that it is merely the detection of the nested
>>> simulation upon which you evaluate H and not what P does after it
>>> invokes H?
>>>
>>
>> That really should have been obvious hundreds of messages ago.
>> If a function gets stuck in infinitely nested simulation it never
>> proceeds to any point after this infinitely nested simulation.
>
> OK, in which case answer my second part which you conveniently ignored:
>


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220608003715.00006205@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21888&group=comp.lang.c#21888

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!news.neodome.net!feeder1.feed.usenet.farm!feed.usenet.farm!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220608003715.00006205@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608000441.00000295@reddwarf.jmc>
<noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608001721.000030ce@reddwarf.jmc>
<SuadnQ_he-OBQgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220608003149.00001cf5@reddwarf.jmc>
<eMydnV9UufImfQL_nZ2dnUU7_8xh4p2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 730
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 23:37:15 UTC
Date: Wed, 8 Jun 2022 00:37:15 +0100
X-Received-Bytes: 42460
 by: Mr Flibble - Tue, 7 Jun 2022 23:37 UTC

On Tue, 7 Jun 2022 18:35:22 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 6:31 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 18:28:27 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 6:17 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 18:14:01 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 6:04 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 18:01:25 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 5:45 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 17:37:44 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
> >>>>>>>>> On Tue, 7 Jun 2022 16:28:21 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it reaches a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not defined; this is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> partial function. In fact,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> we will assume that no
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> transitions are defined for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine will halt
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it enters a final
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state. (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Introduction to Formal
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Heath and Company.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ordinary software
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In a C function this means
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reaching the "ret"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret".
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Instead, "not defined"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> should include at least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction that means 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction if the stack is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> specifiec by the program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> merely the Turing machine way
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of saying terminated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> normally. "ret" is the C way
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of saying the same thing.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine equivalent of an
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "abnormal termination" in C?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts, or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> one final state of a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, which has thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> just the TM ceasing to calculate
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It does not mean: a) that the TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> b) that the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts c) that the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation never halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> more about nice shades of words
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> than computer science here, but
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ....
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine, aborting it will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bring the TM to a halt state.  If
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation is merely part of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM, then the word "halt" has a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> different meaning when applied to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation part from when
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> applied to the entire TM. I'm not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> even sure what you mean when you
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> say a part of a TM has halted or
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> purposes
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM halting, and like you, I can't
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> work out what that would mean!  I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> used "halt" only with respect to a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, meaning that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> such that computation step n is a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM final state].
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> carefully, I think that by your
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition of simulation, the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulator that does nothing but
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulate computation steps until
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation halts, at which
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> point the simulating TM halts (like
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a UTM). I get that with that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interpretation what you said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just one final state
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of a turing machine, >>> which has
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct. I'd just say I don't think
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that usage of "simulation" is very
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PO is talking about (so it would be
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrong if applied PO's posts...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's simply the activity performed
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> by a TM which consists of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating computation steps of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some given computation.  As such
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's just a part of the TM logic. A
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM's typical use of simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> might be something like "..the TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulates the computation for n
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps, and if the simulation halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> during those n steps, the TM [blah
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah], /otherwise/ the TM [blah
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah blah]...". Just about every
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reference in the literature I can
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> recall is something like that.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some computation, and going on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts or enters an infinite loop.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (That logic is not part of the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, IMO.) >> It does *NOT*
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mean: >> a)  that the TM (doing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to something else...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts >> c)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exacmples of a simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) might halt or never halt, and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this is unaffected by a simulator's
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> decision to simulate no further
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> spotted some pattern in the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation which implies
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) never halts - that is a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> separate matter, but for sure the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mere act of "aborting" the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation doesn't imply P(I) never
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts, or imply that it halts...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> EITHER OF THOSE. (Like you say, what
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would part of a TM halting mean?)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> as defining a sequence (an ordered
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> list). The elements of the sequence
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> are pairs of a TM state name and a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> string representing the "tape"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> contents when the state was entered.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of animation in it and makes the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition of the halt predicate (H)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> trivial:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM(STRING) is finite then TRUE else
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FALSE.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (or at least meant). Your sequence is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> my computation steps. Formally, these
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be defined inductively via the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rule to go from step n to step n+1.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Not an animation, but the induction
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> gives some /sense/ of step-by-step
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculation, and a simulator will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> follow this, starting at step 1, then
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate step 2 and so on. Still, I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> agree the entire sequence [the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "computation"] exists as one timeless
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> structure.  Too abstract for PO...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> conflate the program under test with
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the test program as a single
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation then the whole idea of a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt decider becomes less coherent and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pretend that you don't already know
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that H(P,P)==0 is correct and the H/P
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> relationship matches the halting
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> problem counter example template.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ", H((u32)P, (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>       For any program H
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that might determine if programs halt,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a "pathological" program P, called with
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some input, can pass its own source and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> its input to H and then specifically do
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the opposite of what H predicts P will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> do. No H can exist that handles
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this case.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the sequence and that causes some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> difficulties in the same way that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> elaborating an infinite sum or
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence does in math classes. An
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (ultimate) value only exists if
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> there is some notation of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> convergence or limit which typically
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is the case with examples used in a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> math class. There is no definition
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of convergence or limit with the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence defined by TM(STRING);
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rather, we simply ask about the last
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pair if the sequence is finite.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would call a TM which evaluates the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> first 10 steps of a computation, and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then does something else. What is it
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> doing while evaluating those 10 steps?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 10 steps) - then it stops simulating
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and does something else. Obviously I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wouldn't describe it as "correctly"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating, because nobody considers
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> incorrect simulations, so the word
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be redundant!
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> form rebuttals and the most persistent
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the fake rebuttals has been that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is incorrect. It is very
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> easy to verify the correct x86
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> emulation on the basis of the x86
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> language.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> idiot is trying to claim that it is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> utterly impossible to create a C program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> that examines the x86 execution trace
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> derived from simulating the input to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> correctly determine that Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> infinitely loops.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> ebp,esp [00001345](02) ebfe
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> jmp 00001345 [00001347](01) 5d
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> pop ebp [00001348](01) c3
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> ret Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Execution Trace Stored at:212343
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> ebp [00001343][00212333][00212337] 8bec
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337]
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> ebfe jmp 00001345 Local Halt Decider:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Infinite Loop Detected Simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Stopped
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not
> >>>>>>>>>>>>>>>>>>>>>>>>>>> the infinite loop but the logic used to
> >>>>>>>>>>>>>>>>>>>>>>>>>>> decide to enter the infinite loop. Post
> >>>>>>>>>>>>>>>>>>>>>>>>>>> *full* traces.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
> >>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite
> >>>>>>>>>>>>>>>>>>>>>>>>>> loop.
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the
> >>>>>>>>>>>>>>>>>>>>>>>>> logic used to decide when to enter the
> >>>>>>>>>>>>>>>>>>>>>>>>> infinite loop;
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is
> >>>>>>>>>>>>>>>>>>>>>>>> invoked we have no idea that a correct x86
> >>>>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop would reach the
> >>>>>>>>>>>>>>>>>>>>>>>> instruction at machine address [00001345] or
> >>>>>>>>>>>>>>>>>>>>>>>> not.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> It might be the case that a correct x86
> >>>>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop might instead
> >>>>>>>>>>>>>>>>>>>>>>>> involve emulating an entirely different
> >>>>>>>>>>>>>>>>>>>>>>>> function that plays tic-tac-toe?
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial
> >>>>>>>>>>>>>>>>>>>>>>> however your program and trace are not telling
> >>>>>>>>>>>>>>>>>>>>>>> the full story as far as the HP proofs are
> >>>>>>>>>>>>>>>>>>>>>>> concerned;
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> The only thing that my program trace
> >>>>>>>>>>>>>>>>>>>>>> conclusively proves is that H(P,P)==0 is the
> >>>>>>>>>>>>>>>>>>>>>> correct return value that does correctly
> >>>>>>>>>>>>>>>>>>>>>> correspond to the actual behavior of the
> >>>>>>>>>>>>>>>>>>>>>> actual input.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> For any program H that might
> >>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
> >>>>>>>>>>>>>>>>>>>>>> program P, called with some
> >>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input to
> >>>>>>>>>>>>>>>>>>>>>> H and then specifically do the
> >>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>>>>> can exist that handles this
> >>>>>>>>>>>>>>>>>>>>>> case.
> >>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>> if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>> return;
> >>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> _P()
> >>>>>>>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov
> >>>>>>>>>>>>>>>>>>>>>> eax,[ebp+08] [00001358](01) 50
> >>>>>>>>>>>>>>>>>>>>>> push eax // push P [00001359](03) 8b4d08
> >>>>>>>>>>>>>>>>>>>>>> mov ecx,[ebp+08] [0000135c](01) 51
> >>>>>>>>>>>>>>>>>>>>>> push ecx // push P
> >>>>>>>>>>>>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 //
> >>>>>>>>>>>>>>>>>>>>>> call H [00001362](03) 83c408 add esp,+08
> >>>>>>>>>>>>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
> >>>>>>>>>>>>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
> >>>>>>>>>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>>>>>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>>>>>> [0000136c](01) c3 ret Size in
> >>>>>>>>>>>>>>>>>>>>>> bytes:(0027) [0000136c]
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P)
> >>>>>>>>>>>>>>>>>>>>>> correctly emulates its input that it must
> >>>>>>>>>>>>>>>>>>>>>> emulate the first seven instructions of P.
> >>>>>>>>>>>>>>>>>>>>>> Because the seventh instruction of P repeats
> >>>>>>>>>>>>>>>>>>>>>> this process we can know with complete
> >>>>>>>>>>>>>>>>>>>>>> certainty that the emulated P never reaches
> >>>>>>>>>>>>>>>>>>>>>> its final “ret” instruction, thus never halts.
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> But the halting problem proofs (including
> >>>>>>>>>>>>>>>>>>>>> [Strachey 1965]) that you are trying to refute
> >>>>>>>>>>>>>>>>>>>>> don't do that, they DO NOT make any recursive
> >>>>>>>>>>>>>>>>>>>>> calls
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Because the idea of a simulating halt decider
> >>>>>>>>>>>>>>>>>>>> being applied to the halting problem
> >>>>>>>>>>>>>>>>>>>> counter-example is brand new with me you won't
> >>>>>>>>>>>>>>>>>>>> find other references that refer to "infinitely
> >>>>>>>>>>>>>>>>>>>> nested simulation".
> >>>>>>>>>>>>>>>>>>>>> which is what you are doing with "call H" above.
> >>>>>>>>>>>>>>>>>>>>> Why are you doing something different to what
> >>>>>>>>>>>>>>>>>>>>> the proofs you are trying to refute do given
> >>>>>>>>>>>>>>>>>>>>> doing so is no longer related to the Halting
> >>>>>>>>>>>>>>>>>>>>> Problem?
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> The proofs never bothered to examine my idea
> >>>>>>>>>>>>>>>>>>>> because it was unknown by everyone prior to me
> >>>>>>>>>>>>>>>>>>>> creating it in 2016.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> It seems to me that your idea would only be novel
> >>>>>>>>>>>>>>>>>>> because it is a mistake. Your mistake is to have
> >>>>>>>>>>>>>>>>>>> the candidate program call into the SAME INSTANCE
> >>>>>>>>>>>>>>>>>>> of the decider which is deciding the candidate
> >>>>>>>>>>>>>>>>>>> program.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
> >>>>>>>>>>>>>>>>>> Whenever H simulates its input it creates a whole
> >>>>>>>>>>>>>>>>>> new process context.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> You cannot make a direct function call into another
> >>>>>>>>>>>>>>>>> process; it has to be the same process.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> As I have said very many hundreds of times I created
> >>>>>>>>>>>>>>>> the x86utm operating system that enables any C
> >>>>>>>>>>>>>>>> function to execute another C function using an x86
> >>>>>>>>>>>>>>>> emulator.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> In the case of H(P,P) H creates a separate process
> >>>>>>>>>>>>>>>> context to simulate its input every time that it is
> >>>>>>>>>>>>>>>> invoked, thus subsequent invocations of H(P,P)
> >>>>>>>>>>>>>>>> execute in the process context that was previously
> >>>>>>>>>>>>>>>> created.
> >>>>>>>>>>>>>>>>> As far as getting ideas as to what you are
> >>>>>>>>>>>>>>>>> actually doing: publish all your source so we can
> >>>>>>>>>>>>>>>>> see for ourselves so we don't have to guess.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> That would be 100,000-fold more complex then simply
> >>>>>>>>>>>>>>>> paying complete attention to what I am saying.
> >>>>>>>>>>>>>>>> Everyone that is not bright enough to understand 14
> >>>>>>>>>>>>>>>> lines of code keeps saying that they could easily
> >>>>>>>>>>>>>>>> understand 250 pages of code, even though the 14
> >>>>>>>>>>>>>>>> lines proves to be too much for them.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Your code:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> call 000011a2 // call H
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> is simply a function call into the address space of
> >>>>>>>>>>>>>>> the current process, it doesn't look like code to
> >>>>>>>>>>>>>>> spawn a new process to me.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> How many times do I have to say this before you notice
> >>>>>>>>>>>>>> that I said it at least once? H (in the current
> >>>>>>>>>>>>>> process) always creates a new process context to
> >>>>>>>>>>>>>> emulate its its input with an x86 emulator.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I will have to take your word for it as you refuse to
> >>>>>>>>>>>>> publish source code. Why not just stick your project on
> >>>>>>>>>>>>> GitHub? Open source is de rigueur these days. What are
> >>>>>>>>>>>>> you trying to hide?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> If a new process context is made then how is nested
> >>>>>>>>>>>>> simulation detected? I assume the data segment of each
> >>>>>>>>>>>>> process is private...
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> An honest dialogue requires points of mutual agreement.
> >>>>>>>>>>>> The price of moving beyond H(P,P)==0 is universal
> >>>>>>>>>>>> agreement that H(P,P)==0 is correct. The next point
> >>>>>>>>>>>> beyond H(P,P)==0 is computer science thus not
> >>>>>>>>>>>> appropriate for the C/C++ forum.
> >>>>>>>>>>>
> >>>>>>>>>>> I agree that H(P,P)==0 for pathological input assuming
> >>>>>>>>>>> your method for detecting pathological input is
> >>>>>>>>>>> sufficiently robust however how is that distinguished
> >>>>>>>>>>> from H(P1,P1)==0 where P1 is normal non-halting (i.e.
> >>>>>>>>>>> non-pathological)?
> >>>>>>>>>>
> >>>>>>>>>> When-so-ever the correct and complete emulation of the
> >>>>>>>>>> input to H would never stop running H(x,y)==0 is correct.
> >>>>>>>>>>
> >>>>>>>>>>> If you are pattern matching op codes "EB FE" to detect the
> >>>>>>>>>>> infinite loop then how do you solve the problem of there
> >>>>>>>>>>> being 2^n different patterns equivalent to that loop so
> >>>>>>>>>>> someone could come along and write a pathological program
> >>>>>>>>>>> that defeats your pattern matcher? This is why we need
> >>>>>>>>>>> your source code to answer these kinds of questions.
> >>>>>>>>>>>
> >>>>>>>>>>> /Flibble
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> To refute all of the HP conventional proofs only requires
> >>>>>>>>>> correctly determining that H(P,P)==0.
> >>>>>>>>>
> >>>>>>>>> Are you using pattern matching to detect the infinite loop
> >>>>>>>>> or not?
> >>>>>>>>>
> >>>>>>>>> /Flibble
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> Even if H(P,P) simply makes a wild guess that its input never
> >>>>>>>> halts H(P,P)==0 is correct because the correct and complete
> >>>>>>>> x86 emulation of this input would never stop running.
> >>>>>>>
> >>>>>>> How do you KNOW it would never stop running? Given
> >>>>>>>
> >>>>>>> void P(u32 x)
> >>>>>>> {
> >>>>>>> if (H(x, x))
> >>>>>>> FUBAR(); // a disguised infinite loop
> >>>>>>> return;
> >>>>>>> }
> >>>>>>>
> >>>>>>
> >>>>>> It never gets to FUBAR()
> >>>>>
> >>>>> This is your second reply to my post, your first reply said it
> >>>>> "looks inside" FUBAR so you are contradicting yourself.
> >>>>>
> >>>>> /Flibble
> >>>>
> >>>> Yes I realized that I was incorrect and corrected my mistake.
> >>>
> >>> So you are now saying that it is merely the detection of the
> >>> nested simulation upon which you evaluate H and not what P does
> >>> after it invokes H?
> >>>
> >>
> >> That really should have been obvious hundreds of messages ago.
> >> If a function gets stuck in infinitely nested simulation it never
> >> proceeds to any point after this infinitely nested simulation.
> >
> > OK, in which case answer my second part which you conveniently
> > ignored:
>
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.
> H never gets to the second part. H is stuck in the first part.


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<R8SdnUwvw9vwfwL_nZ2dnUU7_8xh4p2d@giganews.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21889&group=comp.lang.c#21889

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Tue, 07 Jun 2022 18:42:37 -0500
Date: Tue, 7 Jun 2022 18:42:36 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Subject: Re: Refuting the HP proofs (adapted for software engineers)[ members
of c/c++ ]
Content-Language: en-US
Newsgroups: comp.lang.c,comp.lang.c++
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607204944.000027de@reddwarf.jmc>
<8PGdndoQ96MXMwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608000441.00000295@reddwarf.jmc>
<noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608001721.000030ce@reddwarf.jmc>
<SuadnQ_he-OBQgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220608003149.00001cf5@reddwarf.jmc>
<eMydnV9UufImfQL_nZ2dnUU7_8xh4p2d@giganews.com>
<20220608003715.00006205@reddwarf.jmc>
From: NoO...@NoWhere.com (olcott)
In-Reply-To: <20220608003715.00006205@reddwarf.jmc>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Message-ID: <R8SdnUwvw9vwfwL_nZ2dnUU7_8xh4p2d@giganews.com>
Lines: 723
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-sEr2RP8pkoJbrLju8zf7Ip40Y+XtFqvGyyHVVNsfaDuph8LH1fwa8Uf80U/DB/BWOz4b1Mi3eGmcSiY!+wyU1PwccAqQqsoGUzIV5ONghusYsTFx/5FmhZKRIAQSf3xmY3T4zuq/7EuYjeqtdP6e5pIp5Ud/
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Original-Bytes: 42736
 by: olcott - Tue, 7 Jun 2022 23:42 UTC

On 6/7/2022 6:37 PM, Mr Flibble wrote:
> On Tue, 7 Jun 2022 18:35:22 -0500
> olcott <NoOne@NoWhere.com> wrote:
>
>> On 6/7/2022 6:31 PM, Mr Flibble wrote:
>>> On Tue, 7 Jun 2022 18:28:27 -0500
>>> olcott <NoOne@NoWhere.com> wrote:
>>>
>>>> On 6/7/2022 6:17 PM, Mr Flibble wrote:
>>>>> On Tue, 7 Jun 2022 18:14:01 -0500
>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>
>>>>>> On 6/7/2022 6:04 PM, Mr Flibble wrote:
>>>>>>> On Tue, 7 Jun 2022 18:01:25 -0500
>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>
>>>>>>>> On 6/7/2022 5:45 PM, Mr Flibble wrote:
>>>>>>>>> On Tue, 7 Jun 2022 17:37:44 -0500
>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>
>>>>>>>>>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
>>>>>>>>>>> On Tue, 7 Jun 2022 16:28:21 -0500
>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
>>>>>>>>>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan Mackenzie
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19 +0000,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it reaches a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration for which δ is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not defined; this is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> possible because δ is a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> partial function. In fact,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> we will assume that no
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> transitions are defined for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> any final state so the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Turing machine will halt
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> whenever it enters a final
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state. (Linz:1990:234)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Introduction to Formal
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Heath and Company.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ordinary software
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In a C function this means
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reaching the "ret"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret".
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Instead, "not defined"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> should include at least:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction that means 'halt'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction if the stack is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> empty
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch from a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> location that is not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> specifiec by the program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to Linz'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition is much better.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> merely the Turing machine way
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of saying terminated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> normally. "ret" is the C way
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of saying the same thing.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine equivalent of an
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "abnormal termination" in C?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine. It either runs and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts, or it runs forever.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> one final state of a turing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, which has thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> just the TM ceasing to calculate
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else instead.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It does not mean: a) that the TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (doing the simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> b) that the simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts c) that the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation never halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> more about nice shades of words
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> than computer science here, but
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ....
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine, aborting it will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bring the TM to a halt state.  If
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation is merely part of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM, then the word "halt" has a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> different meaning when applied to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation part from when
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> applied to the entire TM. I'm not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> even sure what you mean when you
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> say a part of a TM has halted or
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> purposes
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM halting, and like you, I can't
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> work out what that would mean!  I
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> used "halt" only with respect to a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, meaning that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> such that computation step n is a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM final state].
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> carefully, I think that by your
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition of simulation, the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulator that does nothing but
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulate computation steps until
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation halts, at which
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> point the simulating TM halts (like
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a UTM). I get that with that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interpretation what you said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just one final state
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of a turing machine, >>> which has
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thus halted.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct. I'd just say I don't think
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that usage of "simulation" is very
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> useful, and is DEFINITELY not what
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PO is talking about (so it would be
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrong if applied PO's posts...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's simply the activity performed
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> by a TM which consists of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating computation steps of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some given computation.  As such
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's just a part of the TM logic. A
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM's typical use of simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> might be something like "..the TM
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulates the computation for n
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps, and if the simulation halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> during those n steps, the TM [blah
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah], /otherwise/ the TM [blah
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah blah]...". Just about every
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reference in the literature I can
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> recall is something like that.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM "aborting" a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just the TM ceasing to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate >> computation steps for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some computation, and going on to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts or enters an infinite loop.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (That logic is not part of the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, IMO.) >> It does *NOT*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mean: >> a)  that the TM (doing
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone on
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to something else...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts >> c)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation never
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exacmples of a simulated computation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) might halt or never halt, and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this is unaffected by a simulator's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> decision to simulate no further
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may have
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> spotted some pattern in the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation which implies
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> P(I) never halts - that is a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> separate matter, but for sure the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mere act of "aborting" the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation doesn't imply P(I) never
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts, or imply that it halts...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM stops
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating TM steps (aka aborts its
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation), NOTHING HALTS: not the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM, not the simulated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and NOT ANY PART OF
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> EITHER OF THOSE. (Like you say, what
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would part of a TM halting mean?)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> as defining a sequence (an ordered
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> list). The elements of the sequence
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> are pairs of a TM state name and a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> string representing the "tape"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> contents when the state was entered.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Note that this view has no character
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of animation in it and makes the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition of the halt predicate (H)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> trivial:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM(STRING) is finite then TRUE else
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FALSE.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I said
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (or at least meant). Your sequence is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> my computation steps. Formally, these
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be defined inductively via the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rule to go from step n to step n+1.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Not an animation, but the induction
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> gives some /sense/ of step-by-step
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculation, and a simulator will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> follow this, starting at step 1, then
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate step 2 and so on. Still, I
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> agree the entire sequence [the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "computation"] exists as one timeless
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> structure.  Too abstract for PO...)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> conflate the program under test with
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the test program as a single
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation then the whole idea of a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt decider becomes less coherent and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pretend that you don't already know
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that H(P,P)==0 is correct and the H/P
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> relationship matches the halting
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> problem counter example template.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    return;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts =
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ", H((u32)P, (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>       For any program H
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that might determine if programs halt,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a "pathological" program P, called with
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some input, can pass its own source and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> its input to H and then specifically do
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the opposite of what H predicts P will
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> do. No H can exist that handles
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this case.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the sequence and that causes some
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> difficulties in the same way that
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> elaborating an infinite sum or
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence does in math classes. An
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (ultimate) value only exists if
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> there is some notation of
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> convergence or limit which typically
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is the case with examples used in a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> math class. There is no definition
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of convergence or limit with the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence defined by TM(STRING);
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rather, we simply ask about the last
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pair if the sequence is finite.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would call a TM which evaluates the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> first 10 steps of a computation, and
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then does something else. What is it
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> doing while evaluating those 10 steps?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just for
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 10 steps) - then it stops simulating
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and does something else. Obviously I
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wouldn't describe it as "correctly"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating, because nobody considers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> incorrect simulations, so the word
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be redundant!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers are
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> making their best possible effort to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> form rebuttals and the most persistent
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the fake rebuttals has been that the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is incorrect. It is very
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> easy to verify the correct x86
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> emulation on the basis of the x86
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> language.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By DEFINITION, a
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correct simulation needs show the same
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> behavior of the thing it is simulating.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this goofy
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> idiot is trying to claim that it is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> utterly impossible to create a C program
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that examines the x86 execution trace
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> derived from simulating the input to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> correctly determine that Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> infinitely loops.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop)); }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001343](02) 8bec mov
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebp,esp [00001345](02) ebfe
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jmp 00001345 [00001347](01) 5d
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pop ebp [00001348](01) c3
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ret Size in bytes:(0007) [00001348]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Execution Trace Stored at:212343
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebp [00001343][00212333][00212337] 8bec
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebfe jmp 00001345 Local Halt Decider:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Infinite Loop Detected Simulation
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Stopped
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is not
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the infinite loop but the logic used to
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> decide to enter the infinite loop. Post
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *full* traces.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell that
>>>>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop() contains an infinite
>>>>>>>>>>>>>>>>>>>>>>>>>>>> loop.
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is the
>>>>>>>>>>>>>>>>>>>>>>>>>>> logic used to decide when to enter the
>>>>>>>>>>>>>>>>>>>>>>>>>>> infinite loop;
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is
>>>>>>>>>>>>>>>>>>>>>>>>>> invoked we have no idea that a correct x86
>>>>>>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop would reach the
>>>>>>>>>>>>>>>>>>>>>>>>>> instruction at machine address [00001345] or
>>>>>>>>>>>>>>>>>>>>>>>>>> not.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> It might be the case that a correct x86
>>>>>>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop might instead
>>>>>>>>>>>>>>>>>>>>>>>>>> involve emulating an entirely different
>>>>>>>>>>>>>>>>>>>>>>>>>> function that plays tic-tac-toe?
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial
>>>>>>>>>>>>>>>>>>>>>>>>> however your program and trace are not telling
>>>>>>>>>>>>>>>>>>>>>>>>> the full story as far as the HP proofs are
>>>>>>>>>>>>>>>>>>>>>>>>> concerned;
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> The only thing that my program trace
>>>>>>>>>>>>>>>>>>>>>>>> conclusively proves is that H(P,P)==0 is the
>>>>>>>>>>>>>>>>>>>>>>>> correct return value that does correctly
>>>>>>>>>>>>>>>>>>>>>>>> correspond to the actual behavior of the
>>>>>>>>>>>>>>>>>>>>>>>> actual input.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> For any program H that might
>>>>>>>>>>>>>>>>>>>>>>>> determine if programs halt, a "pathological"
>>>>>>>>>>>>>>>>>>>>>>>> program P, called with some
>>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input to
>>>>>>>>>>>>>>>>>>>>>>>> H and then specifically do the
>>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
>>>>>>>>>>>>>>>>>>>>>>>> can exist that handles this
>>>>>>>>>>>>>>>>>>>>>>>> case.
>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>> if (H(x, x))
>>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
>>>>>>>>>>>>>>>>>>>>>>>> return;
>>>>>>>>>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> int main()
>>>>>>>>>>>>>>>>>>>>>>>> {
>>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
>>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> _P()
>>>>>>>>>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
>>>>>>>>>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
>>>>>>>>>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov
>>>>>>>>>>>>>>>>>>>>>>>> eax,[ebp+08] [00001358](01) 50
>>>>>>>>>>>>>>>>>>>>>>>> push eax // push P [00001359](03) 8b4d08
>>>>>>>>>>>>>>>>>>>>>>>> mov ecx,[ebp+08] [0000135c](01) 51
>>>>>>>>>>>>>>>>>>>>>>>> push ecx // push P
>>>>>>>>>>>>>>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 //
>>>>>>>>>>>>>>>>>>>>>>>> call H [00001362](03) 83c408 add esp,+08
>>>>>>>>>>>>>>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
>>>>>>>>>>>>>>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
>>>>>>>>>>>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
>>>>>>>>>>>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
>>>>>>>>>>>>>>>>>>>>>>>> [0000136c](01) c3 ret Size in
>>>>>>>>>>>>>>>>>>>>>>>> bytes:(0027) [0000136c]
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P)
>>>>>>>>>>>>>>>>>>>>>>>> correctly emulates its input that it must
>>>>>>>>>>>>>>>>>>>>>>>> emulate the first seven instructions of P.
>>>>>>>>>>>>>>>>>>>>>>>> Because the seventh instruction of P repeats
>>>>>>>>>>>>>>>>>>>>>>>> this process we can know with complete
>>>>>>>>>>>>>>>>>>>>>>>> certainty that the emulated P never reaches
>>>>>>>>>>>>>>>>>>>>>>>> its final “ret” instruction, thus never halts.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> But the halting problem proofs (including
>>>>>>>>>>>>>>>>>>>>>>> [Strachey 1965]) that you are trying to refute
>>>>>>>>>>>>>>>>>>>>>>> don't do that, they DO NOT make any recursive
>>>>>>>>>>>>>>>>>>>>>>> calls
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Because the idea of a simulating halt decider
>>>>>>>>>>>>>>>>>>>>>> being applied to the halting problem
>>>>>>>>>>>>>>>>>>>>>> counter-example is brand new with me you won't
>>>>>>>>>>>>>>>>>>>>>> find other references that refer to "infinitely
>>>>>>>>>>>>>>>>>>>>>> nested simulation".
>>>>>>>>>>>>>>>>>>>>>>> which is what you are doing with "call H" above.
>>>>>>>>>>>>>>>>>>>>>>> Why are you doing something different to what
>>>>>>>>>>>>>>>>>>>>>>> the proofs you are trying to refute do given
>>>>>>>>>>>>>>>>>>>>>>> doing so is no longer related to the Halting
>>>>>>>>>>>>>>>>>>>>>>> Problem?
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> The proofs never bothered to examine my idea
>>>>>>>>>>>>>>>>>>>>>> because it was unknown by everyone prior to me
>>>>>>>>>>>>>>>>>>>>>> creating it in 2016.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> It seems to me that your idea would only be novel
>>>>>>>>>>>>>>>>>>>>> because it is a mistake. Your mistake is to have
>>>>>>>>>>>>>>>>>>>>> the candidate program call into the SAME INSTANCE
>>>>>>>>>>>>>>>>>>>>> of the decider which is deciding the candidate
>>>>>>>>>>>>>>>>>>>>> program.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
>>>>>>>>>>>>>>>>>>>> Whenever H simulates its input it creates a whole
>>>>>>>>>>>>>>>>>>>> new process context.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> You cannot make a direct function call into another
>>>>>>>>>>>>>>>>>>> process; it has to be the same process.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> As I have said very many hundreds of times I created
>>>>>>>>>>>>>>>>>> the x86utm operating system that enables any C
>>>>>>>>>>>>>>>>>> function to execute another C function using an x86
>>>>>>>>>>>>>>>>>> emulator.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> In the case of H(P,P) H creates a separate process
>>>>>>>>>>>>>>>>>> context to simulate its input every time that it is
>>>>>>>>>>>>>>>>>> invoked, thus subsequent invocations of H(P,P)
>>>>>>>>>>>>>>>>>> execute in the process context that was previously
>>>>>>>>>>>>>>>>>> created.
>>>>>>>>>>>>>>>>>>> As far as getting ideas as to what you are
>>>>>>>>>>>>>>>>>>> actually doing: publish all your source so we can
>>>>>>>>>>>>>>>>>>> see for ourselves so we don't have to guess.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> That would be 100,000-fold more complex then simply
>>>>>>>>>>>>>>>>>> paying complete attention to what I am saying.
>>>>>>>>>>>>>>>>>> Everyone that is not bright enough to understand 14
>>>>>>>>>>>>>>>>>> lines of code keeps saying that they could easily
>>>>>>>>>>>>>>>>>> understand 250 pages of code, even though the 14
>>>>>>>>>>>>>>>>>> lines proves to be too much for them.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Your code:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> call 000011a2 // call H
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> is simply a function call into the address space of
>>>>>>>>>>>>>>>>> the current process, it doesn't look like code to
>>>>>>>>>>>>>>>>> spawn a new process to me.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> How many times do I have to say this before you notice
>>>>>>>>>>>>>>>> that I said it at least once? H (in the current
>>>>>>>>>>>>>>>> process) always creates a new process context to
>>>>>>>>>>>>>>>> emulate its its input with an x86 emulator.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I will have to take your word for it as you refuse to
>>>>>>>>>>>>>>> publish source code. Why not just stick your project on
>>>>>>>>>>>>>>> GitHub? Open source is de rigueur these days. What are
>>>>>>>>>>>>>>> you trying to hide?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> If a new process context is made then how is nested
>>>>>>>>>>>>>>> simulation detected? I assume the data segment of each
>>>>>>>>>>>>>>> process is private...
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> An honest dialogue requires points of mutual agreement.
>>>>>>>>>>>>>> The price of moving beyond H(P,P)==0 is universal
>>>>>>>>>>>>>> agreement that H(P,P)==0 is correct. The next point
>>>>>>>>>>>>>> beyond H(P,P)==0 is computer science thus not
>>>>>>>>>>>>>> appropriate for the C/C++ forum.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I agree that H(P,P)==0 for pathological input assuming
>>>>>>>>>>>>> your method for detecting pathological input is
>>>>>>>>>>>>> sufficiently robust however how is that distinguished
>>>>>>>>>>>>> from H(P1,P1)==0 where P1 is normal non-halting (i.e.
>>>>>>>>>>>>> non-pathological)?
>>>>>>>>>>>>
>>>>>>>>>>>> When-so-ever the correct and complete emulation of the
>>>>>>>>>>>> input to H would never stop running H(x,y)==0 is correct.
>>>>>>>>>>>>
>>>>>>>>>>>>> If you are pattern matching op codes "EB FE" to detect the
>>>>>>>>>>>>> infinite loop then how do you solve the problem of there
>>>>>>>>>>>>> being 2^n different patterns equivalent to that loop so
>>>>>>>>>>>>> someone could come along and write a pathological program
>>>>>>>>>>>>> that defeats your pattern matcher? This is why we need
>>>>>>>>>>>>> your source code to answer these kinds of questions.
>>>>>>>>>>>>>
>>>>>>>>>>>>> /Flibble
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> To refute all of the HP conventional proofs only requires
>>>>>>>>>>>> correctly determining that H(P,P)==0.
>>>>>>>>>>>
>>>>>>>>>>> Are you using pattern matching to detect the infinite loop
>>>>>>>>>>> or not?
>>>>>>>>>>>
>>>>>>>>>>> /Flibble
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Even if H(P,P) simply makes a wild guess that its input never
>>>>>>>>>> halts H(P,P)==0 is correct because the correct and complete
>>>>>>>>>> x86 emulation of this input would never stop running.
>>>>>>>>>
>>>>>>>>> How do you KNOW it would never stop running? Given
>>>>>>>>>
>>>>>>>>> void P(u32 x)
>>>>>>>>> {
>>>>>>>>> if (H(x, x))
>>>>>>>>> FUBAR(); // a disguised infinite loop
>>>>>>>>> return;
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>
>>>>>>>> It never gets to FUBAR()
>>>>>>>
>>>>>>> This is your second reply to my post, your first reply said it
>>>>>>> "looks inside" FUBAR so you are contradicting yourself.
>>>>>>>
>>>>>>> /Flibble
>>>>>>
>>>>>> Yes I realized that I was incorrect and corrected my mistake.
>>>>>
>>>>> So you are now saying that it is merely the detection of the
>>>>> nested simulation upon which you evaluate H and not what P does
>>>>> after it invokes H?
>>>>>
>>>>
>>>> That really should have been obvious hundreds of messages ago.
>>>> If a function gets stuck in infinitely nested simulation it never
>>>> proceeds to any point after this infinitely nested simulation.
>>>
>>> OK, in which case answer my second part which you conveniently
>>> ignored:
>>
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>> H never gets to the second part. H is stuck in the first part.
>
> Rather than getting angry try reading what I wrote again: P would have
> HALTED:
>
>>
>>> Given H doesn't care what P does after P invokes H then, given
>>>
>>> void P(u32 x)
>>> {
>>> if (H(x, x))
>>> FUBAR2(); // a disguised halting function
>>> return;
>>> }
>>>
>>> int main()
>>> {
>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>> }
>>>
>>> How do you evaluate H(P,P)=1? FUBAR2 can be any code that halts.
>>>
>
> /Flibble
>


Click here to read the complete article
Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

<20220608005011.00002389@reddwarf.jmc>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=21890&group=comp.lang.c#21890

  copy link   Newsgroups: comp.lang.c comp.lang.c++
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail
From: flib...@reddwarf.jmc (Mr Flibble)
Newsgroups: comp.lang.c,comp.lang.c++
Subject: Re: Refuting the HP proofs (adapted for software engineers)[
members of c/c++ ]
Message-ID: <20220608005011.00002389@reddwarf.jmc>
References: <LsGdnUOwGbn0FQf_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607210605.00004d5c@reddwarf.jmc>
<HqCdnWPysfY6LAL_nZ2dnUU7_8zNnZ2d@giganews.com>
<20220607211856.000075de@reddwarf.jmc>
<3aednaMn2fXbKwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607215105.0000548c@reddwarf.jmc>
<2vqdnZD8xMBeIQL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607222206.00002234@reddwarf.jmc>
<ypGdnXXVhOVrXwL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607230822.00004da6@reddwarf.jmc>
<U6GdnYwvwKWkTgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220607234526.00001f04@reddwarf.jmc>
<lNWdnfl_CepbRQL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608000441.00000295@reddwarf.jmc>
<noGdnT5WwNsnRgL_nZ2dnUU7_81g4p2d@giganews.com>
<20220608001721.000030ce@reddwarf.jmc>
<SuadnQ_he-OBQgL_nZ2dnUU7_83NnZ2d@giganews.com>
<20220608003149.00001cf5@reddwarf.jmc>
<eMydnV9UufImfQL_nZ2dnUU7_8xh4p2d@giganews.com>
<20220608003715.00006205@reddwarf.jmc>
<R8SdnUwvw9vwfwL_nZ2dnUU7_8xh4p2d@giganews.com>
Organization: Jupiter Mining Corp
X-Newsreader: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-w64-mingw32)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 774
X-Complaints-To: abuse@eweka.nl
NNTP-Posting-Date: Tue, 07 Jun 2022 23:50:11 UTC
Date: Wed, 8 Jun 2022 00:50:11 +0100
X-Received-Bytes: 45350
 by: Mr Flibble - Tue, 7 Jun 2022 23:50 UTC

On Tue, 7 Jun 2022 18:42:36 -0500
olcott <NoOne@NoWhere.com> wrote:

> On 6/7/2022 6:37 PM, Mr Flibble wrote:
> > On Tue, 7 Jun 2022 18:35:22 -0500
> > olcott <NoOne@NoWhere.com> wrote:
> >
> >> On 6/7/2022 6:31 PM, Mr Flibble wrote:
> >>> On Tue, 7 Jun 2022 18:28:27 -0500
> >>> olcott <NoOne@NoWhere.com> wrote:
> >>>
> >>>> On 6/7/2022 6:17 PM, Mr Flibble wrote:
> >>>>> On Tue, 7 Jun 2022 18:14:01 -0500
> >>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>
> >>>>>> On 6/7/2022 6:04 PM, Mr Flibble wrote:
> >>>>>>> On Tue, 7 Jun 2022 18:01:25 -0500
> >>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>
> >>>>>>>> On 6/7/2022 5:45 PM, Mr Flibble wrote:
> >>>>>>>>> On Tue, 7 Jun 2022 17:37:44 -0500
> >>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> On 6/7/2022 5:08 PM, Mr Flibble wrote:
> >>>>>>>>>>> On Tue, 7 Jun 2022 16:28:21 -0500
> >>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On 6/7/2022 4:22 PM, Mr Flibble wrote:
> >>>>>>>>>>>>> On Tue, 7 Jun 2022 16:01:53 -0500
> >>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/7/2022 3:51 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:34:13 -0500
> >>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On 6/7/2022 3:18 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:14:30 -0500
> >>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On 6/7/2022 3:06 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 15:01:13 -0500
> >>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> On 6/7/2022 2:49 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>> On Tue, 7 Jun 2022 14:09:14 -0500
> >>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> On 6/7/2022 2:02 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 14:02:08 -0500
> >>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 1:41 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 13:19:15 -0500
> >>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 12:50 PM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, 6 Jun 2022 11:57:57 -0500
> >>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/6/2022 11:45 AM, Mr Flibble wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Sun, 5 Jun 2022 20:13:01 -0500
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@NoWhere.com> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 7:56 PM, Richard Damon
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/22 8:27 PM, olcott wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:59 PM, Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 22:59, Jeff Barnett
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 2:07 PM, Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 16:16, Alan
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mike Terry
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <news.dead.person.stones@darjeeling.plus.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 05/06/2022 13:14, Alan
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 6:12 AM, Alan
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mackenzie wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> olcott <NoOne@nowhere.com>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 6/5/2022 5:14 AM, Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On 2022-06-04 19:28:19
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +0000, olcott said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A Turing machine is said
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to halt whenever it
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reaches a configuration
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for which δ is not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined; this is possible
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> because δ is a partial
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function. In fact, we
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> will assume that no
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> transitions are defined
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for any final state so
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the Turing machine will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt whenever it enters a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> final state.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Linz:1990:234)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz, Peter 1990. An
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Introduction to Formal
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Languages and Automata.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lexington/Toronto: D. C.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Heath and Company.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When translated into
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ordinary software
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> engineering terms this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> means terminated normally.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In a C function this means
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reaching the "ret"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The best equivalent to "not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> defined" is not "ret".
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Instead, "not defined"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> should include at least:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - HLT or any other
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction that means
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 'halt'
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any undefined op code
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - any return or pop
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instruction if the stack is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> empty
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - an instruction fetch
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> from a location that is not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> specifiec by the program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> That way the analogy to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Linz' definition is much
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> better.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mikko
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reaching a final state is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> merely the Turing machine
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> way of saying terminated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> normally. "ret" is the C way
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of saying the same thing.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sophistry.  What would be the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine equivalent of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> an "abnormal termination" in
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> An aborted simulation.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There's no such thing on a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine. It either runs
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and halts, or it runs forever.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Your aborted simulation is just
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> one final state of a turing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> machine, which has thus
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM "aborting" a simulation is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> just the TM ceasing to calculate
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate something else
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> instead. It does not mean: a)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the TM (doing the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation) has halted b) that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulated computation halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> c) that the simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation never halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OK.  I've a feeling we're talking
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> more about nice shades of words
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> than computer science here, but
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ....
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> If the simulation is the entire
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> turing machine, aborting it will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bring the TM to a halt state.  If
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that simulation is merely part of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM, then the word "halt" has
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a different meaning when applied
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to that simulation part from when
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> applied to the entire TM. I'm not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> even sure what you mean when you
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> say a part of a TM has halted or
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are clearly talking at cross
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> purposes
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - I never talked about /part/ of a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM halting, and like you, I can't
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> work out what that would mean!  I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> used "halt" only with respect to a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, meaning that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation halts [there is an n
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> such that computation step n is a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM final state].
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Reading what you say very
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> carefully, I think that by your
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> definition of simulation, the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating TM must be a "pure"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulator that does nothing but
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulate computation steps until
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation halts, at which
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> point the simulating TM halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (like a UTM). I get that with that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interpretation what you said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >>> Your aborted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is just one final state
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of a turing machine, >>> which has
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thus halted.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>   makes sense and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is correct. I'd just say I don't
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> think that usage of "simulation"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is very useful, and is DEFINITELY
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> not what PO is talking about (so
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it would be wrong if applied PO's
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> posts...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My use of "simulation" is broader:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's simply the activity performed
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> by a TM which consists of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculating computation steps of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some given computation.  As such
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it's just a part of the TM logic.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A TM's typical use of simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> might be something like "..the TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulates the computation for n
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps, and if the simulation halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> during those n steps, the TM [blah
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah], /otherwise/ the TM [blah
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> blah blah]...". Just about every
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reference in the literature I can
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> recall is something like that.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So... to be 100% clear on what I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <copied from above>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> A TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "aborting" a simulation is just
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the TM ceasing to calculate >>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps for some
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation, and going on to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculate
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something else instead.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> E.g. in PO's P, after P aborts its
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation of P(P), the TM either
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts or enters an infinite loop.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (That logic is not part of the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation, IMO.) >> It does *NOT*
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mean: >> a)  that the TM (doing
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation) has halted
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously, because now P has gone
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on to something else...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  >> b)  that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation halts >> c)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the simulated computation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> never halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obviously - in general different
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exacmples of a simulated
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation P(I) might halt or
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> never halt, and this is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> unaffected by a simulator's
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> decision to simulate no further
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation steps. [The TM may
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> have spotted some pattern in the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulated computation which
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> implies P(I) never halts - that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is a separate matter, but for
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sure the mere act of "aborting"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulation doesn't imply P(I)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> never halts, or imply that it
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halts...
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Put yet another way, when a TM
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> stops calculating TM steps (aka
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> aborts its simulation), NOTHING
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> HALTS: not the simulating TM, not
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the simulated computation, and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> NOT ANY PART OF EITHER OF THOSE.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Like you say, what would part of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a TM halting mean?)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I think of a TM and an input string
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> as defining a sequence (an ordered
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> list). The elements of the sequence
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> are pairs of a TM state name and a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> string representing the "tape"
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> contents when the state was
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entered. Note that this view has
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> no character of animation in it
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and makes the definition of the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt predicate (H) trivial:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H(TM,STRING) = If length of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TM(STRING) is finite then TRUE else
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FALSE.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's equivalent to what I
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> said (or at least meant). Your
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence is my computation steps.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Formally, these would be defined
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> inductively via the rule to go from
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> step n to step n+1. (Not an
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> animation, but the induction gives
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some /sense/ of step-by-step
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> calculation, and a simulator will
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> follow this, starting at step 1,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then calculate step 2 and so on.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Still, I agree the entire sequence
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [the "computation"] exists as one
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> timeless structure.  Too abstract
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for PO...)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In other words when we make sure to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> conflate the program under test with
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the test program as a single
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> computation then the whole idea of a
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt decider becomes less coherent
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> this can be used as an excuse to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pretend that you don't already know
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that H(P,P)==0 is correct and the H/P
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> relationship matches the halting
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> problem counter example template.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    return;
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    Output("Input_Halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> = ", H((u32)P, (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>       For any program
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H that might determine if programs
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> halt, a "pathological" program P,
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> called with some input, can pass its
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> own source and its input to H and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then specifically do the opposite of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> what H predicts P will do. No H can
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exist that handles this case.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> A simulator animates the production
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> of the sequence and that causes
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> some difficulties in the same way
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> that elaborating an infinite sum or
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence does in math classes. An
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (ultimate) value only exists if
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> there is some notation of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> convergence or limit which
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> typically is the case with
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> examples used in a math class.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> There is no definition of
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> convergence or limit with the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sequence defined by TM(STRING);
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rather, we simply ask about the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> last pair if the sequence is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> finite.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The question right now is what you
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would call a TM which evaluates the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> first 10 steps of a computation, and
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> then does something else. What is it
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> doing while evaluating those 10
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> steps?
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tl;dr : who cares :)
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My terminology would be that it's
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "simulating" the computation (just
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for 10 steps) - then it stops
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating and does something else.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Obviously I wouldn't describe it as
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "correctly" simulating, because
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> nobody considers incorrect
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulations, so the word would be
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> redundant!
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> It is required because my reviewers
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> are making their best possible
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> effort to form rebuttals and the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> most persistent of the fake
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rebuttals has been that the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulation is incorrect. It is very
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> easy to verify the correct x86
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> emulation on the basis of the x86
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> language.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Except that it doesn't. By
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DEFINITION, a correct simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> needs show the same behavior of the
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thing it is simulating.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Members of comp.c and comp.c++ this
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> goofy idiot is trying to claim that it
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is utterly impossible to create a C
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> program that examines the x86
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> execution trace derived from
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> simulating the input to
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> H0(Infinite_Loop) with an x86 emulator
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to correctly determine that
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Infinite_Loop() infinitely loops.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> void Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> = ", H0(Infinite_Loop)); }
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _Infinite_Loop()
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342](01) 55 push
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebp [00001343](02) 8bec mov
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebp,esp [00001345](02) ebfe
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> jmp 00001345 [00001347](01) 5d
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pop ebp [00001348](01) c3
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ret Size in bytes:(0007) [00001348]
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Begin Local Halt Decider Simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Execution Trace Stored at:212343
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001342][00212333][00212337] 55 push
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebp [00001343][00212333][00212337] 8bec
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [00001345][00212333][00212337] ebfe jmp
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 00001345 [00001345][00212333][00212337]
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ebfe jmp 00001345 Local Halt Decider:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Infinite Loop Detected Simulation
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Stopped
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> But he isn't doing that; the issue is
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> not the infinite loop but the logic
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> used to decide to enter the infinite
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> loop. Post *full* traces.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> In other words you are unable to tell
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> that _Infinite_Loop() contains an
> >>>>>>>>>>>>>>>>>>>>>>>>>>>> infinite loop.
> >>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>> Again that isn't the issue; the issue is
> >>>>>>>>>>>>>>>>>>>>>>>>>>> the logic used to decide when to enter the
> >>>>>>>>>>>>>>>>>>>>>>>>>>> infinite loop;
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> In other words when H0(Infinite_Loop) is
> >>>>>>>>>>>>>>>>>>>>>>>>>> invoked we have no idea that a correct x86
> >>>>>>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop would reach the
> >>>>>>>>>>>>>>>>>>>>>>>>>> instruction at machine address [00001345]
> >>>>>>>>>>>>>>>>>>>>>>>>>> or not.
> >>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>> It might be the case that a correct x86
> >>>>>>>>>>>>>>>>>>>>>>>>>> emulation of Infinite_Loop might instead
> >>>>>>>>>>>>>>>>>>>>>>>>>> involve emulating an entirely different
> >>>>>>>>>>>>>>>>>>>>>>>>>> function that plays tic-tac-toe?
> >>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>> Detecting an infinite loop is indeed trivial
> >>>>>>>>>>>>>>>>>>>>>>>>> however your program and trace are not
> >>>>>>>>>>>>>>>>>>>>>>>>> telling the full story as far as the HP
> >>>>>>>>>>>>>>>>>>>>>>>>> proofs are concerned;
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> The only thing that my program trace
> >>>>>>>>>>>>>>>>>>>>>>>> conclusively proves is that H(P,P)==0 is the
> >>>>>>>>>>>>>>>>>>>>>>>> correct return value that does correctly
> >>>>>>>>>>>>>>>>>>>>>>>> correspond to the actual behavior of the
> >>>>>>>>>>>>>>>>>>>>>>>> actual input.
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> For any program H that
> >>>>>>>>>>>>>>>>>>>>>>>> might determine if programs halt, a
> >>>>>>>>>>>>>>>>>>>>>>>> "pathological" program P, called with some
> >>>>>>>>>>>>>>>>>>>>>>>> input, can pass its own source and its input
> >>>>>>>>>>>>>>>>>>>>>>>> to H and then specifically do the
> >>>>>>>>>>>>>>>>>>>>>>>> opposite of what H predicts P will do. No H
> >>>>>>>>>>>>>>>>>>>>>>>> can exist that handles this
> >>>>>>>>>>>>>>>>>>>>>>>> case.
> >>>>>>>>>>>>>>>>>>>>>>>> https://en.wikipedia.org/wiki/Halting_problem
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> void P(u32 x)
> >>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>> if (H(x, x))
> >>>>>>>>>>>>>>>>>>>>>>>> HERE: goto HERE;
> >>>>>>>>>>>>>>>>>>>>>>>> return;
> >>>>>>>>>>>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> int main()
> >>>>>>>>>>>>>>>>>>>>>>>> {
> >>>>>>>>>>>>>>>>>>>>>>>> Output("Input_Halts = ",
> >>>>>>>>>>>>>>>>>>>>>>>> H((u32)P, (u32)P)); }
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> _P()
> >>>>>>>>>>>>>>>>>>>>>>>> [00001352](01) 55 push ebp
> >>>>>>>>>>>>>>>>>>>>>>>> [00001353](02) 8bec mov ebp,esp
> >>>>>>>>>>>>>>>>>>>>>>>> [00001355](03) 8b4508 mov
> >>>>>>>>>>>>>>>>>>>>>>>> eax,[ebp+08] [00001358](01) 50
> >>>>>>>>>>>>>>>>>>>>>>>> push eax // push P [00001359](03)
> >>>>>>>>>>>>>>>>>>>>>>>> 8b4d08 mov ecx,[ebp+08] [0000135c](01) 51
> >>>>>>>>>>>>>>>>>>>>>>>> push ecx // push P
> >>>>>>>>>>>>>>>>>>>>>>>> [0000135d](05) e840feffff call 000011a2 //
> >>>>>>>>>>>>>>>>>>>>>>>> call H [00001362](03) 83c408 add esp,+08
> >>>>>>>>>>>>>>>>>>>>>>>> [00001365](02) 85c0 test eax,eax
> >>>>>>>>>>>>>>>>>>>>>>>> [00001367](02) 7402 jz 0000136b
> >>>>>>>>>>>>>>>>>>>>>>>> [00001369](02) ebfe jmp 00001369
> >>>>>>>>>>>>>>>>>>>>>>>> [0000136b](01) 5d pop ebp
> >>>>>>>>>>>>>>>>>>>>>>>> [0000136c](01) c3 ret Size in
> >>>>>>>>>>>>>>>>>>>>>>>> bytes:(0027) [0000136c]
> >>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>> It is completely obvious that when H(P,P)
> >>>>>>>>>>>>>>>>>>>>>>>> correctly emulates its input that it must
> >>>>>>>>>>>>>>>>>>>>>>>> emulate the first seven instructions of P.
> >>>>>>>>>>>>>>>>>>>>>>>> Because the seventh instruction of P repeats
> >>>>>>>>>>>>>>>>>>>>>>>> this process we can know with complete
> >>>>>>>>>>>>>>>>>>>>>>>> certainty that the emulated P never reaches
> >>>>>>>>>>>>>>>>>>>>>>>> its final “ret” instruction, thus never
> >>>>>>>>>>>>>>>>>>>>>>>> halts.
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> But the halting problem proofs (including
> >>>>>>>>>>>>>>>>>>>>>>> [Strachey 1965]) that you are trying to refute
> >>>>>>>>>>>>>>>>>>>>>>> don't do that, they DO NOT make any recursive
> >>>>>>>>>>>>>>>>>>>>>>> calls
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> Because the idea of a simulating halt decider
> >>>>>>>>>>>>>>>>>>>>>> being applied to the halting problem
> >>>>>>>>>>>>>>>>>>>>>> counter-example is brand new with me you won't
> >>>>>>>>>>>>>>>>>>>>>> find other references that refer to "infinitely
> >>>>>>>>>>>>>>>>>>>>>> nested simulation".
> >>>>>>>>>>>>>>>>>>>>>>> which is what you are doing with "call H"
> >>>>>>>>>>>>>>>>>>>>>>> above. Why are you doing something different
> >>>>>>>>>>>>>>>>>>>>>>> to what the proofs you are trying to refute
> >>>>>>>>>>>>>>>>>>>>>>> do given doing so is no longer related to the
> >>>>>>>>>>>>>>>>>>>>>>> Halting Problem?
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>> The proofs never bothered to examine my idea
> >>>>>>>>>>>>>>>>>>>>>> because it was unknown by everyone prior to me
> >>>>>>>>>>>>>>>>>>>>>> creating it in 2016.
> >>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>> It seems to me that your idea would only be
> >>>>>>>>>>>>>>>>>>>>> novel because it is a mistake. Your mistake is
> >>>>>>>>>>>>>>>>>>>>> to have the candidate program call into the
> >>>>>>>>>>>>>>>>>>>>> SAME INSTANCE of the decider which is deciding
> >>>>>>>>>>>>>>>>>>>>> the candidate program.
> >>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>> Where the Hell did you ever get this idea from ?
> >>>>>>>>>>>>>>>>>>>> Whenever H simulates its input it creates a whole
> >>>>>>>>>>>>>>>>>>>> new process context.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> You cannot make a direct function call into
> >>>>>>>>>>>>>>>>>>> another process; it has to be the same process.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> As I have said very many hundreds of times I
> >>>>>>>>>>>>>>>>>> created the x86utm operating system that enables
> >>>>>>>>>>>>>>>>>> any C function to execute another C function using
> >>>>>>>>>>>>>>>>>> an x86 emulator.
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> In the case of H(P,P) H creates a separate process
> >>>>>>>>>>>>>>>>>> context to simulate its input every time that it is
> >>>>>>>>>>>>>>>>>> invoked, thus subsequent invocations of H(P,P)
> >>>>>>>>>>>>>>>>>> execute in the process context that was previously
> >>>>>>>>>>>>>>>>>> created.
> >>>>>>>>>>>>>>>>>>> As far as getting ideas as to what you are
> >>>>>>>>>>>>>>>>>>> actually doing: publish all your source so we can
> >>>>>>>>>>>>>>>>>>> see for ourselves so we don't have to guess.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> That would be 100,000-fold more complex then simply
> >>>>>>>>>>>>>>>>>> paying complete attention to what I am saying.
> >>>>>>>>>>>>>>>>>> Everyone that is not bright enough to understand 14
> >>>>>>>>>>>>>>>>>> lines of code keeps saying that they could easily
> >>>>>>>>>>>>>>>>>> understand 250 pages of code, even though the 14
> >>>>>>>>>>>>>>>>>> lines proves to be too much for them.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Your code:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> call 000011a2 // call H
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> is simply a function call into the address space of
> >>>>>>>>>>>>>>>>> the current process, it doesn't look like code to
> >>>>>>>>>>>>>>>>> spawn a new process to me.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> How many times do I have to say this before you
> >>>>>>>>>>>>>>>> notice that I said it at least once? H (in the
> >>>>>>>>>>>>>>>> current process) always creates a new process
> >>>>>>>>>>>>>>>> context to emulate its its input with an x86
> >>>>>>>>>>>>>>>> emulator.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I will have to take your word for it as you refuse to
> >>>>>>>>>>>>>>> publish source code. Why not just stick your project
> >>>>>>>>>>>>>>> on GitHub? Open source is de rigueur these days. What
> >>>>>>>>>>>>>>> are you trying to hide?
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> If a new process context is made then how is nested
> >>>>>>>>>>>>>>> simulation detected? I assume the data segment of
> >>>>>>>>>>>>>>> each process is private...
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> An honest dialogue requires points of mutual agreement.
> >>>>>>>>>>>>>> The price of moving beyond H(P,P)==0 is universal
> >>>>>>>>>>>>>> agreement that H(P,P)==0 is correct. The next point
> >>>>>>>>>>>>>> beyond H(P,P)==0 is computer science thus not
> >>>>>>>>>>>>>> appropriate for the C/C++ forum.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I agree that H(P,P)==0 for pathological input assuming
> >>>>>>>>>>>>> your method for detecting pathological input is
> >>>>>>>>>>>>> sufficiently robust however how is that distinguished
> >>>>>>>>>>>>> from H(P1,P1)==0 where P1 is normal non-halting (i.e.
> >>>>>>>>>>>>> non-pathological)?
> >>>>>>>>>>>>
> >>>>>>>>>>>> When-so-ever the correct and complete emulation of the
> >>>>>>>>>>>> input to H would never stop running H(x,y)==0 is correct.
> >>>>>>>>>>>>
> >>>>>>>>>>>>> If you are pattern matching op codes "EB FE" to detect
> >>>>>>>>>>>>> the infinite loop then how do you solve the problem of
> >>>>>>>>>>>>> there being 2^n different patterns equivalent to that
> >>>>>>>>>>>>> loop so someone could come along and write a
> >>>>>>>>>>>>> pathological program that defeats your pattern matcher?
> >>>>>>>>>>>>> This is why we need your source code to answer these
> >>>>>>>>>>>>> kinds of questions.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> /Flibble
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> To refute all of the HP conventional proofs only requires
> >>>>>>>>>>>> correctly determining that H(P,P)==0.
> >>>>>>>>>>>
> >>>>>>>>>>> Are you using pattern matching to detect the infinite loop
> >>>>>>>>>>> or not?
> >>>>>>>>>>>
> >>>>>>>>>>> /Flibble
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Even if H(P,P) simply makes a wild guess that its input
> >>>>>>>>>> never halts H(P,P)==0 is correct because the correct and
> >>>>>>>>>> complete x86 emulation of this input would never stop
> >>>>>>>>>> running.
> >>>>>>>>>
> >>>>>>>>> How do you KNOW it would never stop running? Given
> >>>>>>>>>
> >>>>>>>>> void P(u32 x)
> >>>>>>>>> {
> >>>>>>>>> if (H(x, x))
> >>>>>>>>> FUBAR(); // a disguised infinite loop
> >>>>>>>>> return;
> >>>>>>>>> }
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> It never gets to FUBAR()
> >>>>>>>
> >>>>>>> This is your second reply to my post, your first reply said it
> >>>>>>> "looks inside" FUBAR so you are contradicting yourself.
> >>>>>>>
> >>>>>>> /Flibble
> >>>>>>
> >>>>>> Yes I realized that I was incorrect and corrected my mistake.
> >>>>>
> >>>>> So you are now saying that it is merely the detection of the
> >>>>> nested simulation upon which you evaluate H and not what P does
> >>>>> after it invokes H?
> >>>>>
> >>>>
> >>>> That really should have been obvious hundreds of messages ago.
> >>>> If a function gets stuck in infinitely nested simulation it never
> >>>> proceeds to any point after this infinitely nested simulation.
> >>>
> >>> OK, in which case answer my second part which you conveniently
> >>> ignored:
> >>
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >> H never gets to the second part. H is stuck in the first part.
> >
> > Rather than getting angry try reading what I wrote again: P would
> > have HALTED:
> >
> >>
> >>> Given H doesn't care what P does after P invokes H then, given
> >>>
> >>> void P(u32 x)
> >>> {
> >>> if (H(x, x))
> >>> FUBAR2(); // a disguised halting function
> >>> return;
> >>> }
> >>>
> >>> int main()
> >>> {
> >>> Output("Input_Halts = ", H((u32)P, (u32)P));
> >>> }
> >>>
> >>> How do you evaluate H(P,P)=1? FUBAR2 can be any code that halts.
> >>>
> >
> > /Flibble
> >
>
> How do you evaluate H(P,P)=1?
> How do you evalulate that a dog is a cat?
> You don't a dog is not a cat.


Click here to read the complete article

devel / comp.lang.c / Re: Refuting the HP proofs (adapted for software engineers)[ members of c/c++ ]

Pages:123
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor