z3pythonapi中的标记约束

z3pythonapi中的标记约束,z3,smt,z3py,Z3,Smt,Z3py,问题1:如何使用Z3 Python API来添加具有唯一标签的约束?我试着说: 。。。 self.solver.add(self.vm[i]>=0,'labelIdx'+str(self.idx)) 其中self.idx是一个整数,每i增加一个整数,但我得到: z3.z3types.Z3Exception:应为True、False或z3布尔表达式。已收到labelIdx0 这意味着add的参数不能是字符串 问题2:unsat_core()函数仅适用于Solver()对象或Optimize()对

问题1:如何使用Z3 Python API来添加具有唯一标签的约束?我试着说:

。。。 self.solver.add(self.vm[i]>=0,'labelIdx'+str(self.idx))

其中self.idx是一个整数,每i增加一个整数,但我得到:

z3.z3types.Z3Exception:应为True、False或z3布尔表达式。已收到labelIdx0

这意味着add的参数不能是字符串

问题2:unsat_core()函数仅适用于Solver()对象或Optimize()对象。我应该在添加约束之前设置一些选项吗。显然,这里[1]是程序

谢谢


[1]

要跟踪unsat内核,您需要使用
断言和跟踪
,请参见此处:

不幸的是,优化和unsat核心不能一起工作。这是最近作为一个问题提出的,请参见此处:。据我理解,这并不是因为它不能被支持,而是因为他们还没有实现它。评论这张票可以激励他们增加支持