Superposition: Composition vs refinement of non-deterministic, action-based systems

Antónia Lopes, José Luiz Fiadeiro

Research output: Contribution to journalArticlepeer-review

11 Citations (Scopus)


The traditional notion of superposition has been used for supporting two distinct aspects of parallel program design: composition and refinement. This is because, when trace-based semantics of concurrency are considered, which is typical of most formal methods, these two relationships are modelled as inclusion between sets of behaviours. However, when forms of non-deterministic behaviour have to be considered, which is the case for component and service-based development, these two aspects do not coincide. In this paper, we show how the two roles of superposition can be separated and supported at the language and semantic levels. For this purpose, we use a categorical formalisation of program design in the language CommUnity that we are also using for addressing architectural concerns, another area in which the distinction between composition and refinement is particularly important.

Original languageEnglish
Pages (from-to)5-18
Number of pages14
JournalFormal Aspects of Computing
Issue number1
Publication statusPublished - 1 Apr 2004


  • Composition
  • Refinement
  • Superposition

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science


Dive into the research topics of 'Superposition: Composition vs refinement of non-deterministic, action-based systems'. Together they form a unique fingerprint.

Cite this