Program verification and semantics: the early work