我正在使用Z3和Java API。在我的SMT-LIB2文件中,有几个变量:
(declare-fun x0 () Int)
(declare-fun x1 () Bool)
; alot more
我想获取所有这些变量,并将它们存储在Expr
数组中。从z3分发的示例中,我发现API SMTLIBDecls
获取了从SMT-LIB1文件解析的声明,但SMT-LIB2没有类似的API。我怎样才能得到声明?
感谢。
答案 0 :(得分:0)
目前没有用于此目的的函数,但通过遍历表达式很容易获得声明。之前已经要求使用C / C ++,但答案也适用于Java:Z3 4.3.1 C-API parse_smtlib2_string: Where to get declarations from?
此外,这些帖子也可能是有意义的: Traversing Z3_ast tree in C/C++,How to find out if a z3_ast corresponds to a clause?