Type soundness proofs with definitional interpreters