Liste des Groupes | Revenir à s logic |
Op 07.mei.2024 om 23:23 schreef olcott:*My fully operational code proves how it works*On 5/7/2024 3:40 PM, Fred. Zwarts wrote:So, since olcott does not define H and he did not reject the idea ofOp 07.mei.2024 om 21:05 schreef olcott:>On 5/7/2024 1:54 PM, Fred. Zwarts wrote:>Op 07.mei.2024 om 17:40 schreef olcott:>On 5/7/2024 6:18 AM, Richard Damon wrote:>On 5/7/24 3:30 AM, Mikko wrote:>On 2024-05-06 18:28:37 +0000, olcott said:>
>On 5/6/2024 11:19 AM, Mikko wrote:>On 2024-05-05 17:02:25 +0000, olcott said:>
>The x86utm operating system: https://github.com/plolcott/x86utm enables>
one C function to execute another C function in debug step mode.
Simulating Termination analyzer H simulates the x86 machine code of its
input (using libx86emu) in debug step mode until it correctly matches a
correct non-halting behavior pattern proving that its input will never
stop running unless aborted.
>
Can D correctly simulated by H terminate normally?
00 int H(ptr x, ptr x) // ptr is pointer to int function
01 int D(ptr x)
02 {
03 int Halt_Status = H(x, x);
04 if (Halt_Status)
05 HERE: goto HERE;
06 return Halt_Status;
07 }
08
09 int main()
10 {
11 H(D,D);
12 }
>
*Execution Trace*
Line 11: main() invokes H(D,D);
>
*keeps repeating* (unless aborted)
Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)
>
*Simulation invariant*
D correctly simulated by H cannot possibly reach past its own line 03.
>
The above execution trace proves that (for every H/D pair of the
infinite set of H/D pairs) each D(D) simulated by the H that this D(D)
calls cannot possibly reach past its own line 03.
When you say "every H/D pair" you should specify which set of pairs
you are talking about. As you don't, your words don't mean anything.
>
Every H/D pair in the universe where D(D) is simulated by the
same H(D,D) that D(D) calls. This involves 1 to ∞ steps of D
and also includes zero to ∞ recursive simulations where H
H simulates itself simulating D(D).
"In the universe" is not a set. In typical set theories like ZFC there
is no universal set.
This template defines an infinite set of finite string H/D pairs where each D(D) that is simulated by H(D,D) also calls this same H(D,D).
>
These H/D pairs can be enumerated by the one to ∞ simulated steps of D and involve zero to ∞ recursive simulations of H simulating itself simulating D(D). Every time Lines 1,2,3 are simulated again defines
one more level of recursive simulation.
>
1st element of H/D pairs 1 step of D is simulated by H
2nd element of H/D pairs 2 steps of D are simulated by H
3rd element of H/D pairs 3 steps of D are simulated by H
>
4th element of H/D pairs 4 steps of D are simulated by H
this begins the first recursive simulation at line 01
>
5th element of H/D pairs 5 steps of D are simulated by
next step of the first recursive simulation at line 02
>
6th element of H/D pairs 6 steps of D are simulated by
last step of the first recursive simulation at line 03
>
7th element of H/D pairs 7 steps of D are simulated by H
this begins the second recursive simulation at line 01
Is this the definition of the infinite set of H? We can think of many more simulations that only these.
This template defines an infinite set of finite string H/D pairs where
each D(D) that is simulated by H(D,D) also calls this same H(D,D).
>
This template does not define any H. So,
The template specifies an infinite set of finite string H/D pairs
where each D(D) that is simulated by H(D,D) also calls this same H(D,D).
>it does not define a H/D pair>
When by "define" you mean provide all of the source-code of H
you are right. That is not what I meant. I cannot provide
all of the source-code for an infinite set of functions.
>either. The enumeration might be part of a definition for a set of H functions, but the question was whether the enumeration defines the whole set. If so, why is it limited to this enumeration?>
>
The template specifies an infinite set of finite string H/D pairs
where each D(D) that is simulated by H(D,D) also calls this same H(D,D).
>
This includes implementations of H that play tic-tac-toe.
It does not include any D not simulated by H.
It does not include and D(D) that does not call this H.
>>>In particular since the H as presented is not a pure function,
but uses hidden inputs. If hidden inputs are allowed, it is easy
to construct very different H functions, e.g., H functions for
which the number of steps differ at each simulation level.
functions with hidden inputs, we can construct a H that keeps track of > the simulation level. So, imagine a H that has as hidden input not only--
its own address, but also the address of an integer value, the simulation level, initialised at 0. Each time H starts, it increments the level and when it returns, it decrements the level. Then we can construct a H that, when it sees that it is at level 1, it simulates infinitely, but when it sees that it is at level 2, it aborts as soon as it would start to simulate itself.
So, the inner simulated H aborts after one cycle and returns non-halting, the simulated D then goes to line 04 and line 06 and returns, and then the outer simulating H reports 'halting'.
So, we have a single H that reports different things about the same D.
Of course, also this outer simulating H is wrong, because when D is called directly, it sees that the outer simulating H reports 'halting' and therefore D does not halt.
So, this might be the solution to olcott's problem. Construct a H that returns different results at each stimulation level, then at some levels it is correct. It cannot be wrong when it gives both halting and non-halting responses. :)
It has no further use, but everyone is happy. olcott is happy, because this H gives a correct answer for its D in one of the simulation levels and others are happy, because the halting theorem is not violated.
Les messages affichés proviennent d'usenet.