函数模型包含对<condition_on_args, return_value>
的条目。
return_value
表达式可以引用输入参数,例如(f!4 (k!3 (:var 0)))
。这里(:var 0)
指的是函数模型的第0个输入参数,它是Z3_VAR_AST的类型。
我想将return_value
转换为某个内部程序表示,但不知道如何将(:var 0)
与函数模型的第0个输入参数联系起来。
如何通过c / c ++ API从类型Z3_VAR_AST的expr 0
获取变量的索引,即(:var 0)
?
谢谢!
答案 0 :(得分:1)
您必须使用以下API:
/**
\brief Return index of de-Brujin bound variable.
\pre Z3_get_ast_kind(a) == Z3_VAR_AST
def_API('Z3_get_index_value', UINT, (_in(CONTEXT), _in(AST)))
*/
unsigned Z3_API Z3_get_index_value(__in Z3_context c, __in Z3_ast a);