chiark / gitweb /
lemma calculation of ends, no proof yet
[topbloke-formulae.git] / article.tex
index 32f79205a8567f3d0efbfded7c9d8d889ff3baa1..07058aa87174419ef9bb1ac115cf8e0f9ac03c90 100644 (file)
@@ -59,6 +59,8 @@
     {\hbox{\scriptsize$\forall$}}}%
 }
 
+\newcommand{\Largeexists}{\mathop{\hbox{\Large$\exists$}}}
+\newcommand{\Largenexists}{\mathop{\hbox{\Large$\nexists$}}}
 
 \newcommand{\qed}{\square}
 \newcommand{\proof}[1]{{\it Proof.} #1 $\qed$}
@@ -114,7 +116,7 @@ which are in $\set P$.
 \item[ $ \pendsof{C}{\set P} $ ]
 $ \{ E \; | \; E \in \pancsof{C}{\set P}
   \land \mathop{\not\exists}_{A \in \pancsof{C}{\set P}}
-  A \neq E \land E \le A \} $ 
+  E \neq A \land E \le A \} $ 
 i.e. all $\le$-maximal commits in $\pancsof{C}{\set P}$.
 
 \item[ $ \baseof{C} $ ]
@@ -217,6 +219,17 @@ in which case we repeat for $A'$.  Since there are finitely many
 commits, this terminates with $A'' \in \pends()$, ie $A'' \le M$
 by the LHS.  And $A \le A''$.
 }
+\[ \eqn{Calculation Of Ends:}{
+  \bigforall_{C \hasparents \set A}
+    \pendsof{C}{\set P} =
+       \Bigl\{ E \Big|
+           \Bigl[ \Largeexists_{A \in \set A} 
+                       E \in \pendsof{A}{\set P} \Bigr] \land
+           \Bigl[ \Largenexists_{B \in \set A} 
+                       E \neq B \land E \le B \Bigr]
+       \Bigr\}
+}\]
+XXX proof TBD.
 
 \section{Commit annotation}
 
@@ -318,7 +331,7 @@ $D \isin C \equiv D \isin A \equiv D \le A \equiv D \le C$.  $\qed$
 
 \section{Merge}
 
-Given commits $L$, $R$, $M$:
+Merge commits $L$ and $R$ using merge base $M$ ($M < L, M < R$):
 \gathbegin
  C \hasparents \{ L, R \}
 \gathnext
@@ -332,9 +345,42 @@ Given commits $L$, $R$, $M$:
   \end{cases}
 \end{gather}
 
-Conditions
-\gathbegin
- M < L, M < R
-\end{gather}
+\subsection{Conditions}
+
+\[ \eqn{ Tip Merge }{
+ L \in \py \implies
+   \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}
+}\]
+
+\subsection{No Replay}
+
+\subsubsection{For $D=C$:} $D \isin C, D \le C$.  OK.
+
+\subsubsection{For $D \isin L \land D \isin R$:}
+$D \isin C$.  And $D \isin L \implies D \le L \implies D \le C$.  OK.
+
+\subsubsection{For $D \neq C \land D \not\isin L \land D \not\isin R$:}
+$D \not\isin C$.  OK.
+
+\subsubsection{For $D \neq C \land D \not\isin L \land D \not\isin R$:}
+$D \not\isin C$.  OK.
+
+\subsubsection{For $D \neq C \land (D \isin L \equiv D \not\isin R)
+ \land D \not\isin M$:}
+$D \isin C$.  Also $D \isin L \lor D \isin R$ so $D \le L \lor D \le
+R$ so $D \le C$.  OK.
+
+\subsubsection{For $D \neq C \land (D \isin L \equiv D \not\isin R)
+ \land D \isin M$:}
+$D \not\isin C$.  Also $D \isin L \lor D \isin R$ so $D \le L \lor D \le
+R$ so $D \le C$.  OK.
+
+$\qed$
 
 \end{document}