该求解器采用胜者通吃策略,并行调用Z3、CVC4、cvc5及自定义自动机求解器,返回最先响应结果。通过利用SMT求解器多样性,Zelkova能在数百毫秒至数十秒内完成查询。 版本升级性能波动在将CVC4升级至cvc5(0.0.4版)时,通过对15,000个SMT查询的测试发现:cvc5解决了部分CVC4超时的问题(图表右侧垂直分布点)但cvc5在部分CVC4已解决的问题上超时 经分析发现cvc5中某重写规则被禁用,在0.0.7版本重新启用后,CVC4在简单问题上仍保持两倍速度优势(1秒对比2秒)。 因此最终采用将cvc5添加至组合求解器而非替换CVC4的方案。技术民主化实践通过封装复杂技术细节,使用户能直接关注价值层面:对云基础设施安全性做出全局声明(global statements)。
组合求解器在后端调用多个求解器——包括Z3、CVC4、cvc5和一个自定义自动机求解器,并采用赢家通吃的策略,返回最先得出答案的求解器的结果。 在尝试将CVC4升级到其新版本cvc5(0.0.4版本)时遇到了一些意外。通过对比两个求解器的图表,可以看到大约有15,000个由Zelkova生成的SMT查询。 图表右侧垂直对齐的点显示,一些在时限内未被CVC4解决的查询现在被cvc5解决了。然而,图表顶部水平对齐的点显示,cvc5对一些CVC4能解决的查询却超时了。 事实证明,即使修复了这个问题,在许多较简单的问题上,CVC4的速度仍然是cvc5的两倍,能在1秒内解决,而cvc5需要2秒。 这就是为什么决定将cvc5添加到Zelkova的组合求解器中,而不是直接用它替换CVC4。自动推理的普及这对客户意味着什么?他们可以将注意力从技术本身转移到其价值上。
求解:投资组合求解器同时调用多个后端求解器(如Z3、CVC4、cvc5以及自定义的自动机求解器)。返回:采用“赢家通吃”策略,返回最先给出答案的求解器的结果citation:1。 案例:从CVC4升级到cvc5在计划将CVC4升级到其新版本cvc5(0.0.4版)时,团队遇到了挑战citation:1。 在对比图中,对于约15,000个由Zelkova生成的SMT查询:一些之前CVC4在时间限制内未能解决的查询,cvc5能够解决(图中右侧垂直排列的点)。 然而,即使在修复之后,Cvc5在许多简单问题上仍然比CVC4慢一倍(例如,1秒对比2秒)citation:1。 因此,团队决定将cvc5添加到Zelkova的投资组合求解器中,而不是用它替换CVC4,以此平衡性能与能力,确保稳定和高效citation:1。
并发等复杂场景处理底层编译器和硬件的正确性假设NP难问题的启发式算法优化学习资源推荐工具集:定理证明器:Coq, Isabelle, HOL-light模型检测:PRISM, TLA+SMT求解器:Z3, CVC4
流程中 K Framework: 为Solidity提供形式化语义 支持执行性语义和可达性分析 Runtime Verification公司开发的专业工具 SMT Solvers: Z3、CVC4