Sujet : Re: Who here understands that the last paragraph is Necessarily true?
De : F.Zwarts (at) *nospam* HetNet.nl (Fred. Zwarts)
Groupes : comp.theoryDate : 17. Jul 2024, 15:54:45
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v78if6$1rnr3$3@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
User-Agent : Mozilla Thunderbird
Op 17.jul.2024 om 15:27 schreef olcott:
On 7/17/2024 2:43 AM, Mikko wrote:
On 2024-07-16 18:24:49 +0000, olcott said:
>
On 7/16/2024 3:12 AM, Mikko wrote:
On 2024-07-15 02:33:28 +0000, olcott said:
>
On 7/14/2024 9:04 PM, Richard Damon wrote:
On 7/14/24 9:27 PM, olcott wrote:
>
Any input that must be aborted to prevent the non termination
of simulating termination analyzer HHH necessarily specifies
non-halting behavior or it would never need to be aborted.
>
Excpet, as I have shown, it doesn't.
>
Your problem is you keep on ILEGALLY changing the input in your argument because you have misdefined what the input is.
>
>
_DDD()
[00002163] 55 push ebp ; housekeeping
[00002164] 8bec mov ebp,esp ; housekeeping
[00002166] 6863210000 push 00002163 ; push DDD
[0000216b] e853f4ffff call 000015c3 ; call HHH(DDD)
[00002170] 83c404 add esp,+04
[00002173] 5d pop ebp
[00002174] c3 ret
Size in bytes:(0018) [00002174]
>
The input *is* the machine address of this finite
string of bytes: 558bec6863210000e853f4ffff83c4045dc3
>
You have already said that a decider is not allowed to answer anything
other than its input. Now you say that the the program at 15c3 is not
a part of the input. Therefore a decider is not allowed consider it
even to the extent to decide whether it ever returns. But without that
knowledge it is not possible to determine whether DDD halts.
>
>
It maps the finite string 558bec6863210000e853f4ffff83c4045dc3
to non-halting behavior because this finite string calls HHH(DDD)
in recursive simulation.
>
That mapping is not a part of the finite string and not a part of the
problem specification.
decider/input pairs <are> a key element of the specification.
The finite string does not reveal what is the
effect of calling whatever that address happens to contain.
A simulating termination analyzer proves this.
The
behaviour of HHH is specified outside of the input. Therefore your
"decider" decides about a non-input, which you said is not allowed.
>
HHH is not allowed to report on the behavior of it actual self
in its own directly executed process. HHH is allowed to report on
the effect of the behavior of the simulation of itself simulating DDD.
But only on the effect of a correct simulation. But HHH cannot possible simulate itself correctly. It aborts after N cycles when the simulated HHH has executed only N-1 cycles. So, it aborts prematurely, which makes the simulation invalid.
HHH, although it halts, cannot possibly reach the simulation of its own end. It aborts one cycle too soon.
DDD is a misleading and unneeded complication. It is easy to eliminate DDD:
int main() {
return HHH(main);
}
This has the same problem. This proves that the problem is not in DDD, but in HHH, which halts when it aborts the simulation, but it decides that the simulation of itself does not halt.
HHH is unable to decide about finite recursions.
void Finite_Recursion (int N) {
if (N > 0) Finite_Recursion (N - 1);
}
It decides after N recursions that there is an infinite recursion, which is incorrect.
Your HHH is programmed to abort the simulation after N cycles of recursive simulations. Therefore, it is incorrect to abort the simulation of HHH when the simulated HHH has performed only N-1 cycles, because that changes the behaviour of HHH.
Since the simulated HHH always runs one cycle behind the simulating HHH, it is clear that HHH can never simulate enough cycles for a correct simulation, as is required by the x86 language.
Therefore, the simulation is incorrect according to the criteria you stipulated.
The conclusion is simple:
HHH cannot possibly simulate itself correctly.
No matter how much you want it to be correct, or how many times you repeat that it is correct, it does not change the fact that such a simulation is incorrect, because it is unable to reach the end.
Your own claim that the simulated HHH does not reach its end confirms it. The trace you have shown also proves that HHH cannot reach the end of its own simulation. So, your own claims prove that it is true that HHH cannot possibly simulate itself up to the end, which makes the simulation incorrect.
Sipser would agree that this incorrect simulation cannot be used to detect a non-halting behaviour.