我正在試驗優化Z3的用法以證明關於一階理論的事實。目前,我在Python中指定了一階理論,將量詞拼湊在那裏,並將所有的子句以及否定證明目標發送給Z3。我有以下想法,我希望能夠優化結果:我只想將理論中的公式發送到Z3,即相關的以證明目標。我不會詳細討論這個概念,但我認爲直覺很簡單:我的理論是公式的聯合,我只想發送可能影響證明目標真值的連詞。在Z3中使用證明目標減少使用子句的數量
我的問題是如下:這可以提高效率,還是Z3已經使用類似的方法?我猜不會,因爲我不認爲Z3總是認爲最後的斷言是證明目標,所以它沒有辦法優化它。
不滿意的核心會遺漏'F_2',是嗎?很顯然,在事實發生之後(對於OP來說,已經太遲了,因爲寫得太遲了),但是如果這些公式是搜索的結果,那麼對於SMT的調用者來說回跳可能是有用的。 – GManNickG
是的,最小的不飽和核心會遺漏'F_2'。但是,我們必須記住,實際上,「計算最小不飽和核心」比「計算不滿核心」更昂貴,這比「僅檢查可滿足性」更昂貴。 –