substituteVars<A extends Expr> method

A substituteVars<A extends Expr>(
  1. Expr expr,
  2. List<Expr> to
)

Substitute BoundVars in expr with the expressions in to.

Implementation

A substituteVars<A extends Expr>(Expr expr, List<Expr> to) {
  final toPtr = calloc<Z3_ast>(to.length);
  try {
    for (var i = 0; i < to.length; i++) {
      toPtr[i] = _createAST(to[i]);
    }
    final result = _z3.substitute_vars(
      _createAST(expr),
      to.length,
      toPtr,
    );
    return _getExpr(result) as A;
  } finally {
    malloc.free(toPtr);
  }
}