Abstract
As computers and software applications become ubiquitous the systems we build are increasingly required to run on not just a single piece of hardware, but rather be available for different platforms, different types of hardware and offer different modes of interaction depending on the context of use. Within a formal development process when we consider refinement for interactive systems we therefore need to consider not only the transformation of abstract specifications and models into single implementations but also the possibility of multiple implementations with differing interactive requirements. In such cases the changing requirements in general and changes to the user interface in particular make supporting the development by formal refinement challenging. One way to solve this problem is by extending our notion of refinement. In this paper we introduce vertical refinement for system and interface pairs which enables us to deal with such multi-path development.