chiark / gitweb /
traversal: wip prove Recreate Base Beginning OK, currently need to prove Tip Correct...
[topbloke-formulae.git] / trav-proofs.tex
index 14f6cd8942edbc6af512430fa6be7042948d2218..3c2a1754cd8991bcc8cd1c4877812297cc9cdbd4 100644 (file)
@@ -3,5 +3,56 @@
 For each operation called for by the traversal algorithms, we prove
 that the commit generation preconditions are met.
 
+WIP WHAT ABOUT PROVING ALL THE TRAVERSAL RESULTS
+
+\subsection{Traversal Lemmas}
+
+Firstly, some lemmas.
+
+\statement{Tip Correct Contents}{
+  \tipcy \haspatch \pd
+    \equiv
+  \pc = \pd \lor \pc \hasdep \pd
+}
+\proof{
+   WIP
+}
+
+\subsection{Base Dependency Merge, Base Sibling Merge}
+
+We do not prove that the preconditions are met.  Instead, we check
+them at runtime.  If they turn out not to be met, we abandon
+\alg{Merge-Base} and resort to \alg{Recreate-Base}.
+
+TODO COMPLETE MERGE-BASE STUFF
+
+WIP WHAT ABOUT PROVING ALL THE TRAVERSAL RESULTS
+
+\subsection{Recreate Base Beginning}
+
+\subsubsection{Create Acyclic}
+
+$L = \tipdy$ so
+
 \subsection{Tip Base Merge}
 
+$L = W$, $R = \tipcn$.
+
+TODO TBD
+
+Afterwards, $\baseof{W} = \tipcn$.
+
+\subsection{Tip Source Merge}
+
+In fact, we do this backwards: $L = S$, $R = W$.  Since $S \in \pcy$,
+the resulting $C \in \pcy$ and the remaining properties of the Merge
+commit construction are symmetrical in $L$ and $R$ so this is fine.
+
+By the results of Tip Base Merge, $\baseof{W} = \tipcn$.
+
+By Base Ends Supreme, $\tipcn \ge \baseof{S}$ i.e.
+$\baseof{R} \ge \baseof{L}$.
+
+Either $\baseof{L} = \baseof{M}$, or we must choose a different $M$ in
+which case $M = \baseof{S}$ will suffice.
+