On 8/5/22 3:56 PM, olcott wrote:
> On 8/5/2022 12:20 PM, Andy Walker wrote:
>> On 05/08/2022 01:34, olcott wrote:
>>>>> It would seem intuitively true that if BB reduces to HP and HP is
>>>>> refuted that BB is thus refuted. You seem to be saying this this
>>>>> intuition is wrong and that may be true.
>>>> No; it is true that HP and BB stand or fall together.
>>> [...] I thought that you were saying that if one of the HP proofs is
>>> refuted that a dozen more take over in its place. If they all reduce
>>> to one another then when one falls they all fall.
>>
>> You seem not to understand the difference between a theorem and a
>> proof. The /proofs/ don't all reduce to each other, and it is perfectly
>> possible [though very unlikely] that one or more of the standard proofs
>> is flawed. That doesn't affect the HP /theorem/. OTOH, if you manage to
>> produce an actual correct halt decider, that would demolish the theorem.
>> Do not hold your breath.
>>
>
> H correctly determines the halt status of the "impossible" input.
No;pe, P(P) Halts when H(P,P) returns 0;
H(P,P) MUST refer to P(P) or you claim that P was defined right is just
a lie.
PERIOD.
>
>>>> [... Y]ou have misunderstood the relation between "H"
>>>> and "P". If you change "H" to be a "simulating halt decider",
>>> I don't have to change H to be a simulating halt decider all of the
>>> proofs allow for any sequence of "moves" to be implemented at the
>>> Linz wildcard ⊢* symbol:
>>
>> It's not "any" sequence of moves, it's the sequence of moves
>> specified by the program when applied to its tape.
>
> None-the-less Linz does not say it that way. H assumes that people know
> the extra details that you provided.
>
> "The symbols ⊢* and ⊢+ have the usual meaning of an arbitrary
> number of moves." (Linz:1990:237)
Just shows that you don't understand what he is saying.
Yes, they can be any arbirtary number of moves, but a SPECIFIED
arbitrary number of moves.
>
>> To follow the
>> standard proof, you are required /first/ to produce a program which
>> you claim is a correct halt decider
>
> I have a halt decider that correct determines that halt status of the
> pathological input for many months now. When most people use the term:
> "halt decider" they mean a "mind of God" machine that is "all knowing"
> about the halt status of every possible input. I don't mean that.
> H is a halt decider within its domain.
Nope: Halt Decider, a machine the fits the following requirement
H(M,x) accepts if M(x) Halts in finite time
H(M,x) reject if M(x) will Never Halt after an unbounded number of steps.
H is a decider, so ALWAYS accepts or rejects ANY input in a finite
amount of time.
>
> typedef void (*ptr)();
> int H(ptr p, ptr i); // simulating halt decider
>
> void P(ptr x)
> {
> int Halt_Status = H(x, x);
> if (Halt_Status)
> HERE: goto HERE;
> return;
> }
>
> int main()
> {
> Output("Input_Halts = ", H(P, P));
> }
>
> Because it is DEAD-OBVIOUS that when H is a simulating halt decider that
> correctly simulates the machine-code pointed to by its first argument
> (a) Invoked H(P,P) simulates P(P) that calls a simulated H
> (b) that simulates P(P) that calls a simulated H
> (c) that simulates P(P) that calls a simulated H
> (d) that simulates P(P) that calls a simulated H...
>
Which only happens if H never aborts its simulation.
The Correct and complete simulation of the input to H, if the simulated
H ever aborts its simulation and returns 0, shows that the simulation
will reach a final state.
Note, since the simulating Halt Decider aborts its simulation, IT
doesn't get there, but that doesn't matter, the Correct and Complete
simulation of the input halts, as does the direct execution of that input.
> It is DEAD_OBVIOUS that the simulated P cannot possibly ever reach any
> instruction after its call to H(P,P) thus cannot reach its "return"
> instruction which is required for halting.
H can't see P getting there, but the correct and complete simulation of
the input to H can (if H aborts and returns 0) as does the actual
execution of the input.
>
> computation that halts … the Turing machine will halt whenever it enters
> a final state. (Linz:1990:234)
Right, THE TURING MACHINE, that is P(P)
P(P) WILL HALT with your H, since your H does return 0 for H(P,P).
>
>> [and if you can't do that, then
>> there is nothing to debate], /then/ to apply the hat construction,
>> which finds a case that your program [only /your/ program, no-one
>> cares what any other program does] gets wrong, and then observe the
>> contradiction, which demolishes your claim.
>
> H does correctly map its first argument: (P,P) to the halt status
> specified by the actual behavior of this first argument.
Nope, P(P) Halts since you H returns 0 for H(P,P)
Thus the CORRECT mapping of the input (P,P) is Halting, since that IS
the actual behavior of this first argument when given the second
arguement either via direct execution of complete and correct simulaiton.
>
> Unless you reject the notion of UTM's when H performs a correct x86
> emulation of the machine-code pointed to by the its first argument, then
> this is the behavior that H must base its halt status decision on.
No problems with UTMs. Just remember, to be a UTM, U(M,x) must behave
exactly like M(x).
SInce that is NOT true of H(P,P), H isn't a UTM, nor is it using an
actual UTM.
>
>> If you first try with
>> your "H", and then try with a program that simulates "H" [or "P",
>> or "H" simulating "P", or ...], then the two hat constructions are
>> different.
>>
>
> A halt decider must compute the mapping from its arguments to an accept
> or reject state on the basis of the actual behavior that is actually
> specified by the finite string machine description of its first argument.
And the actual behavior of the input to H(P,P) is the behavior of P(P)
or you have lied about P being defined by the specifiecation.
>
> A simulating halt decider determines the actual behavior specified by
> correctly simulating the finite string machine description of its first
> argument. Unless one rejects the concept of UTM's then this is already
> known to be correct.
But if it stops before reaching the final state, then the correect
answer is STILL determined by the behavior of the direct exectution of
that input, or the UTM simulation of the input to the decider.
Since UTM(P,P) will Halt since H(P,P) returns 0, H is incorrect.
If you want to change to a different H that doesn't make the mistake and
doesn't abort until it can actually PROVE the input is non-halting, then
it has been shown that your H will simulate FOREVER and fail to answer.
>
>>> H, cannot, and must not map the behavior of anything besides the
>>> actual behavior of its actual input otherwise it ceases to be a
>>> computable function.
>>
>> If we could have that in English, it might make enough sense
>> to be agreed or disagreed with.
>>
>
> Everyone here (besides me) believes that H must report on the behavior
> other than the behavior specified by its actual arguments as measured by
> the correct simulation of these arguments performed by H.
No, everyone KNOWS that the behavior that H must report is that which
the input actually does specify, that of P(P).
Only YOU ERRONEOUSLY think that this isn't the meaning of the input,
even though you yourself assert that it is by your design of P.
You somehow think that a Halting Input can be non-halting because it is
impossible for H to get the correct answer.
>
>>> Everyone that has been disagreeing with this has been insisting that
>>> H is not allowed to be a computable function, instead it must map
>>> behavior that is not specified by its arguments.
>>
>> I think you have misunderstood what at least the more sensible
>> "everyone"s have been saying to you. IMO, it's not helpful for some
>> of them to keep banging on about computable functions, esp once it
>> became clear [if anything is clear] that you are at cross-purposes.
>> OTOH, it's manifest [see my top paragraph in this article] that there
>> are some alarming gaps in your knowledge of what comprises theorems,
>> proofs and refutations, and until those gaps are plugged, further
>> discussion is futile. [FWIW, I acknowledge that, like Ben, I have
>> been banging my head against brick walls longer than makes sense,
>> and I should (and do) know better.]
>>
>
> None-the-less H(P,P) does correctly determine the halt status of an
> input that exactly matches the HP impossible input template:
>
> For any program H that might determine if programs halt, a
> "pathological" program P, called with some input, can pass
> its own source and its input to H and then specifically do the
> opposite of what H predicts P will do.
> *No H can exist that handles this case*
>
https://en.wikipedia.org/wiki/Halting_problem
>
> *My H does handle this case*
>
Nope.
The input represents P(P), this is PROVED by the design of P, for it to
be the template required by the ACTUAL proof.
P(P) Halts
H(P,P) says its input is non-halting.
Note, your quote isn't the actual proof you claim to be solving, and you
aren't even meeting THAT requrement, as the version you are quoting says
to give H the SOURCE CODE. In you case, that would be the C code of P,
H, and everything that H calls.