Schematic Program Proofs with Abstract Execution

IF 0.9 3区 计算机科学 Q4 COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE
{"title":"Schematic Program Proofs with Abstract Execution","authors":"","doi":"10.1007/s10817-023-09692-0","DOIUrl":null,"url":null,"abstract":"<h3>Abstract</h3> <p>We propose <em>Abstract Execution</em>, a static verification framework based on symbolic execution and dynamic frames for proving properties of <em>schematic</em> programs. Since a schematic program may potentially represent infinitely many concrete programs, Abstract Execution can analyze infinitely many programs at once. Trading off expressiveness and automation, the framework allows proving many interesting (universal, behavioral) properties <em>fully automatically</em>. Its main application are correctness proofs of <em>program transformations</em> represented as pairs of schematic programs. We implemented Abstract Execution in a deductive verification framework and designed a graphical workbench supporting the modeling process. Abstract Execution has been applied to correct code refactoring, analysis of the cost impact of transformation rules, and parallelization of sequential code. Using our framework, we found and reported several bugs in the refactoring engines of the <span>Java</span> IDEs IntelliJ IDEA and Eclipse, which were acknowledged and fixed.</p>","PeriodicalId":15082,"journal":{"name":"Journal of Automated Reasoning","volume":"53 1","pages":""},"PeriodicalIF":0.9000,"publicationDate":"2024-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Automated Reasoning","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1007/s10817-023-09692-0","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE","Score":null,"Total":0}
引用次数: 0

Abstract

We propose Abstract Execution, a static verification framework based on symbolic execution and dynamic frames for proving properties of schematic programs. Since a schematic program may potentially represent infinitely many concrete programs, Abstract Execution can analyze infinitely many programs at once. Trading off expressiveness and automation, the framework allows proving many interesting (universal, behavioral) properties fully automatically. Its main application are correctness proofs of program transformations represented as pairs of schematic programs. We implemented Abstract Execution in a deductive verification framework and designed a graphical workbench supporting the modeling process. Abstract Execution has been applied to correct code refactoring, analysis of the cost impact of transformation rules, and parallelization of sequential code. Using our framework, we found and reported several bugs in the refactoring engines of the Java IDEs IntelliJ IDEA and Eclipse, which were acknowledged and fixed.

抽象执行的示意程序证明
摘要 我们提出的抽象执行是一个基于符号执行和动态框架的静态验证框架,用于证明示意图程序的属性。由于一个模式程序可能代表无限多的具体程序,因此抽象执行可以同时分析无限多的程序。在表现力和自动化之间权衡,该框架允许全自动证明许多有趣的(通用的、行为的)属性。抽象执行的主要应用是对以模式程序对表示的程序转换进行正确性证明。我们在一个演绎验证框架中实现了抽象执行,并设计了一个支持建模过程的图形工作台。抽象执行已被应用于正确的代码重构、转换规则的成本影响分析以及顺序代码的并行化。利用我们的框架,我们发现并报告了 Java IDE IntelliJ IDEA 和 Eclipse 重构引擎中的几个错误,这些错误得到了确认和修复。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
Journal of Automated Reasoning
Journal of Automated Reasoning 工程技术-计算机:人工智能
CiteScore
3.60
自引率
9.10%
发文量
31
审稿时长
>12 weeks
期刊介绍: The Journal of Automated Reasoning is an interdisciplinary journal that maintains a balance between theory, implementation and application. The spectrum of material published ranges from the presentation of a new inference rule with proof of its logical properties to a detailed account of a computer program designed to solve various problems in industry. The main fields covered are automated theorem proving, logic programming, expert systems, program synthesis and validation, artificial intelligence, computational logic, robotics, and various industrial applications. The papers share the common feature of focusing on several aspects of automated reasoning, a field whose objective is the design and implementation of a computer program that serves as an assistant in solving problems and in answering questions that require reasoning. The Journal of Automated Reasoning provides a forum and a means for exchanging information for those interested purely in theory, those interested primarily in implementation, and those interested in specific research and industrial applications.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信