where the context requires a set, in which case the statement
is to be taken as applying to both $\py$ and $\pn$.
All of these sets will be disjoint by construction
-(see Invariants, below). Hence:
+(see Invariants, below).
\item[ $\foreign$ ]
The set of all commits which are not part of a Topbloke branch. We
-call these foreign commits.
-
-\item[ $\set A$, $\set P$, $\ldots$ ]
-Arbitrary sets of commits. Maybe $\set P = \p$ i.e.\ some $\py$ or $\pn$, but
-maybe not.
+call these foreign commits. Hence:
\item[ $ \patchof{ C } $ ]
Either $\p$ s.t. $ C \in \p $, or $\foreign$.
A function from commits to patches' sets $\p$.
+\item[ $\set A$, $\set P$, $\ldots$ ]
+Arbitrary sets of commits. Maybe $\set P = \p$ i.e.\ some $\py$ or $\pn$, but
+maybe not.
+
\item[ $ \pancsof{C}{\set P} $ ]
$ \{ A \; | \; A \le C \land A \in \set P \} $
i.e. all the ancestors of $C$
$$
\item[ $\displaystyle \commitmergeof{C}{L}{M}{R} $ ]
-The contents of a git merge result:
+$C$ has exactly the contents of a git merge result:
$\displaystyle D \isin C \equiv
\begin{cases}
\end{cases}
$
+We will refer to this as \commitmergename.
+
\end{basedescript}