2013-04-17 28 views

回答

2

Z3具有量詞消除非線性算法的支持非常有限。而且,它默認情況下不啓用。以下是如何啓用它並演示限制的示例。它也可以在線獲得here

(set-option :pp-max-depth 20) ;; set option for Z3 pretty printer 
(declare-const a Real) 
(assert (exists ((x Real)) (= (* x x) a))) 
(apply qe) 
(echo "enabling nonlinear support...") 
(apply (! qe :qe-nonlinear true)) 
;; It is very limited, it will fail in the following example 
(echo "trying a cubic polynomial...") 
(assert (exists ((x Real)) (= (* x x x) a))) 
(apply (! qe :qe-nonlinear true)) 
+0

Hi Leo,qe支持非線性算術在不久的將來會被擴展嗎? – pad

+0

不在不久的將來。除非有人想爲此工作。順便說一句,我們擁有所有基於CAD實現量詞消除程序的機制。 –

+0

謝謝,這聽起來像是一個非常有趣的項目。 – pad