Formalizing and Verifying Semantic Type Soundness of a Simple Compiler

  • Nick Benton ,
  • Uri Zarfaty

MSR-TR-2007-31 |

We describe a semantic type soundness result, formalized in the Coq proof assistant, for a compiler from a simple imperative language with heap-allocated data into an idealized assembly language. Types in the high-level language are interpreted as binary relations, built using both second-order quantification and a form of separation structure, over stores and code pointers in the low-level machine.