Verified bytecode verifiers

G Klein, T Nipkow - Theoretical Computer Science, 2003 - Elsevier
Theoretical Computer Science, 2003Elsevier
Using the theorem prover Isabelle/HOL we have formalized and proved correct and
executable bytecode verifier in the style of Kildall's algorithm for a significant subset of the
Java Virtual Machine (JVM). First an abstract framework for proving correctness of data flow
based type inference algorithms for assembly languages is formalized. It is shown that under
certain conditions Kildall's algorithm yields a correct bytecode verifier. Then the framework is
instantiated with our previous work about the JVM. Finally, we demonstrate the flexibility of …
Using the theorem prover Isabelle/HOL we have formalized and proved correct and executable bytecode verifier in the style of Kildall's algorithm for a significant subset of the Java Virtual Machine (JVM). First an abstract framework for proving correctness of data flow based type inference algorithms for assembly languages is formalized. It is shown that under certain conditions Kildall's algorithm yields a correct bytecode verifier. Then the framework is instantiated with our previous work about the JVM. Finally, we demonstrate the flexibility of the framework by extending our previous JVM model and the executable bytecode verifier with object initialization.
Elsevier