Using SOS Definitions in Term Rewriting Proofs

The main property to be checked when verifying a compiler is semantic equivalence of source program and generated target code. In order to be able to decide this property, a precise formulation of source and target semantics is needed. Moreover, when an automatic proof support tool is to be used, these definitions must be expressed within the tool’s formalism. We will demonstrate a way how to model structured operational semantics in the style of Plotkin by means of a special form of term rewriting systems. These systems can be shown to model the original semantics definitions very closely, and they can be implemented as standard rewriting systems within the object language of the Larch Prover. An application of this implementation is the proof of equivalence of structured operational and denotational semantics definitions for a small language. This proof becomes necessary when different aspects of verification require different ways of defining the semantics.