簡體   English   中英

Z3緩存是否具有附加功能?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM