Definition
\(\forall l \ge -1\), we define types using their signatures (i.e. the
sets of upstream and downstream overhangs of elements using this type):
\[\begin{split}\begin{array}{ll}
\forall t \in \mathcal{M}_l,& \begin{cases}
Up(t) &= \bigcup_{m \in t(M_l)} \{ up(m) \} \\
Down(t) &= \bigcup_{m \in t(M_l)} \{ down(m) \}
\end{cases} \\
\forall t \in \mathcal{V}_l,& \begin{cases}
Up(t) &= \bigcup_{v \in t(V_l)} \{ up(v) \} \\
Down(t) &= \bigcup_{v \in t(V_l)} \{ down(v) \}
\end{cases}
\end{array}\end{split}\]
Corollary
\(\forall l \ge -1\),
\[\begin{split}\begin{array}{lll}
\forall t \in \mathcal{M}_l,&\ t(M_l) &= \{ m \in M_l\ |\ up(m) \in Up(t),\ down(m) \in Down(t) \} \\
\forall t \in \mathcal{V}_l,&\ t(V_l) &= \{ v \in V_l\ |\ up(v) \in Up(t),\ down(v) \in Down(t) \}
\end{array}\end{split}\]
Property: Structural equivalence of module types
Given a valid (resp. unambiguous) (resp. complete) assembly
\[m_1 + \dots + m_k + v \xrightarrow{e_l} A \subset (\Sigma^\star \cup \Sigma^{(c)})\]
then if there exist \(t \in \mathcal{M}_l\) such that
\[\begin{split}\begin{cases}
\lvert Up(t) \rvert = \lvert Down(t) \rvert = 1 \\
m_1 \in t(M_l)
\end{cases}\end{split}\]
then \(\forall m_1\prime \in t(M_l)\),
\[m_1\prime + \dots + m_k + v \xrightarrow{e_l} A \subset (\Sigma^\star \cup \Sigma^{(c)})\]
is valid (resp. unambiguous) (resp. complete).