[英]Are Z3 caches additive?
我知道Z3具有基於堆棧的緩存,可以在其中添加和緩存其他公式。 是否有內置的方式或擴展允許將兩個Z3緩存組合在一起?
范例(Z3 py)
from z3 import Solver
solver = Solver()
solver.push()
solver2 = Solver()
# solver.combine(solver2) ?
不太清楚“組合”的意思。 但是,您可以從一個斷言中獲取斷言,然后將其添加到另一個斷言中:
from z3 import *
i = Int('x')
s1 = Solver()
s1.add(i == 3)
s1.push()
s2 = Solver()
s2.add(s1.assertions())
print s2.check()
print s2.model()
打印:
sat
[x = 3]
我想您可以使用此技巧來進行自己的組合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.