X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke-formulae.git;a=blobdiff_plain;f=invariants.tex;h=ac0558a82bd9fd202ba0e308d543801eba8a1b4c;hp=736fb8ee569ed5a2791bfae5b1c817cd95cfaa23;hb=1768ad396360b5f7145450858b4bae1e9d1c7b05;hpb=fd4fcf610bbe38767f7aba836c233bdc46e513e3 diff --git a/invariants.tex b/invariants.tex index 736fb8e..ac0558a 100644 --- a/invariants.tex +++ b/invariants.tex @@ -22,11 +22,16 @@ We maintain these each time we construct a new commit. \\ \bigforall_{C,\p} C \haspatch \p \implies \pendsof{C}{\py} = \{ T \} }\] \[\eqn{Foreign Inclusion}{ - \bigforall_{D \text{ s.t. } \patchof{D} = \foreign} D \isin C \equiv D \leq C + \bigforall_{D \in \foreign} D \isin C \equiv D \leq C }\] -\[\eqn{Foreign Contents}{ - \bigforall_{C \text{ s.t. } \patchof{C} = \foreign} - D \le C \implies \patchof{D} = \foreign +\[\eqn{Foreign Ancestry}{ + \bigforall_{C \in \foreign} + D \le C \implies \isforeign{D} +}\] +\[\eqn{Bases' Children}{ + C \hasparent D \land D \in \pdn + \implies + C \in \pdn \lor C \in \pdy }\] We also assign each new commit $C$ to zero or one of the sets $\p$, as