chiark / gitweb /
wip dependency insertion
[topbloke-formulae.git] / article.tex
index 70cee81c53af81cdb11eec8d0d49a47b73ff049b..0615616f7d429a2817d9075b51c78298ce9bc411 100644 (file)
@@ -657,10 +657,11 @@ Simple Foreign Inclusion applies.  $\qed$
 
 Not applicable.
 
-\section{Anticommit}
+\section{Dependency Removal}
 
 Given $L$ which contains $\pr$ as represented by $R^+, R^-$.
-Construct $C$ which has $\pr$ removed.
+Construct $C$ which has $\pr$ removed by applying a single
+commit which is the anticommit of $\pr$.
 Used for removing a branch dependency.
 \gathbegin
  C \hasparents \{ L \}
@@ -676,7 +677,7 @@ Used for removing a branch dependency.
 R^+ \in \pry \land R^- = \baseof{R^+}
 }\]
 \[ \eqn{ Into Base }{
- L \in \pn
+ L \in \pqn
 }\]
 \[ \eqn{ Unique Tip }{
  \pendsof{L}{\pry} = \{ R^+ \}
@@ -696,7 +697,7 @@ is a descendant, not an ancestor, of the 2nd parent.)
 
 \subsection{No Replay}
 
-By definition of $\merge$,
+By $\merge$,
 $D \isin C \implies D \isin L \lor D \isin R^- \lor D = C$.
 So, by Ordering of Ingredients,
 Ingredients Prevent Replay applies.  $\qed$
@@ -712,7 +713,8 @@ Trivially $D \isin C$.  OK.
 
 \subsubsection{For $D \neq C, D \not\le L$:}
 
-By No Replay $D \not\isin L$.  Also $D \not\le R^-$ hence
+By No Replay for $L$, $D \not\isin L$.
+Also, by Ordering of Ingredients, $D \not\le R^-$ hence
 $D \not\isin R^-$.  Thus $D \not\isin C$.  OK.
 
 \subsubsection{For $D \neq C, D \le L, D \in \pry$:}
@@ -723,7 +725,7 @@ By Tip Self Inpatch for $R^+$, $D \isin R^+ \equiv D \le R^+$, but by
 by Unique Tip, $D \le R^+ \equiv D \le L$.
 So $D \isin R^+$.
 
-By Base Acyclic, $D \not\isin R^-$.
+By Base Acyclic for $R^-$, $D \not\isin R^-$.
 
 Apply $\merge$: $D \not\isin C$.  OK.
 
@@ -737,7 +739,7 @@ $\qed$
 
 \subsection{Unique Base}
 
-Into Base means that $C \in \pn$, so Unique Base is not
+Into Base means that $C \in \pqn$, so Unique Base is not
 applicable. $\qed$
 
 \subsection{Tip Contents}
@@ -746,11 +748,11 @@ Again, not applicable. $\qed$
 
 \subsection{Base Acyclic}
 
-By Base Acyclic for $L$, $D \isin L \implies D \not\in \py$.
-And by Into Base $C \not\in \py$.
+By Into Base and Base Acyclic for $L$, $D \isin L \implies D \not\in \pqy$.
+And by Into Base $C \not\in \pqy$.
 Now from Desired Contents, above, $D \isin C
 \implies D \isin L \lor D = C$, which thus
-$\implies D \not\in \py$.  $\qed$.
+$\implies D \not\in \pqy$.  $\qed$.
 
 \subsection{Coherence and Patch Inclusion}
 
@@ -787,6 +789,67 @@ $\qed$
 
 Not applicable.
 
+\section{Dependency Insertion}
+
+Given $L$ construct $C$ which additionally
+contains $\pr$ as represented by $R^+$ and $R^-$.
+This may even be used for reintroducing a previous-removed branch
+dependency.
+\gathbegin
+ C \hasparents \{ L, R^+ \}
+\gathnext
+ \patchof{C} = \patchof{L}
+\gathnext
+ \mergeof{C}{L}{R^-}{R^+}
+\end{gather}
+
+\subsection{Conditions}
+
+\[ \eqn{ Ingredients }{
+ R^- = \baseof{R^+}
+}\]
+\[ \eqn{ Into Base }{
+ L \in \pqn
+}\]
+\[ \eqn{ Currently Excluded }{
+ L \nothaspatch \pry
+}\]
+\[ \eqn{ Insertion Acyclic }{
+ R^+ \nothaspatch \pq
+}\]
+
+\subsection{No Replay}
+
+By $\merge$,
+$D \isin C \implies D \isin L \lor D \isin R^+ \lor D = C$.
+So Ingredients Prevent Replay applies. $\qed$
+
+\subsection{Unique Base}
+
+Not applicable.
+
+\subsection{Tip Contents}
+
+Not applicable.
+
+\subsection{Base Acyclic}
+
+Consider some $D \isin C$.  We will show that $D \not\in \pqy$.
+By $\merge$, $D \isin L \lor D \isin R^+ \lor D = C$.
+
+For $D \isin L$, Base Acyclic for L suffices.  For $D \isin R^+$,
+Insertion Acyclic suffices.  For $D = C$, trivial.  $\qed$.
+
+\subsection{Coherence}
+
+We consider some $D \in \py$.
+
+\subsubsection{For $\p = \pq$:}
+
+xxx up to here
+
+$D \not\isin L$, $D \not\isin $
+
 \section{Merge}
 
 Merge commits $L$ and $R$ using merge base $M$: