-\documentclass[a4paper]{strayman}
+\documentclass[a4paper,leqno]{strayman}
\let\numberwithin=\notdef
-\usepackage{MnSymbol}
+\usepackage{amsmath}
+\usepackage{mathabx}
\usepackage{stmaryrd}
\usepackage{slashed}
\usepackage{txfonts}
\newcommand{\isin}{\sqsubseteq}
\newcommand{\nothaspatch}{{%
- \declareslashed{}{\sslash}{-0.04}{0}{\Sqsupset}\slashed{\Sqsupset}}}
+ \declareslashed{}{\sslash}{-0.04}{0}{\sqSupset}\slashed{\sqSupset}}}
\newcommand{\notpatchisin}{{%
- \declareslashed{}{\sslash}{-0.04}{0}{\Sqsubset}\slashed{\Sqsubset}}}
-\newcommand{\haspatch}{\Sqsupset}
-\newcommand{\patchisin}{\Sqsubset}
+ \declareslashed{}{\sslash}{-0.04}{0}{\sqSubset}\slashed{\sqSubset}}}
+\newcommand{\haspatch}{\sqSupset}
+\newcommand{\patchisin}{\sqSubset}
\newcommand{\set}[1]{\mathbb #1}
\newcommand{\pa}[1]{\varmathbb #1}
\newcommand{\pancs}[2]{{\mathcal A} ( #1 , #2 ) }
\newcommand{\pends}[2]{{\mathcal E} ( #1 , #2 ) }
+\renewcommand{\land}{\wedge}
+
\begin{document}
\section{Notation}
conflict resolution. This is not a partial order because it is not
transitive.
+\item[ $ \p, \py, \pn $ ]
+A patch $\p$ consists of two sets of commits $\pn$ and $\py$, which
+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 these sets are distinct.
+
\end{basedescript}
\section{Invariants}
-No replay: \[ C \has D \implies C \ge D \]
+\[ C \has D \implies C \ge D \tag*{\mbox{No replay:}} \]
Unique base: \[ \mathop{\forall}_{C \in \py} \pends{C}{\pn} = \{ B \} \]