在用户理论插件中,假设我有一个客户排序“T”,我在 T 上定义了一个带有“ Z3_func_decl
”的函数“f”,它接受排序 T 的参数并返回排序 Int(排序由“ Z3_mk_int_sort
”制成)。我对返回的 Int 值还有其他限制。
在搜索中,我想在一些回调(例如new_assignment
或new_eq
回调)中捕获 Int 返回值的具体值,以便我可以做出额外的断言来解决排序 T 的参数值。但问题是那些回调不会被调用在搜索中。
我看了一下Z3_context
SAT解决方案。在理论算术中,我看到:
vars: v0 #24 lo: -oo, up: 4, value: 0, occs: 0, atom: 1, int, non-base, shared: 0, activity: 0, unassigned: 0, rel: 1, def: #24
“#24”是我的函数,“up”中显示的“4”是我函数返回值的SAT解。
我的问题是如何在搜索中获得值“4”。我试图在回调的#24 的等价类中找到它,final_check
但没有运气。
谢谢!