X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke-formulae.git;a=blobdiff_plain;f=article.tex;h=4e4a75e3da95ab850d6d64d180225ebc41c8fbc0;hp=e8f44b514c2f188281bc8f0a4ad985d6c10377fc;hb=6ee81e455482807431ddfb06b9045e01d0fc9da1;hpb=e699df403adb72f770cc724de5e6e4128d576bb4 diff --git a/article.tex b/article.tex index e8f44b5..4e4a75e 100644 --- a/article.tex +++ b/article.tex @@ -3,14 +3,23 @@ \usepackage{stmaryrd} \usepackage{slashed} \usepackage{txfonts} -\begin{document} +\usepackage{amsfonts} +%\usepackage{accents} + +\renewcommand{\ge}{\geqslant} +\renewcommand{\le}{\leqslant} + +\newcommand{\has}{\sqsupseteq} +\newcommand{\isin}{\sqsubseteq} + \newcommand{\nothaspatch}{{% \declareslashed{}{\sslash}{-0.04}{0}{\Sqsupset}\slashed{\Sqsupset}}} -\newcommand{\notinpatch}{{% +\newcommand{\notpatchisin}{{% \declareslashed{}{\sslash}{-0.04}{0}{\Sqsubset}\slashed{\Sqsubset}}} \newcommand{\haspatch}{\Sqsupset} -\newcommand{\inpatch}{\Sqsubset} +\newcommand{\patchisin}{\Sqsubset} +\newcommand{\set}[1]{\mathbb #1} \newcommand{\pa}[1]{\varmathbb #1} \newcommand{\pay}[1]{\pa{#1}^+} \newcommand{\pan}[1]{\pa{#1}^-} @@ -19,18 +28,37 @@ \newcommand{\py}{\pay{P}} \newcommand{\pn}{\pan{P}} -sponge -$ A \sqsubseteq B $ -$ A \not \sqsubseteq B $ -$ A \nsqsubseteq B $ -$ A \Sqsubset B $ -$ A \Sqsupset B $ -$ A \haspatch B $ -$ A \nothaspatch B $ -$ A \inpatch B $ -$ A \notinpatch B $ -$ A \nothaspatch \pa{C} $ -$ A \nothaspatch \py $ -$ A \nothaspatch \p_C^+ $ -$ A \nothaspatch \pan{C} $ +%\newcommand{\hasparents}{\underaccent{1}{>}} +%\newcommand{\hasparents}{{% +% \declareslashed{}{_{_1}}{0}{-0.8}{>}\slashed{>}}} +\newcommand{\hasparents}{>_{\mkern-7.0mu _1}} +\newcommand{\areparents}{<_{\mkern-14.0mu _1\mkern+5.0mu}} + +\renewcommand{\implies}{\Rightarrow} + +\setlength{\parindent}{0pt} + +\begin{document} + +\section{Notation} + +$ C \hasparents \set X $ The parents of commit $C$ are exactly the set +$\set X$. + +$ C \ge D $ $C$ is a descendant of $D$ in the git commit +graph. This is a partial order, namely the transitive closure of +$ D \in \set X $ where $ C \hasparents \set X $. + +$ C \has D $ Informally, the tree at commit $C$ contains the change +made in commit $D$. Does not take account of deliberate reversions by +the user or in non-Topbloke-controlled branches; these are considered +normal, forward, commits. For merges and Topbloke-generated +anticommits, the ``change made'' is only to be thought of as any +conflict resolution. This is not a partial order because it is not +transitive. + +\section{Invariants} + +No rewind/replay: $ C \has D \implies C \ge D $ + \end{document}