chiark / gitweb /
wip merge tip contents
[topbloke-formulae.git] / article.tex
index b71b1884bacd8291b3e4c8016453e55b6e910adb..39a12875eb76a7266a477d76063a98ac6e5457de 100644 (file)
@@ -65,8 +65,8 @@
 \newcommand{\patchof}[1]{\patch ( #1 ) }
 \newcommand{\baseof}[1]{\base ( #1 ) }
 
+\newcommand{\eqntag}[2]{ #2 \tag*{\mbox{#1}} }
 \newcommand{\eqn}[2]{ #2 \tag*{\mbox{\bf #1}} }
-\newcommand{\corrolary}[1]{ #1 \tag*{\mbox{\it Corrolary.}} }
 
 %\newcommand{\bigforall}{\mathop{\hbox{\huge$\forall$}}}
 \newcommand{\bigforall}{%
@@ -121,7 +121,7 @@ A patch $\p$ consists of two sets of commits $\pn$ and $\py$, which
 are respectively the base and tip git branches.  $\p$ may be used
 where the context requires a set, in which case the statement
 is to be taken as applying to both $\py$ and $\pn$.
-All these sets are distinct.  Hence:
+None of these sets overlap.  Hence:
 
 \item[ $ \patchof{ C } $ ]
 Either $\p$ s.t. $ C \in \p $, or $\bot$.  
@@ -206,7 +206,7 @@ Ie, the two limbs of the RHS of Tip Contents are mutually exclusive.
 Let $B = \baseof{C}$ in $D \isin \baseof{C}$.  Now $B \in \pn$.
 So by Base Acyclic $D \isin B \implies D \notin \py$.
 }
-\[ \corrolary{
+\[ \eqntag{{\it Corollary - equivalent to Tip Contents}}{
   \bigforall_{C \in \py} D \isin C \equiv
   \begin{cases}
     D \in \py : & D \le C \\
@@ -488,6 +488,11 @@ We will occasionally use $X,Y$ s.t. $\{X,Y\} = \{L,R\}$.
       \text{otherwise} : & \false
    \end{cases}
 }\]
+\[ \eqn{ Merge Acyclic }{
+    L \in \pn
+   \implies
+    R \nothaspatch \p
+}\]
 \[ \eqn{ Removal Merge Ends }{
     X \not\haspatch \p \land
     Y \haspatch \p \land
@@ -614,4 +619,62 @@ Thus $D \isin M$.  By $\merge$, $D \not\isin C$.  OK.
 Consider $D \neq C, M \haspatch P, D \not\isin Y$:
 By $\merge$, $D \not\isin C$.  OK.
 
+$\qed$
+
+\subsection{Base Acyclic}
+
+This applies when $C \in \pn$.
+$C \in \pn$ when $L \in \pn$ so by Merge Acyclic, $R \nothaspatch \p$.
+
+Consider some $D \in \py$.
+
+By Base Acyclic of $L$, $D \not\isin L$.  By the above, $D \not\isin
+R$.  And $D \neq C$.  So $D \not\isin C$.  $\qed$
+
+\subsection{Tip Contents}
+
+xxx up to here
+
+We need worry only about $C \in \py$.  
+And $\patchof{C} = \patchof{L}$
+so $L \in \py$ so $L \haspatch \p$.  We will use the coherence and
+patch inclusion of $C$ as just proved.
+
+Firstly we prove $C \haspatch \p$: If $R \in \py$, this is true by
+coherence/inclusion $C \haspatch \p$.  If $R \not\in \py$ then
+by Tip Merge 
+
+
+We will consider some $D$ and prove the Exclusive Tip Contents form.
+
+
+So by definition of
+$\haspatch$, $D \isin C \equiv D \le C$.  OK.
+
+\subsubsection{For $L \in \py, D \in \py, $:}
+$R \haspatch \p$ so 
+
+\subsubsection{For $L \in \py, D \not\in \py, R \in \py$:}
+
+
+%D \in \py$:}
+
+
+
+xxx the coherence is not that useful ?
+
+$L \haspatch \p$ by 
+
+xxx need to recheck this
+
+$C \in \py$ $C \haspatch P$ so $D \isin C \equiv D \le C$.  OK.
+
+\subsubsection{For $L \in \py, D \not\in \py, R \in \py$:}
+
+Tip Contents for $L$: $D \isin L \equiv D \isin \baseof{L}$.
+
+Tip Contents for $R$: $D \isin R \equiv D \isin \baseof{R}$.
+
+But by Tip Merge, $\baseof{R} \ge \baseof{L}$
+
 \end{document}