Sujet : Re: Every D correctly simulated by H never reaches its final state and halts
De : mikko.levanto (at) *nospam* iki.fi (Mikko)
Groupes : sci.logicDate : 17. May 2024, 17:00:53
Autres entêtes
Organisation : -
Message-ID : <v27uvl$28tsi$1@dont-email.me>
References : 1 2 3
User-Agent : Unison/2.2
On 2024-05-17 15:30:01 +0000, olcott said:
On 5/17/2024 2:25 AM, Fred. Zwarts wrote:
Op 17.mei.2024 om 03:15 schreef olcott:
The following is self-evidently true on the basis of the
semantics of the C programming language.
typedef int (*ptr)(); // ptr is pointer to int function
00 int H(ptr x, ptr x);
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 return 0;
13 }
In the above case a simulator is an x86 emulator that correctly
emulates at least one of the x86 instructions of D in the order
specified by the x86 instructions of D.
This may include correctly emulating the x86 instructions of H
in the order specified by the x86 instructions of H thus calling
H(D,D) in recursive simulation.
Any H/D pair matching the above template where
D(D) is simulated by the same H(D,D) that it calls
cannot possibly reach its own line 06 and halt.
*This is a simple software engineering verified fact*
Note that olcott defines 'verified fact' as 'proven fact', but he is unable to show the proof. So, it must be read as 'my belief'.
It is self-evidently true to anyone having sufficient knowledge
of the semantics of the C programming language.
No, it isn't, because the C code of H is not shown. The actual
implementation of H as decribed in some earlier messages is
not fully encoded in standard C, so in order to understand the
behaviour of D one needs to know and understand something that
is not given as a C code and therefore not understandable from
mere knowing the C language definition.
-- Mikko