Abstract: A system and method for software verification provides a lifting dictionary for each desired computer architecture. The lifting dictionary is used to translate native machine language instructions into descriptive intermediate language instructions. Each descriptive intermediate language instruction is atomic, in that, each descriptive intermediate language instruction changes at most one state of the emulated system. An emulator then runs the descriptive intermediate language instructions with tools that show each change of state after each DIL is emulated.