On 11/17/2022 5:59 PM, Fritz Feldhase wrote:
> On Thursday, November 17, 2022 at 6:37:21 PM UTC+1, _ Olcott wrote:
>
>> (a) A halt decider must report on the actual behavior specified by its
>> input.
>
> Indeed!
>
> So let's make clear some things first:
>
> 1. H is a syntactically correct "program" (or function) that will run without runtime errors and terminate _for any input_. We will assume that H(X, X) returns false if X is either a syntactically incorrect program or if X produces a runtime error with input X. In all other cases H will comply with (a).
>
> 2. H is a correct halt decider. [...]
>
> 3. Based on 1. we will assume that
>
> void D(void (*x)())
> {
> bool Halt_Status = H(x, x);
> if (Halt_Status)
> HERE: goto HERE;
> return;
> }
>
> is a syntactically correct "program" (or function) that will run without runtime errors for input D.
>
> Rationale: We "know" by 1. that H is syntactically correct and will run without runtime errors. [...]
>
> ____________________________________
>
> Now some short considerations:
>
> We have:
>
> void D(void (*x)())
> {
> bool Halt_Status = H(x, x);
> if (Halt_Status)
> HERE: goto HERE;
> return;
> }
>
> Now D(D) either halts or doesn't halt. Right?
>
> If H is a _correct_ halt decider H(D, D) will return true iff D(D) halts and it will return false iff D(D) doesn't halt. Right?
>
> Slightly modified main program:
>
> int main()
> {
> Output("D(D) halts: ", (String)H(D, D));
> }
>
> Now there are exactly _two_ possibilities, namely that H(D, D) returns true or it returns false, right?
>
> So let's (a) assume that H(D, D) returns true. If H(D, D) returns true, D(D) will not halt (since Halt_Status will be true in this case and that means that D(D) loops).
>
> So in this case D(D) does not halt, but main will produce the output ""D(D) halts: true", since H falsely "determines" that D(D) *will* halt.
>
> Now let's assume (b) that H(D, D) returns false. If H(D, D) returns false, D(D) will halt (since Halt_Status will be false in this case and that means that D(D) returns).
>
> So in this case D(D) does halt, but main will produce the output ""D(D) halts: false", since H falsely "determines" that D(D) *will not* halt.
>
> So in ANY CASE H does NOT correctly determine the behaviour of D (with input D).
>
> Conclusion H is not a correct halt decider (since H does not correctly determine the halt status of D (with input D)).
>
> ______________________________
>
> Could you, Mr. Olcott, please point out the error I made?
>
> P.S. Note that these considerations needn't take into account the "inner workings" of H.
>
NO ONE HERE UNDERSTANDS THIS
Anyone that sufficiently understands sound deductive inference knows
that when {a,b,c} are true and (d) is a necessary consequence of {a,b,c}
that nothing in the universe can possibly show that (d) is not true.
NO ONE HERE UNDERSTANDS THIS
Anyone that sufficiently understands sound deductive inference knows
that when {a,b,c} are true and (d) is a necessary consequence of {a,b,c}
that nothing in the universe can possibly show that (d) is not true.
NO ONE HERE UNDERSTANDS THIS
Anyone that sufficiently understands sound deductive inference knows
that when {a,b,c} are true and (d) is a necessary consequence of {a,b,c}
that nothing in the universe can possibly show that (d) is not true.
(a) A halt decider must report on the actual behavior specified by its
input.
(b) The definition of a universal Turing machine (UTM) specifies that
the correct simulation of a machine description provides the actual
behavior specified by this machine description.
(c) A correctly simulated input that would never stop running unless
aborted specifies non-halting behavior.
(d) H correctly determines that D specifies a non-halting behavior.