*Thanks for replying I really need software engineering feedback*
Software engineering is much more than merely the system development
lifecycle it also includes extremely much more rigor in the development
of software than computer programming.
Software engineers operate within something like axioms of computer
programming, design patterns are an example of this.
https://en.wikipedia.org/wiki/Design_Patterns
The kind of rigorous analysis performed by software engineers
conclusively proves that D correctly simulated by H cannot possibly
terminate normally.
I wrote the x86utm operating system. The most difficult part was
providing the infrastructure to support the context switch so that
termination analyzer H could simulate itself simulating itself to an
arbitrary level of recursive depth.
The x86utm operating system based on an open source x86 emulator. This
system enables one C function to execute another C function in debug
step mode. When H simulates D it creates a separate process context for
D with its own memory, stack and virtual registers. H is able to
simulate D simulating itself, thus the only limit to recursive
simulations is RAM.
// The following is written in C
//
01 typedef int (*ptr)(); // pointer to int function
02 int H(ptr x, ptr y) // uses x86 emulator to simulate its input
03
04 int D(ptr x)
05 {
06 int Halt_Status = H(x, x);
07 if (Halt_Status)
08 HERE: goto HERE;
09 return Halt_Status;
10 }
11
12 void main()
13 {
14 H(D,D);
15 }
Execution Trace
Line 14: main() invokes H(D,D);
keeps repeating (unless aborted)
Line 06: simulated D(D) invokes simulated H(D,D) that simulates D(D)
Simulation invariant:
D correctly simulated by H cannot possibly reach its own line 09.
H correctly determines that D correctly simulated by H cannot possibly
terminate normally on the basis that H recognizes a dynamic behavior
pattern equivalent to infinite recursion.
The x86utm operating system (includes several termination analyzers)
https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15