finish denotational semantics