- re-baseline - 2 Updates
- The key aspects of x86utm are now finally complete [ HP proof refutation has been provided ] - 12 Updates
- Making the Halting Problem Decidable [ Includes deciding the Peter Linz proof counter-example ] - 4 Updates
- The x86utm operating system shows how the halting problem can be made decidable - 6 Updates
- 64-bit vs 32-bit app performance, heavy in 64-bit FP - 1 Update
| Juha Nieminen <nospam@thanks.invalid>: Oct 26 07:28AM > If you are a bit racist, sexist or homophobic then please watch https://vimeo.com/331247247 to re-baseline. > /Flibble Why don't you go somewhere else, spammer? |
| Stuart Redmann <DerTopper@web.de>: Oct 26 08:01PM +0100 >> https://vimeo.com/331247247 to re-baseline. >> /Flibble > Why don't you go somewhere else, spammer? IDK, in contrast to „spam" from other frequent posters in this group, I actually watched Flibble's link, and I have to say that I like it very much. I would even go so far to say that it is a long overdue statement for humanity (in all its facets), which contrasts some postings in this group. I have little concern that Mr. Flibble will start to flood this newsgroup with too many off-topic postings because I believe he knows when to stop. Thx, Flibble, and keep up the good work. Stuart |
| olcott <NoOne@NoWhere.com>: Oct 25 06:35PM -0500 On 10/25/2020 6:19 PM, Malcolm McLean wrote: > Of course it's no longer the original problem. The question has changed and the > requirement that H and H_Hat be Turing machines has been relaxed. I think > I've been clear on that. We have no need to drop the idea that this applies to Turing Machines x86 language ≡ von Neumann architecture ≡ UTM Does the UTM halt decider have to stop executing its subordinate UTM to prevent its own infinite execution? The UTM halt decider executes its subordinate UTM one state transition at a time until it decides that it must stop the execution of its subordinate UTM or its subordinate UTM has terminated normally. -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 25 06:40PM -0500 On 10/25/2020 6:35 PM, olcott wrote: > The UTM halt decider executes its subordinate UTM one state transition > at a time until it decides that it must stop the execution of its > subordinate UTM or its subordinate UTM has terminated normally. In either case it transitions into one of two final states ((qn)) or ((qy)) indicating its decision. -- Copyright 2020 Pete Olcott |
| "André G. Isaak" <agisaak@gm.invalid>: Oct 26 03:18AM -0600 On 2020-10-25 14:27, olcott wrote: > UTM: https://en.wikipedia.org/wiki/Random-access_stored-program_machine > So for all practical purposes the x86 language <is> a UTM description > language, thus making x86utm a x86 based UTM operating system. No, it isn't. Your constant repetition of this claim does not make it true. To the extent that 'UTM description language' means anything, one would assume it means a a language for specifying a particular TM (where TM refers to a well-defined type of mathematical object) to be used as the input for a UTM. x86 machine language doesn't do this. > Yes for all we know the machine specified by Linz might not implement > the simplest of all possible halt deciders instead it might always make > a phone call to the psychic hotline. First off, there is no possible way to construct a halt decider, as demonstrated by Linz. This means there is also no such thing as the 'simplest of all possible halt deciders'. Your attempt to redefine the question doesn't change this fact (and as far as I can tell, your solution still suffers from the exact same contradiction that Linz draws attention to anyways). Second, if you want to talk about partial halt deciders, then your claim that this is the simplest possible approach is simply something you are pulling out of your ass. There is no actual argument which has been offered by you to support this claim. Third, your insistence on always choosing the most absurd interpretation of people's comments you can think of rather than looking for a more reasonable one is highly aggravating. Analyzing the state transitions of the input without actually running the TM in some sort of emulation is a reasonable interpretation. Calling a psychic hotline is not. Since an approach which involves analyzing the state transitions without actually running the TM in some sort of emulation involves no recursion at all, you cannot claim that H(Ĥ-description, Ĥ-description) is inherently recursive, let alone infinitely recursive. André -- To email remove 'invalid' & replace 'gm' with well known Google mail service. |
| "André G. Isaak" <agisaak@gm.invalid>: Oct 26 03:21AM -0600 On 2020-10-26 03:18, André G. Isaak wrote: > actually running the TM in some sort of emulation involves no recursion > at all, you cannot claim that H(Ĥ-description, Ĥ-description) is > inherently recursive, let alone infinitely recursive. Just to add something to this, the recursion you claim exists occurs *inside* your DebugTrace. If it is possible for DebugTrace to get stuck in infinite recursion, then your DebugTrace procedure fails to actually do what it purports to do since that procedure is not itself guaranteed to halt. André -- To email remove 'invalid' & replace 'gm' with well known Google mail service. |
| Mike Terry <news.dead.person.stones@darjeeling.plus.com>: Oct 26 04:11PM On 24/10/2020 23:01, olcott wrote: > code. Although I don't have the halt decider code completed yet because > the x86utm operating system is completed I can see exactly how the halt > deciding code would work. What are the false assumptions? It is not ok in a discussion to say "you're wrong because you've made a false assumption, but I'm not going to say what that is!". My trace /is/ based on the assumption that Was_Its_Execution_Aborted() detects non-halting behaviour and returns ABORTS to H() and H_Hat(). Is that my false assumption? Mike. |
| olcott <NoOne@NoWhere.com>: Oct 26 11:16AM -0500 On 10/26/2020 4:37 AM, Malcolm McLean wrote: > But later on, that seems to have changed. I suspect because of confusion > about whether you abort yourself or not. > It's a root a very simple point. But it has generated a huge thread. Here is how my code has been augmented based on feedback from 10/26/2020 9:44 AM, Melzzzzz: void H_Hat(u32 M) { if (Aborted_Because_Non_Halting_Behavior_Detected(M, M)) Output("The function at this machine address has been aborted:", M); else { Output("The function at this machine address has terminated:", M); HERE: goto HERE; } HALT } void H(u32 M, u32 N) { if (Aborted_Because_Non_Halting_Behavior_Detected(M, M)) Output("The function at this machine address has been aborted:", M); else Output("The function at this machine address has terminated:", M); HALT } int main() { u32 M = (u32)H_Hat; H_Hat(M); HALT } I recap everything here: This thread starts with a simple overview of exactly how the redefined the halt decider so that it cannot be fooled by the conventional halting problem trick. On 10/25/2020 8:33 PM, olcott wrote: Making the Halting Problem Decidable [ Includes deciding the Peter Linz proof counter-example ] It goes on to explain all of the details of exactly how halting is decided for the the Peter Linz H_Hat() counter example. -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 26 11:30AM -0500 On 10/26/2020 8:37 AM, Alan Mackenzie wrote: >>>> means that the input has infinite execution. > It also means a fairy-tale halting decider would return "doesn't halt" in > exactly the same circumstances. No. Not at all. Not in the least little bit. It is not a fairy-tale at all. The redefined halt decider UTM executes its subordinate UTM one state transition at a time until it detects non-halting behavior or its subordinate UTM has terminated normally. If the halt decider UTM detects non-halting behavior of its subordinate UTM it simply stops executing the subordinate and transitions to its own final state of ABORTED_NON_TERMINATING_BEHAVIOR. If the subordinate UTM terminates normally the halt decider UTM transitions to its own final state of SUBORDINATE_HAS_TERMINATED. The redefined halt decider is not subject to the conventional halting problem trick. Its input cannot possibly do the opposite of whatever it decides because the input has already terminated before the halt decider makes its decision. -- Copyright 2020 Pete Olcott |
| "André G. Isaak" <agisaak@gm.invalid>: Oct 26 10:43AM -0600 On 2020-10-26 10:30, olcott wrote: > If the halt decider UTM detects non-halting behavior of its subordinate > UTM it simply stops executing the subordinate and transitions to its own > final state of ABORTED_NON_TERMINATING_BEHAVIOR. And the difference between 'non-terminating behaviour' and 'does not halt' is... > problem trick. Its input cannot possibly do the opposite of whatever it > decides because the input has already terminated before the halt decider > makes its decision. I have no idea what difference this is supposed to make. Linz's H (ex hypothesi) answers the question 'will my input Turing Machine description halt with the specified input'. So whatever answer it gives must conform to what happens when H_Hat(H_Hat-description) is run as a Turing Machine. Whether it will be aborted prematurely or not in your debug-mode isn't relevant to this question. So what happens if you run your H_Hat with a description of H_Hat as it's input? i.e. when you don't run it inside H()? André -- To email remove 'invalid' & replace 'gm' with well known Google mail service. |
| olcott <NoOne@NoWhere.com>: Oct 26 12:44PM -0500 On 10/26/2020 11:43 AM, André G. Isaak wrote: >> it decides because the input has already terminated before the halt >> decider makes its decision. > I have no idea what difference this is supposed to make. void H_Hat(u32 M) { if (!Halts(M, M)) MOV_EAX_0 // Does not Halt else { MOV_EAX_1 // Halts HERE: goto HERE; } HALT } void H(u32 M, u32 N) { if (!Halts(M, M)) MOV_EAX_0 // Does not Halt else MOV_EAX_1 // Halts HALT } int main() { u32 M = (u32)H_Hat; H(M, M); HALT } To the question: Does H_Hat halt on it input H_Hat? Both Yes and No are the wrong final state to transition to. void H_Hat(u32 M) if (Aborted_Because_Non_Halting_Behavior_Detected(M, M)) MOV_EAX_1 // Execution of M(N) has been aborted else { MOV_EAX_0 // M(N) has halted HERE: goto HERE; } HALT } void H(u32 M, u32 N) { if (Aborted_Because_Non_Halting_Behavior_Detected(M, M)) MOV_EAX_1 // Execution of M(N) has been aborted else MOV_EAX_0 // M(N) has halted HALT } int main() { u32 M = (u32)H_Hat; H(M, M); HALT } The redefined halt decider UTM executes its subordinate UTM one state transition at a time until it detects non-halting behavior or its subordinate UTM has terminated normally. If the halt decider UTM detects non-halting behavior of its subordinate UTM it simply stops executing the subordinate and transitions to its own final state of ABORTED_NON_TERMINATING_BEHAVIOR. If the subordinate UTM terminates normally the halt decider UTM transitions to its own final state of SUBORDINATE_HAS_TERMINATED. The redefined halt decider is not subject to the conventional halting problem trick. Its input cannot possibly do the opposite of whatever it decides because the input has already terminated before the halt decider makes its decision. -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 26 01:03PM -0500 On 10/26/2020 11:29 AM, Mike Terry wrote: > That's fine. > If the outer invocation aborts the inner invocation, that implies that > the H_Hat(H_Hat) calculation halts. None of the invocations of H_Hat() would ever halt unless they are aborted. That is why this is the correct halt decider question: bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) When the return value of true is provided for the (M, N) input this return value is correct. Every other return value from bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) does not occur because every other bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) has had its execution terminated before it ever returns any value. Therefore we can conclude that bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) Is a halt decider function that cannot be shown to be incorrect. > or run on some physical computer.] > Do you agree with this? > Mike. No. I pointed out the false assumptions. The one time that bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) returns its decision value this decision value is correct. There are no other times that it reteuns its decsion value. -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 26 01:13PM -0500 On 10/26/2020 12:38 PM, Alan Mackenzie wrote: > If your A_B_N_H_B_D's output doesn't correspond exactly with the > fairy-tail halt detector's output, please identify an input program for > which they would differ. In both cases the input H_Hat would not halt unless it has been aborted: H_Hat(H_Hat) H(H_Hat, H_Hat) That is why this is the correct halt decider function: bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) When the return value of true is provided for the (M, N) input this return value is correct. Every other return value from bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) does not occur because every other bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) has had its execution terminated before it ever returns any value. Therefore we can conclude that bool Aborted_Because_Non_Halting_Behavior_Detected(M, N) Is a halt decider function that cannot be shown to be incorrect. -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 26 01:14PM -0500 On 10/26/2020 1:03 PM, olcott wrote: >> That's fine. >> If the outer invocation aborts the inner invocation, that implies that >> the H_Hat(H_Hat) calculation halts. CORRECTION > None of the invocations of H_Hat() would ever halt unless they are > aborted. In both cases the input H_Hat would not halt unless it has been aborted: H_Hat(H_Hat) H(H_Hat, H_Hat) -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 25 08:33PM -0500 Generic system to overcome the halting problem proofs We can ask the halt deciding question in a way that allows the input program to do the opposite of whatever the halt decider decides: "Does this input program halt on its input (yes or no)?" Or we can ask the halt deciding question in such a way where it is impossible for the input program to do the opposite of what the halt decider decides: Did the UTM halt decider have to stop executing its subordinate UTM to prevent its own infinite execution? The UTM halt decider executes its subordinate UTM one state transition at a time until it decides that it must stop the execution of its subordinate UTM or its subordinate UTM has terminated normally. The halt decider UTM transitions to one of two final states ((qn)) or ((qy)) indicating its decision. Here is the same thing as a conventional software function: bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) Specific details of overcoming the Peter Linz Halting problem proof The following code is based on the Peter Linz H and Ĥ http://www.liarparadox.org/Peter_Linz_HP(Pages_315-320).pdf I created the x86utm operating system on the basis of a very excellent x86 emulator. The x86 emulator is written in "C" and has been adapted to run on Linux and Windows. x86 language ≡ von Neumann architecture ≡ UTM x86utm operating system is written in C++ and provides a way to functions written in "C" to be converted into virtual machines that are executed in their own process context. The x86 machine language is the the description language of these UTM equivalents and can be directly executed in x86utm. main() executes H() and Aborted_Because_Non_Halting_Behavior_Detected(M, M)) in the process context of x86utm. Aborted_Because_Non_Halting_Behavior_Detected(M, M)) creates a whole new process context to execute H_Hat() in a DebugTrace() DebugStep() mode. All of this is fully operational. // M has the machine address of H_Hat() void H_Hat(u32 M) { if (Aborted_Because_Non_Halting_Behavior_Detected(M, M)) MOV_EAX_0 // Execution of M(N) has been aborted else { MOV_EAX_1 // M(N) has halted HERE: goto HERE; } HALT } // M and N have the machine address of H_Hat() void H(u32 M, u32 N) { if (Aborted_Because_Non_Halting_Behavior_Detected(M, M)) MOV_EAX_0 // Execution of M(N) has been aborted else MOV_EAX_1 // M(N) has halted HALT } int main() { u32 M = (u32)H_Hat; H(M, M); // MOV_EAX_0 HALT } Continuing from above: H_Hat() executes another instance of Aborted_Because_Non_Halting_Behavior_Detected(M, M) in its own process context which creates another process context to execute a second instance of H_Hat(). As soon as the second H_Hat() would execute Aborted_Because_Non_Halting_Behavior_Detected(M, M) a second time from the same machine address the first instance of Aborted_Because_Non_Halting_Behavior_Detected(M, M) recognizes that H_Hat() is infinitely recursive. // 2018-12-13 @7:00 PM solution This first instance stops executing H_Hat() which has invoked the second instance of Aborted_Because_Non_Halting_Behavior_Detected(M, M) which is executing the second instance of H_Hat(). The outer Aborted_Because_Non_Halting_Behavior_Detected(M, M) has terminated the whole process tree (or hierarchy of UTMs executing other UTMs) before the second instance has returned a value. Although I have this complete detailed description of exactly how H() correctly decides halting on H_Hat() the code for this has not been written. It will be written shortly. Creating the x86utm operating system took about a man-year working almost all the time. I am reducing my coding time to less the 40 hours per week. -- Copyright 2020 Pete Olcott |
| "André G. Isaak" <agisaak@gm.invalid>: Oct 26 08:18AM -0600 On 2020-10-25 19:33, olcott wrote: > the same machine address the first instance of > Aborted_Because_Non_Halting_Behavior_Detected(M, M) recognizes that > H_Hat() is infinitely recursive. // 2018-12-13 @7:00 PM solution Just to clarify, you are claiming that when the Aborted_Because_Non_Halting_Behavior_Detected inside H decides it has to abort H_Hat, the 'non-halting behaviour' it detects is occurring during the execution of Aborted_Because_Non_Halting_Behavior_Detected inside H_Hat, and not in the infinite loop present in H_Hat { if (ABNHBD(M, M)) // <-- the non-halting behaviour is HERE MOV_EAX_0 // Execution of M(N) has been aborted else { MOV_EAX_1 // M(N) has halted HERE: goto HERE; // <-- the non-halting behaviour is NOT here. } HALT } Is that correct? If so, you have just admitted that your Aborted_Because_Non_Halting_Behavior_Detected) function is NOT guaranteed to halt. If that is the case, Aborted_Because_Non_Halting_Behavior_Detected() cannot possibly form the basis of ANY decider. Certainly not of a halt (or forced-to-abort) decider. André -- To email remove 'invalid' & replace 'gm' with well known Google mail service. |
| olcott <NoOne@NoWhere.com>: Oct 26 12:52PM -0500 On 10/26/2020 9:18 AM, André G. Isaak wrote: > abort H_Hat, the 'non-halting behaviour' it detects is occurring during > the execution of Aborted_Because_Non_Halting_Behavior_Detected inside > H_Hat, and not in the infinite loop present in H_Hat Yes. Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) detects that H_Hat() specifies infinite recursion and must be terminated before any H_Hat() ever reaches their undecidable state transitions. > HALT > } > Is that correct? Yes. > If so, you have just admitted that your > Aborted_Because_Non_Halting_Behavior_Detected) function is NOT > guaranteed to halt. If that is the case, No, not at all. not in the least little bit. bool Aborted_Because_Non_Halting_Behavior_Detected(M, M) is what guarantees that the halt decider always halts. -- Copyright 2020 Pete Olcott |
| "André G. Isaak" <agisaak@gm.invalid>: Oct 26 12:12PM -0600 On 2020-10-26 11:52, olcott wrote: > Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) detects that > H_Hat() specifies infinite recursion and must be terminated before any > H_Hat() ever reaches their undecidable state transitions. H_Hat doesn't specify any sort of recursion, so I don't know why you keep claiming that. Even in an implementation where your H actually 'executes' H_Hat in some sort of modified environment, it is not recursive. In Linz's proof, H_Hat is a modified version of H. It contains its own *copy* of Aborted_Because_Non_Halting_Behavior_Detected, so the Aborted_Because_Non_Halting_Behavior_Detected in H is not calling itself, it is calling a separate function within H_Hat that just happens to be identical to the one in H (similarly, the inner H_Hat has its own, separate, copy of Aborted_Because_Non_Halting_Behavior_Detected) And, as pointed out in an earlier post which you ignored, there is nothing in Linz's definition which states that H must execute anything. H is given an input consisting of the description of a TM and an initial tape configuration about which it answers the question 'will this halt'? There's nothing in that requiring that anything 'calls' anything, recursively or otherwise. > No, not at all. not in the least little bit. > bool Aborted_Because_Non_Halting_Behavior_Detected(M, M) > is what guarantees that the halt decider always halts. But if the copy of Aborted_Because_Non_Halting_Behavior_Detected within H_Hat doesn't always halt, then you cannot claim that this function is guaranteed to halt in H either. If this function isn't guaranteed to halt, then H isn't guaranteed to halt. If the the function within H_Hat is not identical to the one in H, then you aren't constructing the proper relation between H and H_Hat. André -- To email remove 'invalid' & replace 'gm' with well known Google mail service. |
| Paavo Helde <myfirstname@osa.pri.ee>: Oct 26 08:57AM +0200 25.10.2020 17:58 olcott kirjutas: > 8 GB is 68,719,476,736 bits > 2 Ghz is 2,147,483,648 operations per second > 68,719,476,736 bits / 2,147,483,648 OPS = 32 seconds. Just a small mistake: 68719476736 bits does not mean 68719476736 states, it means 2^68719476736 states. |
| Melzzzzz <Melzzzzz@zzzzz.com>: Oct 26 02:44PM > http://www.liarparadox.org/Peter_Linz_HP(Pages_315-320).pdf > I explain exactly how the halt decider works so that H() correctly > decides halting of H_Hat(): Problem is that program would not print output it will just abort... You can do that simpply by running timer and if does not stops on timeout it aborts. But you don't get result... -- current job title: senior software engineer skills: c++,c,rust,go,nim,haskell... press any key to continue or any other to quit... U ničemu ja ne uživam kao u svom statusu INVALIDA -- Zli Zec Svi smo svedoci - oko 3 godine intenzivne propagande je dovoljno da jedan narod poludi -- Zli Zec Na divljem zapadu i nije bilo tako puno nasilja, upravo zato jer su svi bili naoruzani. -- Mladen Gogala |
| olcott <NoOne@NoWhere.com>: Oct 26 11:03AM -0500 On 10/26/2020 9:44 AM, Melzzzzz wrote: > Problem is that program would not print output it will just abort... > You can do that simply by running timer and if does not stops on > timeout it aborts. But you don't get result... This thread starts with a simple overview of exactly how the redefined the halt decider so that it cannot be fooled by the conventional halting problem trick. On 10/25/2020 8:33 PM, olcott wrote: Making the Halting Problem Decidable [ Includes deciding the Peter Linz proof counter-example ] It goes on to explain all of the details of exactly how halting is decided for the the Peter Linz H_Hat() counter example. I added I/O to my x86utem operating system a couple of days ago. This seems to be what you are asking for: Output("Infinite recursion detected at machine address", Address); OutputString("H_Hat() has been aborted"); -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 26 11:06AM -0500 On 10/26/2020 1:57 AM, Paavo Helde wrote: >> 68,719,476,736 bits / 2,147,483,648 OPS = 32 seconds. > Just a small mistake: 68719476736 bits does not mean 68719476736 states, > it means 2^68719476736 states. I knew that I must have screwed up somewhere. Good job at correcting my mistake. -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 26 12:36PM -0500 On 10/25/2020 10:57 PM, Mike Terry wrote: > refuting something), if the behaviour of this function is key to your > argument, it's YOU who should be proving your case, rather than asking > /us/ to respond to challenges? That's typical Nam Ngyuyen tactics! The would be exactly the same thing as rejecting the Church-Turing thesis until after someone has proved it. > 1) The program spec for > Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) > 2) Exactly what you mean by "impossible to decide correctly". void H_Hat(u32 M) { if (!Halts(M, M)) MOV_EAX_0 // Does not Halt else { MOV_EAX_1 // Halts HERE: goto HERE; } HALT } void H(u32 M, u32 N) { if (!Halts(M, M)) MOV_EAX_0 // Does not Halt else MOV_EAX_1 // Halts HALT } int main() { u32 M = (u32)H_Hat; H(M, M); HALT } To the question: Does H_Hat halt on it input H_Hat? Both Yes and No are the wrong final state to transition to. > 3) Is Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) a > specific implementation (in C perhaps?) and do you actually have that > souce code? I will have it so that it correctly decides the Peter Linz H_Hat() shortly. Since I have worked on this about 80 hours per weeks for six months I have reduced my coding time to less than 40 hours per week for this home stretch. > 4) Why not use a shorter name, because this is UseNet, and there are > quite restrictive guidelines for line lengths. I'm all for suggestive > function names, but we need to be practical! What about ABNHBD()? No, Not all. Not in the least little bit. The name must be utterly self-descriptive to eliminate any confusion > "provide an input (P,I) for which > Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) gives a > response that doesn't meet it's spec." Yes and I show an overview of the architecture of the halting algorithm as it would be applied to a UTM halt decider deciding the halting of its subordinate UTM below: The redefined halt decider UTM executes its subordinate UTM one state transition at a time until it detects non-halting behavior or its subordinate UTM has terminated normally. If the halt decider UTM detects non-halting behavior of its subordinate UTM it simply stops executing the subordinate and transitions to its own final state of ABORTED_NON_TERMINATING_BEHAVIOR. If the subordinate UTM terminates normally the halt decider UTM transitions to its own final state of SUBORDINATE_HAS_TERMINATED. The redefined halt decider is not subject to the conventional halting problem trick. Its input cannot possibly do the opposite of whatever it decides because the input has already terminated before the halt decider makes its decision. -- Copyright 2020 Pete Olcott |
| olcott <NoOne@NoWhere.com>: Oct 26 12:45PM -0500 On 10/24/2020 3:13 PM, olcott wrote: > ALL INPUT IS DIVIDED INTO EXACTLY ONE OF THESE TWO SETS > (a) The input Program/TM has infinite execution. > (b) The input Program/TM DOES NOT HAVE infinite execution. void H_Hat(u32 M) { if (!Halts(M, M)) MOV_EAX_0 // Does not Halt else { MOV_EAX_1 // Halts HERE: goto HERE; } HALT } void H(u32 M, u32 N) { if (!Halts(M, M)) MOV_EAX_0 // Does not Halt else MOV_EAX_1 // Halts HALT } int main() { u32 M = (u32)H_Hat; H(M, M); HALT } To the question: Does H_Hat halt on it input H_Hat? Both Yes and No are the wrong final state to transition to. void H_Hat(u32 M) if (Aborted_Because_Non_Halting_Behavior_Detected(M, M)) MOV_EAX_1 // Execution of M(N) has been aborted else { MOV_EAX_0 // M(N) has halted HERE: goto HERE; } HALT } void H(u32 M, u32 N) { if (Aborted_Because_Non_Halting_Behavior_Detected(M, M)) MOV_EAX_1 // Execution of M(N) has been aborted else MOV_EAX_0 // M(N) has halted HALT } int main() { u32 M = (u32)H_Hat; H(M, M); HALT } The redefined halt decider UTM executes its subordinate UTM one state transition at a time until it detects non-halting behavior or its subordinate UTM has terminated normally. If the halt decider UTM detects non-halting behavior of its subordinate UTM it simply stops executing the subordinate and transitions to its own final state of ABORTED_NON_TERMINATING_BEHAVIOR. If the subordinate UTM terminates normally the halt decider UTM transitions to its own final state of SUBORDINATE_HAS_TERMINATED. The redefined halt decider is not subject to the conventional halting problem trick. Its input cannot possibly do the opposite of whatever it decides because the input has already terminated before the halt decider makes its decision. -- Copyright 2020 Pete Olcott |
| "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>: Oct 25 11:08PM -0700 On 10/25/2020 9:11 AM, Rick C. Hodgin wrote: >> Why not try to move the calculations to the GPU? > Because I don't know how to do that. :-) I've reported on things like > OpenCL before, but I've never programmed with any of those GPU libraries. At the least, think about: http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/ (read all) The think of a MVP. Model, View, Projection. |
| You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page. To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com. |
No comments:
Post a Comment