- Regal eagle / American cloud - 1 Update
- Detecting infinite recursion (2021-03-09) - 1 Update
Brian Wood <woodbrian77@gmail.com>: Mar 09 08:24PM -0800 On Saturday, November 2, 2019 at 10:51:40 PM UTC-5, Mr Flibble wrote: > Brian, but of course you know this already which is why you keep spamming > him here. Cockwomble. > /Flibble Today he said something like: Once the woke mob starts coming for you, they don't stop. That reminds me of this quote that I've used here before: "They stab it with their steely knives, but they just can't kill the beast." Yesterday he recommended people use duckduckgo.com. I've had a link to them on my website for years! I would be remiss if I didn't ask for ideas on how to improve my repo: https://github.com/Ebenezer-group/onwards Brian Ebenezer Enterprises https://webEbenezer.net |
olcott <NoOne@NoWhere.com>: Mar 09 07:42PM -0600 Eliminating pathological self-reference error from the halting problem The pathological self reference error occurs whenever a question or decision problem cannot be correctly answered because both of the yes/no or true/false answers are contradicted. If we ask Jack[1] this question: Will your answer to this question be no? Neither answer of yes or no is correct because they are both contradicted. When an input program is defined to do opposite of whatever the halt decider decides about its halt status then we have the same pathological self-reference error as Jack's question. If the halt decider Halts() returns a value of true to H_Hat() then H_Hat() would go into an infinite loop and never halt. If the halt decider Halts() returns a value of false to H_Hat() then H_Hat would immediately stop running. The simplest way to define a halt decider is to make a program that simply runs its input to see what it does. In technical terms this would be a universal Turing machine (UTM) that has been adapted to become a halt decider. This UTM would simply simulate the execution of its input until its input halts on its own or the halt decider determines that its input would never halt on its own and stops simulating it. In order for the UTM to see what its input does it must keep track of an execution trace of its input. Every (at least partial) halt decider that decides the halting status of its input on the basis of its examination of the execution trace of its own simulation of this input would correctly decide the conventional halting problem counter-examples as not halting. The x86utm operating system was created so that halt deciders written in the C programming language would be computationally equivalent to the execution of actual Turing machines. These (at least partial) halt deciders base their halting decision on examining the execution trace of the x86 machine language of their input. The input is the COFF object file output of a C compiler and is directly executed by the x86 emulator. The halt decider Halts() determines that H_Hat() called it in infinite recursion, on the basis of the x86 machine language execution trace shown below, stop simulating its input, and decide not halting on the basis that its input would not halt. void H_Hat(u32 P) { u32 Input_Would_Halt = Halts(P, P); if (Input_Would_Halt) HERE: goto HERE; } int main() { u32 Input_Would_Halt = Halts((u32)H_Hat, (u32)H_Hat); Output("Input_Would_Halt = ", Input_Would_Halt); } _H_Hat() [0000088f](01) 55 push ebp [00000890](02) 8bec mov ebp,esp [00000892](01) 51 push ecx [00000893](03) 8b4508 mov eax,[ebp+08] [00000896](01) 50 push eax [00000897](03) 8b4d08 mov ecx,[ebp+08] [0000089a](01) 51 push ecx [0000089b](05) e87ffeffff call 0000071f [000008a0](03) 83c408 add esp,+08 [000008a3](03) 8945fc mov [ebp-04],eax [000008a6](04) 837dfc00 cmp dword [ebp-04],+00 [000008aa](02) 7402 jz 000008ae [000008ac](02) ebfe jmp 000008ac [000008ae](02) 8be5 mov esp,ebp [000008b0](01) 5d pop ebp [000008b1](01) c3 ret _main() [000008bf](01) 55 push ebp [000008c0](02) 8bec mov ebp,esp [000008c2](01) 51 push ecx [000008c3](05) 688f080000 push 0000088f [000008c8](05) 688f080000 push 0000088f [000008cd](05) e84dfeffff call 0000071f [000008d2](03) 83c408 add esp,+08 [000008d5](03) 8945fc mov [ebp-04],eax [000008d8](03) 8b45fc mov eax,[ebp-04] [000008db](01) 50 push eax [000008dc](05) 680b030000 push 0000030b [000008e1](05) e869faffff call 0000034f [000008e6](03) 83c408 add esp,+08 [000008e9](02) 33c0 xor eax,eax [000008eb](02) 8be5 mov esp,ebp [000008ed](01) 5d pop ebp [000008ee](01) c3 ret Columns (1) Execution trace sequence number (2) Machine address of instruction (3) Machine address of top of stack (4) Value of top of stack after instruction executed (5) Number of bytes of machine code (6) Machine language bytes (7) Assembly language text (01)[000008bf][00011208][00000000](01) 55 push ebp (02)[000008c0][00011208][00000000](02) 8bec mov ebp,esp (03)[000008c2][00011204][00000000](01) 51 push ecx (04)[000008c3][00011200][0000088f](05) 688f080000 push 0000088f (05)[000008c8][000111fc][0000088f](05) 688f080000 push 0000088f (06)[000008cd][000111f8][000008d2](05) e84dfeffff call 0000071f (07)[0000088f][00031288][0003128c](01) 55 push ebp (08)[00000890][00031288][0003128c](02) 8bec mov ebp,esp (09)[00000892][00031284][00021258](01) 51 push ecx (10)[00000893][00031284][00021258](03) 8b4508 mov eax,[ebp+08] (11)[00000896][00031280][0000088f](01) 50 push eax (12)[00000897][00031280][0000088f](03) 8b4d08 mov ecx,[ebp+08] (13)[0000089a][0003127c][0000088f](01) 51 push ecx (14)[0000089b][00031278][000008a0](05) e87ffeffff call 0000071f Line(11) Push second parameter value: 0000088f to Halts() Line(13) Push first parameter value: 0000088f to Halts() Line(14) H_Halt() calls Halts(0000088f, 0000088f) (15)[0000088f][00042430][00042434](01) 55 push ebp (16)[00000890][00042430][00042434](02) 8bec mov ebp,esp (17)[00000892][0004242c][00032400](01) 51 push ecx (18)[00000893][0004242c][00032400](03) 8b4508 mov eax,[ebp+08] (19)[00000896][00042428][0000088f](01) 50 push eax (20)[00000897][00042428][0000088f](03) 8b4d08 mov ecx,[ebp+08] (21)[0000089a][00042424][0000088f](01) 51 push ecx (22)[0000089b][00042420][000008a0](05) e87ffeffff call 0000071f Line(19) Push second parameter value: 0000088f to Halts() Line(21) Push first parameter value: 0000088f to Halts() Line(22) H_Halt() calls Halts(0000088f, 0000088f) Infinite Recursion Detected Simulation Stopped on the basis that H_Hat() calls Halts() with the same data a second time in sequence from the same machine address. (23)[000008d2][00011204][00000000](03) 83c408 add esp,+08 (24)[000008d5][00011204][00000000](03) 8945fc mov [ebp-04],eax (25)[000008d8][00011204][00000000](03) 8b45fc mov eax,[ebp-04] (26)[000008db][00011200][00000000](01) 50 push eax (27)[000008dc][000111fc][0000030b](05) 680b030000 push 0000030b (28)[000008e1][000111f8][000008e6](05) e869faffff call 0000034f Input_Would_Halt = 0 (29)[000008e6][00011204][00000000](03) 83c408 add esp,+08 (30)[000008e9][00011204][00000000](02) 33c0 xor eax,eax (31)[000008eb][00011208][00000000](02) 8be5 mov esp,ebp (32)[000008ed][0001120c][00010000](01) 5d pop ebp (33)[000008ee][00011210][00000080](01) c3 ret Number_of_User_Instructions(33) Copyright 2021 PL Olcott [1] sci.logic --- Daryl McCullough --- Jun 25, 2004, 6:30:39 PM [The Psychology of Self-Reference] https://groups.google.com/g/sci.logic/c/4kIXI1kxmsI/m/hRroMoQZx2IJ http://www.liarparadox.org/Eliminating_pathological_self_reference_error_from_the_halting_problem.pdf -- Copyright 2021 Pete Olcott "Great spirits have always encountered violent opposition from mediocre minds." Einstein |
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