X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke-formulae.git;a=blobdiff_plain;f=invariants.tex;h=0cac868d3e6b8aaf7de01d375a4a28c8b229d77c;hp=bc3813e6b83593e5d5ad0ad9c2b59c9a0f53d000;hb=42c4989a724e87f211f3a95d68dd2ecbc3100cf9;hpb=69f2ee3b34f1532193e804b1cea77c7542daea4c diff --git a/invariants.tex b/invariants.tex index bc3813e..0cac868 100644 --- a/invariants.tex +++ b/invariants.tex @@ -1,30 +1,30 @@ \section{Invariants} We maintain these each time we construct a new commit. \\ -\[ \eqn{No Replay:}{ +\[ \eqn{No Replay}{ C \has D \implies C \ge D }\] -\[\eqn{Unique Base:}{ +\[\eqn{Unique Base}{ \bigforall_{C \in \py} \pendsof{C}{\pn} = \{ B \} }\] -\[\eqn{Tip Contents:}{ +\[\eqn{Tip Contents}{ \bigforall_{C \in \py} D \isin C \equiv { D \isin \baseof{C} \lor \atop (D \in \py \land D \le C) } }\] -\[\eqn{Base Acyclic:}{ +\[\eqn{Base Acyclic}{ \bigforall_{C \in \pn} D \isin C \implies D \notin \py }\] -\[\eqn{Coherence:}{ +\[\eqn{Coherence}{ \bigforall_{C,\p} C \haspatch \p \lor C \nothaspatch \p }\] -\[\eqn{Unique Tips:}{ - \bigforall_{C,\p} C \haspatch \p \implies \pendsof{C}{\p} = \{ T \} +\[\eqn{Unique Tips}{ + \bigforall_{C,\p} C \haspatch \p \implies \pendsof{C}{\py} = \{ T \} }\] -\[\eqn{Foreign Inclusion:}{ +\[\eqn{Foreign Inclusion}{ \bigforall_{D \text{ s.t. } \patchof{D} = \bot} D \isin C \equiv D \leq C }\] -\[\eqn{Foreign Contents:}{ +\[\eqn{Foreign Contents}{ \bigforall_{C \text{ s.t. } \patchof{C} = \bot} D \le C \implies \patchof{D} = \bot }\]