我想證明一個簡化,涉及計算日誌到基地2.是否有任何可用於z3/cvc4計算它的功能?Z3/cvc4中是否有任何函數可用於計算底數2的對數?
1
A
回答
4
簡而言之,支持不能直接用於任何工具中的整數。對於無界整數,存在一個固定常數的Presburger求冪的決策過程。由此可以構造對數函數(反之亦然)。我不是專家,但我的理解是這些是相當複雜的。欲瞭解更多信息:
- http://www.logique.jussieu.fr/~point/papiers/Pres.pdf
- http://dx.doi.org/10.2307/2586704
- https://mathoverflow.net/questions/103896/beyond-presburger-arithmetic
我不知道這些算法的任何現有的實現。
對於有界整數,即x in [a,b]其中a和b是數字,沒有解算器特定的支持,但可以對此進行建模。首先創建一個Integer類型的Skolem常量。然後,您使用斷言力S的解釋:
(and (=> (2^0 <= x < 2^1) (= s 0))
(=> (2^1 <= x < 2^2) (= s 1))
...
(=> (2^i <= x < 2^{i+1}) (s = i)) ; for all 2^i in [a,b] and i >= 0.
)
這使得S ^不解釋,如果x < = 0(我認爲這是合理的)。這是非常令人不滿意的,但它是線性的。 (如果有人知道更好的編碼,我很想知道它!)還可以使用量化符對上面的公理編碼有界或無界整數。您首先使用量詞將函數2^i編碼爲未解釋的函數。然後使用2^i函數指定日誌功能。這很可能會導致解算器返回未知數,如果沿着這條路走下去,您可能需要使用量化器模塊的解算器選項。
對於位向量,您需要決定數字是有符號還是無符號。對於長度爲k的無符號值,可以使用右移來模擬這個值。
(=> (bvugt x (_ bv0 k))) (= (bvlshr x s) (_ bv1 k))
再次x < = 0(無符號)未被解釋。簽名的位向量類似:
(=> (bvsgt x (_ bv0 k))) (= (bvlshr x s) (_ bv1 k))
2
相關問題
- 1. 是否有任何GMP對數函數?
- 2. greenplum中是否有任何函數可用於生成UUID
- 3. 是否有任何函數可以計算R中的CART(決策樹算法)的基尼指數?
- 4. 函數中是否可以有函數?
- 5. 在MFC中調用OnInitDialog函數後是否有任何函數?
- 6. 用於計算年數的函數
- 7. 「reshape」的MATLAB函數是否可用於任何Java庫?
- 8. 是否有任何好的函數庫可用於Java中的集合,如
- 9. 是否有任何內置函數來計算在SQL Server中的百分比
- 10. 是否有任何具有相同哈希函數的算法?
- 11. 是否有一個函數可以計算給定對齊參數的對齊序列的分數?
- 12. 是否有任何函數對象在STL中創建對象?
- 13. 是否有任何支持計算列的內存數據庫?
- 14. 對於可選函數參數vs數組使用parse_str是否有優勢?
- 15. 函數構造函數是否支持用`this`計算屬性?
- 16. 是否有任何可能的oway來計算大於php的整數容量的數字?
- 17. 是否有任何理由Object.freeze函數?
- 18. 是否有一個PHP函數來計算數組中出現值的次數?
- 19. 用於計算任意大數的類?
- 20. 是否有類似於Python計數器功能的Javascript函數?
- 21. Mysql_num_columns?是否有一個函數等同於mysql_num_rows來計算列數?
- 22. ggplot是否將動態函數用於統計函數?
- 23. 用於計算trig函數爲任意精度的算法和數據結構
- 24. 是否有任何統一的方法來計算PerformanceCounter的任何類別中的任何計數器?
- 25. 是否有可能在另一個函數中運行'2-deep'的函數?
- 26. 是否有任何數據網格控件可用於Android?
- 27. C:如何使用單個函數指針數組來計算具有可變參數計數的函數?
- 28. 是否有可能將孩子傳遞給計算函數作爲參數
- 29. 是否有可能在Mongo中執行接受任何參數的函數?
- 30. 是否有任何添加2個數組值的原生php函數?
在哪個理論中你想要一個日誌基2計算:位向量,整數或實數? – Tim 2014-10-29 10:41:01
@Tim - 位向量和整數。 – sarda 2014-10-29 10:57:50
@Tim - 它是否可用於ALIVe(自動LLVM InstCombine驗證程序)工具? – sarda 2014-10-29 11:00:29