Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
434048 | Science of Computer Programming | 2015 | 34 Pages |
•A method for data refinement over intervals is developed, together with a sound forward simulation rule.•The framework enables reasoning about true concurrency between parallel processes.•Methods for decomposing forward simulation proofs are developed.•The framework may be specialised to reason about both discrete and realtime systems.•Examples include a concurrent algorithm and a complex real-time pump system.
The majority of modern systems exhibit sophisticated concurrent behaviour, where several system components observe and modify the state with fine-grained atomicity. Many systems also exhibit truly concurrent behaviour, where multiple events may occur simultaneously. Data refinement, a correctness criterion to compare an abstract and a concrete implementation, normally admits interleaved models of execution only. In this paper, we present a method of data refinement using a framework that allows one to view a component's evolution over an interval of time, simplifying reasoning about true concurrency. By modifying the type of an interval, our theory may be specialised to cover data refinement of both discrete and real-time systems. We develop a sound interval-based forward simulation rule that enables decomposition of data refinement proofs, and apply this rule to verify data refinement for two examples: a simple concurrent program and a more in-depth real-time controller.