Correctness verification, refinement and data refinement, security, semantics, higher order imperative languages, mobile code, specification of extensible object-oriented components, subtyping, program transformation, refinement algebra, combining technologies for program analysis with technologies for verification.