On 5/11/2022 8:21 AM, Ben wrote:
> olcott <No...@NoWhere.com> writes:
>
>> On 5/10/2022 10:50 AM, Ben wrote:
>>> olcott <No...@NoWhere.com> writes:
>>>
>>>> (a) Verify that the execution trace of P by H is correct by comparing
>>>> this execution trace to the ax86 source-code of P.
>>>
>>> P called with what argument? I assume P.
>
> You won't even correct a trivial point.
>
>>>> (b) Verify that this execution trace shows that P is stuck in
>>>> infinitely nested simulation (a non-halting behavior).
>>>
>>> Something is wrong in your code if P(P), or a simulation of P(P), does
>>> not halt, since you told us that it does. Post the code and someone
>>> will help you find the bug.
>
> Don't you want to know what's wrong with your code? Your trace shows
> that you are not even nesting any simulations so that's one error right
> there. But there are clearly others.
>
Here is the same trace that also shows the recursive simulation memory
allocations. I erase them because they are distracting.
_main()
[00001372](01) 55 push ebp
[00001373](02) 8bec mov ebp,esp
[00001375](05) 6852130000 push 00001352
[0000137a](05) 6852130000 push 00001352
[0000137f](05) e81efeffff call 000011a2
[00001384](03) 83c408 add esp,+08
[00001387](01) 50 push eax
[00001388](05)
6823040000 push 00000423
[0000138d](05) e8e0f0ffff call 00000472
[00001392](03) 83c408 add esp,+08
[00001395](02) 33c0 xor eax,eax
[00001397](01) 5d pop ebp
[00001398](01) c3 ret
Size in bytes:(0039) [00001398]
machine stack stack machine assembly
address address data code language
======== ======== ======== ========= =============
...[00001372][0010229e][00000000] 55 push ebp
...[00001373][0010229e][00000000] 8bec mov ebp,esp
...[00001375][0010229a][00001352] 6852130000 push 00001352
...[0000137a][00102296][00001352] 6852130000 push 00001352
...[0000137f][00102292][00001384] e81efeffff call 000011a2
--Allocation[002022b2](00000018)
--Allocation[002022d2](00000034)
--Allocation[0020230e](00000034)
--Allocation[0020234a](00010000)
New slave_stack @20234a
--Allocation[00212352](0003a980)
Begin Local Halt Decider Simulation Execution Trace Stored at:212352
H_Root:1
...[00001352][0021233e][00212342] 55 push ebp
...[00001353][0021233e][00212342] 8bec mov ebp,esp
...[00001355][0021233e][00212342] 8b4508 mov eax,[ebp+08]
...[00001358][0021233a][00001352] 50 push eax
...[00001359][0021233a][00001352] 8b4d08 mov ecx,[ebp+08]
...[0000135c][00212336][00001352] 51 push ecx
...[0000135d][00212332][00001362] e840feffff call 000011a2
--Allocation[0024ccda](00000018)
--Allocation[0024ccfa](00000034)
--Allocation[0024cd36](00000034)
--Allocation[0024cd72](00010000)
New slave_stack @24cd72
H_Root:0
...[00001352][0025cd66][0025cd6a] 55 push ebp
...[00001353][0025cd66][0025cd6a] 8bec mov ebp,esp
...[00001355][0025cd66][0025cd6a] 8b4508 mov eax,[ebp+08]
...[00001358][0025cd62][00001352] 50 push eax
...[00001359][0025cd62][00001352] 8b4d08 mov ecx,[ebp+08]
...[0000135c][0025cd5e][00001352] 51 push ecx
...[0000135d][0025cd5a][00001362] e840feffff call 000011a2
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
...[00001384][0010229e][00000000] 83c408 add esp,+08
...[00001387][0010229a][00000000] 50 push eax
...[00001388][00102296][00000423]
6823040000 push 00000423
---[0000138d][00102296][00000423] e8e0f0ffff call 00000472
Input_Halts = 0
...[00001392][0010229e][00000000] 83c408 add esp,+08
...[00001395][0010229e][00000000] 33c0 xor eax,eax
...[00001397][001022a2][00100000] 5d pop ebp
...[00001398][001022a6][00000004] c3 ret
Number_of_User_Instructions(1)
Number of Instructions Executed(15892)
>>>> #include <stdint.h>
>>>> #define u32 uint32_t
>>>>
>>>> void P(u32 x)
>>>> {
>>>> if (H(x, x))
>>>> HERE: goto HERE;
>>>> return;
>>>> }
>>>>
>>>> int main()
>>>> {
>>>> Output("Input_Halts = ", H((u32)P, (u32)P));
>>>> }
>>>
>>> Unless you are retracting any of the facts you have previously stated,
>>> we know (because you've told us) that H(P,P) returns 0 and we know
>>> (because you've told us) that P(P) halts. The trace of the execution
>>> will either confirm this, or the trace is faulty. Nothing new can come
>>> from looking at traces of mystery code.
>
> Are you retracting any of the facts you have previously stated? If not,
> you are, as you no doubt know by now, wrong by definition.
>
>> (a) The trace is verifiably correct if one has the technical skill.
>
> A trace is neither correct not incorrect.
That seems to be a weasel worded way to attempt to derive a fake
rebuttal. The trace of the repeated first seven instructions of the
simulated P corresponds to the behavior specified by these first seven
instructions in the x86 source code of P.
> It just shows a (partial)
> program execution. It "correctly" shows that H is not doing what you
> claim (it shows no nested simulation) so maybe that means it's
> "incorrect"?
>
I added the nested simulation memory allocation details.
>> (b) The trace is proved non-halting if one has the technical skill.
>> You simply don't seem to have the technical skill.
>
> The trace shows H not doing what you claim. The fact that don't address
> this gross misdirection on your part make it more a lie than an error.
>
The trace conclusively proves that H does correctly simulate two of the
nested simulations that the x86 source-code of P specifies.
>> I PUT BACK IN THE MANDATORY DETAILS THAT PROVE MY POINT THAT YOU
>> ERASED.
>
> There's no point in repeatedly posting a trace that it at best the wrong
> one and at worst a lie.
That you say it is wrong or a lie without understanding it is itself
wholly dishonest. If you don't understand it then you have no basis to
say that it is wrong. The most that you can honestly say is that you
don't understand how it could be correct.
> The right trace to post (again) would be the
> one showing P(P) halting.
>
> Obviously, you'd like people to talk about something other than the bald
> fact that you are wrong by definition: H(P,P) == false "even though P(P)
> halts" (your words).
>
(a) The correct simulation of the input to H(P,P) never halts.
(b) The correct simulation of the input to H1(P,P) halts.
(c) The direct execution of P(P) halts.
(b) and (c) are computationally equivalent.
(a) and (b) are NOT computationally equivalent.