\newcommand{\depsreq}{{\mathcal G}}
\newcommand{\allsrcs}{\set U}
+\newcommand{\allreach}{\set O}
+\newcommand{\allreachof}[1]{\set O^{#1}}
\newcommand{\patchof}[1]{\patch ( #1 ) }
\newcommand{\baseof}[1]{\base ( #1 ) }
\newcommand{\tipdn}{ \tipa \pdn }
\newcommand{\tipdy}{ \tipa \pdy }
+\newcommand{\tippy}{ \tipa \py }
+
%\newcommand{\bigforall}{\mathop{\hbox{\huge$\forall$}}}
\newcommand{\bigforall}{%
\mathop{\mathchoice%
all the appropriate commits (and the appropriate other patches),
as generated by the Traversal phase of the update algorithm.
-\end{basedescript}
-
-\stdsection{ WIP tip satisfaction, reachable commits }
-
-Set of all reachable commits, O.
+\item[ $\allreach$ ]
+The set of all reachable commits.
A reachable commit is one we might refer to explicitly in any of these
algorithms, and any ancestor of such a commit. We explicitly
-enumerate all of the input commits (U), so the reachable commits are
-originally the input commits and their ancestors. Each commit we
-generate will have reachable commits as ancestors so when we generate
-a new commit we only add that new commit to O.
+enumerate all of the input commits ($\allsrcs$), so the reachable
+commits are originally the input commits and their ancestors.
+
+$\allreach$ varies over time as we generate more commits. Each
+commit we generate will have only reachable commits as ancestors, so
+generating a new commit (only) adds that new commit to $\allreach$.
-So O varies over time as we generate more commits. We write O_py for
-the set of reachable commits at the point where we have just generated
-T_py, ie jusjt after Merge-Tip(P).
+\item[ $\allreachof{\py}$ ]
+The set of reachable commits at the point where we have just generated
+$\tippy$, i.e. just after $\alg{Merge-Tip}(\p)$.
+
+\end{basedescript}
+
+\stdsection{ WIP tip satisfaction, reachable commits }
We preserve/ensure
- Tip_Py >= pendsof( O_py, Py )
-(Tip_py is computed during traversal for the patch P)
+$$ \tippy >= \pendsof{\allreach_{\py}}{\py} $$
+($\tippy$ is computed during traversal for the patch $\p$)
We ensure this property by:
- we do not generate any commits for py other than
\equiv
\pa E \isdep \pc
}
-\statement{Tip Exceeds Inputs}{
+\statement{Tip Covers Inputs}{
\tipcy \ge \pendsof{\allsrcs}{\pcy}
}
-\statement{Base Exceeds Inputs' Bases}{
+\statement{Base Covers Inputs' Bases}{
\bigforall_{E \in \pendsof{\allsrcs}{\pcy}} \tipcn \ge \baseof{E}
}
-\statement{Base Exceeds Base Inputs}{
+\statement{Base Covers Base Inputs}{
\bigforall_{H \in \set H^{\pn}} \tipcn \ge H
}