Operational reasoning and denotational semantics.