A machine-checked model for a Java-like language, virtual machine, and compiler