Applying Turing Completeness
In order to show that a language is Turing complete, it suffices to show that the language provides:
1. a way to represent the current state of a TM computation, no matter how many states the TM may have,
2. a way to represent an a tape of whatever size may be needed by the computation, and to represent on each square of the tape, any tape symbol from a finite set (no matter how many symbols may be in TM’s finite set),
3. a way to implement any TM’s transition function, and
4. a way to repeat the execution of the transition function without limit.