假设我想在以下公式中普遍量化x和y:
f(x,y) <=> x=y
使用 Z3_mk_forall_const
。我将不得不首先构造上面的公式,它需要类型为 Z3_ast
的常量x和y。使用 Z3_mk_const
创建x和y会产生全局声明。我理想的是要避免这种情况。还有其他选择吗?
答案 0 :(得分:1)
是的还有另一种选择;您可以使用Z3_mk_forall使用de-Brujin variable indexes。您可以使用创建索引变量而不是常量 Z3_mk_bound然后将他们的排序(排序)和名称(decl_names)的数组传递给mk_forall或mk_exists。