z3py中的多个约束(如果有条件)

时间:2019-06-07 18:47:06

标签: z3 z3py

让我们假设我们有2个函数(funcAfuncB),它们在Z3的当前上下文中建立了一些约束。

我想保护Z3 if块中的那些。在z3py中,您将编写:

t = If(some_condition, funcA(), funcB())

这取决于funcAfuncB返回某些z3表达式的事实。如果我想将它们表示为构建一堆约束而不是返回表达式的函数调用,怎么办呢?

1 个答案:

答案 0 :(得分:1)

我会将它们转换为(伪代码):

for c in funcA():
   s.add(Implies(some_condition, c))

for c in funcB():
   s.add(Implies(Not(some_condition), c))