【发布时间】:2022-01-28 01:52:07
【问题描述】:
我想循环一个 Z3 变量以在 python 中添加约束。以下代码 sn-p 可能有助于澄清我面临的问题。
from z3 import *
a = Int('a')
b = [Int( 'b_' + str(i)) for i in range(10)]
s = Solver()
s.add(a <= 4)
for i in range(a): ################## How to do this? #####################
s.add(b[i] == 1)
s.check()
s.model()
【问题讨论】:
-
可能将
range(a)更改为range(4)或类似的,因为 a 是 z3 Int 对象 -
这是一个例子。假设 a 的值事先不知道。感谢您的评论。为了清楚起见,让我重新表述一下这个问题。
-
此时会解决
a吗? -
变量需要通过其他约束来解决。每个约束都应该在一个求解器中。有依赖关系。因此顺序求解是不可能的。我有一个非常复杂的问题版本。我没有尝试做一个简化的表示。