3108
|
1 |
% This file was generated by 'rail' from 'ref.rai'
|
3098
|
2 |
\rail@t {lbrace}
|
|
3 |
\rail@t {rbrace}
|
4316
|
4 |
\rail@i {1}{ \par theoryDef : id '=' (name + '+') ('+' extension | ()) ; \par name: id | string ; \par extension : (section +) 'end' ( () | ml ) ; \par section : classes | default | types | arities | consts | syntax | trans | defs | constdefs | rules | axclass | instance | oracle ; \par classes : 'classes' ( classDecl + ) ; \par classDecl : (id (() | '<' (id + ','))) ; \par default : 'default' sort ; \par sort : id | lbrace (id * ',') rbrace ; \par types : 'types' ( ( typeDecl ( () | '(' infix ')' ) ) + ) ; \par infix : ( 'infixr' | 'infixl' ) (() | string) nat ; \par typeDecl : typevarlist name ( () | '=' ( string | type ) ); \par typevarlist : () | tid | '(' ( tid + ',' ) ')'; \par type : simpleType | '(' type ')' | type '=>' type | '[' ( type + "," ) ']' '=>' type; \par simpleType: id | ( tid ( () | '::' id ) ) | '(' ( type + "," ) ')' id | simpleType id ; \par arities : 'arities' ((name + ',') '::' arity +) ; \par arity : ( () | '(' (sort + ',') ')' ) sort ; \par consts : 'consts' ( mixfixConstDecl + ) ; \par syntax : 'syntax' (() | mode) ( mixfixConstDecl + ); \par mode : '(' name (() | 'output') ')' ; \par mixfixConstDecl : constDecl (() | ( '(' mixfix ')' )) ; \par constDecl : ( name + ',') '::' (string | type); \par mixfix : string ( () | ( () | ('[' (nat + ',') ']')) nat ) | infix | 'binder' string nat ; \par trans : 'translations' ( pat ( '==' | '=>' | '<=' ) pat + ) ; \par pat : ( () | ( '(' id ')' ) ) string; \par rules : 'rules' (( id string ) + ) ; \par defs : 'defs' (( id string ) + ) ; \par constdefs : 'constdefs' (id '::' (string | type) string +) ; \par axclass : 'axclass' classDecl (() | ( id string ) +) ; \par instance : 'instance' ( name '<' name | name '::' arity) witness ; \par witness : (() | '(' ((string | longident) + ',') ')') (() | verbatim) ; \par oracle : 'oracle' name '=' name ; \par ml : 'ML' text ; \par }
|
2657
|
5 |
\rail@o {1}{
|
|
6 |
\rail@begin{2}{theoryDef}
|
3098
|
7 |
\rail@nont{id}[]
|
|
8 |
\rail@term{=}[]
|
2657
|
9 |
\rail@plus
|
3098
|
10 |
\rail@nont{name}[]
|
2657
|
11 |
\rail@nextplus{1}
|
3098
|
12 |
\rail@cterm{+}[]
|
2657
|
13 |
\rail@endplus
|
|
14 |
\rail@bar
|
3098
|
15 |
\rail@term{+}[]
|
|
16 |
\rail@nont{extension}[]
|
2657
|
17 |
\rail@nextbar{1}
|
|
18 |
\rail@endbar
|
|
19 |
\rail@end
|
|
20 |
\rail@begin{2}{name}
|
|
21 |
\rail@bar
|
3098
|
22 |
\rail@nont{id}[]
|
2657
|
23 |
\rail@nextbar{1}
|
3098
|
24 |
\rail@nont{string}[]
|
2657
|
25 |
\rail@endbar
|
|
26 |
\rail@end
|
|
27 |
\rail@begin{2}{extension}
|
|
28 |
\rail@plus
|
3098
|
29 |
\rail@nont{section}[]
|
2657
|
30 |
\rail@nextplus{1}
|
|
31 |
\rail@endplus
|
3098
|
32 |
\rail@term{end}[]
|
2657
|
33 |
\rail@bar
|
|
34 |
\rail@nextbar{1}
|
3098
|
35 |
\rail@nont{ml}[]
|
2657
|
36 |
\rail@endbar
|
|
37 |
\rail@end
|
3108
|
38 |
\rail@begin{13}{section}
|
2657
|
39 |
\rail@bar
|
3098
|
40 |
\rail@nont{classes}[]
|
2657
|
41 |
\rail@nextbar{1}
|
3098
|
42 |
\rail@nont{default}[]
|
2657
|
43 |
\rail@nextbar{2}
|
3098
|
44 |
\rail@nont{types}[]
|
2657
|
45 |
\rail@nextbar{3}
|
3098
|
46 |
\rail@nont{arities}[]
|
2657
|
47 |
\rail@nextbar{4}
|
3098
|
48 |
\rail@nont{consts}[]
|
2657
|
49 |
\rail@nextbar{5}
|
3108
|
50 |
\rail@nont{syntax}[]
|
2657
|
51 |
\rail@nextbar{6}
|
3098
|
52 |
\rail@nont{trans}[]
|
2657
|
53 |
\rail@nextbar{7}
|
3098
|
54 |
\rail@nont{defs}[]
|
2657
|
55 |
\rail@nextbar{8}
|
3108
|
56 |
\rail@nont{constdefs}[]
|
|
57 |
\rail@nextbar{9}
|
3098
|
58 |
\rail@nont{rules}[]
|
3108
|
59 |
\rail@nextbar{10}
|
|
60 |
\rail@nont{axclass}[]
|
|
61 |
\rail@nextbar{11}
|
|
62 |
\rail@nont{instance}[]
|
|
63 |
\rail@nextbar{12}
|
3098
|
64 |
\rail@nont{oracle}[]
|
2657
|
65 |
\rail@endbar
|
|
66 |
\rail@end
|
3108
|
67 |
\rail@begin{2}{classes}
|
3098
|
68 |
\rail@term{classes}[]
|
2657
|
69 |
\rail@plus
|
3108
|
70 |
\rail@nont{classDecl}[]
|
|
71 |
\rail@nextplus{1}
|
|
72 |
\rail@endplus
|
|
73 |
\rail@end
|
|
74 |
\rail@begin{3}{classDecl}
|
3098
|
75 |
\rail@nont{id}[]
|
2657
|
76 |
\rail@bar
|
|
77 |
\rail@nextbar{1}
|
3098
|
78 |
\rail@term{<}[]
|
2657
|
79 |
\rail@plus
|
3098
|
80 |
\rail@nont{id}[]
|
2657
|
81 |
\rail@nextplus{2}
|
3098
|
82 |
\rail@cterm{,}[]
|
2657
|
83 |
\rail@endplus
|
|
84 |
\rail@endbar
|
|
85 |
\rail@end
|
|
86 |
\rail@begin{1}{default}
|
3098
|
87 |
\rail@term{default}[]
|
|
88 |
\rail@nont{sort}[]
|
2657
|
89 |
\rail@end
|
|
90 |
\rail@begin{4}{sort}
|
|
91 |
\rail@bar
|
3098
|
92 |
\rail@nont{id}[]
|
2657
|
93 |
\rail@nextbar{1}
|
3098
|
94 |
\rail@token{lbrace}[]
|
2657
|
95 |
\rail@bar
|
|
96 |
\rail@nextbar{2}
|
|
97 |
\rail@plus
|
3098
|
98 |
\rail@nont{id}[]
|
2657
|
99 |
\rail@nextplus{3}
|
3098
|
100 |
\rail@cterm{,}[]
|
2657
|
101 |
\rail@endplus
|
|
102 |
\rail@endbar
|
3098
|
103 |
\rail@token{rbrace}[]
|
2657
|
104 |
\rail@endbar
|
|
105 |
\rail@end
|
|
106 |
\rail@begin{3}{types}
|
3098
|
107 |
\rail@term{types}[]
|
2657
|
108 |
\rail@plus
|
3098
|
109 |
\rail@nont{typeDecl}[]
|
2657
|
110 |
\rail@bar
|
|
111 |
\rail@nextbar{1}
|
3098
|
112 |
\rail@term{(}[]
|
|
113 |
\rail@nont{infix}[]
|
|
114 |
\rail@term{)}[]
|
2657
|
115 |
\rail@endbar
|
|
116 |
\rail@nextplus{2}
|
|
117 |
\rail@endplus
|
|
118 |
\rail@end
|
|
119 |
\rail@begin{2}{infix}
|
|
120 |
\rail@bar
|
3098
|
121 |
\rail@term{infixr}[]
|
2657
|
122 |
\rail@nextbar{1}
|
3098
|
123 |
\rail@term{infixl}[]
|
2657
|
124 |
\rail@endbar
|
3213
|
125 |
\rail@bar
|
|
126 |
\rail@nextbar{1}
|
|
127 |
\rail@nont{string}[]
|
|
128 |
\rail@endbar
|
3098
|
129 |
\rail@nont{nat}[]
|
2657
|
130 |
\rail@end
|
|
131 |
\rail@begin{3}{typeDecl}
|
3098
|
132 |
\rail@nont{typevarlist}[]
|
|
133 |
\rail@nont{name}[]
|
2657
|
134 |
\rail@bar
|
|
135 |
\rail@nextbar{1}
|
3098
|
136 |
\rail@term{=}[]
|
2657
|
137 |
\rail@bar
|
3098
|
138 |
\rail@nont{string}[]
|
2657
|
139 |
\rail@nextbar{2}
|
3098
|
140 |
\rail@nont{type}[]
|
2657
|
141 |
\rail@endbar
|
|
142 |
\rail@endbar
|
|
143 |
\rail@end
|
|
144 |
\rail@begin{4}{typevarlist}
|
|
145 |
\rail@bar
|
|
146 |
\rail@nextbar{1}
|
3098
|
147 |
\rail@nont{tid}[]
|
2657
|
148 |
\rail@nextbar{2}
|
3098
|
149 |
\rail@term{(}[]
|
2657
|
150 |
\rail@plus
|
3098
|
151 |
\rail@nont{tid}[]
|
2657
|
152 |
\rail@nextplus{3}
|
3098
|
153 |
\rail@cterm{,}[]
|
2657
|
154 |
\rail@endplus
|
3098
|
155 |
\rail@term{)}[]
|
2657
|
156 |
\rail@endbar
|
|
157 |
\rail@end
|
|
158 |
\rail@begin{5}{type}
|
|
159 |
\rail@bar
|
3098
|
160 |
\rail@nont{simpleType}[]
|
2657
|
161 |
\rail@nextbar{1}
|
3098
|
162 |
\rail@term{(}[]
|
|
163 |
\rail@nont{type}[]
|
|
164 |
\rail@term{)}[]
|
2657
|
165 |
\rail@nextbar{2}
|
3098
|
166 |
\rail@nont{type}[]
|
|
167 |
\rail@term{=>}[]
|
|
168 |
\rail@nont{type}[]
|
2657
|
169 |
\rail@nextbar{3}
|
3098
|
170 |
\rail@term{[}[]
|
2657
|
171 |
\rail@plus
|
3098
|
172 |
\rail@nont{type}[]
|
2657
|
173 |
\rail@nextplus{4}
|
3098
|
174 |
\rail@cterm{,}[]
|
2657
|
175 |
\rail@endplus
|
3098
|
176 |
\rail@term{]}[]
|
|
177 |
\rail@term{=>}[]
|
|
178 |
\rail@nont{type}[]
|
2657
|
179 |
\rail@endbar
|
|
180 |
\rail@end
|
|
181 |
\rail@begin{6}{simpleType}
|
|
182 |
\rail@bar
|
3098
|
183 |
\rail@nont{id}[]
|
2657
|
184 |
\rail@nextbar{1}
|
3098
|
185 |
\rail@nont{tid}[]
|
2657
|
186 |
\rail@bar
|
|
187 |
\rail@nextbar{2}
|
3098
|
188 |
\rail@term{::}[]
|
|
189 |
\rail@nont{id}[]
|
2657
|
190 |
\rail@endbar
|
|
191 |
\rail@nextbar{3}
|
3098
|
192 |
\rail@term{(}[]
|
2657
|
193 |
\rail@plus
|
3098
|
194 |
\rail@nont{type}[]
|
2657
|
195 |
\rail@nextplus{4}
|
3098
|
196 |
\rail@cterm{,}[]
|
2657
|
197 |
\rail@endplus
|
3098
|
198 |
\rail@term{)}[]
|
|
199 |
\rail@nont{id}[]
|
2657
|
200 |
\rail@nextbar{5}
|
3098
|
201 |
\rail@nont{simpleType}[]
|
|
202 |
\rail@nont{id}[]
|
2657
|
203 |
\rail@endbar
|
|
204 |
\rail@end
|
|
205 |
\rail@begin{3}{arities}
|
3098
|
206 |
\rail@term{arities}[]
|
2657
|
207 |
\rail@plus
|
|
208 |
\rail@plus
|
3098
|
209 |
\rail@nont{name}[]
|
2657
|
210 |
\rail@nextplus{1}
|
3098
|
211 |
\rail@cterm{,}[]
|
2657
|
212 |
\rail@endplus
|
3098
|
213 |
\rail@term{::}[]
|
|
214 |
\rail@nont{arity}[]
|
2657
|
215 |
\rail@nextplus{2}
|
|
216 |
\rail@endplus
|
|
217 |
\rail@end
|
|
218 |
\rail@begin{3}{arity}
|
|
219 |
\rail@bar
|
|
220 |
\rail@nextbar{1}
|
3098
|
221 |
\rail@term{(}[]
|
2657
|
222 |
\rail@plus
|
3098
|
223 |
\rail@nont{sort}[]
|
2657
|
224 |
\rail@nextplus{2}
|
3098
|
225 |
\rail@cterm{,}[]
|
2657
|
226 |
\rail@endplus
|
3098
|
227 |
\rail@term{)}[]
|
2657
|
228 |
\rail@endbar
|
3108
|
229 |
\rail@nont{sort}[]
|
2657
|
230 |
\rail@end
|
3108
|
231 |
\rail@begin{2}{consts}
|
3098
|
232 |
\rail@term{consts}[]
|
2657
|
233 |
\rail@plus
|
3108
|
234 |
\rail@nont{mixfixConstDecl}[]
|
|
235 |
\rail@nextplus{1}
|
|
236 |
\rail@endplus
|
|
237 |
\rail@end
|
|
238 |
\rail@begin{2}{syntax}
|
|
239 |
\rail@term{syntax}[]
|
|
240 |
\rail@bar
|
|
241 |
\rail@nextbar{1}
|
|
242 |
\rail@nont{mode}[]
|
|
243 |
\rail@endbar
|
|
244 |
\rail@plus
|
|
245 |
\rail@nont{mixfixConstDecl}[]
|
|
246 |
\rail@nextplus{1}
|
|
247 |
\rail@endplus
|
|
248 |
\rail@end
|
|
249 |
\rail@begin{2}{mode}
|
|
250 |
\rail@term{(}[]
|
|
251 |
\rail@nont{name}[]
|
|
252 |
\rail@bar
|
|
253 |
\rail@nextbar{1}
|
|
254 |
\rail@term{output}[]
|
|
255 |
\rail@endbar
|
|
256 |
\rail@term{)}[]
|
|
257 |
\rail@end
|
|
258 |
\rail@begin{2}{mixfixConstDecl}
|
3098
|
259 |
\rail@nont{constDecl}[]
|
2657
|
260 |
\rail@bar
|
|
261 |
\rail@nextbar{1}
|
3098
|
262 |
\rail@term{(}[]
|
|
263 |
\rail@nont{mixfix}[]
|
|
264 |
\rail@term{)}[]
|
2657
|
265 |
\rail@endbar
|
|
266 |
\rail@end
|
|
267 |
\rail@begin{2}{constDecl}
|
|
268 |
\rail@plus
|
3098
|
269 |
\rail@nont{name}[]
|
2657
|
270 |
\rail@nextplus{1}
|
3098
|
271 |
\rail@cterm{,}[]
|
2657
|
272 |
\rail@endplus
|
3098
|
273 |
\rail@term{::}[]
|
2657
|
274 |
\rail@bar
|
3098
|
275 |
\rail@nont{string}[]
|
2657
|
276 |
\rail@nextbar{1}
|
3098
|
277 |
\rail@nont{type}[]
|
2657
|
278 |
\rail@endbar
|
|
279 |
\rail@end
|
3213
|
280 |
\rail@begin{6}{mixfix}
|
2657
|
281 |
\rail@bar
|
3098
|
282 |
\rail@nont{string}[]
|
2657
|
283 |
\rail@bar
|
|
284 |
\rail@nextbar{1}
|
|
285 |
\rail@bar
|
|
286 |
\rail@nextbar{2}
|
3098
|
287 |
\rail@term{[}[]
|
2657
|
288 |
\rail@plus
|
3098
|
289 |
\rail@nont{nat}[]
|
2657
|
290 |
\rail@nextplus{3}
|
3098
|
291 |
\rail@cterm{,}[]
|
2657
|
292 |
\rail@endplus
|
3098
|
293 |
\rail@term{]}[]
|
2657
|
294 |
\rail@endbar
|
3098
|
295 |
\rail@nont{nat}[]
|
2657
|
296 |
\rail@endbar
|
|
297 |
\rail@nextbar{4}
|
3213
|
298 |
\rail@nont{infix}[]
|
2657
|
299 |
\rail@nextbar{5}
|
3098
|
300 |
\rail@term{binder}[]
|
|
301 |
\rail@nont{string}[]
|
|
302 |
\rail@nont{nat}[]
|
2657
|
303 |
\rail@endbar
|
|
304 |
\rail@end
|
|
305 |
\rail@begin{4}{trans}
|
3098
|
306 |
\rail@term{translations}[]
|
2657
|
307 |
\rail@plus
|
3098
|
308 |
\rail@nont{pat}[]
|
2657
|
309 |
\rail@bar
|
3098
|
310 |
\rail@term{==}[]
|
2657
|
311 |
\rail@nextbar{1}
|
3098
|
312 |
\rail@term{=>}[]
|
2657
|
313 |
\rail@nextbar{2}
|
3098
|
314 |
\rail@term{<=}[]
|
2657
|
315 |
\rail@endbar
|
3098
|
316 |
\rail@nont{pat}[]
|
2657
|
317 |
\rail@nextplus{3}
|
|
318 |
\rail@endplus
|
|
319 |
\rail@end
|
|
320 |
\rail@begin{2}{pat}
|
|
321 |
\rail@bar
|
|
322 |
\rail@nextbar{1}
|
3098
|
323 |
\rail@term{(}[]
|
|
324 |
\rail@nont{id}[]
|
|
325 |
\rail@term{)}[]
|
2657
|
326 |
\rail@endbar
|
3098
|
327 |
\rail@nont{string}[]
|
2657
|
328 |
\rail@end
|
|
329 |
\rail@begin{2}{rules}
|
3098
|
330 |
\rail@term{rules}[]
|
2657
|
331 |
\rail@plus
|
3098
|
332 |
\rail@nont{id}[]
|
|
333 |
\rail@nont{string}[]
|
2657
|
334 |
\rail@nextplus{1}
|
|
335 |
\rail@endplus
|
|
336 |
\rail@end
|
|
337 |
\rail@begin{2}{defs}
|
3098
|
338 |
\rail@term{defs}[]
|
2657
|
339 |
\rail@plus
|
3098
|
340 |
\rail@nont{id}[]
|
|
341 |
\rail@nont{string}[]
|
2657
|
342 |
\rail@nextplus{1}
|
|
343 |
\rail@endplus
|
|
344 |
\rail@end
|
3108
|
345 |
\rail@begin{3}{constdefs}
|
|
346 |
\rail@term{constdefs}[]
|
|
347 |
\rail@plus
|
|
348 |
\rail@nont{id}[]
|
|
349 |
\rail@term{::}[]
|
|
350 |
\rail@bar
|
|
351 |
\rail@nont{string}[]
|
|
352 |
\rail@nextbar{1}
|
|
353 |
\rail@nont{type}[]
|
|
354 |
\rail@endbar
|
|
355 |
\rail@nont{string}[]
|
|
356 |
\rail@nextplus{2}
|
|
357 |
\rail@endplus
|
|
358 |
\rail@end
|
|
359 |
\rail@begin{3}{axclass}
|
|
360 |
\rail@term{axclass}[]
|
|
361 |
\rail@nont{classDecl}[]
|
|
362 |
\rail@bar
|
|
363 |
\rail@nextbar{1}
|
|
364 |
\rail@plus
|
|
365 |
\rail@nont{id}[]
|
|
366 |
\rail@nont{string}[]
|
|
367 |
\rail@nextplus{2}
|
|
368 |
\rail@endplus
|
|
369 |
\rail@endbar
|
|
370 |
\rail@end
|
|
371 |
\rail@begin{2}{instance}
|
|
372 |
\rail@term{instance}[]
|
|
373 |
\rail@bar
|
|
374 |
\rail@nont{name}[]
|
|
375 |
\rail@term{<}[]
|
|
376 |
\rail@nont{name}[]
|
|
377 |
\rail@nextbar{1}
|
|
378 |
\rail@nont{name}[]
|
|
379 |
\rail@term{::}[]
|
|
380 |
\rail@nont{arity}[]
|
|
381 |
\rail@endbar
|
|
382 |
\rail@nont{witness}[]
|
|
383 |
\rail@end
|
|
384 |
\rail@begin{4}{witness}
|
|
385 |
\rail@bar
|
|
386 |
\rail@nextbar{1}
|
3129
|
387 |
\rail@term{(}[]
|
3108
|
388 |
\rail@plus
|
|
389 |
\rail@bar
|
|
390 |
\rail@nont{string}[]
|
|
391 |
\rail@nextbar{2}
|
|
392 |
\rail@nont{longident}[]
|
|
393 |
\rail@endbar
|
|
394 |
\rail@nextplus{3}
|
|
395 |
\rail@cterm{,}[]
|
|
396 |
\rail@endplus
|
3129
|
397 |
\rail@term{)}[]
|
3108
|
398 |
\rail@endbar
|
|
399 |
\rail@bar
|
|
400 |
\rail@nextbar{1}
|
|
401 |
\rail@nont{verbatim}[]
|
|
402 |
\rail@endbar
|
|
403 |
\rail@end
|
2657
|
404 |
\rail@begin{1}{oracle}
|
3098
|
405 |
\rail@term{oracle}[]
|
|
406 |
\rail@nont{name}[]
|
4316
|
407 |
\rail@term{=}[]
|
|
408 |
\rail@nont{name}[]
|
2657
|
409 |
\rail@end
|
|
410 |
\rail@begin{1}{ml}
|
3098
|
411 |
\rail@term{ML}[]
|
|
412 |
\rail@nont{text}[]
|
2657
|
413 |
\rail@end
|
|
414 |
}
|