Liste des Groupes | Revenir à s logic |
On 5/8/2024 4:07 AM, Fred. Zwarts wrote:So again an example is given of a simulation that reaches lines 04 and line 06 and again not a single word about it.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:>Op 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.
So, since olcott does not define H and he did not reject the idea of
I seems like you guys don't have a clue about how infinite
recursion works. You can run the code and see that I am correct.
I have one concrete instance as fully operational code.
https://github.com/plolcott/x86utm/blob/master/Halt7.c
line 555 u32 HH(ptr P, ptr I) its input in on
line 932 int DD(int (*x)())
HH(DD,DD) determines that its input will never halt
by simulating itself simulating it and seeing that
this creates the exact same prior state of DD.
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.