我正在計劃一些使用現成SMT解算器進行符號執行C代碼的實驗,並且想知道使用哪種求解器;看着如SMT比賽的參賽者只考慮開源系統,將其縮小到海狸,Boolector,CVC3,OpenSMT,Sateen,Sonolar,STP,Verit;這仍然是一個長長的名單。用於位向量算術的SMT解算器
試圖一點點進一步縮小範圍,我注意到,一些系統做廣告來處理位向量的運算能力,而其他人只能做廣告來處理一般的整數運算的能力。原則上,前者對於C是正確的,其中變量是機器字,而不是無限整數。它在實踐中有多大的差異?如果你嘗試爲這種工作使用一個整數系統會發生什麼?以下情況之一是否適用?
位矢量系統會更有效,但你可以使用,沒有問題。
可以使用一般整數系統一些調整。
一般整數系統是罰款符號int(因爲溢出的結果是不確定的),但將提供無符號錯誤的答案。
一般整數系統只是不適合機器字算術正確的,我可以在我的短名單減少到只有那些提供位向量的運算系統。
別的東西......?
我試圖問一個具體的問題儘可能,但如果任何人都可以建議任何其他標準縮小名單,那將是偉大的!