【24h】

Automating Verification of Loops by Parallelization

机译:通过并行化自动验证循环

获取原文
获取原文并翻译 | 示例

摘要

Loops are a major bottleneck in formal software verification, because they generally require user interaction: typically, induction hypotheses or invariants must be found or modified by hand. This involves expert knowledge of the underlying calculus and proof engine. We show that one can replace interactive proof techniques, such as induction, with automated first-order reasoning in order to deal with parallelizable loops, where a loop can be parallelized whenever it avoids dependence of the loop iterations from each other. We develop a dependence analysis that ensures parallelizability. It guarantees soundness of a proof rule that transforms a loop into a universally quantified update of the state change information represented by the loop body. This makes it possible to use automatic first order reasoning techniques to deal with loops. The method has been implemented in the KeY verification tool. We evaluated it with representative case studies from the Java Card domain.
机译:循环是形式化软件验证的主要瓶颈,因为循环通常需要用户交互:通常,必须手动找到或修改归纳假设或不变式。这涉及基础演算和证明引擎的专家知识。我们展示了一个人可以用自动化的一阶推理代替交互式证明技术,例如归纳法,以处理可并行化的循环,在这种情况下,只要避免相互依赖循环迭代,就可以并行化循环。我们开发了可确保并行性的依赖性分析。它保证了证明规则的正确性,该证明规则将循环转换成由循环体表示的状态变化信息的通用量化更新。这使得可以使用自动一阶推理技术来处理循环。该方法已在KeY验证工具中实现。我们通过Java Card领域的代表性案例研究对其进行了评估。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号