[英]How to define two dimensional array variable in Z3py
我想在 Z3py 中定义一个二维布尔数组。 实际上,我想使用其他整数变量访问数组索引,例如,A[x][3],其中 x 是一个整数变量,其值由 SMT 求解器在运行时决定。
如果我定义二维数组如下: A = [ [ Bool("a_%s_%s" % (i, j)) for j in range(5) ] for i in range(5) ] 那么,我在添加约束(A[x][3]==True)时得到“TypeError:对象不能被解释为索引”。
我检查了定义为 A = Array('A',IntSort(),IntSort()) 的 z3 数组,我可以使用其他整数变量(例如 A[x])访问数组索引。 现在,我想要同样的二维数组。
请在这方面帮助我。 提前致谢。
您可以像这样对嵌套数组进行建模:
A = Array('A', IntSort(), ArraySort(IntSort(), BoolSort()))
也就是说,第一个索引是一个整数,它索引到另一个从整数到布尔值的数组中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.