X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=article.tex;h=3d8bd8179a5f26dc787fa70a4de9046f32709f6d;hb=8f764ce48b66831e1bf928cad8842d68d3a470af;hp=fda5026a8de1e76d083b9482b537e3d81915147a;hpb=06ac9200d087b074fe60a46fbe186dab4bf653c9;p=topbloke-formulae.git diff --git a/article.tex b/article.tex index fda5026..3d8bd81 100644 --- a/article.tex +++ b/article.tex @@ -196,6 +196,10 @@ We maintain these each time we construct a new commit. \\ \[\eqn{Foreign Inclusion:}{ \bigforall_{D \text{ s.t. } \patchof{D} = \bot} D \isin C \equiv D \leq C }\] +\[\eqn{Foreign Contents:}{ + \bigforall_{C \text{ s.t. } \patchof{C} = \bot} + D \le C \implies \patchof{D} = \bot +}\] \section{Some lemmas} @@ -289,6 +293,21 @@ by the LHS. And $A \le A''$. }\] xxx proof tbd +\[ \eqn{Totally Foreign Contents:}{ + \bigforall_{C \hasparents \set A} + \left[ + \patchof{C} = \bot \land + \bigforall_{A \in \set A} \patchof{A} = \bot + \right] + \implies + \left[ + D \isin C + \implies + \patchof{D} = \bot + \right] +}\] +xxx proof tbd + \subsection{No Replay for Merge Results} If we are constructing $C$, with, @@ -440,10 +459,62 @@ $\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$ +\subsection{Foreign Contents:} + +Only relevant if $\patchof{C} = \bot$. Trivial by Foreign Contents of +$A$. $\qed$ + +xxx fixme not trivial use Totally Foreign Contents + +\section{Create Base} + +Given $L$, create a Topbloke base branch initial commit $B$. +\gathbegin + B \hasparents \{ L \} +\gathnext + \patchof{B} = \pa{B} +\gathnext + D \isin B \equiv D \isin L \lor D = B +\end{gather} + +\subsection{Conditions} + +\[ \eqn{ Ingredients }{ + \patchof{L} = \pa{L} \lor \patchof{L} = \bot +}\] +\[ \eqn{ Non-recursion }{ + L \not\in \pa{B} +}\] + +\subsection{No Replay} + +If $\patchof{L} = \pa{L}$, trivial by Base Acyclic for $L$. + +If $\patchof{L} = \bot$, xxx + +Trivial from Base Acyclic for $L$. $\qed$ + +\subsection{Unique Base} + +Not applicable. $\qed$ + +\subsection{Tip Contents} + +Not applicable. $\qed$ + +\subsection{Base Acyclic} + +xxx + +xxx unfinished + +\section{Create Tip} + +xxx tbd + \section{Anticommit} -Given $L, R^+, R^-$ where -$R^+ \in \pry, R^- = \baseof{R^+}$. +Given $L$ and $\pr$ as represented by $R^+, R^-$. Construct $C$ which has $\pr$ removed. Used for removing a branch dependency. \gathbegin @@ -456,6 +527,9 @@ Used for removing a branch dependency. \subsection{Conditions} +\[ \eqn{ Ingredients }{ +R^+ \in \pry \land R^- = \baseof{R^+} +}\] \[ \eqn{ Into Base }{ L \in \pn }\] @@ -472,8 +546,8 @@ 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$. $\qed$ -(Note that the merge base $R^+ \not\le R^-$, i.e. the merge base is -later than one of the branches to be merged.) +(Note that $R^+ \not\le R^-$, i.e. the merge base +is a descendant, not an ancestor, of the 2nd parent.) \subsection{No Replay} @@ -550,7 +624,7 @@ so $L \haspatch \p \implies C \haspatch \p$. $\qed$ -\section{Foreign Inclusion} +\subsection{Foreign Inclusion} Consider some $D$ s.t. $\patchof{D} = \bot$. $D \neq C$. So by Desired Contents $D \isin C \equiv D \isin L$. @@ -561,9 +635,13 @@ Thus $D \isin C \equiv D \le C$. $\qed$ +\subsection{Foreign Contents:} + +Not applicable. $\qed$ + \section{Merge} -Merge commits $L$ and $R$ using merge base $M$ ($M < L, M < R$): +Merge commits $L$ and $R$ using merge base $M$: \gathbegin C \hasparents \{ L, R \} \gathnext @@ -574,7 +652,9 @@ Merge commits $L$ and $R$ using merge base $M$ ($M < L, M < R$): We will occasionally use $X,Y$ s.t. $\{X,Y\} = \{L,R\}$. \subsection{Conditions} - +\[ \eqn{ Ingredients }{ + M \le L, M \le R +}\] \[ \eqn{ Tip Merge }{ L \in \py \implies \begin{cases} @@ -819,4 +899,11 @@ OK $\qed$ +\subsection{Foreign Contents:} + +xxx use Totally Foreign Contents + +If $\patchof{C} = \bot$, by Foreign Merges +$\patchof{L} = \patchof{R} = \bot$. + \end{document}