3 We maintain these each time we construct a new commit. \\
5 C \has D \implies C \ge D
8 \bigforall_{C \in \py} \pendsof{C}{\pn} = \{ B \}
11 \bigforall_{C \in \py} D \isin C \equiv
12 { D \isin \baseof{C} \lor \atop
13 (D \in \py \land D \le C) }
16 \bigforall_{C \in \pn} D \isin C \implies D \notin \py
19 \bigforall_{C,\p} C \haspatch \p \lor C \nothaspatch \p
22 \bigforall_{C,\p} C \haspatch \p \implies \pendsof{C}{\py} = \{ T \}
24 \[\eqn{Foreign Inclusion}{
25 \bigforall_{D \in \foreign} D \isin C \equiv D \leq C
27 \[\eqn{Foreign Ancestry}{
28 \bigforall_{C \in \foreign}
29 D \le C \implies \isforeign{D}
31 \[\eqn{Bases' Children}{
32 C \hasparent D \land D \in \pdn
34 C \in \pdn \lor C \in \pdy
37 We also assign each new commit $C$ to zero or one of the sets $\p$, as
38 stated in the definition of $\patchof{C}$ in the summary for each kind
41 A commit $C$ which satisfies all of the above is said to be
44 For each operation we will perform which generates a new commit, we
45 will assume the conformance of the existing history and prove the
46 conformance of the new commit.