X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;ds=sidebyside;f=notation.tex;h=966c51ec5cd64a6178b9b11bf50b367218ff77db;hb=891ae7626916bde1eb7dfa38762bbb4d94b85211;hp=1e19122ba76b77fa887775e9bad8827ac28fa9a6;hpb=7dc335c17ae313c006e2283a35ca214b213ffcd9;p=topbloke-formulae.git diff --git a/notation.tex b/notation.tex index 1e19122..966c51e 100644 --- a/notation.tex +++ b/notation.tex @@ -27,7 +27,8 @@ A patch $\p$ consists of two sets of commits $\pn$ and $\py$, which are respectively the base and tip git branches. $\p$ may be used where the context requires a set, in which case the statement is to be taken as applying to both $\py$ and $\pn$. -All of these sets are disjoint. Hence: +All of these sets will be disjoint by construction +(see Invariants, below). Hence: \item[ $ \patchof{ C } $ ] Either $\p$ s.t. $ C \in \p $, or $\bot$. @@ -49,14 +50,23 @@ $ \pendsof{C}{\pn} = \{ \baseof{C} \} $ where $ C \in \py $. A partial function from commits to commits. See Unique Base, below. -\item[ $ C \haspatch \p $ ] -$\displaystyle \bigforall_{D \in \py} D \isin C \equiv D \le C $. -~ Informally, $C$ has all the reachable contents of $\p$. - \item[ $ C \nothaspatch \p $ ] $\displaystyle \bigforall_{D \in \py} D \not\isin C $. ~ Informally, $C$ has none of the contents of $\p$. +\item[ $ C \zhaspatch \p $ ] +$\displaystyle \bigforall_{D \in \py} D \isin C \equiv D \le C $. +~ Informally, $C$ has all the reachable contents of $\p$. + +\item[ $ C \haspatch \p $ ] +$\displaystyle C \zhaspatch \p \land \exists_{F \in \py} F \le C $. +~ Informally, $C$ nontrivially has all the reachable contents of $\p$. + +Note that $\zhaspatch$ and $\nothaspatch$ are neither +mutually exclusive nor exhaustive. +$\haspatch$ and $\nothaspatch$ are mutually exclusive but not +necessarily exhaustive. + Commits on Non-Topbloke branches are $\nothaspatch \p$ for all $\p$. This includes commits on plain git branches made by applying a Topbloke patch. If a Topbloke