Convert a function declaration to an array.
(f: FuncDeclRef)
| 2222 | |
| 2223 | |
| 2224 | def AsArray(f: FuncDeclRef) -> ArrayRef: |
| 2225 | """Convert a function declaration to an array.""" |
| 2226 | if len(f._domain) != 1: |
| 2227 | raise TypeError("AsArray requires a unary function") |
| 2228 | x = Const("__asarray_x", f._domain[0]) |
| 2229 | lam = Lambda(x, f(x)) |
| 2230 | result_sort = ArraySort(f._domain[0], f._range) |
| 2231 | return ArrayRef(lam._ast, result_sort, lam._vars) |
| 2232 | |
| 2233 | |
| 2234 | # --------------------------------------------------------------------------- |