1
正式的,Z3沒有三角支持。例如,請參閱this question或this one。但是,在Z3中有沒有記載的三角函數運算符 - 它們在例如regression tests中使用。甚至還有一個內置符號pi
。 Z3甚至可以做一些瑣碎的證據與這些運營商,例如:Z3中未記錄的三角函數可修復?
(declare-fun x() Real)
(assert (= (cos pi) x))
(check-sat)
(get-value (x))
與回來:
sat
((x (- 1.0)))
這些運營商沒有很好地工作。例如,這個小輸入文件將導致賽格故障與Z3 4.4.1,或導致內存使用率迅速爆炸與主分支爲this commit(現在):
(declare-fun x() Real)
(assert (< (sin x) -1.0))
(check-sat)
我並不感到驚訝,一個該團隊所說的不存在的未記錄功能不起作用。我的問題是:他們有可能解決嗎?什麼樣的性能水平會成爲Z3的合理補充?我知道我可以用Z3使用未解釋的函數和三角函數來做一些三角函數證明。 Z3團隊對此有興趣嗎?
太好了,謝謝。如你所說,現在Z3對這些問題給出了未知數,這比碰撞事件好得多。這給了我一些工作。 –