From F to DOT: Type Soundness Proofs with Definitional Interpreters
arxiv.org
arxiv.org
More generally, shifting from term rewriting to operational semantics (i.e. proving interpreters correct) seems like a big improvement. Instead of working in a completely different semantic domain, we work in one closely allied to our implementations.