- It is known that a correct halt decider must return false (in this case)[V4](Linz) - 2 Updates
- It is known that a correct halt decider must return false (in this case) - 1 Update
- std::sort slow due to allocating and deallocing memory? - 1 Update
- Is there a way to list all supported locales either the C- or C++-runtime? - 1 Update
- Onwards and upwards - 1 Update
olcott <NoOne@NoWhere.com>: Nov 22 07:24PM -0600 The following shows exactly how the Peter Linz H would correctly decide halting on the Peter Linz Ĥ. This is fully operational code that has been executed in the x86utm operating system that I wrote. To make the Linz counter-example conform to the standard halting problem counter-examples the input is not copied as it is in Linz. http://www.liarparadox.org/Peter_Linz_HP(Pages_315-320).pdf Linz, Peter 1990. An Introduction to Formal Languages and Automata. Lexington/Toronto: D. C. Heath and Company. x86 language ≡ von Neumann architecture ≡ UTM ≡ RASP Machine The x86 language is computationally equivalent to a UTM for all computations that do not require more memory than is available. Recursion can be directly simulated by a UTM that simulates its own Turing machine Description. Infinite recursion would repeat the same state transitions every time the UTM simulates its own Turing machine Description. // Defined at the bottom of page 319 of Linz void Ĥ(u32 P) { u32 Input_Halts = H(P, P); if (!Input_Halts) HALT else HERE: goto HERE; } int main() { u32 P = (u32)Ĥ; H(P, P); HALT; } Disassembled x86 machine language of the above pair of C functions. Ĥ() [000004f7](01) 55 push ebp [000004f8](02) 8bec mov ebp,esp [000004fa](01) 51 push ecx [000004fb](03) 8b4508 mov eax,[ebp+08] [000004fe](01) 50 push eax [000004ff](03) 8b4d08 mov ecx,[ebp+08] [00000502](01) 51 push ecx [00000503](05) e86ffeffff call 00000377 [00000508](03) 83c408 add esp,+08 [0000050b](03) 8945fc mov [ebp-04],eax [0000050e](04) 837dfc00 cmp dword [ebp-04],+00 [00000512](02) 7403 jz 00000517 [00000514](01) f4 hlt [00000515](02) eb02 jmp 00000519 [00000517](02) ebfe jmp 00000517 [00000519](02) 8be5 mov esp,ebp [0000051b](01) 5d pop ebp [0000051c](01) c3 ret _main() [00000527](01) 55 push ebp [00000528](02) 8bec mov ebp,esp [0000052a](01) 51 push ecx [0000052b](07) c745fcf7040000 mov [ebp-04],000004f7 [00000532](03) 8b45fc mov eax,[ebp-04] [00000535](01) 50 push eax [00000536](03) 8b4dfc mov ecx,[ebp-04] [00000539](01) 51 push ecx [0000053a](05) e838feffff call 00000377 [0000053f](03) 83c408 add esp,+08 [00000542](01) f4 hlt [00000543](02) 8be5 mov esp,ebp [00000545](01) 5d pop ebp [00000546](01) c3 ret Output_Debug_Trace() [00010abc] size(148) capacity(65536) [00000527](01) 55 push ebp [00000528](02) 8bec mov ebp,esp [0000052a](01) 51 push ecx [0000052b](07) c745fcf7040000 mov [ebp-04],000004f7 [00000532](03) 8b45fc mov eax,[ebp-04] [00000535](01) 50 push eax [00000536](03) 8b4dfc mov ecx,[ebp-04] [00000539](01) 51 push ecx [0000053a](05) e838feffff call 00000377 [000004f7](01) 55 push ebp [000004f8](02) 8bec mov ebp,esp [000004fa](01) 51 push ecx [000004fb](03) 8b4508 mov eax,[ebp+08] [000004fe](01) 50 push eax [000004ff](03) 8b4d08 mov ecx,[ebp+08] [00000502](01) 51 push ecx [00000503](05) e86ffeffff call 00000377 [000004f7](01) 55 push ebp [000004f8](02) 8bec mov ebp,esp [000004fa](01) 51 push ecx [000004fb](03) 8b4508 mov eax,[ebp+08] [000004fe](01) 50 push eax [000004ff](03) 8b4d08 mov ecx,[ebp+08] [00000502](01) 51 push ecx [00000503](05) e86ffeffff call 00000377 25 instructions The above is where the halt decider aborts the whole Ĥ(Ĥ) invocation sequence because the halt decider detects infinite recursion. In this case infinite recursion is a function call to the same function from the same machine address without any conditional branch instructions that would terminate this recursion. -- Copyright 2020 Pete Olcott "Great spirits have always encountered violent opposition from mediocre minds." Einstein |
olcott <NoOne@NoWhere.com>: Nov 23 03:29PM -0600 On 11/23/2020 3:02 PM, Mike Terry wrote: > intstructions, but you've just silently snipped them from the trace > output you've shown. There are HUGE gaps in your trace!! > Mike. Unless we maintain a line-of-demarcation between the halt decider and its input pathological self-reference(Olcott 2004) makes the halting problem have undecidable inputs in the same way that the Liar Paradox is neither true nor false. https://groups.google.com/g/comp.theory/c/RO9Z9eCabeE/m/Ka8-xS2rdEEJ Instead of asking the question: Does the input halt on its input? that is subject to pathological self-reference. We ask the question: Does the execution of the input have to be aborted to prevent its infinite execution? When we ask this latter question then we can ignore all of the conditional branch instructions that are in the halt decider and only pay attention to the ones that are in the input. The input to H will be the description (encoded in some form) of M, say WM, as well as the input w. The requirement is then that, given any (WM, w), the Turing machine H will halt with either a yes or no answer. H.q0 wMw ⊢* H.yes if M applied to w halts, and H.q0 wMw ⊢* H.no if M applied to w does not halt. (Linz 1990:318) Any input TMD that would never halt unless a UTM stopped simulating it expresses behavior that is not halting behavior. Linz, Peter 1990. An Introduction to Formal Languages and Automata. Lexington/Toronto: D. C. Heath and Company. http://www.liarparadox.org/Peter_Linz_HP(Pages_315-320).pdf -- Copyright 2020 Pete Olcott "Great spirits have always encountered violent opposition from mediocre minds." Einstein |
olcott <NoOne@NoWhere.com>: Nov 23 07:52AM -0600 On 11/20/2020 9:30 PM, Mike Terry wrote: > stuff...] > Regards, > Mike. Machines of the pattern of H_Hat can be generally decided to be infinitely recursive whenever they invoke the same function from the same machine address and there are no intervening condition branch instructions in-between that would break this cycle of infinite recursion: // call to Halts from H_Hat [00000503](05) e86ffeffff call 00000377 [000004f7](01) 55 push ebp [000004f8](02) 8bec mov ebp,esp [000004fa](01) 51 push ecx [000004fb](03) 8b4508 mov eax,[ebp+08] [000004fe](01) 50 push eax [000004ff](03) 8b4d08 mov ecx,[ebp+08] [00000502](01) 51 push ecx // call to Halts from H_Hat [00000503](05) e86ffeffff call 00000377 All of the details of this analysis are shown here: On Sunday, November 22, 2020 at 7:24:48 PM UTC-6, olcott wrote: [It is known that a correct halt decider must return false (in this case)[V4](Linz)] https://groups.google.com/g/comp.theory/c/aiXoRwqxJgE/m/2GlNMjitAAAJ -- Copyright 2020 Pete Olcott "Great spirits have always encountered violent opposition from mediocre minds." Einstein |
"Öö Tiib" <ootiib@hot.ee>: Nov 22 10:50PM -0800 On Friday, 20 November 2020 at 20:11:49 UTC+2, Tim Rentsch wrote: > setting it to NULL, which means the starting check needs to check > two different conditions. So thank you for the idea, and kudos > for discovering this nice improvement. Great. It can reduce moves to minimum when moves are pricey. I have so far kept such complex data in memory non-movable. Even when initially there is only one order then later there other ways to order are often needed. Then sorted external arrays of indexes or pointers or intrusive lists and sets can be used instead of actual physical sorting. Keeping expensive to move values at one place forever makes usage of several indexing ways cheaper to keep and less error-prone. But that may be also preliminary pessimization and violation of YAGNI when applied too generally. |
Christian Gollwitzer <auriocus@gmx.de>: Nov 23 07:34AM +0100 Am 21.11.20 um 12:34 schrieb Bonita Montero: > I want an API to list the supproted locales of my implementation. If it is "locale -a" as suggested by others, then why not checking the source code of the locale command to see what this does? Christian |
"Öö Tiib" <ootiib@hot.ee>: Nov 22 09:22PM -0800 > On Sunday, November 22, 2020 at 3:46:28 PM UTC-6, Mr Flibble wrote: > Either try to be helpful or go back to your threads. When you need help then post description of problem that you have, and/or concrete article or whatever. Such duckduckgo searches of videos of whole conference in YouTube are too out of focus wide. About your middleware writer lot of questions have raised over the years but have any ended as issues in some issue tracker? It seems that you just want to advertise it. Take that <https://isocpp.org/wiki/faq/serialization> and at least write down somewhere what kind of problems raised there your library resolves and how. It has been around all that time. |
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