X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke-formulae.git;a=blobdiff_plain;f=notation.tex;h=48ea1b7e2ceec9002f67b2d41335e5c227b69f25;hp=04f8c2e7494017f901803559e2340260b5e00625;hb=c497f56e8a7f09c4c328bd7560631d8773b7e676;hpb=d00298b5b6d70bd919824ab8b79d71663f3cdfa6 diff --git a/notation.tex b/notation.tex index 04f8c2e..48ea1b7 100644 --- a/notation.tex +++ b/notation.tex @@ -1,4 +1,7 @@ -\section{Notation} +\stdsection{Notation} + +Throughout, any free variables are implicitly universally quantified +at the outermost level. \begin{basedescript}{ \desclabelwidth{5em} @@ -27,10 +30,19 @@ 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[ $\foreign$ ] +The set of all commits which are not part of a Topbloke branch. We +call these foreign commits. + +\item[ $\set A$, $\set P$, $\ldots$ ] +Arbitrary sets of commits. Maybe $\set P = \p$ i.e.\ some $\py$ or $\pn$, but +maybe not. \item[ $ \patchof{ C } $ ] -Either $\p$ s.t. $ C \in \p $, or $\bot$. +Either $\p$ s.t. $ C \in \p $, or $\foreign$. A function from commits to patches' sets $\p$. \item[ $ \pancsof{C}{\set P} $ ] @@ -49,20 +61,22 @@ $ \pendsof{C}{\pn} = \{ \baseof{C} \} $ where $ C \in \py $. A partial function from commits to commits. See Unique Base, below. +\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_{D \in \py} D \le C $. +$\displaystyle C \zhaspatch \p \land \exists_{F \in \py} F \le C $. ~ Informally, $C$ nontrivially 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$. - -Note that $\zhaspatch$ and $\nothaspatch$ are not mutually exclusive. -$\haspatch$ and $\nothaspatch$ are. +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