I may be wrong about this, feel free to offer constructive criticism:<p>Step 1: Load the program and initialize my Halting Problem program's variable n to 0.<p>Step 2: Save the register context (meaning all the values in all the registers in a CPU) to memory location A.<p>Step 3: Step variable n + 1 instructions.<p>Step 4: Save the register context (meaning all the values in all the registers in a CPU) to memory location B.<p>Step 5: Compare the contents of memory location A to memory location B. If they match exactly, then exit with a return code of "This program is in an infinite loop", if they don't match exactly, then goto Step 2.<p>The variable n is an unsigned fixed point arbitrary precision integer.<p>If this solves the Halting Problem as proposed by Alan Turing, then does this also solve P versus NP?<p>An example of this working:<p>ax is a 2 bit register initialized to 0.<p>100: add 1 ax<p>101: jmp 100<p>ax is 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3<p>0 is compared to 1, 1 is compared to 3, 3 is compared to 2, 2 is is compared to 2, wait, that's an infinite loop...<p>Well, my program basically detects if a infinite loop is of 1 iteration or two iterations or three iterations or ... iterations, but only infinite loops and not finite loops and in a finite amount of time. This means that finite loops don't trigger my program ever, only infinite ones after a finite amount of time.<p>TLDR: A turing machine can run my program and determine whether any other program halts or infinite loops in a finite amount of time, never infinite only if the variable n can be infinitely large.