# AoC 2017 Day 23: Duetvmc

### Source: Coprocessor Conflagration

Part 1: Create a variation of the previous DuetVM with only the following four instructions:

• set X Y sets register X to Y
• sub X Y set register X to X - Y
• mul X Y sets register X to X * Y
• jnz X Y jumps with an offset of the value of Y, iff X is not equal to zero

If you run the given program, how many times is mul invoked?

# 'Tiny' Turing completeness without MMOV

Something was bugging me about my proof from yesterday. If we take another tack on proving Turing completeness, all we would have to prove is that we can simulate SUBLEQ. Since SUBLEQ is Turing complete, that’s all we need–just convert each SUBLEQ into a SUB, JZ, and a JLS. So that means that Tiny as written should be Turing complete.

So how does that work?