are respectively the base and tip git branches. $\p$ may be used
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 are disjoint. Hence:
+All of these sets will be disjoint by construction
+(see Invariants, below). Hence:
+
+\item[ $\set A$, $\set P$, $\ldots$ ]
+Arbitrary sets of commits. Maybe $\set P = \p$ i.e.\ some $\py$ or $\pn$, but
+maybe not.
\item[ $ \patchof{ C } $ ]
Either $\p$ s.t. $ C \in \p $, or $\bot$.
~ Informally, $C$ has all the reachable contents of $\p$.
\item[ $ C \haspatch \p $ ]
-$\displaystyle C \zhaspatch \p \land \exists_{D \in \py} D \le C $.
+$\displaystyle C \zhaspatch \p \land \exists_{F \in \py} F \le C $.
~ Informally, $C$ nontrivially has all the reachable contents of $\p$.
-Note that $\zhaspatch$ and $\nothaspatch$ are not mutually exclusive.
-$\haspatch$ and $\nothaspatch$ are.
+Note that $\zhaspatch$ and $\nothaspatch$ are neither
+mutually exclusive nor exhaustive.
+$\haspatch$ and $\nothaspatch$ are mutually exclusive but not
+necessarily exhaustive.
Commits on Non-Topbloke branches are $\nothaspatch \p$ for all $\p$. This
includes commits on plain git branches made by applying a Topbloke