Create a tuple sort. Returns (sort, constructor, list_of_accessor_FuncDeclRefs). z3py compat: ctor name = sort name, accessors named project0, project1, ...
(name: str, sorts: list[SortRef] | tuple[SortRef, ...])
| 1288 | |
| 1289 | |
| 1290 | def TupleSort(name: str, sorts: list[SortRef] | tuple[SortRef, ...]) -> tuple: |
| 1291 | """Create a tuple sort. |
| 1292 | |
| 1293 | Returns (sort, constructor, list_of_accessor_FuncDeclRefs). |
| 1294 | z3py compat: ctor name = sort name, accessors named project0, project1, ... |
| 1295 | """ |
| 1296 | b = _DatatypeBuilder(name) |
| 1297 | fields = [(f"project{i}", s) for i, s in enumerate(sorts)] |
| 1298 | b.declare(name, *fields) |
| 1299 | sort = b.create() |
| 1300 | return sort, sort.constructor(0), [sort.accessor(0, i) for i in range(len(sorts))] |
| 1301 | |
| 1302 | |
| 1303 | # --------------------------------------------------------------------------- |