\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{ Into 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{Ordering of ${L, R^+, R^-}$:}
By Unique Tip, $R^+ \le L$. By definition of $\base$, $R^- \le R^+$
-so $R^- \le L$. So $R^+ \le C$ and $R^- \le C$ and No Replay for
-Merge Results applies. $\qed$
+so $R^- \le L$. So $R^+ \le C$ and $R^- \le C$.
+
+(Note that the merge base $R^+ \not\le R^-$, i.e. the merge base is
+later than one of the branches to be merged.)
+
+\subsection{No Replay}
+
+No Replay for Merge Results applies. $\qed$
\subsection{Desired Contents}
\subsection{Unique Base}
-Need to consider only $C \in \py$, ie $L \in \py$.
+Into Base means that $C \in \pn$, so Unique Base is not
+applicable. $\qed$
-xxx tbd
+\subsection{Tip Contents}
+
+Again, not applicable. $\qed$
-xxx need to finish anticommit
+\subsection{Base Acyclic}
+
+By Base Acyclic for $L$, $D \isin L \implies D \not\in \py$.
+And by Into Base $C \not\in \py$.
+Now from Desired Contents, above, $D \isin C
+\implies D \isin L \lor D = C$, which thus
+$\implies D \not\in \py$. $\qed$.
+
+\subsection{Coherence and Patch Inclusion}
+
+Need to consider some $D \in \py$. By Into Base, $D \neq C$.
+
+\subsubsection{For $\p = \pr$:}
+By Desired Contents, above, $D \not\isin C$.
+So $C \nothaspatch \pr$.
+
+\subsubsection{For $\p \neq \pr$:}
+By Desired Contents, $D \isin C \equiv D \isin L$
+(since $D \in \py$ so $D \not\in \pry$).
+
+If $L \nothaspatch \p$, $D \not\isin L$ so $D \not\isin C$.
+So $L \nothaspatch \p \implies C \nothaspatch \p$.
+
+Whereas if $L \haspatch \p$, $D \isin L \equiv D \le L$.
+so $L \haspatch \p \implies C \haspatch \p$.
\section{Merge}
\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.
+No Replay for Merge Results applies. $\qed$
\subsection{Unique Base}
\subsubsection{For (wlog) $X \not\haspatch \p, Y \haspatch \p$:}
-$C \haspatch \p \equiv M \nothaspatch \p$.
+$M \haspatch \p \implies C \nothaspatch \p$.
+$M \nothaspatch \p \implies C \haspatch \p$.
\proofstarts
$\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}