首页> 外文期刊>Formal Aspects of Computing >Building a push-button RESOLVE verifier: progress and challenges
【24h】

Building a push-button RESOLVE verifier: progress and challenges

机译:构建按钮式RESOLVE验证程序:进展与挑战

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

摘要

A central objective of the verifying compiler grand challenge is to develop a push-button verifier that generates proofs of correctness in a syntax-driven fashion similar to the way an ordinary compiler generates machine code. The software developer's role is then to provide suitable specifications and annotated code, but otherwise to have no direct involvement in the verification step. However, the general mathematical developments and results upon which software correctness is based may be established through a separate formal proof process in which proofs might be mechanically checked, but not necessarily automatically generated. While many ideas that could conceivably form the basis for software verification have been known "in principle" for decades, and several tools to support an aspect of verification have been devised, practical fully automated verification of full software behavior remains a grand challenge. This paper explains how RESOLVE takes a step towards addressing this challenge by integrating foundational and practical elements of software engineering, programming languages, and mathematical logic into a coherent framework. Current versions of the RESOLVE verifier generate verification conditions (VCs) for the correctness of component-based software in a modular fashion— one component at a time. The VCs are currently verified using automated capabilities of the Isabelle proof assistant, the SMT solver Z3, a minimalist rewrite prover, and some specialized decision procedures. Initial experiments with the tools and further analytic considerations show both the progress that has been made and the challenges that remain.
机译:验证编译器面临的巨大挑战的主要目标是开发一种按钮验证器,以类似于常规编译器生成机器代码的方式,以语法驱动的方式生成正确性证明。然后,软件开发人员的作用是提供适当的规范和带注释的代码,但否则不直接参与验证步骤。但是,可以通过单独的正式证明过程来建立软件正确性所基于的一般数学发展和结果,在该过程中可以对证明进行机械检查,但不一定自动生成。尽管几十年来“原则上”已经知道了许多可以想象的构成软件验证基础的想法,并且已经设计了支持验证方面的几种工具,但是对完整软件行为的实际全自动验证仍然是一个巨大的挑战。本文介绍了RESOLVE如何通过将软件工程,编程语言和数学逻辑的基础和实用元素集成到一个一致的框架中来迈出应对这一挑战的一步。当前版本的RESOLVE验证程序以模块化的方式(一次仅一个组件)生成验证条件(VC),以验证基于组件的软件的正确性。当前,使用Isabelle证明助手,SMT求解器Z3,极简重写证明器和某些特殊决策程序的自动化功能来验证VC。使用该工具的初步实验和进一步的分析考虑既显示了已取得的进展,也显示了仍然存在的挑战。

著录项

  • 来源
    《Formal Aspects of Computing》 |2011年第5期|p.607-626|共20页
  • 作者单位

    School of Computing, Clemson University, Clemson, SC 29634, USA;

    Department of Computer Science and Engineering, The Ohio State University, Columbus, OH 43210, USA;

    Department of Philosophy, Carnegie Mellon University, Pittsburgh, PA 15213, USA;

    Department of Computer Science and Engineering, The Ohio State University, Columbus, OH 43210, USA;

    Department of Computer Science and Engineering, The Ohio State University, Columbus, OH 43210, USA;

    School of Computing, Clemson University, Clemson, SC 29634, USA;

    Department of Mathematics, The Ohio State University, Columbus, OH 43210, USA,Department of Computer Science and Engineering, The Ohio State University, Columbus, OH 43210, USA;

    School of Computing, Clemson University, Clemson, SC 29634, USA;

    Department of Computer Science and Engineering, The Ohio State University, Columbus, OH 43210, USA;

    Department of Computer Science and Engineering, The Ohio State University, Columbus, OH 43210, USA;

    Department of Mathematics and Computer Science, Denison University, Granville, OH 43023, USA;

    School of Computing, Clemson University, Clemson, SC 29634, USA;

    Department of Computer Science and Engineering, The Ohio State University, Columbus, OH 43210, USA;

  • 收录信息
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    languages; software engineering; theorem proving; tools; verification;

    机译:语言;软件工程;定理证明工具;验证;

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号