Sunday, October 25, 2020

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

olcott <NoOne@NoWhere.com>: Oct 25 03:15PM -0500

On 10/25/2020 12:02 PM, Richard Damon wrote:
 
> If 'Aborted' has no limitations on it, than this halt decider is
> worthless, as it could just up and decide that it needs to abort ALL
> machines, and if the only test was did it abort it, it would be right.
 
You just really are not paying any attention at all are you?
 
The simplest possible way to define a halt decider is to have the halt
decider directly execute its input exactly one execution step / state
transition at a time.
 
If we define the halt decider in this simplest possible way then it must
stop executing its input as soon as it determines that its input would
not otherwise ever halt.
 
 
--
Copyright 2020 Pete Olcott
Elijah Stone <elronnd@elronnd.net>: Oct 25 01:47PM -0700

On Sun, 25 Oct 2020, olcott wrote:
> seconds to repeat a prior state. This is only if the code was
> intentionally designed to as quickly as possible get into every one of
> its possible states.
 
. . . what?
 
It takes a minimum of 0.5ns--a single instruction--'jmp $' or similar.
 
The maximum is:
 
8gb = (8*1024^3) bits
= 2^33
 
Total states = 2^(2^33)
 
At 2GHz, we can exhaust 2e9 states per second, but let's be generous and
make it 2^31, as the math is simpler that way. That makes it:
 
2^(2^33)
---------
2^31
 
 
= 2^(2^33 - 31)
= 2^8589934561 seconds.
 
Which is rather mind-bogglingly large.
olcott <NoOne@NoWhere.com>: Oct 25 03:51PM -0500

On 10/25/2020 3:41 PM, Richard Damon wrote:
> larger capability then the original problem.
 
> This is a well know property, and generally it is said that this method
> is unsuitable as a halting decider because of it.
 
This does (as has always been my stated goal) refute all of the
conventional self-referential halting problem proofs. None of these
proofa show that halting is undecidable they only show that one
definition of a halt decider does not work.
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
 
Every syntaxtically correct machine description can be divided into
(a) HAS_INFINITE_EXECUTION
(b) DOES_NOT_HAVE_INFINITE_EXECUTION
 
An infinite machine that never returns to the same machine state was not
the basis for any of these conventional self-referential halting problem
proofs.
 
I have as I have claimed correctly refuted the conventional
self-referential halting problem proofs.
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 03:55PM -0500

On 10/25/2020 3:42 PM, Alan Mackenzie wrote:
> alleged halt decider is not possible. That is a mathematical theorem.
> If you want to advance this argument, you should call the thing a
> "partial halt decider".
 
This does (as has always been my stated goal) refute all of the
conventional self-referential halting problem proofs. None of these
proofs show that halting is undecidable they only show that one
definition of a halt decider does not work.
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
 
Every syntactically correct machine description can be divided into
(a) HAS_INFINITE_EXECUTION
(b) DOES_NOT_HAVE_INFINITE_EXECUTION
 
I have as I have claimed correctly refuted the conventional
self-referential halting problem proofs.
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 04:52PM -0500

On 10/25/2020 4:13 PM, Richard Damon wrote:
>> self-referential halting problem proofs.
 
> Except you don't refute the proof, you (attempt to) refute a straw man
> similar problem.
 
This is decidable:
 
 
void H_Hat(u32 M)
{
if (Aborted_Because_Non_Halting_Behavior_Detected(M, M))
MOV_EAX_0 // Execution of M(N) has been aborted
else
{
MOV_EAX_1 // M(N) has halted
HERE: goto HERE;
}
HALT
}
 
 
void H(u32 M, u32 N)
{
if (Aborted_Because_Non_Halting_Behavior_Detected(M, M))
MOV_EAX_0 // Execution of M(N) has been aborted
else
MOV_EAX_1 // M(N) has halted
HALT
}
 
 
int main()
{
u32 M = (u32)H_Hat;
H(M, M); // MOV_EAX_0
HALT
}
 
 
 
 
--
Copyright 2020 Pete Olcott
Melzzzzz <Melzzzzz@zzzzz.com>: Oct 25 09:55PM


> void H_Hat(u32 M)
> {
> if (Aborted_Because_Non_Halting_Behavior_Detected(M, M))
Where is implementation of this function?
 
--
current job title: senior software engineer
skills: c++,c,rust,go,nim,haskell...
 
press any key to continue or any other to quit...
U ničemu ja ne uživam kao u svom statusu INVALIDA -- Zli Zec
Svi smo svedoci - oko 3 godine intenzivne propagande je dovoljno da jedan narod poludi -- Zli Zec
Na divljem zapadu i nije bilo tako puno nasilja, upravo zato jer su svi
bili naoruzani. -- Mladen Gogala
olcott <NoOne@NoWhere.com>: Oct 25 05:14PM -0500

On 10/25/2020 4:33 PM, Richard Damon wrote:
> that the Halt Decider, that is ANY Halt Decider (built as a Turing
> Machine) can't decide on his machine, he has shown that NO Halt Decider
> can be made that meets the requirements of a Halt Decider.
 
When my decider decides his counter-example case his proof is refuted:
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
 
> When I run the machine H(H_Hat, H_Hat) then it gives me an answer by its
> terminal state (if it doesn't, it doesn't meet the requirements of a
> Halt Decider).
 
We can ask an incorrect question:
Is the following sentence: "This sentence is not true." true or false?
 
Or we can rephrase the question so that it has a correct answer:
Is the following sentence: "This sentence is not true." true?
 
We can ask the halt deciding question in a way that allows the input
program to do the opposite of whatever the halt decider decides:
"Does this input program halt on its input (yes or no)?"
 
Or we can ask the halt deciding question in such a way where it is
impossible for the input program to do the opposite of what the halt
decider decides:
 
When the input program is executed on its input did this execution have
to be aborted to prevent infinite execution?
 
Some undecidable problems are only undecidable because we did not phrase
the question so that it has a correct answer.
 
Any question that has no correct answer is an incorrect question.
 
The logical law of polar questions copyright 2015 PL Olcott
https://groups.google.com/g/sci.lang/c/AO5Vlupeelo/m/nxJy7N2vULwJ
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 05:35PM -0500

On 10/25/2020 4:55 PM, Melzzzzz wrote:
>> {
>> if (Aborted_Because_Non_Halting_Behavior_Detected(M, M))
> Where is implementation of this function?
 
Only the DebugTrace() part of it is fully implemented.
Since I have been working on this nearly all the time for about nine
months as soon as I got the x86utm operating system fully complete I
scaled back my software development to 40 hours per week.
 
http://www.liarparadox.org/Peter_Linz_HP(Pages_315-320).pdf
 
I explain exactly how the halt decider works so that H() correctly
decides halting of H_Hat():
 
On 10/25/2020 1:42 PM, olcott wrote:
>Aborted_Because_Non_Halting_Behavior_Detected(M, M) twice from the same
>machine address without any conditional code in H_Hat() to terminate
>this infinite recursion. // The 2018-12-13 @ 7:00 PM solution
 
The above is the key halt deciding decision for this code:
 
void H_Hat(u32 M)
{
if (DebugTrace(M, M))
MOV_EAX_0 // Execution of M(N) has been aborted
else
{
MOV_EAX_1 // M(N) has halted
HERE: goto HERE;
}
HALT
}
 
 
int main()
{
u32 M = (u32)H_Hat;
H_Hat(M); // MOV_EAX_0
HALT
}
 
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 12:23PM -0500

On 10/25/2020 10:36 AM, Malcolm McLean wrote:
> emulating. That point has caused difficulty.
 
> However the price of saying that the machine is smashed is that it now becomes
> more obvious that something somewhere isn't a Turing machine. In PO's original
 
If we assume that that H_Hat() machine physically exists and is
physically destroyed by smashing it with a sledge hammer then this
indicates that the machine is not exactly and precisely a Turing machine
in every single way.
 
If we understand that:
(a) All of the executable code is implemented as von Neumann
architecture virtual machines.
 
(b) An operating system function u32* Allocate(u32 size) is provided.
 
(c) The execution of these virtual machines never require more memory
than Allocate(u32 size) can allocate.
 
then we can know that the computations of these virtual machines are
equivalent to the computations of universal Turing Machines.
https://en.wikipedia.org/wiki/Random-access_stored-program_machine
 
> example, that's H_Hat, the act of writing 0 to eax is the step that is disallowed. In
 
Not all all. It is equivalent to the Linz machine transitioning to
((qn)) non-halting behavior detected, would not terminate unless aborted.
 
The outermost H_Hat(H_Hat) that is invoked in the x86utm process context
calls DebugTrace(H_Hat, H_Hat) AKA
Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat)
that is also executed in the x86utm process context.
 
This causes DebugTrace(H_Hat, H_Hat) to create a whole new process
context to executes its first parameter (the inner H_Hat) in DebugStep()
mode.
 
This causes the inner H_Hat to execute an inner
DebugTrace(H_Hat, H_Hat) in its own subordinate process context.
 
This inner DebugTrace(H_Hat, H_Hat) creates another whole new process to
that executes its first parameter (an inner inner H_Hat) in DebugStep()
mode.
 
------------------------------------------------------
 
The same sequence can be implemented a Universal Turing Machines instead
of von Neumann architecture virtual machines.
 
The master UTM owns the whole tape and allocates portions of this tape
to its subordinate UTMs when they are first executed or on request.
 
The master UTM executes the H_Hat() UTM and allocates a portion of its
tape to H_Hat().
 
The H_Hat() UTM executes the DebugTrace() (causing the master UTM to
allocate a portion of its master tape to DebugTrace)
 
DebugTrace() executes another instance of H_Hat() is allocated its own
separate portion of the master UTM tape.
 
All of the instances of DebugTrace() execute their subordinate UTMs one
state transition at a time.
 
As soon as the outermost DebugTrace() detects that its subordinate UTM
would not terminate it stops executing it, thus stopping the whole
execution tree of UTMs.
 
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 12:37PM -0500

On 10/25/2020 11:33 AM, Andy Walker wrote:
>>> trying to tell you.
>> Most computer programming languages support recursion by allowing a
>> function to call itself from within its own code.
 
long int Factorial(int n) {
if (n>=1)
return n * Factorial((n-1);
else
return 1;
}
 
 
> that calls itself.  Nor, for that matter is the comment "M(M)" if
 
 
> you re-write it as I suggested, "M.exe(M.src)", where we distinguish
> a TM and its actions from the description of that TM.  Of course,
 
This would create the problem as it typically is presented with purely
arbitrary extraneous complexity.
 
If on the other hand when the Turing Machine Decription language <is>
x86 machine language then its description is directly executable.
 
To make things easier to understand the machine language is disassmbled
as it executes and can be examined as C before it has been compiled.
 
So YES DebugTrace(H_Hat, H_Hat) does specify infinite recursion and the
above two parameters are the machine address of the H_Hat machine code.
 
 
--
Copyright 2020 Pete Olcott
"André G. Isaak" <agisaak@gm.invalid>: Oct 25 12:10PM -0600

On 2020-10-25 11:37, olcott wrote:
> arbitrary extraneous complexity.
 
> If on the other hand when the Turing Machine Decription language <is>
> x86 machine language then its description is directly executable.
 
x86 machine language is not a "Turing Description Language".
 
> as it executes and can be examined as C before it has been compiled.
 
> So YES DebugTrace(H_Hat, H_Hat) does specify infinite recursion and the
> above two parameters are the machine address of the H_Hat machine code.
 
Linz's Ĥ is simply a modified version of Linz's H. Linz's H is a Turing
Machine alleged to answer, for a given description of a Turing Machine
and a given input, will this TM halt?
 
Nothing in that definition specifies that H (or Ĥ) actually 'executes'
that TM description. That's a strategy which you've chosen to adopt, so
at best you can claim that *your* specific implementation includes
recursion. There's absolutely nothing in Linz's definition which
indicates or requires recursion of any kind.
 
So any argument which rests on 'infinite recursion' tells us nothing
about the actual Linz proof.
 
André
 
--
To email remove 'invalid' & replace 'gm' with well known Google mail
service.
olcott <NoOne@NoWhere.com>: Oct 25 01:42PM -0500

On 10/25/2020 11:14 AM, Richard Damon wrote:
>> The program under test is no longer executing.
 
> Or we could say that the argument has nothing to do with what a
> classical Halt Decider does.
 
We don't need any classical false presumptions and preconceived notions
all we need is a function that divides its input into:
(a) Would not halt unless aborted.
(b) Has already halted.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
 
> outer machine that called the decider and takes that results and Halts,
> showing the answer to be WRONG, it did not need to be aborted, but was
> able to complete within a finite execution.
 
You can keep ignoring what I say yet simply ignoring what I say does not
form any rebuttal what-so-ever.
 
Likewise you can read what I say yet simply say that you believe that it
is incorrect and this also forms no rebuttal what-so-ever.
 
The following code specifies three entirely different instances of
H_Hat() that each have very different amounts of data.
 
Failing to believe this is also no rebuttal what-so-ever.
I will soon have code that shows this.
 
void H_Hat(u32 M)
{
if (Aborted_Because_Non_Halting_Behavior_Detected(M, M))
MOV_EAX_0 // Execution of M(N) has been aborted
else
{
MOV_EAX_1 // M(N) has halted
HERE: goto HERE;
}
HALT
}
 
int main()
{
u32 M = (u32)H_Hat;
H_Hat(M); // MOV_EAX_0
HALT
}
 
The outermost H_Hat() receives a return value of true from its
invocation of Aborted_Because_Non_Halting_Behavior_Detected(M, M).
 
The innermost H_Hat() shows that H_Hat() is infinitely recursive when it
calls Aborted_Because_Non_Halting_Behavior_Detected(M, M).
 
This causes the outermost
Aborted_Because_Non_Halting_Behavior_Detected(M, M) to abort its inner
H_Hat() which terminates the whole process tree that was created and
executed from this inner H_Hat().
 
Only the outermost Aborted_Because_Non_Halting_Behavior_Detected(M, M)
has a long enough execution trace to "see" that H_Hat() called
Aborted_Because_Non_Halting_Behavior_Detected(M, M) twice from the same
machine address without any conditional code in H_Hat() to terminate
this infinite recursion. // The 2018-12-13 @ 7:00 PM solution
 
The middle H_Hat() (of three) has its process terminated before its
separate, distinct instance of
Aborted_Because_Non_Halting_Behavior_Detected(M, M)
ever returns a value.
 
So when we are answering the question:
Would the input to a halt decider have to have its execution terminated
to prevent its infinite execution?
 
The answer of YES always means that the input has non-halting behavior.
(a) H(H_Hat, H_Hat) // YES
(b) H_Hat(H_Hat) // H_Hat() is not a halt decider
 
 
 
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 02:16PM -0500

On 10/25/2020 12:26 PM, Mike Terry wrote:
> Calculation A is running some emulation of another calculation B, and at
> some point simply decides not to continue the emulating any further.  In
> this scenario PO says calculation A has "aborted" calculation B.
 
Yes that is precisely correct. When Malcolm says smashing the computer
he wants to make it completely clear that with the revised definition of
a halt decider the input program cannot possibly do the opposite of
whatever the halt decider decided.
 
If my example was implemented using an extension of the Turing Machine
Description language provided here:
http://www.lns.mit.edu/~dsw/turing/turing.html
 
An "aborted process" would merely mean that the UTM that is executing
its subordinate UTM one state transition at a time would stop executing
this subordinate UTM and transition to one of its own final states.
 
 
> [Whether that's a conventional/good use of the term "abort" others can
> decide.]
 
It is a very convetional computer science term. Everyone immediately
understands that an aborted process utterly ceases all execution.
 
> IMO it adds nothing to say "calculation A has smashed the emulated
> machine running B", as this does not help explain anything - if anything
 
It makes it clear for the people that do not know that the term "aborted
process" means that a process has utterly stopped all execution and
cannot possibly execute another step.
 
> running after it aborts the calculation B.  If A is H_Hat(H_Hat), then
> the abort does not stop A from continuing and doing the opposite of what
> the halt decider decided.
 
Neither an aborted process, nor a smashed computer will ever execute
another step.
 
> be aborted in the PO sense, as there is nothing overseeing its execution
> to decide to stop executing it.  So it always "gets the chance" to do
> the opposite of what the halt decider says.
 
No, not at all not in the least. Try and show a concrete example of this
and I will point out your false assumption.
 
The outermost H_Hat() is merely a broken version of H(). It is not a
halt decider. Anything that it does merely shows the halt deciders can
be created incorrectly.
 
>> that H_Hat() cannot do the opposite of what the halt decider decided.
 
> Sprinkling UTM all over the place makes things worse IMO, although the
> "simply stops executing it" is clear.
 
The definition of my refutation of the halting problem proofs requires
that the halt decider execute its input one state transition at a time.
The ONLY TM that can execute another TM at all is a UTM.
 
When we are thinking of this in conventional terms it is simplest to
think of ever TM as a UTM so that the entire system only deals with
Turing machine Descriptions and never deals with any separate TM.
 
The universal language of x86utm is the x86 machine language that is
interpreted by an x86 emulator.
 
> was emulating the H_Hat() calculation simply stops emulating it, so that
> the emulated calculation never reaches the point where H_Hat does the
> opposite of what its halt decider decided".
 
Perfect! That is the simplest way to say it for everyone that fully
understands these terms. Some people might not understand that "the
process has been aborted" to mean that the process will not execute any
more steps. These people might need the smashed computer analogy.
 
> simply stops emulating it, so that the emulated calculation never
> reaches the point where H_Hat does the opposite of what its halt decider
> decided"
 
Yes this is also perfect for everyone (like yourself) that fully
understands all these terms.
 
 
> Correct, but for Malcolm's benefit, the halt decider itself continues
> running.  It has not smashed its own machine. :)
 
> Mike.
 
Actually no. The actual execution trace of H(H_Hat, H_Hat) or
H_Hat(H_Hat) has two different instances of the
Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) halt decider.
 
All of the processes that are executed in the x86utm master UTM process
context cannot be aborted. The second process instance of
Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) is executed
in the process context created to execute: (H_Hat, H_Hat).
 
This process context is aborted as soon as the outer process context of
x86utm Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat)
decides that H_Hat is infinitely recursive.
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 03:27PM -0500

On 10/25/2020 1:10 PM, André G. Isaak wrote:
 
>> If on the other hand when the Turing Machine Decription language <is>
>> x86 machine language then its description is directly executable.
 
> x86 machine language is not a "Turing Description Language".
 
It is common knowledge that the x86 language implements the von Neumann
architecture and that the von Neumann architecture is equivalent to a
UTM: https://en.wikipedia.org/wiki/Random-access_stored-program_machine
 
So for all practical purposes the x86 language <is> a UTM description
language, thus making x86utm a x86 based UTM operating system.
 
> at best you can claim that *your* specific implementation includes
> recursion. There's absolutely nothing in Linz's definition which
> indicates or requires recursion of any kind.
 
Yes for all we know the machine specified by Linz might not implement
the simplest of all possible halt deciders instead it might always make
a phone call to the psychic hotline.
 
There is only one [simplest of all possible halt deciders] thus proving
that it is a very execllent basis.
 
If you don't not believe that there is only one
[simplest of all possible halt deciders] then provide a counter-example
or admit that you cannot.
 
 
--
Copyright 2020 Pete Olcott
"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>: Oct 20 02:26PM -0700

On 10/20/2020 11:40 AM, olcott wrote:
> otherwise terminate.
 
> At the first point that DebugTrace() determines that M(N) would not
> otherwise terminate it aborts the DebugStep() of M(N).
 
How does it determine that an unknown function will never terminate?
 
 
 
olcott <NoOne@NoWhere.com>: Oct 25 03:42PM -0500

On 10/25/2020 3:27 PM, olcott wrote:
> a phone call to the psychic hotline.
 
> There is only one [simplest of all possible halt deciders] thus proving
> that it is a very excellent basis.
 
The key aspect of defining a halt decider that executes its input one
execution step / state transition at a time to decide:
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
 
Every syntatatically correct machine description can be divided into
(a) HAS_INFINITE_EXECUTION
(b) DOES_NOT_HAVE_INFINITE_EXECUTION
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 03:56PM -0500

On 10/25/2020 3:55 PM, Malcolm McLean wrote:
>> running. It has not smashed its own machine. :)
 
> Yes, you have to smash your own machine for the rebuttal of Linz
> to work. Otherwise there is no way out. :-(
 
This does (as has always been my stated goal) refute all of the
conventional self-referential halting problem proofs. None of these
proofs show that halting is undecidable they only show that one
definition of a halt decider does not work.
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
 
Every syntactically correct machine description can be divided into
(a) HAS_INFINITE_EXECUTION
(b) DOES_NOT_HAVE_INFINITE_EXECUTION
 
I have as I have claimed correctly refuted the conventional
self-referential halting problem proofs.
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 04:07PM -0500

On 10/25/2020 3:55 PM, Richard Damon wrote:
 
> What you don't seem to realize or are refusing to face is WHY the
> halting problem, as originally stated, is useful, and why your revised
> version, is not.
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
 
Every syntactically correct machine description can be divided into
(a) HAS_INFINITE_EXECUTION
(b) DOES_NOT_HAVE_INFINITE_EXECUTION
 
I have as I have claimed correctly refuted the conventional
self-referential halting problem proofs.
 
There are no inputs that can be shown to be undecidable.
There are no inputs that can be shown to be undecidable.
There are no inputs that can be shown to be undecidable.
There are no inputs that can be shown to be undecidable.
 
 
> to run in a more convenient form that has computational equivalence to a
> Turning machine, and then make arguments about that Turing machine,
> without needed to actually convert the algorithm into a Turning Machine.
 
x86 language ≡ von Neumann architecture ≡ UTM
 
> because the numbers got too big and you ran out of memory, which doesn't
> mean that no solution exists, it just establishes a lower bound for a
> solution.
 
I have never said that I solved the halting problem.
 
I have always said that I have refuted the conventional self-referential
halting problem proofs.
 
I really have done that and no one can show otherwise.
I really have done that and no one can show otherwise.
I really have done that and no one can show otherwise.
I really have done that and no one can show otherwise.
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 25 04:55PM -0500

On 10/25/2020 4:35 PM, Richard Damon wrote:
>> to work. Otherwise there is no way out. :-(
 
> except then you don't have the required halt decider because it never
> answered the question,
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
Cannot be fooled by pathological self reference.
 
 
--
Copyright 2020 Pete Olcott
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: