Overunity.com Archives is Temporarily on Read Mode Only!



Free Energy will change the World - Free Energy will stop Climate Change - Free Energy will give us hope
and we will not surrender until free energy will be enabled all over the world, to power planes, cars, ships and trains.
Free energy will help the poor to become independent of needing expensive fuels.
So all in all Free energy will bring far more peace to the world than any other invention has already brought to the world.
Those beautiful words were written by Stefan Hartmann/Owner/Admin at overunity.com
Unfortunately now, Stefan Hartmann is very ill and He needs our help
Stefan wanted that I have all these massive data to get it back online
even being as ill as Stefan is, he transferred all databases and folders
that without his help, this Forum Archives would have never been published here
so, please, as the Webmaster and Creator of these Archives, I am asking that you help him
by making a donation on the Paypal Button above.
You can visit us or register at my main site at:
Overunity Machines Forum



quentron.com

Started by Philip Hardcastle, April 04, 2012, 05:00:30 AM

Previous topic - Next topic

0 Members and 43 Guests are viewing this topic.

sarkeizen

Quote from: lumen on January 25, 2013, 08:41:12 PM
"It can be called as a sub function by passing parameters ( a pointer to the data) and the interpreter can read the data and operate on it."
A sub-function of what?  The function WillThisEnd() - at this point has no parent process.  It's running on the CPU.  It's *is* your interpreter.

Calling WillThisEnd(program,data) - interprets the "program" using "data", determines if it ends and returns either 'true' or 'false' respectively.

We have, at this point not discussed any other software running on this machine.   So there's nothing for this to be a sub-function of.  Please refrain from making up any new terms, it's a stupid thing to do in a discussion where clarity is important.
Quote
Yes you can, and it will report that it will not end because it will not end without something ending it.
Weird statement, you don't know what either "program" or "data" is.   For all you know "program" points to code like this:

{
return;
}

Which terminates regardless of the input data.

So once you sort that out in your head.  Then you should see it's possible that we could write the following function - which is running on the CPU and not a sub-function of anything at all (bizarre that I need to specify that!) -

The function will be called WillThisEndOnSelf(), it will take one parameter,, a pointer to a program as input and it's structure will be something like:

function WillThisEndOnSelf(program) {
     
     if WillThisEnd(program, program) == 'true'
           while(1);
     else
            return;
}

All this does is determines if "program" will end and if it does then loop infinitely otherwise it exits normally.

Simple right?

lumen

Quote from: sarkeizen on January 25, 2013, 09:49:35 PM
A sub-function of what?  The function WillThisEnd() - at this point has no parent process.  It's running on the CPU.  It's *is* your interpreter.

Calling WillThisEnd(program,data) - interprets the "program" using "data", determines if it ends and returns either 'true' or 'false' respectively.

We have, at this point not discussed any other software running on this machine.   So there's nothing for this to be a sub-function of.  Please refrain from making up any new terms, it's a stupid thing to do in a discussion where clarity is important.Weird statement, you don't know what either "program" or "data" is.   For all you know "program" points to code like this:

{
return;
}

Which terminates regardless of the input data.

So once you sort that out in your head.  Then you should see it's possible that we could write the following function - which is running on the CPU and not a sub-function of anything at all (bizarre that I need to specify that!) -

The function will be called WillThisEndOnSelf(), it will take one parameter,, a pointer to a program as input and it's structure will be something like:

function WillThisEndOnSelf(program) {
     
     if WillThisEnd(program, program) == 'true'
           while(1);
     else
            return;
}

All this does is determines if "program" will end and if it does then loop infinitely otherwise it exits normally.

Simple right?

Yes, no problem. The best part is you never have to worry about recursion because running a copy of itself using a pointer never actually passes the pointer to the copy.

So the pointer to the copy, or even a pointer to itself, will run with a pointer to nothing popped off the stack which was already adjusted to a new area of memory.

sarkeizen

So what's the result of executing the following? (on the CPU, not through the interpreter)

WillThisEndOnSelf(WillThisEndOnSelf);

lumen

Quote from: sarkeizen on January 26, 2013, 12:56:14 AM
So what's the result of executing the following? (on the CPU, not through the interpreter)

WillThisEndOnSelf(WillThisEndOnSelf);

The result would be "true" the program would finish.
The reason is because at some point the "copy" would determine a result on whatever it was running (unknown garbage) and finish.

Only the primary call had parameters passed so the pointer to itself received nothing to run.

Also, the operation would be additionally secured if the parameters are passed by copy, not a pointer.  For this operation to perform it's function on itself, it needs a copy because program code is changed temporarily in it's operation to maintain control.

It should be becoming clear that whatever problem can arise on a CPU, code can be written to solve.

New problem = new code.
Changing problem = changing code.
Morphing problem = morphing code.

whatever the problem = whatever code.

I have seen code so strange that it would decrypt itself just ahead of operation and then encrypt itself back after operation. Of course only a GAME would require this level of security. Did I say 8 years?


sarkeizen

Quote from: lumen on January 26, 2013, 09:48:58 AM
The result would be "true" the program would finish.
Considering that the only element in this example which returns with 'true' or 'false' is WillThisEnd() I'll assume that's what you're talking about.

In which case...you just admitted your interpreter doesn't work.

If WillThisEnd(WillThisEndOnSelf,WillThisEndOnSelf) returns true.  It's clear from the logic of WillThisEndOnSelf() that actually the program does not terminate.  Thus WillThisEnd() is not responding with the correct answer.  So you should go fix your code.

If you do and now with your fixed code WillThisEnd(WillThisEndOnSelf,WillThisEndOnSelf) returns false.  It's clear from the logic of WillThisEndOnSelf() that it actually does terminate.  Thus WillThisEnd is not responding with the correct answer.  So you should go fix your code.

If you do and now with your fixed code WillThisEnd(WillThisEndOnSelf,WillThisEndOnSelf) does not return with either 'true' or 'false' then it has failed to solve the problem.

We have covered every possible output of WillThisEnd() which you agreed is equivalent to your interpreter.  Each of it's outputs is utterly wrong in this case.  Thus it can not satisfy the requirements of the halting problem.

Yawn...this was about as challenging as playing naughts and crosses with my son.

If I may be so bold and point out that your mistake was to treat this like a technical problem.  It isn't one.   Essentially this is no different than the "algebra box" problem I gave you earlier.  Even you appeared to admit that the box could not operate as described (and you didn't even know what was inside the box!).  Understanding this proof, or any proof is no different than that.