如何在Z3_mk_forall_const中声明常量用作绑定变量?

时间:2014-03-25 19:07:14

标签: z3

假设我想在以下公式中普遍量化x和y:

f(x,y) <=> x=y 

使用 Z3_mk_forall_const 。我将不得不首先构造上面的公式,它需要类型为 Z3_ast 的常量x和y。使用 Z3_mk_const 创建x和y会产生全局声明。我理想的是要避免这种情况。还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

是的还有另一种选择;您可以使用Z3_mk_forall使用de-Brujin variable indexes。您可以使用创建索引变量而不是常量 Z3_mk_bound然后将他们的排序(排序)和名称(decl_names)的数组传递给mk_forall或mk_exists。