In this thesis an operational semantics for a subset of the Java
Virtual Machine (JVM) is developed and presented. The subset contains
standard operations such as control flow, computation, and memory
management. In addition, the subset contains a treatment of parallel
threads of execution.
The operational semantics are embedded into a μ-calculus based proof
assistant, called the VeriCode Proof Tool (VCPT). VCPT has been
developed at the Swedish Institute of Computer Science (SICS), and has
powerful features for proving inductive assertions.
Some examples of proving properties of programs using the embedding
are presented.