X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke-formulae.git;a=blobdiff_plain;f=lemmas.tex;h=937398207615e337585cdf7773d0c33f66f6a9f6;hp=7d72e543db6d40a9e8e59d8b03989a2007500e08;hb=0853ae723fa4d36f9033ddef7ca3871f8cec6d83;hpb=3b81991eea75c33566f4948506277ef61b058d1c diff --git a/lemmas.tex b/lemmas.tex index 7d72e54..9373982 100644 --- a/lemmas.tex +++ b/lemmas.tex @@ -53,10 +53,10 @@ So by Base Acyclic $D \isin B \implies D \notin \py$. \end{cases} }\] -\subsection{Tip Self Inpatch} +\subsection{Tip Own Contents} Given Base Acyclic for $C$, $$ - \bigforall_{C \in \py} C \haspatch \p \land \neg[ C \nothaspatch \p ] + \bigforall_{C \in \py} C \haspatch \p $$ Ie, tip commits contain their own patch. @@ -64,8 +64,8 @@ Ie, tip commits contain their own patch. Apply Exclusive Tip Contents to some $D \in \py$: $ \bigforall_{C \in \py}\bigforall_{D \in \py} D \isin C \equiv D \le C $. -Thus $C \haspatch \p$. -And, since $C \le C$, $C \isin C$. Therefore $\neg[ C \nothaspatch \p ]$ +Thus $C \zhaspatch \p$. +And we can set $F=C$ giving $F \in \py \land F \le C$, so $C \haspatch \p$. } \subsection{Exact Ancestors} @@ -103,13 +103,13 @@ $$ \bigforall_{C \hasparents \set A} \pendsof{C}{\set P} = \begin{cases} - C \in \p : & \{ C \} + C \in \set P : & \{ C \} \\ - C \not\in \p : & \displaystyle + C \not\in \set P : & \displaystyle \left\{ E \Big| \Bigl[ \Largeexists_{A \in \set A} E \in \pendsof{A}{\set P} \Bigr] \land - \Bigl[ \Largenexists_{B \in \set A, F \in \pendsof{B}{\p}} + \Bigl[ \Largenexists_{B \in \set A, F \in \pendsof{B}{\set P}} E \neq F \land E \le F \Bigr] \right\} \end{cases} @@ -117,14 +117,31 @@ $$ \proof{ Trivial for $C \in \set P$. For $C \not\in \set P$, $\pancsof{C}{\set P} = \bigcup_{A \in \set A} \pancsof{A}{\set P}$. -So $\pendsof{C}{\set P} \subset \bigcup_{E in \set E} \pendsof{E}{\set P}$. +So $\pendsof{C}{\set P} \subset \bigcup_{E \in \set E} \pendsof{E}{\set P}$. Consider some $E \in \pendsof{A}{\set P}$. If $\exists_{B,F}$ as specified, then either $F$ is going to be in our result and disqualifies $E$, or there is some other $F'$ (or, eventually, -an $F''$) which disqualifies $F$. +an $F''$) which disqualifies $F$ and $E$. Otherwise, $E$ meets all the conditions for $\pends$. } +\subsection{Single Parent Unique Tips} + +Unique Tips is satisfied for single-parent commits. Formally, +given a conformant commit $A$, +$$ + \Big[ + C \hasparents \{ A \} + \Big] \implies \left[ + \bigforall_{P \patchisin C} \pendsof{C}{\py} = \{ T \} + \right] +$$ +\proof{ + Trivial for $C \in \py$. + For $C \not\in \py$, $\pancsof{C}{\py} = \pancsof{A}{\py}$, + so Unique Tips of $A$ suffices. +} + \subsection{Ingredients Prevent Replay} Given conformant commits $A \in \set A$, $$