X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=article.tex;h=01800f96132a69fb7a89ab4e9e6ab9d0a82e9519;hb=d1afd16455a7de8e90e79610f5af798faad0bd44;hp=b0a14f254ff6a6835b0269593c733b6854f21e67;hpb=7a925218d4ef2331e0e1775cc917e35461efc981;p=topbloke-formulae.git diff --git a/article.tex b/article.tex index b0a14f2..01800f9 100644 --- a/article.tex +++ b/article.tex @@ -32,6 +32,10 @@ \newcommand{\py}{\pay{P}} \newcommand{\pn}{\pan{P}} +\newcommand{\pr}{\pa{R}} +\newcommand{\pry}{\pay{R}} +\newcommand{\prn}{\pan{R}} + %\newcommand{\hasparents}{\underaccent{1}{>}} %\newcommand{\hasparents}{{% % \declareslashed{}{_{_1}}{0}{-0.8}{>}\slashed{>}}} @@ -334,6 +338,29 @@ $\qed$ If $D = C$, trivial. For $D \neq C$: $D \isin C \equiv D \isin A \equiv D \le A \equiv D \le C$. $\qed$ +\section{Anticommit} + +Given $L, R^+, R^-$ where +$\patchof{R^+} = \pry, \patchof{R^-} = \prn$. +Construct $C$ which has $\pr$ removed. +Used for removing a branch dependency. +\gathbegin + C \hasparents \{ L \} +\gathnext + \patchof{C} = \patchof{L} +\gathnext + D \isin C \equiv + \begin{cases} + R \in \py : & \baseof{R} \ge \baseof{L} + \land [\baseof{L} = M \lor \baseof{L} = \baseof{M}] \\ + R \in \pn : & R \ge \baseof{L} + \land M = \baseof{L} \\ + \text{otherwise} : & \false + \end{cases} +\end{gather} + +xxx want to prove $D \isin C \equiv D \not\in pry \land D \isin L$. + \section{Merge} Merge commits $L$ and $R$ using merge base $M$ ($M < L, M < R$): @@ -394,9 +421,9 @@ Need to consider only $C \in \py$, ie $L \in \py$, and calculate $\pendsof{C}{\pn}$. So we will consider some putative ancestor $A \in \pn$ and see whether $A \le C$. -$A \le C \equiv A \le L \lor A \le R \lor A = C$. +By Exact Ancestors for C, $A \le C \equiv A \le L \lor A \le R \lor A = C$. But $C \in py$ and $A \in \pn$ so $A \neq C$. -Thus $fixme this is not really the right thing A \le L \lor A \le R$. +Thus $A \le C \equiv A \le L \lor A \le R$. By Unique Base of L and Transitive Ancestors, $A \le L \equiv A \le \baseof{L}$. @@ -408,32 +435,18 @@ $A \le R \equiv A \le \baseof{R}$. But by Tip Merge condition on $\baseof{R}$, $A \le \baseof{L} \implies A \le \baseof{R}$, so -$A \le \baseof{R} \lor A \le \baseof{R} \equiv A \le \baseof{R}$. -Thus $A \le C \equiv A \le \baseof{R}$. Ie, $\baseof{C} = -\baseof{R}$. - -UP TO HERE +$A \le \baseof{R} \lor A \le \baseof{L} \equiv A \le \baseof{R}$. +Thus $A \le C \equiv A \le \baseof{R}$. +That is, $\baseof{C} = \baseof{R}$. -By Tip Merge, $A \le $ +\subsubsection{For $R \in \pn$:} -Let $S = - \begin{cases} - R \in \py : & \baseof{R} \\ - R \in \pn : & R - \end{cases}$. -Then by Tip Merge $S \ge \baseof{L}$, and $R \ge S$ so $C \ge S$. - -Consider some $A \in \pn$. If $A \le S$ then $A \le C$. -If $A \not\le S$ then +By Tip Merge condition on $R$, +$A \le \baseof{L} \implies A \le R$, so +$A \le R \lor A \le \baseof{L} \equiv A \le R$. +Thus $A \le C \equiv A \le R$. +That is, $\baseof{C} = R$. -Let $A \in \pends{C}{\pn}$. -Then by Calculation Of Ends $A \in \pendsof{L,\pn} \lor A \in -\pendsof{R,\pn}$. - - - -%$\pends{C, - -%%\subsubsection{For $R \in \py$:} +$\qed$ \end{document}