egglog 11.2.0__cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of egglog might be problematic. Click here for more details.
- egglog/__init__.py +13 -0
- egglog/bindings.cpython-314-x86_64-linux-gnu.so +0 -0
- egglog/bindings.pyi +734 -0
- egglog/builtins.py +1133 -0
- egglog/config.py +8 -0
- egglog/conversion.py +286 -0
- egglog/declarations.py +912 -0
- egglog/deconstruct.py +173 -0
- egglog/egraph.py +1875 -0
- egglog/egraph_state.py +680 -0
- egglog/examples/README.rst +5 -0
- egglog/examples/__init__.py +3 -0
- egglog/examples/bignum.py +32 -0
- egglog/examples/bool.py +38 -0
- egglog/examples/eqsat_basic.py +44 -0
- egglog/examples/fib.py +28 -0
- egglog/examples/higher_order_functions.py +42 -0
- egglog/examples/jointree.py +67 -0
- egglog/examples/lambda_.py +287 -0
- egglog/examples/matrix.py +175 -0
- egglog/examples/multiset.py +60 -0
- egglog/examples/ndarrays.py +144 -0
- egglog/examples/resolution.py +84 -0
- egglog/examples/schedule_demo.py +34 -0
- egglog/exp/__init__.py +3 -0
- egglog/exp/array_api.py +2019 -0
- egglog/exp/array_api_jit.py +51 -0
- egglog/exp/array_api_loopnest.py +74 -0
- egglog/exp/array_api_numba.py +69 -0
- egglog/exp/array_api_program_gen.py +510 -0
- egglog/exp/program_gen.py +425 -0
- egglog/exp/siu_examples.py +32 -0
- egglog/ipython_magic.py +41 -0
- egglog/pretty.py +509 -0
- egglog/py.typed +0 -0
- egglog/runtime.py +712 -0
- egglog/thunk.py +97 -0
- egglog/type_constraint_solver.py +113 -0
- egglog/version_compat.py +87 -0
- egglog/visualizer.css +1 -0
- egglog/visualizer.js +35777 -0
- egglog/visualizer_widget.py +39 -0
- egglog-11.2.0.dist-info/METADATA +74 -0
- egglog-11.2.0.dist-info/RECORD +46 -0
- egglog-11.2.0.dist-info/WHEEL +4 -0
- egglog-11.2.0.dist-info/licenses/LICENSE +21 -0
egglog/bindings.pyi
ADDED
|
@@ -0,0 +1,734 @@
|
|
|
1
|
+
from datetime import timedelta
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from typing import TypeAlias
|
|
4
|
+
|
|
5
|
+
from typing_extensions import final
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
"ActionCommand",
|
|
9
|
+
"AddRuleset",
|
|
10
|
+
"BiRewriteCommand",
|
|
11
|
+
"Bool",
|
|
12
|
+
"CSVPrintFunctionMode",
|
|
13
|
+
"Call",
|
|
14
|
+
"Change",
|
|
15
|
+
"Check",
|
|
16
|
+
"Constructor",
|
|
17
|
+
"Datatype",
|
|
18
|
+
"Datatypes",
|
|
19
|
+
"DefaultPrintFunctionMode",
|
|
20
|
+
"Delete",
|
|
21
|
+
"EGraph",
|
|
22
|
+
"EggSmolError",
|
|
23
|
+
"EgglogSpan",
|
|
24
|
+
"Eq",
|
|
25
|
+
"Expr_",
|
|
26
|
+
"Extract",
|
|
27
|
+
"ExtractBest",
|
|
28
|
+
"ExtractVariants",
|
|
29
|
+
"Fact",
|
|
30
|
+
"Fail",
|
|
31
|
+
"Float",
|
|
32
|
+
"Function",
|
|
33
|
+
"FunctionCommand",
|
|
34
|
+
"IdentSort",
|
|
35
|
+
"Include",
|
|
36
|
+
"Input",
|
|
37
|
+
"Int",
|
|
38
|
+
"Let",
|
|
39
|
+
"Lit",
|
|
40
|
+
"NewSort",
|
|
41
|
+
"Output",
|
|
42
|
+
"OverallStatistics",
|
|
43
|
+
"Panic",
|
|
44
|
+
"PanicSpan",
|
|
45
|
+
"Pop",
|
|
46
|
+
"PrintAllFunctionsSize",
|
|
47
|
+
"PrintFunction",
|
|
48
|
+
"PrintFunctionOutput",
|
|
49
|
+
"PrintFunctionSize",
|
|
50
|
+
"PrintOverallStatistics",
|
|
51
|
+
"PrintSize",
|
|
52
|
+
"Push",
|
|
53
|
+
"PyObjectSort",
|
|
54
|
+
"Relation",
|
|
55
|
+
"Repeat",
|
|
56
|
+
"Rewrite",
|
|
57
|
+
"RewriteCommand",
|
|
58
|
+
"Rule",
|
|
59
|
+
"RuleCommand",
|
|
60
|
+
"Run",
|
|
61
|
+
"RunConfig",
|
|
62
|
+
"RunReport",
|
|
63
|
+
"RunSchedule",
|
|
64
|
+
"RunScheduleOutput",
|
|
65
|
+
"RustSpan",
|
|
66
|
+
"Saturate",
|
|
67
|
+
"Schema",
|
|
68
|
+
"Sequence",
|
|
69
|
+
"SerializedEGraph",
|
|
70
|
+
"Set",
|
|
71
|
+
"Sort",
|
|
72
|
+
"SrcFile",
|
|
73
|
+
"String",
|
|
74
|
+
"SubVariants",
|
|
75
|
+
"Subsume",
|
|
76
|
+
"TermApp",
|
|
77
|
+
"TermDag",
|
|
78
|
+
"TermLit",
|
|
79
|
+
"TermVar",
|
|
80
|
+
"Union",
|
|
81
|
+
"Unit",
|
|
82
|
+
"UnstableCombinedRuleset",
|
|
83
|
+
"UserDefined",
|
|
84
|
+
"UserDefinedCommandOutput",
|
|
85
|
+
"UserDefinedOutput",
|
|
86
|
+
"Var",
|
|
87
|
+
"Variant",
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
@final
|
|
91
|
+
class SerializedEGraph:
|
|
92
|
+
@property
|
|
93
|
+
def truncated_functions(self) -> list[str]: ...
|
|
94
|
+
@property
|
|
95
|
+
def discarded_functions(self) -> list[str]: ...
|
|
96
|
+
def inline_leaves(self) -> None: ...
|
|
97
|
+
def saturate_inline_leaves(self) -> None: ...
|
|
98
|
+
def to_dot(self) -> str: ...
|
|
99
|
+
def to_json(self) -> str: ...
|
|
100
|
+
def map_ops(self, map: dict[str, str]) -> None: ...
|
|
101
|
+
def split_classes(self, egraph: EGraph, ops: set[str]) -> None: ...
|
|
102
|
+
|
|
103
|
+
@final
|
|
104
|
+
class PyObjectSort:
|
|
105
|
+
def __init__(self) -> None: ...
|
|
106
|
+
def store(self, __o: object, /) -> _Expr: ...
|
|
107
|
+
def load(self, __e: _Expr, /) -> object: ...
|
|
108
|
+
|
|
109
|
+
@final
|
|
110
|
+
class EGraph:
|
|
111
|
+
def __init__(
|
|
112
|
+
self,
|
|
113
|
+
py_object_sort: PyObjectSort | None = None,
|
|
114
|
+
/,
|
|
115
|
+
*,
|
|
116
|
+
fact_directory: str | Path | None = None,
|
|
117
|
+
seminaive: bool = True,
|
|
118
|
+
record: bool = False,
|
|
119
|
+
) -> None: ...
|
|
120
|
+
def parse_program(self, __input: str, /, filename: str | None = None) -> list[_Command]: ...
|
|
121
|
+
def commands(self) -> str | None: ...
|
|
122
|
+
def run_program(self, *commands: _Command) -> list[_CommandOutput]: ...
|
|
123
|
+
def serialize(
|
|
124
|
+
self,
|
|
125
|
+
root_eclasses: list[_Expr],
|
|
126
|
+
*,
|
|
127
|
+
max_functions: int | None = None,
|
|
128
|
+
max_calls_per_function: int | None = None,
|
|
129
|
+
include_temporary_functions: bool = False,
|
|
130
|
+
) -> SerializedEGraph: ...
|
|
131
|
+
|
|
132
|
+
@final
|
|
133
|
+
class EggSmolError(Exception):
|
|
134
|
+
context: str
|
|
135
|
+
|
|
136
|
+
##
|
|
137
|
+
# Spans
|
|
138
|
+
##
|
|
139
|
+
|
|
140
|
+
@final
|
|
141
|
+
class PanicSpan:
|
|
142
|
+
def __init__(self) -> None: ...
|
|
143
|
+
|
|
144
|
+
@final
|
|
145
|
+
class SrcFile:
|
|
146
|
+
name: str | None
|
|
147
|
+
contents: str
|
|
148
|
+
def __init__(self, name: str | None, contents: str) -> None: ...
|
|
149
|
+
|
|
150
|
+
@final
|
|
151
|
+
class EgglogSpan:
|
|
152
|
+
file: SrcFile
|
|
153
|
+
i: int
|
|
154
|
+
j: int
|
|
155
|
+
def __init__(self, file: SrcFile, i: int, j: int) -> None: ...
|
|
156
|
+
|
|
157
|
+
@final
|
|
158
|
+
class RustSpan:
|
|
159
|
+
file: str
|
|
160
|
+
line: int
|
|
161
|
+
column: int
|
|
162
|
+
def __init__(self, file: str, line: int, column: int) -> None: ...
|
|
163
|
+
|
|
164
|
+
_Span: TypeAlias = PanicSpan | EgglogSpan | RustSpan
|
|
165
|
+
|
|
166
|
+
##
|
|
167
|
+
# Literals
|
|
168
|
+
##
|
|
169
|
+
|
|
170
|
+
@final
|
|
171
|
+
class Int:
|
|
172
|
+
def __init__(self, value: int) -> None: ...
|
|
173
|
+
value: int
|
|
174
|
+
|
|
175
|
+
@final
|
|
176
|
+
class Float:
|
|
177
|
+
value: float
|
|
178
|
+
def __init__(self, value: float) -> None: ...
|
|
179
|
+
|
|
180
|
+
@final
|
|
181
|
+
class String:
|
|
182
|
+
def __init__(self, value: str) -> None: ...
|
|
183
|
+
value: str
|
|
184
|
+
|
|
185
|
+
@final
|
|
186
|
+
class Unit:
|
|
187
|
+
def __init__(self) -> None: ...
|
|
188
|
+
|
|
189
|
+
@final
|
|
190
|
+
class Bool:
|
|
191
|
+
def __init__(self, b: bool) -> None: ...
|
|
192
|
+
value: bool
|
|
193
|
+
|
|
194
|
+
_Literal: TypeAlias = Int | Float | String | Bool | Unit
|
|
195
|
+
|
|
196
|
+
##
|
|
197
|
+
# Expressions
|
|
198
|
+
##
|
|
199
|
+
|
|
200
|
+
@final
|
|
201
|
+
class Lit:
|
|
202
|
+
def __init__(self, span: _Span, value: _Literal) -> None: ...
|
|
203
|
+
span: _Span
|
|
204
|
+
value: _Literal
|
|
205
|
+
|
|
206
|
+
@final
|
|
207
|
+
class Var:
|
|
208
|
+
def __init__(self, span: _Span, name: str) -> None: ...
|
|
209
|
+
span: _Span
|
|
210
|
+
name: str
|
|
211
|
+
|
|
212
|
+
@final
|
|
213
|
+
class Call:
|
|
214
|
+
def __init__(self, span: _Span, name: str, args: list[_Expr]) -> None: ...
|
|
215
|
+
span: _Span
|
|
216
|
+
name: str
|
|
217
|
+
args: list[_Expr]
|
|
218
|
+
|
|
219
|
+
# Unions must be private becuase it is not actually exposed by the runtime library.
|
|
220
|
+
_Expr: TypeAlias = Lit | Var | Call
|
|
221
|
+
|
|
222
|
+
##
|
|
223
|
+
# Terms
|
|
224
|
+
##
|
|
225
|
+
|
|
226
|
+
@final
|
|
227
|
+
class TermLit:
|
|
228
|
+
def __init__(self, value: _Literal) -> None: ...
|
|
229
|
+
value: _Literal
|
|
230
|
+
|
|
231
|
+
@final
|
|
232
|
+
class TermVar:
|
|
233
|
+
def __init__(self, name: str) -> None: ...
|
|
234
|
+
name: str
|
|
235
|
+
|
|
236
|
+
@final
|
|
237
|
+
class TermApp:
|
|
238
|
+
def __init__(self, name: str, args: list[int]) -> None: ...
|
|
239
|
+
name: str
|
|
240
|
+
args: list[int]
|
|
241
|
+
|
|
242
|
+
_Term: TypeAlias = TermLit | TermVar | TermApp
|
|
243
|
+
|
|
244
|
+
##
|
|
245
|
+
# Facts
|
|
246
|
+
##
|
|
247
|
+
|
|
248
|
+
@final
|
|
249
|
+
class Eq:
|
|
250
|
+
def __init__(self, span: _Span, left: _Expr, right: _Expr) -> None: ...
|
|
251
|
+
span: _Span
|
|
252
|
+
left: _Expr
|
|
253
|
+
right: _Expr
|
|
254
|
+
|
|
255
|
+
@final
|
|
256
|
+
class Fact:
|
|
257
|
+
def __init__(self, expr: _Expr) -> None: ...
|
|
258
|
+
expr: _Expr
|
|
259
|
+
|
|
260
|
+
_Fact: TypeAlias = Fact | Eq
|
|
261
|
+
|
|
262
|
+
##
|
|
263
|
+
# Change
|
|
264
|
+
##
|
|
265
|
+
|
|
266
|
+
@final
|
|
267
|
+
class Delete:
|
|
268
|
+
def __init__(self) -> None: ...
|
|
269
|
+
|
|
270
|
+
@final
|
|
271
|
+
class Subsume:
|
|
272
|
+
def __init__(self) -> None: ...
|
|
273
|
+
|
|
274
|
+
_Change: TypeAlias = Delete | Subsume
|
|
275
|
+
|
|
276
|
+
##
|
|
277
|
+
# Actions
|
|
278
|
+
##
|
|
279
|
+
|
|
280
|
+
@final
|
|
281
|
+
class Let:
|
|
282
|
+
def __init__(self, span: _Span, lhs: str, rhs: _Expr) -> None: ...
|
|
283
|
+
span: _Span
|
|
284
|
+
lhs: str
|
|
285
|
+
rhs: _Expr
|
|
286
|
+
|
|
287
|
+
@final
|
|
288
|
+
class Set:
|
|
289
|
+
def __init__(self, span: _Span, lhs: str, args: list[_Expr], rhs: _Expr) -> None: ...
|
|
290
|
+
span: _Span
|
|
291
|
+
lhs: str
|
|
292
|
+
args: list[_Expr]
|
|
293
|
+
rhs: _Expr
|
|
294
|
+
|
|
295
|
+
@final
|
|
296
|
+
class Change:
|
|
297
|
+
span: _Span
|
|
298
|
+
change: _Change
|
|
299
|
+
sym: str
|
|
300
|
+
args: list[_Expr]
|
|
301
|
+
def __init__(self, span: _Span, change: _Change, sym: str, args: list[_Expr]) -> None: ...
|
|
302
|
+
|
|
303
|
+
@final
|
|
304
|
+
class Union:
|
|
305
|
+
def __init__(self, span: _Span, lhs: _Expr, rhs: _Expr) -> None: ...
|
|
306
|
+
span: _Span
|
|
307
|
+
lhs: _Expr
|
|
308
|
+
rhs: _Expr
|
|
309
|
+
|
|
310
|
+
@final
|
|
311
|
+
class Panic:
|
|
312
|
+
def __init__(self, span: _Span, msg: str) -> None: ...
|
|
313
|
+
span: _Span
|
|
314
|
+
msg: str
|
|
315
|
+
|
|
316
|
+
@final
|
|
317
|
+
class Expr_: # noqa: N801
|
|
318
|
+
def __init__(self, span: _Span, expr: _Expr) -> None: ...
|
|
319
|
+
span: _Span
|
|
320
|
+
expr: _Expr
|
|
321
|
+
|
|
322
|
+
_Action: TypeAlias = Let | Set | Change | Union | Panic | Expr_
|
|
323
|
+
|
|
324
|
+
##
|
|
325
|
+
# Other Structs
|
|
326
|
+
##
|
|
327
|
+
|
|
328
|
+
@final
|
|
329
|
+
class Variant:
|
|
330
|
+
def __init__(self, span: _Span, name: str, types: list[str], cost: int | None = None) -> None: ...
|
|
331
|
+
span: _Span
|
|
332
|
+
name: str
|
|
333
|
+
types: list[str]
|
|
334
|
+
cost: int | None
|
|
335
|
+
|
|
336
|
+
@final
|
|
337
|
+
class Schema:
|
|
338
|
+
input: list[str]
|
|
339
|
+
output: str
|
|
340
|
+
def __init__(self, input: list[str], output: str) -> None: ...
|
|
341
|
+
|
|
342
|
+
@final
|
|
343
|
+
class Rule:
|
|
344
|
+
span: _Span
|
|
345
|
+
head: list[_Action]
|
|
346
|
+
body: list[_Fact]
|
|
347
|
+
def __init__(self, span: _Span, head: list[_Action], body: list[_Fact]) -> None: ...
|
|
348
|
+
|
|
349
|
+
@final
|
|
350
|
+
class Rewrite:
|
|
351
|
+
span: _Span
|
|
352
|
+
lhs: _Expr
|
|
353
|
+
rhs: _Expr
|
|
354
|
+
conditions: list[_Fact]
|
|
355
|
+
|
|
356
|
+
def __init__(self, span: _Span, lhs: _Expr, rhs: _Expr, conditions: list[_Fact] = []) -> None: ...
|
|
357
|
+
|
|
358
|
+
@final
|
|
359
|
+
class RunConfig:
|
|
360
|
+
ruleset: str
|
|
361
|
+
until: list[_Fact] | None
|
|
362
|
+
def __init__(self, ruleset: str, until: list[_Fact] | None = None) -> None: ...
|
|
363
|
+
|
|
364
|
+
@final
|
|
365
|
+
class IdentSort:
|
|
366
|
+
ident: str
|
|
367
|
+
sort: str
|
|
368
|
+
def __init__(self, ident: str, sort: str) -> None: ...
|
|
369
|
+
|
|
370
|
+
@final
|
|
371
|
+
class UserDefinedCommandOutput: ...
|
|
372
|
+
|
|
373
|
+
@final
|
|
374
|
+
class Function:
|
|
375
|
+
name: str
|
|
376
|
+
|
|
377
|
+
@final
|
|
378
|
+
class RunReport:
|
|
379
|
+
updated: bool
|
|
380
|
+
search_and_apply_time_per_rule: dict[str, timedelta]
|
|
381
|
+
num_matches_per_rule: dict[str, int]
|
|
382
|
+
search_and_apply_time_per_ruleset: dict[str, timedelta]
|
|
383
|
+
merge_time_per_ruleset: dict[str, timedelta]
|
|
384
|
+
rebuild_time_per_ruleset: dict[str, timedelta]
|
|
385
|
+
|
|
386
|
+
def __init__(
|
|
387
|
+
self,
|
|
388
|
+
updated: bool,
|
|
389
|
+
search_and_apply_time_per_rule: dict[str, timedelta],
|
|
390
|
+
num_matches_per_rule: dict[str, int],
|
|
391
|
+
search_and_apply_time_per_ruleset: dict[str, timedelta],
|
|
392
|
+
merge_time_per_ruleset: dict[str, timedelta],
|
|
393
|
+
rebuild_time_per_ruleset: dict[str, timedelta],
|
|
394
|
+
) -> None: ...
|
|
395
|
+
|
|
396
|
+
##
|
|
397
|
+
# Command Outputs
|
|
398
|
+
##
|
|
399
|
+
|
|
400
|
+
@final
|
|
401
|
+
class PrintFunctionSize:
|
|
402
|
+
size: int
|
|
403
|
+
def __init__(self, size: int) -> None: ...
|
|
404
|
+
|
|
405
|
+
@final
|
|
406
|
+
class PrintAllFunctionsSize:
|
|
407
|
+
sizes: list[tuple[str, int]]
|
|
408
|
+
def __init__(self, sizes: list[tuple[str, int]]) -> None: ...
|
|
409
|
+
|
|
410
|
+
@final
|
|
411
|
+
class ExtractVariants:
|
|
412
|
+
termdag: TermDag
|
|
413
|
+
terms: list[_Term]
|
|
414
|
+
def __init__(self, termdag: TermDag, terms: list[_Term]) -> None: ...
|
|
415
|
+
|
|
416
|
+
@final
|
|
417
|
+
class ExtractBest:
|
|
418
|
+
termdag: TermDag
|
|
419
|
+
cost: int
|
|
420
|
+
term: _Term
|
|
421
|
+
def __init__(self, termdag: TermDag, cost: int, term: _Term) -> None: ...
|
|
422
|
+
|
|
423
|
+
@final
|
|
424
|
+
class OverallStatistics:
|
|
425
|
+
report: RunReport
|
|
426
|
+
def __init__(self, report: RunReport) -> None: ...
|
|
427
|
+
|
|
428
|
+
@final
|
|
429
|
+
class RunScheduleOutput:
|
|
430
|
+
report: RunReport
|
|
431
|
+
def __init__(self, report: RunReport) -> None: ...
|
|
432
|
+
|
|
433
|
+
@final
|
|
434
|
+
class PrintFunctionOutput:
|
|
435
|
+
function: Function
|
|
436
|
+
termdag: TermDag
|
|
437
|
+
terms: list[tuple[_Term, _Term]]
|
|
438
|
+
mode: _PrintFunctionMode
|
|
439
|
+
def __init__(
|
|
440
|
+
self, function: Function, termdag: TermDag, terms: list[tuple[_Term, _Term]], mode: _PrintFunctionMode
|
|
441
|
+
) -> None: ...
|
|
442
|
+
|
|
443
|
+
@final
|
|
444
|
+
class UserDefinedOutput:
|
|
445
|
+
output: UserDefinedCommandOutput
|
|
446
|
+
def __init__(self, output: UserDefinedCommandOutput) -> None: ...
|
|
447
|
+
|
|
448
|
+
_CommandOutput: TypeAlias = (
|
|
449
|
+
PrintFunctionSize
|
|
450
|
+
| PrintAllFunctionsSize
|
|
451
|
+
| ExtractVariants
|
|
452
|
+
| ExtractBest
|
|
453
|
+
| OverallStatistics
|
|
454
|
+
| RunScheduleOutput
|
|
455
|
+
| PrintFunctionOutput
|
|
456
|
+
| UserDefinedOutput
|
|
457
|
+
)
|
|
458
|
+
|
|
459
|
+
##
|
|
460
|
+
# Print Function Modes
|
|
461
|
+
##
|
|
462
|
+
|
|
463
|
+
@final
|
|
464
|
+
class DefaultPrintFunctionMode: ...
|
|
465
|
+
|
|
466
|
+
@final
|
|
467
|
+
class CSVPrintFunctionMode: ...
|
|
468
|
+
|
|
469
|
+
_PrintFunctionMode: TypeAlias = DefaultPrintFunctionMode | CSVPrintFunctionMode
|
|
470
|
+
|
|
471
|
+
##
|
|
472
|
+
# Schedules
|
|
473
|
+
##
|
|
474
|
+
|
|
475
|
+
@final
|
|
476
|
+
class Saturate:
|
|
477
|
+
span: _Span
|
|
478
|
+
schedule: _Schedule
|
|
479
|
+
def __init__(self, span: _Span, schedule: _Schedule) -> None: ...
|
|
480
|
+
|
|
481
|
+
@final
|
|
482
|
+
class Repeat:
|
|
483
|
+
span: _Span
|
|
484
|
+
length: int
|
|
485
|
+
schedule: _Schedule
|
|
486
|
+
def __init__(self, span: _Span, length: int, schedule: _Schedule) -> None: ...
|
|
487
|
+
|
|
488
|
+
@final
|
|
489
|
+
class Run:
|
|
490
|
+
span: _Span
|
|
491
|
+
config: RunConfig
|
|
492
|
+
def __init__(self, span: _Span, config: RunConfig) -> None: ...
|
|
493
|
+
|
|
494
|
+
@final
|
|
495
|
+
class Sequence:
|
|
496
|
+
span: _Span
|
|
497
|
+
schedules: list[_Schedule]
|
|
498
|
+
def __init__(self, span: _Span, schedules: list[_Schedule]) -> None: ...
|
|
499
|
+
|
|
500
|
+
_Schedule: TypeAlias = Saturate | Repeat | Run | Sequence
|
|
501
|
+
|
|
502
|
+
##
|
|
503
|
+
# Subdatatypes
|
|
504
|
+
##
|
|
505
|
+
|
|
506
|
+
@final
|
|
507
|
+
class SubVariants:
|
|
508
|
+
def __init__(self, variants: list[Variant]) -> None: ...
|
|
509
|
+
variants: list[Variant]
|
|
510
|
+
|
|
511
|
+
@final
|
|
512
|
+
class NewSort:
|
|
513
|
+
def __init__(self, name: str, args: list[_Expr]) -> None: ...
|
|
514
|
+
name: str
|
|
515
|
+
args: list[_Expr]
|
|
516
|
+
|
|
517
|
+
_Subdatatypes: TypeAlias = SubVariants | NewSort
|
|
518
|
+
|
|
519
|
+
##
|
|
520
|
+
# Commands
|
|
521
|
+
##
|
|
522
|
+
|
|
523
|
+
@final
|
|
524
|
+
class Datatype:
|
|
525
|
+
span: _Span
|
|
526
|
+
name: str
|
|
527
|
+
variants: list[Variant]
|
|
528
|
+
def __init__(self, span: _Span, name: str, variants: list[Variant]) -> None: ...
|
|
529
|
+
|
|
530
|
+
@final
|
|
531
|
+
class Datatypes:
|
|
532
|
+
span: _Span
|
|
533
|
+
datatypes: list[tuple[_Span, str, _Subdatatypes]]
|
|
534
|
+
def __init__(self, span: _Span, datatypes: list[tuple[_Span, str, _Subdatatypes]]) -> None: ...
|
|
535
|
+
|
|
536
|
+
@final
|
|
537
|
+
class Sort:
|
|
538
|
+
span: _Span
|
|
539
|
+
name: str
|
|
540
|
+
presort_and_args: tuple[str, list[_Expr]] | None
|
|
541
|
+
def __init__(self, span: _Span, name: str, presort_and_args: tuple[str, list[_Expr]] | None = None) -> None: ...
|
|
542
|
+
|
|
543
|
+
@final
|
|
544
|
+
class FunctionCommand:
|
|
545
|
+
span: _Span
|
|
546
|
+
name: str
|
|
547
|
+
schema: Schema
|
|
548
|
+
merge: _Expr | None
|
|
549
|
+
def __init__(self, span: _Span, name: str, schema: Schema, merge: _Expr | None) -> None: ...
|
|
550
|
+
|
|
551
|
+
@final
|
|
552
|
+
class AddRuleset:
|
|
553
|
+
span: _Span
|
|
554
|
+
name: str
|
|
555
|
+
def __init__(self, span: _Span, name: str) -> None: ...
|
|
556
|
+
|
|
557
|
+
@final
|
|
558
|
+
class RuleCommand:
|
|
559
|
+
name: str
|
|
560
|
+
ruleset: str
|
|
561
|
+
rule: Rule
|
|
562
|
+
def __init__(self, name: str, ruleset: str, rule: Rule) -> None: ...
|
|
563
|
+
|
|
564
|
+
@final
|
|
565
|
+
class RewriteCommand:
|
|
566
|
+
# TODO: Rename to ruleset
|
|
567
|
+
name: str
|
|
568
|
+
rewrite: Rewrite
|
|
569
|
+
subsume: bool
|
|
570
|
+
def __init__(self, name: str, rewrite: Rewrite, subsume: bool) -> None: ...
|
|
571
|
+
|
|
572
|
+
@final
|
|
573
|
+
class BiRewriteCommand:
|
|
574
|
+
# TODO: Rename to ruleset
|
|
575
|
+
name: str
|
|
576
|
+
rewrite: Rewrite
|
|
577
|
+
def __init__(self, name: str, rewrite: Rewrite) -> None: ...
|
|
578
|
+
|
|
579
|
+
@final
|
|
580
|
+
class ActionCommand:
|
|
581
|
+
action: _Action
|
|
582
|
+
def __init__(self, action: _Action) -> None: ...
|
|
583
|
+
|
|
584
|
+
@final
|
|
585
|
+
class RunSchedule:
|
|
586
|
+
schedule: _Schedule
|
|
587
|
+
def __init__(self, schedule: _Schedule) -> None: ...
|
|
588
|
+
|
|
589
|
+
@final
|
|
590
|
+
class Extract:
|
|
591
|
+
span: _Span
|
|
592
|
+
expr: _Expr
|
|
593
|
+
variants: _Expr
|
|
594
|
+
def __init__(self, span: _Span, expr: _Expr, variants: _Expr) -> None: ...
|
|
595
|
+
|
|
596
|
+
@final
|
|
597
|
+
class Check:
|
|
598
|
+
span: _Span
|
|
599
|
+
facts: list[_Fact]
|
|
600
|
+
def __init__(self, span: _Span, facts: list[_Fact]) -> None: ...
|
|
601
|
+
|
|
602
|
+
@final
|
|
603
|
+
class PrintFunction:
|
|
604
|
+
span: _Span
|
|
605
|
+
name: str
|
|
606
|
+
length: int | None
|
|
607
|
+
filename: str | None
|
|
608
|
+
mode: _PrintFunctionMode
|
|
609
|
+
def __init__(
|
|
610
|
+
self, span: _Span, name: str, length: int | None, filename: str | None, mode: _PrintFunctionMode
|
|
611
|
+
) -> None: ...
|
|
612
|
+
|
|
613
|
+
@final
|
|
614
|
+
class PrintSize:
|
|
615
|
+
span: _Span
|
|
616
|
+
name: str | None
|
|
617
|
+
def __init__(self, span: _Span, name: str | None) -> None: ...
|
|
618
|
+
|
|
619
|
+
@final
|
|
620
|
+
class Output:
|
|
621
|
+
span: _Span
|
|
622
|
+
file: str
|
|
623
|
+
exprs: list[_Expr]
|
|
624
|
+
def __init__(self, span: _Span, file: str, exprs: list[_Expr]) -> None: ...
|
|
625
|
+
|
|
626
|
+
@final
|
|
627
|
+
class Input:
|
|
628
|
+
span: _Span
|
|
629
|
+
name: str
|
|
630
|
+
file: str
|
|
631
|
+
def __init__(self, span: _Span, name: str, file: str) -> None: ...
|
|
632
|
+
|
|
633
|
+
@final
|
|
634
|
+
class Push:
|
|
635
|
+
length: int
|
|
636
|
+
def __init__(self, length: int) -> None: ...
|
|
637
|
+
|
|
638
|
+
@final
|
|
639
|
+
class Pop:
|
|
640
|
+
span: _Span
|
|
641
|
+
length: int
|
|
642
|
+
def __init__(self, span: _Span, length: int) -> None: ...
|
|
643
|
+
|
|
644
|
+
@final
|
|
645
|
+
class Fail:
|
|
646
|
+
span: _Span
|
|
647
|
+
command: _Command
|
|
648
|
+
def __init__(self, span: _Span, command: _Command) -> None: ...
|
|
649
|
+
|
|
650
|
+
@final
|
|
651
|
+
class Include:
|
|
652
|
+
span: _Span
|
|
653
|
+
path: str
|
|
654
|
+
def __init__(self, span: _Span, path: str) -> None: ...
|
|
655
|
+
|
|
656
|
+
@final
|
|
657
|
+
class Relation:
|
|
658
|
+
span: _Span
|
|
659
|
+
name: str
|
|
660
|
+
inputs: list[str]
|
|
661
|
+
|
|
662
|
+
def __init__(self, span: _Span, name: str, inputs: list[str]) -> None: ...
|
|
663
|
+
|
|
664
|
+
@final
|
|
665
|
+
class Constructor:
|
|
666
|
+
span: _Span
|
|
667
|
+
name: str
|
|
668
|
+
schema: Schema
|
|
669
|
+
cost: int | None
|
|
670
|
+
unextractable: bool
|
|
671
|
+
def __init__(self, span: _Span, name: str, schema: Schema, cost: int | None, unextractable: bool) -> None: ...
|
|
672
|
+
|
|
673
|
+
@final
|
|
674
|
+
class PrintOverallStatistics:
|
|
675
|
+
def __init__(self) -> None: ...
|
|
676
|
+
|
|
677
|
+
@final
|
|
678
|
+
class UserDefined:
|
|
679
|
+
span: _Span
|
|
680
|
+
name: str
|
|
681
|
+
args: list[_Expr]
|
|
682
|
+
def __init__(self, span: _Span, name: str, args: list[_Expr]) -> None: ...
|
|
683
|
+
|
|
684
|
+
@final
|
|
685
|
+
class UnstableCombinedRuleset:
|
|
686
|
+
span: _Span
|
|
687
|
+
name: str
|
|
688
|
+
rulesets: list[str]
|
|
689
|
+
def __init__(self, span: _Span, name: str, rulesets: list[str]) -> None: ...
|
|
690
|
+
|
|
691
|
+
_Command: TypeAlias = (
|
|
692
|
+
Datatype
|
|
693
|
+
| Datatypes
|
|
694
|
+
| Sort
|
|
695
|
+
| FunctionCommand
|
|
696
|
+
| AddRuleset
|
|
697
|
+
| RuleCommand
|
|
698
|
+
| RewriteCommand
|
|
699
|
+
| BiRewriteCommand
|
|
700
|
+
| ActionCommand
|
|
701
|
+
| RunSchedule
|
|
702
|
+
| Extract
|
|
703
|
+
| Check
|
|
704
|
+
| PrintFunction
|
|
705
|
+
| PrintSize
|
|
706
|
+
| Output
|
|
707
|
+
| Input
|
|
708
|
+
| Push
|
|
709
|
+
| Pop
|
|
710
|
+
| Fail
|
|
711
|
+
| Include
|
|
712
|
+
| Relation
|
|
713
|
+
| PrintOverallStatistics
|
|
714
|
+
| UnstableCombinedRuleset
|
|
715
|
+
| Constructor
|
|
716
|
+
| UserDefined
|
|
717
|
+
)
|
|
718
|
+
|
|
719
|
+
##
|
|
720
|
+
# TermDag
|
|
721
|
+
##
|
|
722
|
+
|
|
723
|
+
@final
|
|
724
|
+
class TermDag:
|
|
725
|
+
def __init__(self) -> None: ...
|
|
726
|
+
def size(self) -> int: ...
|
|
727
|
+
def lookup(self, node: _Term) -> int: ...
|
|
728
|
+
def get(self, id: int) -> _Term: ...
|
|
729
|
+
def app(self, sym: str, children: list[int]) -> _Term: ...
|
|
730
|
+
def lit(self, lit: _Literal) -> _Term: ...
|
|
731
|
+
def var(self, sym: str) -> _Term: ...
|
|
732
|
+
def expr_to_term(self, expr: _Expr) -> _Term: ...
|
|
733
|
+
def term_to_expr(self, term: _Term, span: _Span) -> _Expr: ...
|
|
734
|
+
def to_string(self, term: _Term) -> str: ...
|