On 7/16/2022 10:54 AM, Mike Terry wrote:
> On 16/07/2022 12:23, Paul N wrote:
>> On Friday, July 15, 2022 at 5:26:49 PM UTC+1, olcott wrote:
>>> On 7/15/2022 11:17 AM, Paul N wrote:
>>>> On Friday, July 15, 2022 at 3:35:47 PM UTC+1, olcott wrote:
>>>>> On 7/15/2022 7:34 AM, Paul N wrote:
>>>>>> Do you accept that if H were required to report on the behaviour
>>>>>> of the direct execution of P(P) then it would not be possible to
>>>>>> write such an H?
>>>>> That would require H to be a mind reader and report on something other
>>>>> than the actual behavior of its actual input.
>>>>
>>>> There's no mind involved. If P is a computer program then P(P) is
>>>> perfectly well defined. Either H can work out what it will do, or it
>>>> can't.
>>
>> You haven't said in what way a "mind" is involved in the direct
>> execution of P(P).
>>
>>> It is like you ask your wife to go to the store and buy "a dozen eggs"
>>> fully expecting her to understand that what you mean by "a dozen eggs"
>>> is {a half gallon of grape juice}. When she gets back with the eggs you
>>> ask her where is the grape juice?
>>
>> No, you are the one who is twisting the meaning of words. When I talk
>> about the actual behaviour of P(P) I mean what actually happens when
>> P(P) is executed. That's what the words "actual" and "behaviour" mean.
>>
>> You are using the words "actual behavior" to mean something else which
>> is clearly different. It seems to relate to some sort of simulator,
>> which you simultaneously claim to be correct while acknowledging it
>> produces different results from executing P(P) directly.
>>
>> Can you tell us if that "actual behavior" does actually happen in any
>> circumstances, or is it (despite the name) just a theoretical thing?
>>
>>> A halt decider must compute the mapping from its inputs to an accept or
>>> reject state on the basis of the actual behavior that is actually
>>> specified by these inputs.
>>
>> Yes, where the actual behaviour is the behaviour that actually happens.
>>
>>> It is common knowledge that a correct simulation of a program is a
>>> correct measure of the behavior of this program.
>>
>> Yes, if the simulation is correct. You've insisted numerous times that
>> your own simulator is incorrect.
>
> PO's simulation is correct at the individual instruction level. His H
> steps the simulation forward a number of steps, and each of those steps
> exactly matches the P(P) calculation steps. At some point before the
> final P RET instruction, his H decides to stop stepping (for whatever
> reason), so H's simulation is *incomplete*.
>
The simulation that H(P,P) performs on its input is *incomplete* in the
same way that the simulation of H0(Infinite_Loop) is incomplete.
If H0 waited until the heat death of the universe before it aborted its
simulation this simulation would still be *incomplete*
*H0 correctly determines that Infinite_Loop() never halts*
void Infinite_Loop()
{
HERE: goto HERE;
}
int main()
{
Output("Input_Halts = ", H0(Infinite_Loop));
}
_Infinite_Loop()
[00001102](01) 55 push ebp
[00001103](02) 8bec mov ebp,esp
[00001105](02) ebfe jmp 00001105
[00001107](01) 5d pop ebp
[00001108](01) c3 ret
Size in bytes:(0007) [00001108]
*H0: Begin Simulation Execution Trace Stored at:211fac*
machine stack stack machine assembly
address address data code language
======== ======== ======== ========= =============
[00001102][00211f9c][00211fa0] 55 push ebp
[00001103][00211f9c][00211fa0] 8bec mov ebp,esp
[00001105][00211f9c][00211fa0] ebfe jmp 00001105
[00001105][00211f9c][00211fa0] ebfe jmp 00001105
*H0: Infinite Loop Detected Simulation Stopped*
> That is the only sense in which P(P) and "the simulated input to H(P,P)"
> differ - H simply stops simulating before P(P) terminates.
>
If you carefully study the H(P,P) code you would see that the correct
simulation that H(P,P) performs on its input could never reach the
"return" instruction of P before the heat death of the universe.
> Mike.
>
>>
>>> If we accept that the behavior of the executed P(P) is the behavior that
>>> H must report on then we are saying that H must report on the behavior
>>> that is not the actual behavior of its actual input.
>>
>> No, the two things are the same.