On 7/9/2021 4:59 PM, Ben Bacarisse wrote:
> olcott <No...@NoWhere.com> writes:
>
>> On 7/9/2021 6:30 AM, Ben Bacarisse wrote:
>>> olcott <No...@NoWhere.com> writes:
>>>
>>>> On 7/8/2021 8:48 PM, Ben Bacarisse wrote:
>>>
>>>>> So which of your statements is the one you want to stand by?
>>>>>
>>>>> "We can know that my halt deciding criteria is the same as the halting
>>>>> problem"
>>>>> or
>>>>> "This maps to every element of the conventional halting problem set of
>>>>> non-halting computations and a few more."
>>>>>
>>>>> It should be obvious to others why this is the fence you are sitting on.
>>>>> Is it comfy?
>>>>>
>>>> The first one.
>>> Thank you. Your directness make me hopeful that you'll be clear about
>>> some other things... How long have you though that "and a few more" was
>>> correct? I.e. how long have you been arguing for a position you now
>>> concede is mistaken? Months? Years? Decades?
>>
>> I have only been trying to specifically define the set that are
>> involved for a few days.
>
> I wrote something about this but deleted it since it turns out, further
> down, you are still sitting on the fence.
>
>>> You have refused to accept the definition of the halting problem for
>>> decades. Do you now accept that every string has a correct yes/no
>>> answer as far as halting is concerned, and that "yes" is the correct
>>> answer for those strings that represent halting computations and "no" is
>>> the correct answer for all the others?
>>
>> The question: What Boolean value can H return to P representing the
>> correct halt status of P(P) in this computation has no correct answer:
>
> You seem to think that because every H gets at least one case wrong (the
> one designed to confound it) that this means that there is no correct
> answer to every halting instance. That is wrong, and until you realise
> that, you are not going to make any progress.
>
> For any two-argument Boolean function H, there is a corresponding
> function hat(H). The computation hat(H)(hat(H)) either halts or it does
> not, so that computation has a correct answer as to its halting. The
> fact that no H gives the right answer for its own personal Nemesis,
> hat(H)(hat(H)), does not mean there isn't one in every single case.
>
> We even know what it is for your H (despite the fact that you a
> studiously hiding the code), because you have stated, and posted a trace
> showing, what actually happens! P (your current name for the 'hat'
> version of H) halts when passed P. This is why H(P,P) == 0 is wrong.
>
>> // Simplified Linz Ĥ (Linz:1990:319)
>> void P(u32 x)
>> {
>> u32 Input_Halts = H(x, x);
>> if (Input_Halts)
>> HERE: goto HERE;
>> }
>>
>> int main()
>> {
>> u32 Input_Halts = H((u32)P, (u32)P);
>> Output("Input_Halts = ", Input_Halts);
>> }
>>
>> You always consistently twist these words to say something else
>> entirely knowing full well that you twist these words.
>
> You are correctly explaining that H is wrong about P(P). How can it be
> put any more simply?
The reason that H cannot return the correct halt status to P is that
this TM / input pair was intentionally modeled on the basis of the liar
paradox.
The liar paradox is not a truth bearer because it is self-contradictory.
Any expression of formal or natural language that is not a truth bearer
has no associated Boolean value.
The halting problem counter-example (prior to my insights) had no
associated Boolean value specifically because most of the details are
always unspecified.
When we ask the specific question: What correct value of {true, false}
can H correctly return to P that indicates the actual halt status of P?
(The answer is restricted to Boolean, the answer of "neither" is not
allowed).
This 100% specific question <is> as I have always said exactly the same
type mismatch error as asking the question: What time is it (yes or no)?
> How is that twisting your words? Surely you don't
> deny that, since P(P) halts, there is a correct answer as to whether
> P(P) halts or not?
>
> The halting problem is about deciding if a computation -- some code and
> some input -- halts or not. For a halt decider, H, to be correct
>
> H(P,I) != 0 if and only if P(I) halts and
> H(P,I) != 1 if and only if P(I) does not halt.
>
> In particular, the facts that H(P,P) == 0 and P(P) halts (facts you
> don't deny) show that H is not a halt decider. I know you never claimed
> it was (except by accident), but you do claim it is right about P(P).
> It is not.
>
> I think you consider my refusal to anthropomorphise code as "twisting
> your words". If you rephrased it in terms of the programmer, I'd just
> agree. Given bool H(code P, data I) {...}, what code can a programmer
> write in the brackets so that H(P,P) is correct? Answer: none. There
> is no code that can "get round" the construction of P from H.
>
>>> And since we now know that your "halt deciding criteria is the same as
>>> the halting problem" we can ditch all the waffle about simulation. It's
>>> just halting as conventionally defined.
>
>> No we cannot.
>
> Nonsense. Despite apparently being clear that your "and a few more" was
> wrong, you are sticking by it. H(P,I) == 0 is "correct" when P(I) does
> not halt, and for a few more cases (like P(P) which halts).
>
int main() { P(P); } does not count as halting even though its stops
running in the same way that Infinite_loop() does not count as halting
when the simulator aborts its simulation.
When H simply simulates its input and never interferes with the behavior
of its input H can screen out its own address range from the execution
trace that it examines as the basis for its halt status decision.
The set of halting computations halt on their own without interference.
The set of not halting computations do not halt on their own without
interference.
> If your waffle "halting" definition is the same as halting, there would
> be no need for it at all. Your apparently clear answer above ("the
> first one") is either a lie or the result of some deep self-deception on
> your part.
>
>> In order to remove the pathological feedback loop such that P does the
>> opposite of whatever H decides H simply acts as a pure simulator of P
>> thus having no effect what-so-ever on the behavior of P until after
>> its halt status decision has been made.
>>
>> H then aborts its simulation of P before ever returning any value to P
>> because every function called in infinite recursion or infinitely
>> nested simulation never returns to this caller.
>
> P(P) halts. H(P,P) == 0 is wrong when P(P) halts. Whatever all your
> guff really means, it is not the same as halting. You are not
> addressing the halting problem.
>
>>> Your favourite book, and your favourite quoted lines from it, make it
>>> quite clear that halting computations like P(P) need to be accepted not
>>> rejected. P(P) halts, but H(P,P) == 0 which is wrong. So what have you
>>> now after all this time except a huge mistake?
>>
>> Because the pure simulation of P(P) never halts this proves that P(P)
>> meets the conventional definition of a computation that never halts.
>
> P(P) halts. It does not meet the conventional definition of a
> computation that never halts. Your words are nonsense of the first
> order.