2011-09-01 13 views

回答

6

DPLL(T)完全不用於解決QF_BV問題。 關於「有效解決定量比特向量公式」的論文的評論大約是Z3 2.x. QF_BV是關於問題編碼的。預處理有很大的不同。 我從零開始爲Z3 3.0構建了一個新的預處理堆棧和SAT解算器。 新的預處理器比Z3 2.x中使用的預處理器快得多,並執行更積極的簡化。 沒有魔法或花哨的技巧。在預處理步驟之後,Z3位將所有內容進行轟擊並調用新的SAT求解器。 Z3不使用位向量的下/近似,或者字級算術推理或對非線性算子的特殊支持。順便說一句,少數求解者考慮到的一件事是,一些簡化可能會在本地減小公式的大小,但會在全局範圍內增加它,因爲它們會破壞共享。 Z3也使用預處理步驟,試圖增加線性和非線性位向量算法中的共享量。

+0

謝謝!另一個問題:因爲你的BV求解器非常積極地使用預處理,所以它可能不是遞增的,對嗎? – Ayrat

+2

新的QF_BV解算器在Z3 API中不可用,也不在SMT2前端使用增量求解。這將在未來的版本中發生變化。你是對的,當使用push/pop命令時,某些預處理步驟不能使用。因此,即使在新解算器中實現了對push/pop的支持後,它們也不可用。 –