the domain of all relations over $\mathcal{V}$. A *combination operator* $\otimes$ is a function such that $S_1 \otimes S_2 \in \mathcal{R}(\mathcal{V})$ for some family of sets $\mathcal{V}$ with $V_{1,1}, ..., V_{1,m}, V_{2,1}, ..., V_{2,n} \in \mathcal{V}$.[^1] The application of a combination operator is called *composition*. The arguments to a combination operator are called *components*.

Composition is not only important to model software architecture within our formalism, but it also defines the formal framework for interaction: Two systems interact when they are combined using a combination operator $\otimes$ that ensures that the behavior of (at least) one system is recognized within the situation of (at least) another system.

Let $S = S_1 \otimes S_2$ be a composition of type $\mathcal{V}$ of systems $S_1$ and $S_2$ of type $\mathcal{V}_1$ and $\mathcal{V}_2$, respectively, using a combination operator $\otimes$. If there exist a $V_1 \in \mathcal{V}_1$ and a $V_2 \in \mathcal{V}_2$ and a relation $R \in V_1 \times V_2$ so that for all states $s \in S$, $(proj(s, V_1), proj(s, V_2)) \in R$, then the components $S_1$ and $S_2$ interact with respect to $R$.

We can model an open system $S$ as a combination $S = C \otimes E$ of a core system $C$ 