Tuesday, October 27, 2020

Digest for comp.lang.c++@googlegroups.com - 7 updates in 2 topics

olcott <NoOne@NoWhere.com>: Oct 27 03:13PM -0500

On 10/27/2020 3:03 PM, Mike Terry wrote:
> decidable, including many whose domain is the same as that halting
> problem's.  Possibly if you made the definition of the your decision
> well defined, it could be one of those...
 
I have redefined the impossible halt decider into a NON_HALTING_DECIDER
that divides all of its inputs into:
(a) INPUT_PROGRAM_ABORTED_BECAUSE_NON_HALTING_BEHAVIOR_DETECTED
(b) INPUT_PROGRAM_HAS_TERMINATED
 
As you can see from (b) the NON_HALTING_DECIDER is still a halt decider.
 
 
--
Copyright 2020 Pete Olcott
"André G. Isaak" <agisaak@gm.invalid>: Oct 27 02:34PM -0600

On 2020-10-27 14:13, olcott wrote:
> (a) INPUT_PROGRAM_ABORTED_BECAUSE_NON_HALTING_BEHAVIOR_DETECTED
> (b) INPUT_PROGRAM_HAS_TERMINATED
 
> As you can see from (b) the NON_HALTING_DECIDER is still a halt decider.
 
If your (a) and (b) are simply new names for 'doesn't halt' and 'halts',
then this is just as subject to Linz's proof as any other purported halt
decider.
 
If they are not, and there are cases where 'aborted' and 'halted' don't
mean exactly the same thing, then what you have isn't a halt decider at all.
 
A halt decider determines if a particular TM, T, will halt for input I.
 
IOW, it tells us something about the behaviour of T when confronted with
input I.
 
Part (b) of your 'redefinition' presupposes that we have actually
already run T(I). That still tells us that T(I) halts, but we could have
just run T(I) ourselves to make this determination, so your
'redefinition' doesn't provide us with any useful information in this case.
 
Part (a) of your redefinition is where things really get mucked up since
it presupposes that we have already attempted to run T(I); moreover, we
have done it in some sort of specialized environment E in which it is
possible to force things to abort. Therefore, your 'revision' is asking
how T behaves when confronted with input I IN ENVIRONMENT E.
 
Whereas the actual definition of a halt decider tells us about T, in
your 'revised' version we have no way of knowing whether it is telling
us about T or about E in cases where the input is forced to terminate.
 
What you have isn't analogous to a halt decider. It is a
How-does-this-TM-behave-in-environment-E decider.
 
Unless you can provide some reason why I should care about how things
behave in environment E (or environment E at all, for that matter), this
isn't something that is of interest.
 
André
 
--
To email remove 'invalid' & replace 'gm' with well known Google mail
service.
olcott <NoOne@NoWhere.com>: Oct 27 04:23PM -0500

On 10/27/2020 3:34 PM, André G. Isaak wrote:
 
> If your (a) and (b) are simply new names for 'doesn't halt' and 'halts',
> then this is just as subject to Linz's proof as any other purported halt
> decider.
 
I dared anyone to show this and they absolutely could not because it is
impossible.
 
> If they are not, and there are cases where 'aborted' and 'halted' don't
> mean exactly the same thing, then what you have isn't a halt decider at
> all.
 
The above two sets are the exact same sets that a correct halt decider
would decide.
 
> A halt decider determines if a particular TM, T, will halt for input I.
 
Apparently it is much easier to decide the cases that would not halt
unless aborted and leave the halting cases as those that are left over.
 
> IOW, it tells us something about the behaviour of T when confronted with
> input I.
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 T, u32 I)
Try and find a (T, I) pair that the above function cannot correctly decide.
 
By correctly decide what I mean is the totally obvious:
The above function returns true and this sentence is true:
"T was aborted because non halting behavior was detected."
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 T, u32 I) would
be incorrect when it returns true and:
(a) The input program was not aborted.
(b) Non-halting behavior was not detected.
(c) Non-halting behavior was erronesously reported.
(d) The input program was aborted and the halt decider correctly
detected non-halting behavior of the input program, yet the input
program was aborted for some other reason besides the fact that
non-halting behavior was detected.
 
> already run T(I). That still tells us that T(I) halts, but we could have
> just run T(I) ourselves to make this determination, so your
> 'redefinition' doesn't provide us with any useful information in this case.
 
You must not have through that one through very well. The
NON_HALTING_DECIDER screens out all of the infinite executions.
 
> have done it in some sort of specialized environment E in which it is
> possible to force things to abort. Therefore, your 'revision' is asking
> how T behaves when confronted with input I IN ENVIRONMENT E.
 
No, not really, not at all.
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 T, u32 I)
only aborts the execution of programs that would not otherwise halt.
 
If H_Hat(H_Hat) did not have any of its otherwise infinitely recursive
invocations terminated it would never stop running.
 
 
void H_Hat(u32 M)
{
if (Aborted_Because_Non_Halting_Behavior_Detected(M, M))
MOV_EAX_1 // Execution of M(M) has been aborted
else
{
MOV_EAX_0 // M(M) has halted
HERE: goto HERE;
}
HALT
}
 
 
int main()
{
u32 M = (u32)H_Hat;
H_Hat(M);
HALT
}
 
 
> us about T or about E in cases where the input is forced to terminate.
 
> What you have isn't analogous to a halt decider. It is a
> How-does-this-TM-behave-in-environment-E decider.
 
No, not at all, not in the least.
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 T, u32 I)
only aborts the execution of programs that would not otherwise halt.
 
> behave in environment E (or environment E at all, for that matter), this
> isn't something that is of interest.
 
> André
 
The following definition shows that it is not any specialied environment
it is merely the conventional notion of a UTM.
 
The redefined halt decider UTM executes its subordinate UTM one state
transition at a time until it detects non-halting behavior or its
subordinate UTM has terminated normally.
 
If the halt decider UTM detects non-halting behavior of its subordinate
UTM it simply stops executing the subordinate and transitions to its own
final state of ABORTED_NON_TERMINATING_BEHAVIOR.
 
If the subordinate UTM terminates normally the halt decider UTM
transitions to its own final state of SUBORDINATE_HAS_TERMINATED.
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 27 04:27PM -0500

On 10/27/2020 4:11 PM, Mike Terry wrote:
>> all.
 
> Exactly, and in another thread PO has confirmed that 'aborted' includes
> cases where the calculation in question halts.
 
That is flat out not true. In every single case where this halt decider
decides that its input must be aborted its input would not otherwise
halt: bool Aborted_Because_Non_Halting_Behavior_Detected(u32 N, u32 M)
 
Also in every single case where the above function returns false its
input has already halted.
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 27 04:54PM -0500

On 10/27/2020 4:44 PM, Malcolm McLean wrote:
>> input has already halted.
 
> So write a stub for bool Aborted_Because_Non_Halting_Behavior_Detected
> that just works on the input H_Hat, H_Hat.
 
That would be no better than telling people that I must be correct
because I really know that I am right, the same petitio principii
logical fallacy that they are using in their utterly vacuous rebuttals.
 
I simply have to finish writing the actual halt deciding code for
bool Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat).
I already totally explained (2018-12-13 solution) exactly how this works.
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 27 04:57PM -0500

On 10/27/2020 4:33 PM, Mike Terry wrote:
> totally different programs.
 
> I won't be repeating everything again in a new thread :)
> Mike.
 
It is totally your confusion not mine.
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 N, u32 M)
always decides its inputs correctly.
 
Your incorrect attempt at a counter-example was not an input to
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 N, u32 M)
 
--
Copyright 2020 Pete Olcott
Mostowski Collapse <janburse@fastmail.fm>: Oct 27 09:07PM +0100

In what parallel universum does your nonsense
have anything to do with Prolog? You fucking
inhibited cross posting moron?
 
No need to post responses on comp.lang.prolog.
 
olcott schrieb:
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: