chiark / gitweb /
wip create base
[topbloke-formulae.git] / article.tex
index 5ee7f9d7c2210830c4ff05415ae5273737ec80f9..9286d604f594c43e9da561d475808d59651d941b 100644 (file)
@@ -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,25 @@ 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 \le C
+   \implies
+    \patchof{D} = \bot
+   \right]
+}\]
+\proof{
+Consider some $D \le C$.  If $D = C$, $\patchof{D} = \bot$ trivially.
+If $D \neq C$ then $D \le A$ where $A \in \set A$.  By Foreign
+Contents of $A$, $\patchof{D} = \bot$.
+}
+
 \subsection{No Replay for Merge Results}
 
 If we are constructing $C$, with,
@@ -440,13 +463,18 @@ $\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$, and in that case Totally
+Foreign Contents applies. $\qed$
+
 \section{Create Base}
 
 Given $L$, create a Topbloke base branch initial commit $B$.
 \gathbegin
  B \hasparents \{ L \}
 \gathnext
- \patchof{B} = \pa{B}
+ \patchof{B} = \pan{B}
 \gathnext
  D \isin B \equiv D \isin L \lor D = B
 \end{gather}
@@ -464,9 +492,9 @@ Given $L$, create a Topbloke base branch initial commit $B$.
 
 If $\patchof{L} = \pa{L}$, trivial by Base Acyclic for $L$.
 
-If $\patchof{L} = \bot$, xxx
-
-Trivial from Base Acyclic for $L$.  $\qed$
+If $\patchof{L} = \bot$, consider some $D \isin B$.  $D \neq B$.
+Thus $D \isin L$.  So by No Replay of $D$ in $L$, $D \le L$.
+Thus $D \le B$.
 
 \subsection{Unique Base}
 
@@ -478,9 +506,29 @@ Not applicable. $\qed$
 
 \subsection{Base Acyclic}
 
-xxx
+Consider some $D \isin B$.  If $D = B$, $D \in \pn$, OK.
+
+If $D \neq B$, $D \isin L$.  By No Replay of $D$ in $L$, $D \le L$.
+Thus by Foreign Contents of $L$, $\patchof{D} = \bot$.  OK.
+
+$\qed$
+
+\subsection{Coherence and Patch Inclusion}
+
+Consider some $D \in \p$.
+$B \not\in \py$ so $D \neq B$.  So $D \isin B \equiv D \isin L$.
+
+Thus $L \haspatch \p \implies B \haspatch P$
+and $L \nothaspatch \p \implies B \nothaspatch P$.
+
+$\qed$.
+
+\subsection{Foreign Inclusion}
+
+Consider some $D$ s.t. $\patchof{D} = \bot$.  $D \neq B$
+so $D \isin B \equiv D \isin L$.
 
-xxx unfinished
+By Foreign Inclusion of $D$ xxx up to here
 
 \section{Create Tip}
 
@@ -598,7 +646,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$.
@@ -609,6 +657,10 @@ 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$:
@@ -654,17 +706,24 @@ We will occasionally use $X,Y$ s.t. $\{X,Y\} = \{L,R\}$.
     \bigforall_{E \in \pendsof{X}{\py}} E \le Y
    \right]
 }\]
+\[ \eqn{ Foreign Merges }{
+    \patchof{L} = \bot \equiv \patchof{R} = \bot
+}\]
 
 \subsection{Non-Topbloke merges}
 
-We require both $\patchof{L} = \bot$ and $\patchof{R} = \bot$.
+We require both $\patchof{L} = \bot$ and $\patchof{R} = \bot$
+(Foreign Merges, above).
 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.
+Merge Ends condition applies.
+
+So a plain git merge of non-Topbloke branches meets the conditions and
+is therefore consistent with our scheme.
 
 \subsection{No Replay}
 
@@ -869,4 +928,10 @@ OK
 
 $\qed$
 
+\subsection{Foreign Contents}
+
+Only relevant if $\patchof{L} = \bot$, in which case
+$\patchof{C} = \bot$ and by Foreign Merges $\patchof{R} = \bot$,
+so Totally Foreign Contents applies.  $\qed$
+
 \end{document}