\end{cases}
$
-Some (overlapping) alternative formulations:
-
-$\displaystyle D \isin C \equiv
- \begin{cases}
- D \isin L \equiv D \isin R : & D = C \lor D \isin L \\
- D \isin L \equiv D \isin R : & D = C \lor D \isin R \\
- D \isin L \nequiv D \isin R : & D = C \lor D \not\isin M \\
- D \isin M \equiv D \isin L : & D = C \lor D \isin R \\
- D \isin M \equiv D \isin R : & D = C \lor D \isin L \\
- \end{cases}
-$
-
\end{basedescript}
\newpage
\section{Invariants}
\section{Some lemmas}
+\[ \eqn{Alternative (overlapping) formulations defining
+ $\mergeof{C}{L}{M}{R}$:}{
+ D \isin C \equiv
+ \begin{cases}
+ D \isin L \equiv D \isin R : & D = C \lor D \isin L \\
+ D \isin L \nequiv D \isin R : & D = C \lor D \not\isin M \\
+ D \isin L \equiv D \isin M : & D = C \lor D \isin R \\
+ D \isin L \nequiv D \isin M : & D = C \lor D \isin L \\
+ \text{as above with L and R exchanged}
+ \end{cases}
+}\]
+\proof{
+ Truth table xxx
+
+ Original definition is symmetrical in $L$ and $R$.
+}
+
\[ \eqn{Exclusive Tip Contents:}{
\bigforall_{C \in \py}
\neg \Bigl[ D \isin \baseof{C} \land ( D \in \py \land D \le C )
\subsection{Conditions}
+\[ \eqn{ From Base }{
+ L \in \pn
+}\]
\[ \eqn{ Unique Tip }{
\pendsof{L}{\pry} = \{ R^+ \}
}\]
\[ \eqn{ Currently Included }{
L \haspatch \pry
}\]
-\[ \eqn{ Not Self }{
- L \not\in \{ R^+ \}
-}\]
\subsection{No Replay}
\subsection{Unique Base}
-Need to consider only $C \in \py$, ie $L \in \py$.
+From Base means that $C \in \pn$, so Unique Base is not
+applicable. $\qed$
+
+\subsection{Tip Contents}
+
+Again, not applicable. $\qed$
xxx tbd
\right]
}\]
+\subsection{Non-Topbloke merges}
+
+We require both $\patchof{L} = \bot$ and $\patchof{R} = \bot$.
+I.e. not only is it forbidden to merge into a Topbloke-controlled
+branch without Topbloke's assistance, it is also forbidden to
+merge any Topbloke-controlled branch into any plain git branch.
+
+Given those conditions, Tip Merge and Merge Acyclic do not apply.
+And $Y \not\in \py$ so $\neg [ Y \haspatch \p ]$ so neither
+Merge Ends condition applies. Good.
+
\subsection{No Replay}
See No Replay for Merge Results.
$\qed$
-xxx up to here, need to prove other things about merges
+\subsection{Foreign Inclusion}
+
+Consider some $D$ s.t. $\patchof{D} = \bot$.
+By Foreign Inclusion of $L, M, R$:
+$D \isin L \equiv D \le L$;
+$D \isin M \equiv D \le M$;
+$D \isin R \equiv D \le R$.
+
+\subsubsection{For $D = C$:}
+
+$D \isin C$ and $D \le C$. OK.
+
+\subsubsection{For $D \neq C, D \isin M$:}
+
+Thus $D \le M$ so $D \le L$ and $D \le R$ so $D \isin L$ and $D \isin
+R$. So by $\merge$, $D \isin C$. And $D \le C$. OK.
+
+\subsubsection{For $D \neq C, D \not\isin M, D \isin X$:}
+
+By $\merge$, $D \isin C$.
+And $D \isin X$ means $D \le X$ so $D \le C$.
+OK.
+
+\subsubsection{For $D \neq C, D \not\isin M, D \not\isin L, D \not\isin R$:}
+
+By $\merge$, $D \not\isin C$.
+And $D \not\le L, D \not\le R$ so $D \not\le C$.
+OK
+
+$\qed$
\end{document}