我想证明一个简化,涉及计算日志到基地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. 是否有任何函数可以计算R中的CART(决策树算法)的基尼指数?
- 3. 在MFC中调用OnInitDialog函数后是否有任何函数?
- 4. “reshape”的MATLAB函数是否可用于任何Java库?
- 5. 是否有任何好的函数库可用于Java中的集合,如
- 6. 是否有一个函数可以计算给定对齐参数的对齐序列的分数?
- 7. 是否有任何函数对象在STL中创建对象?
- 8. 对于可选函数参数vs数组使用parse_str是否有优势?
- 9. 函数构造函数是否支持用`this`计算属性?
- 10. 是否有任何支持计算列的内存数据库?
- 11. 是否有任何可能的oway来计算大于php的整数容量的数字?
- 12. 是否有一个PHP函数来计算数组中出现值的次数?
- 13. 是否有任何理由Object.freeze函数?
- 14. 用于计算任意大数的类?
- 15. 是否有类似于Python计数器功能的Javascript函数?
- 16. ggplot是否将动态函数用于统计函数?
- 17. 是否有任何统一的方法来计算PerformanceCounter的任何类别中的任何计数器?
- 18. C:如何使用单个函数指针数组来计算具有可变参数计数的函数?
- 19. 是否有可能在另一个函数中运行'2-deep'的函数?
- 20. 是否有任何数据网格控件可用于Android?
- 21. 是否有可能在Mongo中执行接受任何参数的函数?
- 22. 是否可以计算数组中的维数?
- 23. 用于计算轴承的PLPGSQL函数
- 24. 是否有可能在Emberjs中循环计算的数组?
- 25. 是否有可能计算mysql中结构匹配的数目?
- 26. C语言中是否有函数来计算度/弧度?
- 27. 是否有PHP函数可以从数组中移除具有特定值的任何/所有键/值对?
- 28. 不能理解用于计算指数函数的CORDIC算法
- 29. MATLAB中是否有任何函数用于改变矩阵的形式?
- 30. elisp中是否有高精度对数计算器?
在哪个理论中你想要一个日志基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