- Happy Thanksgiving to all (Ben is proven wrong by the actual facts) - 4 Updates
- Member operators - why the restriction? - 2 Updates
- Fixing some undefined behavior - 1 Update
olcott <NoOne@NoWhere.com>: Dec 01 09:25PM -0600 On 11/30/2020 7:40 PM, Ben Bacarisse wrote: > forever unless its simulation were halted. Its simulation would not > need to be halted. It halts of its own accord as soon a Halts returns > false. Here is the actual execution trace proving that you are factually incorrect. void Confound_Halts(u32 P) { if (DebugTrace(P, P)) while (1); } int main() { DebugTrace((u32)Confound_Halts, (u32)Confound_Halts); HALT; } _Confound_Halts() [0000053c](01) 55 push ebp [0000053d](02) 8bec mov ebp,esp [0000053f](03) 8b4508 mov eax,[ebp+08] [00000542](01) 50 push eax [00000543](03) 8b4d08 mov ecx,[ebp+08] [00000546](01) 51 push ecx [00000547](05) e8f0fdffff call 0000033c [0000054c](03) 83c408 add esp,+08 [0000054f](02) 85c0 test eax,eax [00000551](02) 740b jz 0000055e [00000553](05) ba01000000 mov edx,00000001 [00000558](02) 85d2 test edx,edx [0000055a](02) 7402 jz 0000055e [0000055c](02) ebf5 jmp 00000553 [0000055e](01) 5d pop ebp [0000055f](01) c3 ret _main() [0000056c](01) 55 push ebp [0000056d](02) 8bec mov ebp,esp [0000056f](05) 683c050000 push 0000053c [00000574](05) 683c050000 push 0000053c [00000579](05) e8befdffff call 0000033c [0000057e](03) 83c408 add esp,+08 [00000581](01) f4 hlt [00000582](01) 5d pop ebp [00000583](01) c3 ret Output_Debug_Trace() [00010b24] size(72) capacity(65536) [0000056c](01) 55 push ebp [0000056d](02) 8bec mov ebp,esp [0000056f](05) 683c050000 push 0000053c [00000574](05) 683c050000 push 0000053c [00000579](05) e8befdffff call 0000033c ----CALL [0000033c] [0000053c](01) 55 push ebp [0000053d](02) 8bec mov ebp,esp [0000053f](03) 8b4508 mov eax,[ebp+08] [00000542](01) 50 push eax [00000543](03) 8b4d08 mov ecx,[ebp+08] [00000546](01) 51 push ecx [00000547](05) e8f0fdffff call 0000033c ----CALL [0000033c] [0000053c](01) 55 push ebp [0000053d](02) 8bec mov ebp,esp [0000053f](03) 8b4508 mov eax,[ebp+08] [00000542](01) 50 push eax [00000543](03) 8b4d08 mov ecx,[ebp+08] [00000546](01) 51 push ecx [00000547](05) e8f0fdffff call 0000033c ----CALL [0000033c] The PRIOR Instruction Specifies Infinite Recursion: Simulation Stopped: -- Copyright 2020 Pete Olcott "Great spirits have always encountered violent opposition from mediocre minds." Einstein |
olcott <NoOne@NoWhere.com>: Dec 02 11:11AM -0600 On 12/1/2020 9:40 PM, Chris M. Thomasson wrote: > } > ______________________________ > Will this halt or not? That does not matter. >>> void Confound_Halts(u32 P) { if (Halts(P, P)) while (1); } What matters is that the above code is computationally equivalent to the Peter Linz: Ĥ.q0 wM ⊢* Ĥ.qx wM wM ⊢* Ĥ.qy ∞ Ĥ.q0 wM ⊢* Ĥ.qx wM wM ⊢* Ĥ.qn http://www.liarparadox.org/Peter_Linz_HP(Pages_315-320).pdf When I show that the computational equivalent of the Linz Ĥ is decidable, then then Linz proof is refuted. -- Copyright 2020 Pete Olcott "Great spirits have always encountered violent opposition from mediocre minds." Einstein |
olcott <NoOne@NoWhere.com>: Dec 02 11:38AM -0600 On 12/2/2020 11:17 AM, Malcolm McLean wrote: > H_Hat is decideable. It either halts or it doesn't. However it's not decideable > by H. That is the challenge, to get consistent results from running H(H_Hat, H_Hat) > and running H_Hat(H_Hat) on its own. 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 Here is H_Hat (computational equivalent to the Linz Ĥ) being correctly decided by DebugTrace() (computational equivalent to the Linz H). void H_Hat(u32 P) { u32 Aborted = DebugTrace(P, P); if (Aborted) HALT else HERE: goto HERE; } int main() { DebugTrace((u32)H_Hat, (u32)H_Hat); HALT; } _H_Hat() [00000584](01) 55 push ebp [00000585](02) 8bec mov ebp,esp [00000587](01) 51 push ecx [00000588](03) 8b4508 mov eax,[ebp+08] [0000058b](01) 50 push eax [0000058c](03) 8b4d08 mov ecx,[ebp+08] [0000058f](01) 51 push ecx [00000590](05) e8bffdffff call 00000354 [00000595](03) 83c408 add esp,+08 [00000598](03) 8945fc mov [ebp-04],eax [0000059b](04) 837dfc00 cmp dword [ebp-04],+00 [0000059f](02) 7403 jz 000005a4 [000005a1](01) f4 hlt [000005a2](02) eb02 jmp 000005a6 [000005a4](02) ebfe jmp 000005a4 [000005a6](02) 8be5 mov esp,ebp [000005a8](01) 5d pop ebp [000005a9](01) c3 ret _main() [000005b4](01) 55 push ebp [000005b5](02) 8bec mov ebp,esp [000005b7](05) 6884050000 push 00000584 [000005bc](05) 6884050000 push 00000584 [000005c1](05) e88efdffff call 00000354 [000005c6](03) 83c408 add esp,+08 [000005c9](01) f4 hlt [000005ca](01) 5d pop ebp [000005cb](01) c3 ret Output_Debug_Trace() [00010bd3] size(80) capacity(65536) [000005b4](01) 55 push ebp [000005b5](02) 8bec mov ebp,esp [000005b7](05) 6884050000 push 00000584 [000005bc](05) 6884050000 push 00000584 [000005c1](05) e88efdffff call 00000354 ----CALL [00000354] [00000584](01) 55 push ebp [00000585](02) 8bec mov ebp,esp [00000587](01) 51 push ecx [00000588](03) 8b4508 mov eax,[ebp+08] [0000058b](01) 50 push eax [0000058c](03) 8b4d08 mov ecx,[ebp+08] [0000058f](01) 51 push ecx [00000590](05) e8bffdffff call 00000354 ----CALL [00000354] [00000584](01) 55 push ebp [00000585](02) 8bec mov ebp,esp [00000587](01) 51 push ecx [00000588](03) 8b4508 mov eax,[ebp+08] [0000058b](01) 50 push eax [0000058c](03) 8b4d08 mov ecx,[ebp+08] [0000058f](01) 51 push ecx [00000590](05) e8bffdffff call 00000354 ----CALL [00000354] The PRIOR Instruction Specifies Infinite Recursion: Simulation Stopped: -- Copyright 2020 Pete Olcott "Great spirits have always encountered violent opposition from mediocre minds." Einstein |
olcott <NoOne@NoWhere.com>: Dec 02 04:19PM -0600 On 12/2/2020 3:45 PM, Kaz Kylheku wrote: > the runaway recursion is still there, but now there are many > instructions in the code path, including conditional ones. > The trivial recursion detector will not work. This is no longer a proof that the halting problem us undecidable. It is merely evidence that solving the halting problem may be difficult. > The technique you are using is only good for showing that the strawman > cases used in the proof sketches have some flaws, and those examples > cannot be taken literally as the basis for the halting theorem. It directly refutes the computational equivalent of the Linz proof based on the Linz Ĥ. The Ĥ template <is> decidable. I could write it up on that basis. > But that is already obvious; you've put a lot of effort into > not discovering anything new. Please cite sources for this claim. You are the very first one that did not simply claim that I am incorrect on the basis of either a flat out lie or woeful ignorance. Your claim is that I am correct, yet this is not of great significance. I will not accept that my work is of inconsequential significance until I see a specific citation that can be validated. -- Copyright 2020 Pete Olcott "Great spirits have always encountered violent opposition from mediocre minds." Einstein |
Vir Campestris <vir.campestris@invalid.invalid>: Dec 02 05:57PM On 01/12/2020 14:24, Bo Persson wrote: > So if you write a member operator<< with two other parameter types, the > compiler will treat it as having 3 parameters. ... and then refuse to compile it because it is only allowed to have two parameters, not three :( You can't even make it a static member. Andy |
Bonita Montero <Bonita.Montero@gmail.com>: Dec 02 07:14PM +0100 There are two things you must be aware if you define member-operators: 1. The operator only applies to objects of the defined class and its descendants and not convertible classes. 2. With external operators you can attach semantics to a class like if you would have defined a member-operator. |
Brian Wood <woodbrian77@gmail.com>: Dec 02 06:53AM -0800 On Sunday, November 29, 2020 at 8:59:59 PM UTC-6, Brian Wood wrote: > This is what I've come up with to address the UB: > https://github.com/Ebenezer-group/onwards/commit/ed35386a1732a193638ba49648300cfce106edfe > Does it look like an improvement? Tia. Can I get a witness? Brian Ebenezer Enterprises https://webEbenezer.net |
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