chiark / gitweb /
wip traversal
[topbloke-formulae.git] / article.tex
index 052b28b00b62819dc574bb770256bc42a7318355..5df0d91f722c49c48cd097c47bb1a7f650ab52bd 100644 (file)
@@ -26,7 +26,7 @@
 \newcommand{\has}{\sqsupseteq}
 \newcommand{\isin}{\sqsubseteq}
 
 \newcommand{\has}{\sqsupseteq}
 \newcommand{\isin}{\sqsubseteq}
 
-\newcommand{\nothaspatch}{\mathrel{\,\!\not\relax\haspatch}}
+\newcommand{\nothaspatch}{\mathrel{\,\not\!\not\relax\haspatch}}
 \newcommand{\notpatchisin}{\mathrel{\,\not\!\not\relax\patchisin}}
 \newcommand{\haspatch}{\sqSupset}
 \newcommand{\patchisin}{\sqSubset}
 \newcommand{\notpatchisin}{\mathrel{\,\not\!\not\relax\patchisin}}
 \newcommand{\haspatch}{\sqSupset}
 \newcommand{\patchisin}{\sqSubset}
 \newcommand{\py}{\pay{P}}
 \newcommand{\pn}{\pan{P}}
 
 \newcommand{\py}{\pay{P}}
 \newcommand{\pn}{\pan{P}}
 
+\newcommand{\pc}{\pa{C}}
+\newcommand{\pcy}{\pay{C}}
+\newcommand{\pcn}{\pan{C}}
+
+\newcommand{\pd}{\pa{D}}
+\newcommand{\pdy}{\pay{D}}
+\newcommand{\pdn}{\pan{D}}
+
 \newcommand{\pl}{\pa{L}}
 \newcommand{\ply}{\pay{L}}
 \newcommand{\pln}{\pan{L}}
 \newcommand{\pl}{\pa{L}}
 \newcommand{\ply}{\pay{L}}
 \newcommand{\pln}{\pan{L}}
@@ -61,8 +69,8 @@
 %\newcommand{\hasparents}{\underaccent{1}{>}}
 %\newcommand{\hasparents}{{%
 %  \declareslashed{}{_{_1}}{0}{-0.8}{>}\slashed{>}}}
 %\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}}
+\newcommand{\hasparents}{>_{\mkern-7.0mu _{1:}}}
+\newcommand{\areparents}{<_{\mkern-14.0mu _{1:}\mkern+5.0mu}}
 
 \renewcommand{\implies}{\Rightarrow}
 \renewcommand{\equiv}{\Leftrightarrow}
 
 \renewcommand{\implies}{\Rightarrow}
 \renewcommand{\equiv}{\Leftrightarrow}
 \newcommand{\pancsof}[2]{\pancs ( #1 , #2 ) }
 \newcommand{\pendsof}[2]{\pends ( #1 , #2 ) }
 
 \newcommand{\pancsof}[2]{\pancs ( #1 , #2 ) }
 \newcommand{\pendsof}[2]{\pends ( #1 , #2 ) }
 
-\newcommand{\merge}{{\mathcal M}}
-\newcommand{\mergeof}[4]{\merge(#1,#2,#3,#4)}
+%\newcommand{\commitmerge}{\text{\commitmergename}}
+\newcommand{\commitmergeof}[4]{#1 \approx \stmtmergeof{#2}{#3}{#4}}
 %\newcommand{\merge}[4]{{#2 {{\frac{ #1 }{ #3 } #4}}}}
 %\newcommand{\merge}[4]{{#2 {{\frac{ #1 }{ #3 } #4}}}}
+\newcommand{\commitmergename}{Git Merge}
 
 \newcommand{\patch}{{\mathcal P}}
 \newcommand{\base}{{\mathcal B}}
 
 \newcommand{\patch}{{\mathcal P}}
 \newcommand{\base}{{\mathcal B}}
+\newcommand{\depsreq}{{\mathcal G}}
+
+\newcommand{\allsrcs}{\set U}
 
 \newcommand{\patchof}[1]{\patch ( #1 ) }
 \newcommand{\baseof}[1]{\base ( #1 ) }
 
 \newcommand{\patchof}[1]{\patch ( #1 ) }
 \newcommand{\baseof}[1]{\base ( #1 ) }
+\newcommand{\depsreqof}[1]{\depsreq ( #1 ) }
+
+\newcommand{\foreign}{\pa F}
+\newcommand{\isforeign}[1]{#1 \in \foreign}
+
+\newcommand{\allpatches}{\Upsilon}
+\newcommand{\assign}{\leftarrow}
+\newcommand{\iassign}{\leftarrow}
+%\newcommand{\assign}{' =}
+
+\newcommand{\mergeof}[3]{\left\langle #1 \;\middle\langle #2 \middle\rangle\; #3 \right\rangle}
+
+\newcommand{\alg}[1]{\text{\bf #1}}
+\newcommand{\setmerge}{\mergeof{}{}{}}
+\newcommand{\setmergeof}[3]{\mergeof{#1}{#2}{#3}}
+\newcommand{\stmtmergeof}[3]{\mergeof{#1}{#2}{#3}}
+
+%\newcommand{\setmergeof}[3]{\setmerge\left\lgroup #1 \;\middle\lmoustache\; #2 \;\middle\rmoustache\; #3 \right\rgroup}
+%\newcommand{\setmergeof}[3]{\setmerge\left\rmoustache #1 \middle\rmoustache #2 \middle\lmoustache #3 \right\lmoustache}
+%\newcommand{\setmergeof}[3]{\setmerge\left\lfloor #1 \middle\lfloor #2 \middle\rfloor #3 \right\rfloor}
 
 \newcommand{\eqntag}[2]{ #2 \tag*{\mbox{#1}} }
 \newcommand{\eqn}[2]{ #2 \tag*{\mbox{\bf #1}} }
 
 
 \newcommand{\eqntag}[2]{ #2 \tag*{\mbox{#1}} }
 \newcommand{\eqn}[2]{ #2 \tag*{\mbox{\bf #1}} }
 
+\newcommand{\hasdirdep}{\succ_{\mkern-7.0mu _1}}
+\newcommand{\hasdep}{\succ}
+\newcommand{\isdep}{\prec}
+\newcommand{\isdirdep}{\prec_{\mkern-18.0mu _1}{\mkern+10mu}}
+
+\newcommand{\tip}{ T }
+\newcommand{\tipa}[1]{ \tip^{#1} }
+\newcommand{\tipcn}{ \tipa \pcn }
+\newcommand{\tipcy}{ \tipa \pcy }
+\newcommand{\tipdn}{ \tipa \pdn }
+\newcommand{\tipdy}{ \tipa \pdy }
+
 %\newcommand{\bigforall}{\mathop{\hbox{\huge$\forall$}}}
 \newcommand{\bigforall}{%
   \mathop{\mathchoice%
 %\newcommand{\bigforall}{\mathop{\hbox{\huge$\forall$}}}
 \newcommand{\bigforall}{%
   \mathop{\mathchoice%
     {\hbox{\normalsize$\forall$}}%
     {\hbox{\scriptsize$\forall$}}}%
 }
     {\hbox{\normalsize$\forall$}}%
     {\hbox{\scriptsize$\forall$}}}%
 }
+\newcommand{\bigexists}{%
+  \mathop{\mathchoice%
+    {\hbox{\huge$\exists$}}%
+    {\hbox{\Large$\exists$}}%
+    {\hbox{\normalsize$\exists$}}%
+    {\hbox{\scriptsize$\exists$}}}%
+}
 
 \newcommand{\Largeexists}{\mathop{\hbox{\Large$\exists$}}}
 \newcommand{\Largenexists}{\mathop{\hbox{\Large$\nexists$}}}
 
 \newcommand{\Largeexists}{\mathop{\hbox{\Large$\exists$}}}
 \newcommand{\Largenexists}{\mathop{\hbox{\Large$\nexists$}}}
 \newcommand{\proofstarts}{{\it Proof:}}
 \newcommand{\proof}[1]{\proofstarts #1 $\qed$}
 
 \newcommand{\proofstarts}{{\it Proof:}}
 \newcommand{\proof}[1]{\proofstarts #1 $\qed$}
 
+\newcommand{\statement}[2]{\[\eqn{ #1 }{ #2 }\]}
+
 \newcommand{\gathbegin}{\begin{gather} \tag*{}}
 \newcommand{\gathnext}{\\ \tag*{}}
 
 \newcommand{\gathbegin}{\begin{gather} \tag*{}}
 \newcommand{\gathnext}{\\ \tag*{}}
 
 
 \begin{document}
 
 
 \begin{document}
 
+\chapter{Data model}
+
 \input{notation.tex}
 \input{invariants.tex}
 \input{lemmas.tex}
 \input{notation.tex}
 \input{invariants.tex}
 \input{lemmas.tex}
 \input{create-tip.tex}
 \input{anticommit.tex}
 \input{merge.tex}
 \input{create-tip.tex}
 \input{anticommit.tex}
 \input{merge.tex}
+\input{pseudomerge.tex}
+
+\chapter{Update strategy}
+
+\input{strategy.tex}
+\input{ranking.tex}
+\input{trav-alg.tex}
+\input{trav-proofs.tex}
 
 \end{document}
 
 \end{document}