chiark / gitweb /
6ea245aca456a263a6454b654225a2b0d4eb4dfc
[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{mdwlist}
9 %\usepackage{accents}
10
11 \usepackage{fancyhdr}
12 \pagestyle{fancy}
13 \rhead[\rightmark]{}
14 \lhead[]{\rightmark}
15 \rfoot[\thepage]{\input{revid.inc}}
16 \lfoot[\input{revid.inc}]{\thepage}
17
18 \let\stdsection\section
19 \renewcommand\section{\newpage\stdsection}
20
21 \renewcommand{\ge}{\geqslant}
22 \renewcommand{\le}{\leqslant}
23 \newcommand{\nge}{\ngeqslant}
24 \newcommand{\nle}{\nleqslant}
25
26 \newcommand{\has}{\sqsupseteq}
27 \newcommand{\isin}{\sqsubseteq}
28
29 \newcommand{\nothaspatch}{\mathrel{\,\not\!\not\relax\haspatch}}
30 \newcommand{\notpatchisin}{\mathrel{\,\not\!\not\relax\patchisin}}
31 \newcommand{\haspatch}{\sqSupset}
32 \newcommand{\patchisin}{\sqSubset}
33 %\newcommand{\zhaspatch}{\mathrel{\underset{\fullmoon}\sqSupset}}
34 \newcommand{\zhaspatch}{\mathrel{\sqSupset_\varnothing\mkern-4mu}}
35
36         \newif\ifhidehack\hidehackfalse
37         \DeclareRobustCommand\hidefromedef[2]{%
38           \hidehacktrue\ifhidehack#1\else#2\fi\hidehackfalse}
39         \newcommand{\pa}[1]{\hidefromedef{\varmathbb{#1}}{#1}}
40
41 \newcommand{\set}[1]{\mathbb{#1}}
42 \newcommand{\pay}[1]{\pa{#1}^+}
43 \newcommand{\pan}[1]{\pa{#1}^-}
44
45 \newcommand{\p}{\pa{P}}
46 \newcommand{\py}{\pay{P}}
47 \newcommand{\pn}{\pan{P}}
48
49 \newcommand{\pc}{\pa{C}}
50 \newcommand{\pcy}{\pay{C}}
51 \newcommand{\pcn}{\pan{C}}
52
53 \newcommand{\pd}{\pa{D}}
54 \newcommand{\pdy}{\pay{D}}
55 \newcommand{\pdn}{\pan{D}}
56
57 \newcommand{\pl}{\pa{L}}
58 \newcommand{\ply}{\pay{L}}
59 \newcommand{\pln}{\pan{L}}
60
61 \newcommand{\pq}{\pa{Q}}
62 \newcommand{\pqy}{\pay{Q}}
63 \newcommand{\pqn}{\pan{Q}}
64
65 \newcommand{\pr}{\pa{R}}
66 \newcommand{\pry}{\pay{R}}
67 \newcommand{\prn}{\pan{R}}
68
69 %\newcommand{\hasparents}{\underaccent{1}{>}}
70 %\newcommand{\hasparents}{{%
71 %  \declareslashed{}{_{_1}}{0}{-0.8}{>}\slashed{>}}}
72 \newcommand{\hasparents}{>_{\mkern-7.0mu _{1:}}}
73 \newcommand{\areparents}{<_{\mkern-14.0mu _{1:}\mkern+5.0mu}}
74
75 \renewcommand{\implies}{\Rightarrow}
76 \renewcommand{\equiv}{\Leftrightarrow}
77 \renewcommand{\nequiv}{\nLeftrightarrow}
78 \renewcommand{\land}{\wedge}
79 \renewcommand{\lor}{\vee}
80
81 \newcommand{\pancs}{{\mathcal A}}
82 \newcommand{\pends}{{\mathcal E}}
83
84 \newcommand{\pancsof}[2]{\pancs ( #1 , #2 ) }
85 \newcommand{\pendsof}[2]{\pends ( #1 , #2 ) }
86
87 \newcommand{\merge}{{\mathcal M}}
88 \newcommand{\mergeof}[4]{\merge(#1,#2,#3,#4)}
89 %\newcommand{\merge}[4]{{#2 {{\frac{ #1 }{ #3 } #4}}}}
90
91 \newcommand{\patch}{{\mathcal P}}
92 \newcommand{\base}{{\mathcal B}}
93 \newcommand{\depsreq}{{\mathcal D}}
94
95 \newcommand{\patchof}[1]{\patch ( #1 ) }
96 \newcommand{\baseof}[1]{\base ( #1 ) }
97 \newcommand{\depsreqof}[1]{\depsreq ( #1 ) }
98
99 \newcommand{\allpatches}{\Upsilon}
100 \newcommand{\assign}{\leftarrow}
101 \newcommand{\iassign}{\leftarrow}
102 %\newcommand{\assign}{' =}
103
104 \newcommand{\eqntag}[2]{ #2 \tag*{\mbox{#1}} }
105 \newcommand{\eqn}[2]{ #2 \tag*{\mbox{\bf #1}} }
106
107 \newcommand{\hasdirdep}{\succ_{\mkern-7.0mu _1}}
108 \newcommand{\hasdep}{\succ}
109 \newcommand{\isdep}{\prec}
110
111 \newcommand{\tipz}{ T^0 }
112 \newcommand{\tipc}{ T }
113 \newcommand{\tipu}{ T' }
114 \newcommand{\tipf}{ T^* }
115
116 \newcommand{\tipza}[1]{ \tipz_{#1} }
117 \newcommand{\tipca}[1]{ \tipc_{#1} }
118 \newcommand{\tipua}[1]{ \tipu_{#1} }
119 \newcommand{\tipfa}[1]{ \tipf_{#1} }
120
121 \newcommand{\tipzc}{ \tipza \pc }
122 \newcommand{\tipcc}{ \tipca \pc }
123 \newcommand{\tipuc}{ \tipua \pc }
124 \newcommand{\tipfc}{ \tipfa \pc }
125
126 %\newcommand{\bigforall}{\mathop{\hbox{\huge$\forall$}}}
127 \newcommand{\bigforall}{%
128   \mathop{\mathchoice%
129     {\hbox{\huge$\forall$}}%
130     {\hbox{\Large$\forall$}}%
131     {\hbox{\normalsize$\forall$}}%
132     {\hbox{\scriptsize$\forall$}}}%
133 }
134 \newcommand{\bigexists}{%
135   \mathop{\mathchoice%
136     {\hbox{\huge$\exists$}}%
137     {\hbox{\Large$\exists$}}%
138     {\hbox{\normalsize$\exists$}}%
139     {\hbox{\scriptsize$\exists$}}}%
140 }
141
142 \newcommand{\Largeexists}{\mathop{\hbox{\Large$\exists$}}}
143 \newcommand{\Largenexists}{\mathop{\hbox{\Large$\nexists$}}}
144
145 \newcommand{\qed}{\square}
146 \newcommand{\proofstarts}{{\it Proof:}}
147 \newcommand{\proof}[1]{\proofstarts #1 $\qed$}
148
149 \newcommand{\gathbegin}{\begin{gather} \tag*{}}
150 \newcommand{\gathnext}{\\ \tag*{}}
151
152 \newcommand{\true}{t}
153 \newcommand{\false}{f}
154
155 \begin{document}
156
157 \chapter{Data model}
158
159 \input{notation.tex}
160 \input{invariants.tex}
161 \input{lemmas.tex}
162 \input{annotations.tex}
163
164 \input{simple.tex}
165 \input{create-base.tex}
166 \input{create-tip.tex}
167 \input{anticommit.tex}
168 \input{merge.tex}
169
170 \chapter{Update strategy}
171
172 \input{strategy.tex}
173
174 \end{document}