chiark / gitweb /
strategy: define O^P^-
[topbloke-formulae.git] / article.tex
1 \documentclass[a4paper,leqno]{strayman}
2 \errorcontextlines=50
3 \let\numberwithin=\notdef
4 \usepackage{amsmath}
5 \usepackage{mathabx}
6 \usepackage{txfonts}
7 \usepackage{amsfonts}
8 \usepackage{eufrak}
9 \usepackage{mdwlist}
10 \usepackage{hyperref}
11 %\usepackage{lastpage}
12 %\usepackage{accents}
13
14 \usepackage{fancyhdr}
15 \pagestyle{fancyplain}
16 \rhead[\rightmark]{}
17 \lhead[]{\rightmark}
18 \rfoot[\thepage]{\input{revid.inc}}
19 \lfoot[\input{revid.inc}]{\thepage}
20
21 \let\stdsection\section
22 \renewcommand\section{\newpage\stdsection}
23
24 \renewcommand{\ge}{\geqslant}
25 \renewcommand{\le}{\leqslant}
26 \newcommand{\nge}{\ngeqslant}
27 \newcommand{\nle}{\nleqslant}
28
29 \newcommand{\has}{\sqsupseteq}
30 \newcommand{\isin}{\sqsubseteq}
31
32 \newcommand{\nothaspatch}{\mathrel{\,\not\!\not\relax\haspatch}}
33 \newcommand{\notpatchisin}{\mathrel{\,\not\!\not\relax\patchisin}}
34 \newcommand{\haspatch}{\sqSupset}
35 \newcommand{\patchisin}{\sqSubset}
36 %\newcommand{\zhaspatch}{\mathrel{\underset{\fullmoon}\sqSupset}}
37 \newcommand{\zhaspatch}{\mathrel{\sqSupset_\varnothing\mkern-4mu}}
38
39         \newif\ifhidehack\hidehackfalse
40         \DeclareRobustCommand\hidefromedef[2]{%
41           \hidehacktrue\ifhidehack#1\else#2\fi\hidehackfalse}
42         \newcommand{\pa}[1]{\hidefromedef{\varmathbb{#1}}{#1}}
43
44 \newcommand{\stmt}[1]{\mathfrak{#1}}
45
46 \newcommand{\set}[1]{\mathbb{#1}}
47 \newcommand{\pay}[1]{\pa{#1}^+}
48 \newcommand{\pan}[1]{\pa{#1}^-}
49
50 \newcommand{\p}{\pa{P}}
51 \newcommand{\py}{\pay{P}}
52 \newcommand{\pn}{\pan{P}}
53
54 \newcommand{\pc}{\pa{C}}
55 \newcommand{\pcy}{\pay{C}}
56 \newcommand{\pcn}{\pan{C}}
57
58 \newcommand{\pd}{\pa{D}}
59 \newcommand{\pdy}{\pay{D}}
60 \newcommand{\pdn}{\pan{D}}
61
62 \newcommand{\pl}{\pa{L}}
63 \newcommand{\ply}{\pay{L}}
64 \newcommand{\pln}{\pan{L}}
65
66 \newcommand{\pq}{\pa{Q}}
67 \newcommand{\pqy}{\pay{Q}}
68 \newcommand{\pqn}{\pan{Q}}
69
70 \newcommand{\pr}{\pa{R}}
71 \newcommand{\pry}{\pay{R}}
72 \newcommand{\prn}{\pan{R}}
73
74 %\newcommand{\hasparents}{\underaccent{1}{>}}
75 %\newcommand{\hasparents}{{%
76 %  \declareslashed{}{_{_1}}{0}{-0.8}{>}\slashed{>}}}
77 \newcommand{\hasparent}{>_{\mkern-7.0mu _{1}}}
78 \newcommand{\isparent}{<_{\mkern-18.0mu _{1}\mkern+9.0mu}}
79
80 \newcommand{\hasparents}{>_{\mkern-7.0mu _{1:}}}
81 \newcommand{\areparents}{<_{\mkern-14.0mu _{1:}\mkern+5.0mu}}
82
83 \renewcommand{\implies}{\Rightarrow}
84 \renewcommand{\equiv}{\Leftrightarrow}
85 \renewcommand{\nequiv}{\nLeftrightarrow}
86 \renewcommand{\land}{\wedge}
87 \renewcommand{\lor}{\vee}
88
89 \newcommand{\pancs}{{\mathcal A}}
90 \newcommand{\pends}{{\mathcal E}}
91
92 \newcommand{\pancsof}[2]{\pancs ( #1 , #2 ) }
93 \newcommand{\pendsof}[2]{\pends ( #1 , #2 ) }
94
95 %\newcommand{\commitmerge}{\text{\commitmergename}}
96 \newcommand{\commitmergeof}[4]{#1 \has \stmtmergeof{#2}{#3}{#4}}
97 %\newcommand{\merge}[4]{{#2 {{\frac{ #1 }{ #3 } #4}}}}
98 \newcommand{\commitmergename}{Git Merge}
99
100 \newcommand{\patch}{{\mathcal P}}
101 \newcommand{\base}{{\mathcal B}}
102 \newcommand{\depsreq}{{\mathcal G}}
103
104 \newcommand{\allsrcs}{\set U}
105 \newcommand{\allreach}{\set O}
106 \newcommand{\allreachof}[1]{\set O^{#1}}
107
108 \newcommand{\patchof}[1]{\patch ( #1 ) }
109 \newcommand{\baseof}[1]{\base ( #1 ) }
110 \newcommand{\depsreqof}[1]{\depsreq ( #1 ) }
111
112 \newcommand{\foreign}{\pa F}
113 \newcommand{\isforeign}[1]{#1 \in \foreign}
114
115 \newcommand{\allpatches}{\Upsilon}
116 \newcommand{\assign}{\leftarrow}
117 \newcommand{\iassign}{\leftarrow}
118 %\newcommand{\assign}{' =}
119
120 \newcommand{\mergeof}[3]{\left\langle #1 \;\middle\langle #2 \middle\rangle\; #3 \right\rangle}
121
122 \newcommand{\alg}[1]{\text{\bf #1}}
123 \newcommand{\setmerge}{\mergeof{}{}{}}
124 \newcommand{\setmergeof}[3]{\mergeof{#1}{#2}{#3}}
125 \newcommand{\stmtmergeof}[3]{\mergeof{#1}{#2}{#3}}
126
127 %\newcommand{\setmergeof}[3]{\setmerge\left\lgroup #1 \;\middle\lmoustache\; #2 \;\middle\rmoustache\; #3 \right\rgroup}
128 %\newcommand{\setmergeof}[3]{\setmerge\left\rmoustache #1 \middle\rmoustache #2 \middle\lmoustache #3 \right\lmoustache}
129 %\newcommand{\setmergeof}[3]{\setmerge\left\lfloor #1 \middle\lfloor #2 \middle\rfloor #3 \right\rfloor}
130
131 \newcommand{\eqntag}[2]{ #2 \tag*{\mbox{#1}} }
132 \newcommand{\eqn}[2]{ #2 \tag*{\mbox{\bf #1}} }
133
134 \newcommand{\hasdirdep}{\succ_{\mkern-7.0mu _1}}
135 \newcommand{\hasdep}{\succ}
136 \newcommand{\isdep}{\prec}
137 \newcommand{\isdirdep}{\prec_{\mkern-18.0mu _1}{\mkern+10mu}}
138
139 \newcommand{\tip}{ T }
140 \newcommand{\tipa}[1]{ \tip^{#1} }
141 \newcommand{\tipcn}{ \tipa \pcn }
142 \newcommand{\tipcy}{ \tipa \pcy }
143 \newcommand{\tipdn}{ \tipa \pdn }
144 \newcommand{\tipdy}{ \tipa \pdy }
145
146 \newcommand{\tippn}{ \tipa \pn }
147 \newcommand{\tippy}{ \tipa \py }
148
149 %\newcommand{\bigforall}{\mathop{\hbox{\huge$\forall$}}}
150 \newcommand{\bigforall}{%
151   \mathop{\mathchoice%
152     {\hbox{\huge$\forall$}}%
153     {\hbox{\Large$\forall$}}%
154     {\hbox{\normalsize$\forall$}}%
155     {\hbox{\scriptsize$\forall$}}}%
156 }
157 \newcommand{\bigexists}{%
158   \mathop{\mathchoice%
159     {\hbox{\huge$\exists$}}%
160     {\hbox{\Large$\exists$}}%
161     {\hbox{\normalsize$\exists$}}%
162     {\hbox{\scriptsize$\exists$}}}%
163 }
164
165 \newcommand{\Largeexists}{\mathop{\hbox{\Large$\exists$}}}
166 \newcommand{\Largenexists}{\mathop{\hbox{\Large$\nexists$}}}
167
168 \newcommand{\qed}{\square}
169 \newcommand{\proofstarts}{{\it Proof:}}
170 \newcommand{\proof}[1]{\proofstarts #1 $\qed$}
171
172 \newcommand{\commitproof}[1]{{\bf Proof of commit generation conditions:}
173  #1 $\qed$}
174 \newcommand{\condproof}[2]{
175
176 {\it #1:} #2
177
178 }
179
180 \newcommand{\statement}[2]{\[\eqn{ #1 }{ #2 }\]}
181
182 \newcommand{\gathbegin}{\begin{gather} \tag*{}}
183 \newcommand{\gathnext}{\\ \tag*{}}
184
185 \newcommand{\true}{t}
186 \newcommand{\false}{f}
187
188 \begin{document}
189
190 \chapter{Data model}
191
192 \input{notation.tex}
193 \input{invariants.tex}
194 \input{lemmas.tex}
195 \input{annotations.tex}
196
197 \input{simple.tex}
198 \input{create-base.tex}
199 \input{create-tip.tex}
200 \input{anticommit.tex}
201 \input{merge.tex}
202 \input{pseudomerge.tex}
203
204 \chapter{Update strategy}
205
206 \input{strategy.tex}
207 \input{ranking.tex}
208 \input{traversal.tex}
209
210 %\AtEndDocument{\par\bigskip\centerline{\Large\bfseries Document ends here}}
211
212 \par$\bigboxdot$
213
214 \end{document}