|
1 |
|
2 \documentclass[11pt,a4paper,fleqn]{article} |
|
3 \usepackage[latin1]{inputenc} |
|
4 \usepackage{english} |
|
5 \usepackage{a4} |
|
6 \usepackage{alltt} |
|
7 \usepackage{bbb} |
|
8 |
|
9 |
|
10 \makeatletter |
|
11 |
|
12 |
|
13 %%% layout |
|
14 |
|
15 \sloppy |
|
16 |
|
17 \parindent 0pt |
|
18 \parskip 0.5ex |
|
19 |
|
20 |
|
21 %%% text mode |
|
22 |
|
23 \newcommand{\B}[1]{\textbf{#1}} |
|
24 \newcommand{\TT}[1]{\ifmmode\mbox{\texttt{#1}}\else\texttt{#1}\fi} |
|
25 \newcommand{\E}[1]{\emph{#1}} |
|
26 \renewcommand{\P}[1]{\textsc{#1}} |
|
27 |
|
28 |
|
29 \renewcommand{\labelenumi}{(\theenumi)} |
|
30 \newcommand{\dfn}[1]{{\bf #1}} |
|
31 |
|
32 \newcommand{\thy}[1]{\mbox{\sc #1}} |
|
33 %\newcommand{\thy}[1]{\mbox{\textsc{#1}}} |
|
34 \newcommand{\IHOL}{\thy{ihol}} |
|
35 \newcommand{\SIHOL}{\thy{sihol}} |
|
36 \newcommand{\HOL}{\thy{hol}} |
|
37 \newcommand{\HOLBB}{\thy{hol88}} |
|
38 \newcommand{\FOL}{\thy{fol}} |
|
39 \newcommand{\SET}{\thy{set}} |
|
40 \newcommand{\Pure}{\thy{Pure}} |
|
41 |
|
42 |
|
43 \newcommand{\secref}[1]{\S\ref{#1}} |
|
44 |
|
45 \newenvironment{matharray}[1]{\[\begin{array}{#1}}{\end{array}\]} |
|
46 |
|
47 |
|
48 %from alltt.sty |
|
49 \def\docspecials{\do\ \do\$\do\&% |
|
50 \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} |
|
51 |
|
52 \newenvironment{asc}{\small\trivlist \item[]\if@minipage\else\vskip\parskip\fi |
|
53 \leftskip\@totalleftmargin\rightskip\z@ |
|
54 \parindent\z@\parfillskip\@flushglue\parskip\z@ |
|
55 \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par} |
|
56 \obeylines \tt \catcode``=13 \@noligs \let\do\@makeother \docspecials |
|
57 \frenchspacing\@vobeyspaces}{\endtrivlist} |
|
58 |
|
59 \newenvironment{ascbox}{\vbox\bgroup\begin{asc}}{\end{asc}\egroup} |
|
60 \newcommand{\brk}{\end{ascbox}\vskip-20pt\begin{ascbox}} |
|
61 |
|
62 \newcommand{\out}[1]{{\fontfamily{cmtt}\fontseries{m}\fontshape{sl}\selectfont\ \ #1}} |
|
63 |
|
64 |
|
65 % warning environment |
|
66 \newcommand{\dbend}{\vtop to 0pt{\vss\hbox{\Huge\bf!}\vss}} |
|
67 \newenvironment{warning}{\medskip\medbreak\begingroup \clubpenalty=10000 |
|
68 \noindent \hangindent1.5em \hangafter=-2 |
|
69 \hbox to0pt{\hskip-\hangindent\dbend\hfill}\ignorespaces}% |
|
70 {\par\endgroup\medbreak} |
|
71 |
|
72 \newcommand{\Isa}{{\sc Isabelle}} |
|
73 \newcommand{\ML}{{\sc ml}} |
|
74 \newcommand{\Haskell}{{\rm Haskell}} |
|
75 |
|
76 \newcommand{\IMP}{"`$\Longrightarrow$"'} |
|
77 \newcommand{\PMI}{"`$\Longleftarrow$"'} |
|
78 |
|
79 |
|
80 |
|
81 %%% math mode |
|
82 |
|
83 %% generic defs |
|
84 |
|
85 \newcommand{\nquad}{\hskip-1em} |
|
86 |
|
87 \newcommand{\fct}[1]{\mathop{\rm #1}\nolimits} |
|
88 \newcommand{\idt}[1]{{\mathord{\it #1}}} |
|
89 \newcommand{\syn}[1]{{\mathord{\it #1}}} |
|
90 \newcommand{\text}[1]{\mbox{#1}} |
|
91 \newcommand{\rmtext}[1]{\mbox{\rm #1}} |
|
92 %\newcommand{\mtt}[1]{\mbox{\tt #1}} |
|
93 |
|
94 \newcommand{\falls}{\text{falls }} |
|
95 \newcommand{\sonst}{\text{sonst}} |
|
96 |
|
97 \newcommand{\Bool}{\bbbB} |
|
98 \newcommand{\Nat}{\bbbN} |
|
99 \newcommand{\Natz}{{\bbbN_0}} |
|
100 \newcommand{\Rat}{\bbbQ} |
|
101 \newcommand{\Real}{\bbbR} |
|
102 |
|
103 \newcommand{\dt}{{\mathpunct.}} |
|
104 |
|
105 \newcommand{\Gam}{\Gamma} |
|
106 \renewcommand{\epsilon}{\varepsilon} |
|
107 \renewcommand{\phi}{\varphi} |
|
108 \renewcommand{\rho}{\varrho} |
|
109 \newcommand{\eset}{{\{\}}} |
|
110 \newcommand{\etuple}{{\langle\rangle}} |
|
111 |
|
112 \newcommand{\dfneq}{\mathbin{\mathord:\mathord=}} |
|
113 \newcommand{\impl}{\Longrightarrow} |
|
114 \renewcommand{\iff}{{\;\;\mathord{\Longleftrightarrow}\;\;}} |
|
115 \newcommand{\dfniff}{{\;\;\mathord:\mathord{\Longleftrightarrow}\;\;}} |
|
116 \renewcommand{\land}{\mathrel{\,\wedge\,}} |
|
117 \renewcommand{\lor}{\mathrel{\,\vee\,}} |
|
118 \newcommand{\iso}{\cong} |
|
119 |
|
120 \newcommand{\union}{\cup} |
|
121 \newcommand{\sunion}{\mathbin{\;\cup\;}} |
|
122 \newcommand{\dunion}{\mathbin{\dot\union}} |
|
123 \newcommand{\Union}{\bigcup} |
|
124 \newcommand{\inter}{\cap} |
|
125 \newcommand{\where}{\mathrel|} |
|
126 \newcommand{\pto}{\rightharpoonup} |
|
127 \newcommand{\comp}{\circ} |
|
128 \newcommand{\aaast}{{\mathord*\mathord*\mathord*}} |
|
129 |
|
130 \newcommand{\all}[1]{\forall #1\dt\;} |
|
131 \newcommand{\ex}[1]{\exists #1\dt\;} |
|
132 \newcommand{\lam}[1]{\mathop{\lambda} #1\dt} |
|
133 |
|
134 \newcommand\lbrakk{\mathopen{[\![}} |
|
135 \newcommand\rbrakk{\mathclose{]\!]}} |
|
136 |
|
137 \newcommand{\unif}{\mathrel{=^?}} |
|
138 \newcommand{\notunif}{\mathrel{{\not=}^?}} |
|
139 \newcommand{\incompat}{\mathrel{\#}} |
|
140 |
|
141 |
|
142 %% specific defs |
|
143 |
|
144 \newcommand{\PLUS}{\mathord{\langle{+}\rangle}} |
|
145 \newcommand{\TIMES}{\mathord{\langle{*}\rangle}} |
|
146 |
|
147 |
|
148 % IHOL |
|
149 |
|
150 \newcommand{\TV}{\fct{TV}} |
|
151 \newcommand{\FV}{\fct{FV}} |
|
152 \newcommand{\BV}{\fct{BV}} |
|
153 \newcommand{\VN}{\fct{VN}} |
|
154 \newcommand{\AT}{\fct{AT}} |
|
155 \newcommand{\STV}{\fct{STV}} |
|
156 |
|
157 \newcommand{\TyVars}{\syn{TyVars}} |
|
158 \newcommand{\TyNames}{\syn{TyNames}} |
|
159 \newcommand{\TyCons}{\syn{TyCons}} |
|
160 \newcommand{\TyConsSg}{\TyCons_\Sigma} |
|
161 \newcommand{\Types}{\syn{Types}} |
|
162 \newcommand{\TypesSg}{\Types_\Sigma} |
|
163 \newcommand{\GrTypes}{\syn{GrTypes}} |
|
164 \newcommand{\GrTypesSg}{\GrTypes_\Sigma} |
|
165 \newcommand{\VarNames}{\syn{VarNames}} |
|
166 \newcommand{\Vars}{\syn{Vars}} |
|
167 \newcommand{\VarsSg}{\Vars_\Sigma} |
|
168 \newcommand{\GrVars}{\syn{GrVars}} |
|
169 \newcommand{\GrVarsSg}{\GrVars_\Sigma} |
|
170 \newcommand{\ConstNames}{\syn{ConstNames}} |
|
171 \newcommand{\Consts}{\syn{Consts}} |
|
172 \newcommand{\ConstsSg}{\Consts_\Sigma} |
|
173 \newcommand{\GrConsts}{\syn{GrConsts}} |
|
174 \newcommand{\GrConstsSg}{\GrConsts_\Sigma} |
|
175 \newcommand{\Terms}{\syn{Terms}} |
|
176 \newcommand{\TermsSg}{\Terms_\Sigma} |
|
177 \newcommand{\GrTerms}{\syn{GrTerms}} |
|
178 \newcommand{\GrTermsSg}{\GrTerms_\Sigma} |
|
179 \newcommand{\Forms}{\syn{Forms}} |
|
180 \newcommand{\FormsTh}{\Forms_\Theta} |
|
181 \newcommand{\Seqs}{\syn{Seqs}} |
|
182 \newcommand{\SeqsTh}{\Seqs_\Theta} |
|
183 \newcommand{\Axms}{\syn{Axms}} |
|
184 \newcommand{\AxmsTh}{\Axms_\Theta} |
|
185 \newcommand{\Thms}{\syn{Thms}} |
|
186 \newcommand{\ThmsTh}{\Thms_\Theta} |
|
187 |
|
188 |
|
189 \newcommand{\U}{{\cal U}} |
|
190 \newcommand{\UU}{\bbbU} |
|
191 |
|
192 \newcommand{\ty}{{\mathbin{\,:\,}}} |
|
193 \newcommand{\typ}[1]{{\mathord{\sl #1}}} |
|
194 \newcommand{\tap}{\mathord{\,}} |
|
195 \newcommand{\prop}{\typ{prop}} |
|
196 \newcommand{\itself}{\typ{itself}} |
|
197 |
|
198 \newcommand{\cnst}[1]{{\mathord{\sl #1}}} |
|
199 \newcommand{\ap}{\mathbin{}} |
|
200 \newcommand{\To}{\Rightarrow} |
|
201 \newcommand{\Eq}{\equiv} |
|
202 \newcommand{\Impl}{\Rightarrow} |
|
203 \newcommand{\Forall}{\mathop{\textstyle\bigwedge}} |
|
204 \newcommand{\All}[1]{\Forall #1\dt} |
|
205 \newcommand{\True}{\top} |
|
206 \newcommand{\False}{\bot} |
|
207 \newcommand{\Univ}{{\top\!\!\!\!\top}} |
|
208 \newcommand{\Conj}{\wedge} |
|
209 \newcommand{\TYPE}{\cnst{TYPE}} |
|
210 |
|
211 |
|
212 % rules |
|
213 |
|
214 \newcommand{\Axm}{\rmtext{Axm}} |
|
215 \newcommand{\Assm}{\rmtext{Assm}} |
|
216 \newcommand{\Mon}{\rmtext{Mon}} |
|
217 \newcommand{\ImplI}{\mathord{\Impl}\rmtext{I}} |
|
218 \newcommand{\ImplE}{\mathord{\Impl}\rmtext{E}} |
|
219 \newcommand{\ImplMP}{\rmtext{MP}} |
|
220 \newcommand{\ImplRefl}{\mathord{\Impl}\rmtext{Refl}} |
|
221 \newcommand{\ImplTrans}{\mathord{\Impl}\rmtext{Trans}} |
|
222 \newcommand{\EqRefl}{\mathord{\Eq}\rmtext{Refl}} |
|
223 \newcommand{\EqTrans}{\mathord{\Eq}\rmtext{Trans}} |
|
224 \newcommand{\EqSym}{\mathord{\Eq}\rmtext{Sym}} |
|
225 \newcommand{\EqApp}{\mathord{\Eq}\rmtext{App}} |
|
226 \newcommand{\EqAbs}{\mathord{\Eq}\rmtext{Abs}} |
|
227 \newcommand{\Eqa}{\mathord{\Eq}\alpha} |
|
228 \newcommand{\Eqb}{\mathord{\Eq}\beta} |
|
229 \newcommand{\Eqe}{\mathord{\Eq}\eta} |
|
230 \newcommand{\Ext}{\rmtext{Ext}} |
|
231 \newcommand{\EqI}{\mathord{\Eq}\rmtext{I}} |
|
232 \newcommand{\EqMP}{\mathord{\Eq}\rmtext{MP}} |
|
233 \newcommand{\EqUnfold}{\mathord{\Eq}\rmtext{Unfold}} |
|
234 \newcommand{\EqFold}{\mathord{\Eq}\rmtext{Fold}} |
|
235 \newcommand{\AllI}{\mathord{\Forall}\rmtext{I}} |
|
236 \newcommand{\AllE}{\mathord{\Forall}\rmtext{E}} |
|
237 \newcommand{\TypInst}{\rmtext{TypInst}} |
|
238 \newcommand{\Inst}{\rmtext{Inst}} |
|
239 \newcommand{\TrueI}{\True\rmtext{I}} |
|
240 \newcommand{\FalseE}{\False\rmtext{E}} |
|
241 \newcommand{\UnivI}{\Univ\rmtext{I}} |
|
242 \newcommand{\ConjI}{\mathord{\Conj}\rmtext{I}} |
|
243 \newcommand{\ConjE}{\mathord{\Conj}\rmtext{E}} |
|
244 \newcommand{\ConjProj}{\mathord{\Conj}\rmtext{Proj}} |
|
245 \newcommand{\ImplCurry}{\mathord{\Impl}\rmtext{Curry}} |
|
246 \newcommand{\ImplUncurry}{\mathord{\Impl}\rmtext{Uncurry}} |
|
247 \newcommand{\CImplI}{\mathord{\Conj}\mathord{\Impl}\rmtext{I}} |
|
248 \newcommand{\CImplE}{\mathord{\Conj}\mathord{\Impl}\rmtext{E}} |
|
249 \newcommand{\Subclass}{\rmtext{Subclass}} |
|
250 \newcommand{\Subsort}{\rmtext{Subsort}} |
|
251 \newcommand{\VarSort}{\rmtext{VarSort}} |
|
252 \newcommand{\Arity}{\rmtext{Arity}} |
|
253 \newcommand{\SortMP}{\rmtext{SortMP}} |
|
254 \newcommand{\TopSort}{\rmtext{TopSort}} |
|
255 \newcommand{\OfSort}{\rmtext{OfSort}} |
|
256 |
|
257 \newcommand{\infr}{{\mathrel/}} |
|
258 \newcommand{\einfr}{{}{\mathrel/}} |
|
259 |
|
260 \newcommand{\drv}{\mathrel{\vdash}} |
|
261 \newcommand{\Drv}[1]{\mathrel{\mathord{\drv}_{#1}}} |
|
262 \newcommand{\Gdrv}{\Gam\drv} |
|
263 \newcommand{\edrv}{\mathop{\drv}\nolimits} |
|
264 \newcommand{\Edrv}[1]{\mathop{\drv}\nolimits_{#1}} |
|
265 \newcommand{\notEdrv}[1]{\mathop{\not\drv}\nolimits_{#1}} |
|
266 |
|
267 \newcommand{\lsem}{\lbrakk} |
|
268 \newcommand{\rsem}{\rbrakk} |
|
269 \newcommand{\sem}[1]{{\lsem #1\rsem}} |
|
270 |
|
271 \newcommand{\vld}{\mathrel{\models}} |
|
272 \newcommand{\Vld}[1]{\mathrel{\mathord{\models}_#1}} |
|
273 \newcommand{\Evld}[1]{\mathop{\vld}\nolimits_{#1}} |
|
274 \newcommand{\notEvld}[1]{\mathop{\not\vld}\nolimits_{#1}} |
|
275 |
|
276 \newcommand{\EQ}{\fct{EQ}} |
|
277 \newcommand{\IMPL}{\fct{IMPL}} |
|
278 \newcommand{\ALL}{\fct{ALL}} |
|
279 |
|
280 \newcommand{\extcv}{\mathrel{\unlhd}} |
|
281 \newcommand{\weakth}{\preceq} |
|
282 \newcommand{\eqvth}{\approx} |
|
283 \newcommand{\extdcli}{\mathrel{<_{\rm dcl}^1}} |
|
284 \newcommand{\extdcl}{\mathrel{\le_{\rm dcl}}} |
|
285 \newcommand{\extdfni}{\mathrel{<_{\rm dfn}^1}} |
|
286 \newcommand{\extdfn}{\mathrel{\le_{\rm dfn}}} |
|
287 \newcommand{\extsdfn}{\mathrel{\le_{\rm sdfn}}} |
|
288 \newcommand{\extqdfn}{\mathrel{\le_{\rm qdfn}}} |
|
289 |
|
290 \newcommand{\lvarbl}{\langle} |
|
291 \newcommand{\rvarbl}{\rangle} |
|
292 \newcommand{\varbl}[1]{{\lvarbl #1\rvarbl}} |
|
293 \newcommand{\up}{{\scriptstyle\mathord\uparrow}} |
|
294 \newcommand{\down}{{\scriptstyle\mathord\downarrow}} |
|
295 \newcommand{\Down}{{\mathord\downarrow}} |
|
296 |
|
297 |
|
298 \newcommand{\Sle}{{\mathrel{\le_S}}} |
|
299 \newcommand{\Classes}{\syn{Classes}} |
|
300 \newcommand{\ClassNames}{\syn{ClassNames}} |
|
301 \newcommand{\Sorts}{\syn{Sorts}} |
|
302 \newcommand{\TyVarNames}{\syn{TyVarNames}} |
|
303 \newcommand{\STyVars}{\syn{STyVars}} |
|
304 \newcommand{\STyArities}{\syn{STyArities}} |
|
305 \newcommand{\STypes}{\syn{STypes}} |
|
306 \newcommand{\SVars}{\syn{SVars}} |
|
307 \newcommand{\SConsts}{\syn{SConsts}} |
|
308 \newcommand{\STerms}{\syn{STerms}} |
|
309 \newcommand{\SForms}{\syn{SForms}} |
|
310 \newcommand{\SAxms}{\syn{SAxms}} |
|
311 \newcommand{\T}{{\cal T}} |
|
312 |
|
313 \newcommand{\cls}[1]{{\mathord{\sl #1}}} |
|
314 \newcommand{\intsrt}{\sqcap} |
|
315 \newcommand{\Intsrt}{{\mathop\sqcap}} |
|
316 \newcommand{\subcls}{\preceq} |
|
317 \newcommand{\Subcls}[1]{\mathrel{\subcls_{#1}}} |
|
318 \newcommand{\subsrt}{\sqsubseteq} |
|
319 \newcommand{\Subsrt}[1]{\mathrel{\subsrt_{#1}}} |
|
320 \newcommand{\subsrtp}{\sqsubset} |
|
321 \newcommand{\eqvsrt}{\approx} |
|
322 \newcommand{\topsrt}{\top} |
|
323 \newcommand{\srt}{\ty} |
|
324 |
|
325 \newcommand{\sct}[1]{{\bf #1}} |
|
326 \newcommand{\CLASSES}{\sct{classes}} |
|
327 \newcommand{\CLASSREL}{\sct{classrel}} |
|
328 \newcommand{\TYPES}{\sct{types}} |
|
329 \newcommand{\ARITIES}{\sct{arities}} |
|
330 \newcommand{\CONSTS}{\sct{consts}} |
|
331 \newcommand{\AXIOMS}{\sct{axioms}} |
|
332 \newcommand{\DEFNS}{\sct{defns}} |
|
333 \newcommand{\AXCLASS}{\sct{axclass}} |
|
334 \newcommand{\INSTANCE}{\sct{instance}} |
|
335 |
|
336 \newcommand{\Srt}{{\mathbin{\,:\,}}} |
|
337 \newcommand{\insrt}[2]{{\mathopen{(\!|} #1 \Srt #2 \mathclose{|\!)}}} |
|
338 \newcommand{\ofsrt}[2]{{\mathopen{\langle\!|} #1 \Srt #2 \mathclose{|\!\rangle}}} |
|
339 |
|
340 \newcommand{\injV}{{\iota_V}} |
|
341 \newcommand{\inj}{\iota} |
|
342 \newcommand{\injC}{{\iota_C}} |
|
343 \newcommand{\I}{{\cal I}} |
|
344 \newcommand{\C}{{\cal C}} |
|
345 |
|
346 \newcommand{\Sdrv}{\mathrel{\vdash\!\!\!\vdash}} |
|
347 \newcommand{\SDrv}[1]{\mathrel{\mathord{\Sdrv}_{#1}}} |
|
348 \newcommand{\SGdrv}{\Gam\Sdrv} |
|
349 \newcommand{\Sedrv}{\mathop{\Sdrv}\nolimits} |
|
350 \newcommand{\SEdrv}[1]{\mathop{\Sdrv}\nolimits_{#1}} |
|
351 |
|
352 \newcommand{\SSubclass}{\rmtext{S-Subclass}} |
|
353 \newcommand{\SSubsort}{\rmtext{S-Subsort}} |
|
354 \newcommand{\SVarSort}{\rmtext{S-VarSort}} |
|
355 \newcommand{\SArity}{\rmtext{S-Arity}} |
|
356 \newcommand{\SSortMP}{\rmtext{S-SortMP}} |
|
357 \newcommand{\STopSort}{\rmtext{S-TopSort}} |
|
358 \newcommand{\SOfSort}{\rmtext{S-OfSort}} |
|
359 |
|
360 |
|
361 \makeatother |
|
362 |