繁体   English   中英

z3py:使用具体值简化嵌套商店

[英]z3py: simplify nested Stores with concrete values

我正在使用Z3的python API [版本4.4.2-64位],并且试图理解在这种情况下z3为何简化了表达式:

>>> a = Array('a', IntSort(), IntSort())
>>> a = Store(a, 0, 1)
>>> a = Store(a, 0, 3)
>>> simplify(a)
Store(a, 0, 3)

但这不是这种情况:

>>> a = Array('a', IntSort(), IntSort())
>>> a = Store(a, 0, 1)
>>> a = Store(a, 1, 2)
>>> a = Store(a, 0, 3)
>>> simplify(a) 
Store(Store(Store(a, 0, 1), 1, 2), 0, 3)

简化程序仅对阵列应用最便宜的重写。 因此,如果为同一密钥找到两个相邻的存储,它将知道压缩最内部的密钥。 通常,找到重叠键的成本很高,此外,键可能是无法确定它们是否重叠的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM