Z3py get_vars(f) 相当于 Java

Z3py get_vars(f) equivalent for Java

跟进 this post: 有一个示例实现如何使用 python here 获取自由变量,我想在 Java 中 re-implement。如何访问 Expr 的 children?我没有找到 getter 或访客。

您可以通过以下三种情况递归访问子表达式:

  1. 一个表达式可以是一个变量Expr.isVar()
  2. 表达式可以是量词Quantifier.isUniversal()/isExistential(),调用getBody()得到child.
  3. 一个表达式可以是一个应用程序,Expr.isApp(),使用Expr.getArgs()访问children.