首页 > 最新文献

2014 Formal Methods in Computer-Aided Design (FMCAD)最新文献

英文 中文
DRUPing for interpolates 抽取插值
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987601
A. Gurfinkel, Y. Vizel
We present a method for interpolation based on DRUP proofs. Interpolants are widely used in model checking, synthesis and other applications. Most interpolation algorithms rely on a resolution proof produced by a SAT-solver for unsatisfaible formulas. The proof is traversed and translated into an interpolant by replacing resolution steps with AND and OR gates. This process is efficient (once there is a proof) and generates interpolants that are linear in the size of the proof. In this paper, we address three known weakness of this approach: (i) performance degradation experienced by the SAT-solver and the extra memory requirements needed when logging a resolution proof; (ii) the proof generated by the solver is not necessarily the "best" proof for interpolantion, and (iii) combining proof logging with pre-processing is complicated. We show that these issues can be remedied by using DRUP proofs. First, we show how to produce an interpolant from a DRUP proof, even when pre-processing is enabled. Second, we give a novel interpolation algorithm that produces interpolants partially in CNF. Third, we show how DRUP proof can be restructured on-the-fly to yield better interpolants. We implemented our DRUP-based interpolation framework in MiniSAT, and evaluated its affect using Avy - a SAT-based model checking algorithm.
提出了一种基于DRUP证明的插值方法。插值器广泛应用于模型校验、综合和其他应用。对于不满意的公式,大多数插值算法依赖于由sat求解器产生的分辨率证明。通过用and和OR门代替分辨率步骤,遍历证明并将其转换为插值。这个过程是有效的(一旦有了证明),并且生成的插值在证明的大小上是线性的。在本文中,我们解决了这种方法的三个已知弱点:(i) sat求解器经历的性能下降和记录分辨率证明时所需的额外内存需求;(ii)求解器生成的证明不一定是插值的“最佳”证明,(iii)将证明记录与预处理相结合是复杂的。我们表明,这些问题可以通过使用DRUP证明来补救。首先,我们将展示如何从DRUP证明生成插值,即使在启用预处理的情况下也是如此。其次,我们给出了一种新的插值算法,该算法在CNF中部分产生插值。第三,我们展示了如何对DRUP证明进行动态重构以产生更好的插值。我们在MiniSAT中实现了基于drup的插值框架,并使用Avy(一种基于sat的模型检查算法)评估了其影响。
{"title":"DRUPing for interpolates","authors":"A. Gurfinkel, Y. Vizel","doi":"10.1109/FMCAD.2014.6987601","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987601","url":null,"abstract":"We present a method for interpolation based on DRUP proofs. Interpolants are widely used in model checking, synthesis and other applications. Most interpolation algorithms rely on a resolution proof produced by a SAT-solver for unsatisfaible formulas. The proof is traversed and translated into an interpolant by replacing resolution steps with AND and OR gates. This process is efficient (once there is a proof) and generates interpolants that are linear in the size of the proof. In this paper, we address three known weakness of this approach: (i) performance degradation experienced by the SAT-solver and the extra memory requirements needed when logging a resolution proof; (ii) the proof generated by the solver is not necessarily the \"best\" proof for interpolantion, and (iii) combining proof logging with pre-processing is complicated. We show that these issues can be remedied by using DRUP proofs. First, we show how to produce an interpolant from a DRUP proof, even when pre-processing is enabled. Second, we give a novel interpolation algorithm that produces interpolants partially in CNF. Third, we show how DRUP proof can be restructured on-the-fly to yield better interpolants. We implemented our DRUP-based interpolation framework in MiniSAT, and evaluated its affect using Avy - a SAT-based model checking algorithm.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128494659","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 15
Simulation and formal verification of x86 machine-code programs that make system calls 进行系统调用的x86机器码程序的仿真和形式化验证
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987600
Shilpi Goel, W. Hunt, Matt Kaufmann, Soumava Ghosh
We present an approach to modeling and verifying machine-code programs that exhibit non-determinism. Specifically, we add support for system calls to our formal, executable model of the user-level x86 instruction-set architecture (ISA). The resulting model, implemented in the ACL2 theorem-proving system, allows both formal analysis and efficient simulation of x86 machine-code programs; the logical mode characterizes an external environment to support reasoning about programs that interact with an operating system, and the execution mode directly queries the underlying operating system to support simulation. The execution mode of our x86 model is validated against both its logical mode and the real machine, providing test-based assurance that our model faithfully represents the semantics of an actual x86 processor. Our framework is the first that enables mechanical proofs of functional correctness of user-level x86 machine-code programs that make system calls. We demonstrate the capabilities of our model with the mechanical verification of a machine-code program, produced by the GCC compiler, that computes the number of characters, lines, and words in an input stream. Such reasoning is facilitated by our libraries of ACL2 lemmas that allow automated proofs of a program's memory-related properties.
我们提出了一种方法来建模和验证表现出非确定性的机器码程序。具体来说,我们将对系统调用的支持添加到正式的、可执行的用户级x86指令集体系结构(ISA)模型中。在ACL2定理证明系统中实现的结果模型允许对x86机器码程序进行形式化分析和高效仿真;逻辑模式表征外部环境,以支持对与操作系统交互的程序进行推理;执行模式直接查询底层操作系统,以支持仿真。我们的x86模型的执行模式根据其逻辑模式和实际机器进行验证,从而提供基于测试的保证,我们的模型忠实地表示实际x86处理器的语义。我们的框架是第一个能够对进行系统调用的用户级x86机器码程序的功能正确性进行机械证明的框架。我们通过GCC编译器生成的机器代码程序的机械验证来演示模型的功能,该程序计算输入流中的字符、行和单词的数量。我们的ACL2引理库促进了这种推理,它允许自动证明程序的内存相关属性。
{"title":"Simulation and formal verification of x86 machine-code programs that make system calls","authors":"Shilpi Goel, W. Hunt, Matt Kaufmann, Soumava Ghosh","doi":"10.1109/FMCAD.2014.6987600","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987600","url":null,"abstract":"We present an approach to modeling and verifying machine-code programs that exhibit non-determinism. Specifically, we add support for system calls to our formal, executable model of the user-level x86 instruction-set architecture (ISA). The resulting model, implemented in the ACL2 theorem-proving system, allows both formal analysis and efficient simulation of x86 machine-code programs; the logical mode characterizes an external environment to support reasoning about programs that interact with an operating system, and the execution mode directly queries the underlying operating system to support simulation. The execution mode of our x86 model is validated against both its logical mode and the real machine, providing test-based assurance that our model faithfully represents the semantics of an actual x86 processor. Our framework is the first that enables mechanical proofs of functional correctness of user-level x86 machine-code programs that make system calls. We demonstrate the capabilities of our model with the mechanical verification of a machine-code program, produced by the GCC compiler, that computes the number of characters, lines, and words in an input stream. Such reasoning is facilitated by our libraries of ACL2 lemmas that allow automated proofs of a program's memory-related properties.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"76 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129698822","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 44
Post-silicon timing diagnosis made simple using formal technology 后硅定时诊断使得使用正式技术变得简单
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987605
Daher Kaiss, Jonathan Kalechstain
With the increasing demand for microprocessor core operating frequencies, debugging post silicon synchronization (or speed) failures is a critical time consuming post silicon debug activity. Inability to complete the isolation of all possible speed failures on time, forces companies to go to market with products that run at a lower frequency than their upper frequency limits. This might cause revenue losses or lead to loss of market segment shares. Laser-Assisted Device Alternation (LADA) machines are the main vehicle for debugging post silicon speed failures at Intel. Operating such expensive machines consumes a substantial portion of the overall post silicon debug effort. Moreover, with the increasing complexity of manufacturing processes, these machines need to be renewed from one process generation to the next, which increases the product cost. This paper describes a novel method, based on formal technology, which brings a productivity breakthrough in isolating post-silicon speed failures. We demonstrate that in many cases optical probing using LADA can be fully replaced by our approach.
随着对微处理器核心工作频率需求的增加,调试硅后同步(或速度)故障是一项非常耗时的硅后调试活动。无法及时隔离所有可能的速度故障,迫使公司将运行频率低于其上限的产品推向市场。这可能会导致收入损失或导致细分市场份额的损失。激光辅助设备更换(LADA)机器是英特尔调试后硅速度故障的主要工具。操作这些昂贵的机器消耗了整个硅后调试工作的很大一部分。此外,随着制造过程的日益复杂,这些机器需要从一个过程更新到下一个过程,这增加了产品成本。本文介绍了一种基于形式化技术的新方法,它在隔离硅后速度故障方面带来了生产力的突破。我们证明,在许多情况下,使用LADA的光学探测可以完全取代我们的方法。
{"title":"Post-silicon timing diagnosis made simple using formal technology","authors":"Daher Kaiss, Jonathan Kalechstain","doi":"10.1109/FMCAD.2014.6987605","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987605","url":null,"abstract":"With the increasing demand for microprocessor core operating frequencies, debugging post silicon synchronization (or speed) failures is a critical time consuming post silicon debug activity. Inability to complete the isolation of all possible speed failures on time, forces companies to go to market with products that run at a lower frequency than their upper frequency limits. This might cause revenue losses or lead to loss of market segment shares. Laser-Assisted Device Alternation (LADA) machines are the main vehicle for debugging post silicon speed failures at Intel. Operating such expensive machines consumes a substantial portion of the overall post silicon debug effort. Moreover, with the increasing complexity of manufacturing processes, these machines need to be renewed from one process generation to the next, which increases the product cost. This paper describes a novel method, based on formal technology, which brings a productivity breakthrough in isolating post-silicon speed failures. We demonstrate that in many cases optical probing using LADA can be fully replaced by our approach.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114902039","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Predicate abstraction for reactive synthesis 反应性合成的谓词抽象
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987617
Adam Walker, L. Ryzhyk
We present a predicate-based abstraction refinement algorithm for solving reactive games. We develop solutions to the key problems involved in implementing efficient predicate abstraction, which previously have not been addressed in game settings: (1) keeping abstractions concise by identifying relevant predicates only, (2) solving abstract games efficiently, and (3) computing and solving abstractions symbolically. We implemented the algorithm as part of an automatic device driver synthesis toolkit and evaluated it by synthesising drivers for several real-world I/O devices. This involved solving game instances that could not be feasibly solved without using abstraction or using simpler forms of abstraction.
提出了一种基于谓词的抽象优化算法。我们开发了实现高效谓词抽象所涉及的关键问题的解决方案,这些问题以前没有在游戏设置中得到解决:(1)仅通过识别相关谓词来保持抽象简洁,(2)有效地解决抽象游戏,以及(3)象征性地计算和解决抽象。我们将该算法作为自动设备驱动程序合成工具包的一部分实现,并通过合成几个实际I/O设备的驱动程序来评估它。这涉及解决不使用抽象或使用更简单的抽象形式就无法解决的游戏实例。
{"title":"Predicate abstraction for reactive synthesis","authors":"Adam Walker, L. Ryzhyk","doi":"10.1109/FMCAD.2014.6987617","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987617","url":null,"abstract":"We present a predicate-based abstraction refinement algorithm for solving reactive games. We develop solutions to the key problems involved in implementing efficient predicate abstraction, which previously have not been addressed in game settings: (1) keeping abstractions concise by identifying relevant predicates only, (2) solving abstract games efficiently, and (3) computing and solving abstractions symbolically. We implemented the algorithm as part of an automatic device driver synthesis toolkit and evaluated it by synthesising drivers for several real-world I/O devices. This involved solving game instances that could not be feasibly solved without using abstraction or using simpler forms of abstraction.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130263853","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 23
Reduction for compositional verification of multi-threaded programs 减少多线程程序的组成验证
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987612
C. Popeea, A. Rybalchenko, Andreas Wilhelm
Automated verification of multi-threaded programs requires keeping track of a very large number of possible interactions between the program threads. Different reasoning methods have been proposed that alleviate the explicit enumeration of all thread interleavings, e.g., Lipton's theory of reduction or Owicki-Gries method for compositional reasoning, however their synergistic interplay has not yet been fully explored. In this paper we explore the applicability of the theory of reduction for pruning of equivalent interleavings for the automated verification of multi-threaded programs with infinite-state spaces. We propose proof rules for safety and termination of multi-threaded programs that integrate into an Owicki-Gries based compositional verifier. The verification conditions of our method are Horn clauses, thus facilitating automation by using off-the-shelf Horn clause solvers. We present preliminary experimental results that show the advantages of our approach when compared to state-of-the-art verifiers of C programs.
多线程程序的自动验证需要跟踪程序线程之间大量可能的交互。人们提出了不同的推理方法来减轻所有线程交织的显式枚举,例如Lipton的还原理论或Owicki-Gries的组合推理方法,但它们的协同相互作用尚未得到充分的探索。本文探讨了等价交织剪枝约简理论在具有无限状态空间的多线程程序自动验证中的适用性。我们提出了多线程程序的安全性和终止的证明规则,这些程序集成到基于Owicki-Gries的组合验证器中。我们的方法的验证条件是Horn子句,因此通过使用现成的Horn子句求解器促进自动化。我们提出了初步的实验结果,与C程序的最先进的验证器相比,显示了我们的方法的优势。
{"title":"Reduction for compositional verification of multi-threaded programs","authors":"C. Popeea, A. Rybalchenko, Andreas Wilhelm","doi":"10.1109/FMCAD.2014.6987612","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987612","url":null,"abstract":"Automated verification of multi-threaded programs requires keeping track of a very large number of possible interactions between the program threads. Different reasoning methods have been proposed that alleviate the explicit enumeration of all thread interleavings, e.g., Lipton's theory of reduction or Owicki-Gries method for compositional reasoning, however their synergistic interplay has not yet been fully explored. In this paper we explore the applicability of the theory of reduction for pruning of equivalent interleavings for the automated verification of multi-threaded programs with infinite-state spaces. We propose proof rules for safety and termination of multi-threaded programs that integrate into an Owicki-Gries based compositional verifier. The verification conditions of our method are Horn clauses, thus facilitating automation by using off-the-shelf Horn clause solvers. We present preliminary experimental results that show the advantages of our approach when compared to state-of-the-art verifiers of C programs.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132295161","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 15
Leveraging linear and mixed integer programming for SMT 利用SMT的线性和混合整数规划
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987606
Tim King, Clark W. Barrett, C. Tinelli
SMT solvers combine SAT reasoning with specialized theory solvers either to find a feasible solution to a set of constraints or to prove that no such solution exists. Linear programming (LP) solvers come from the tradition of optimization, and are designed to find feasible solutions that are optimal with respect to some optimization function. Typical LP solvers are designed to solve large systems quickly using floating point arithmetic. Because floating point arithmetic is inexact, rounding errors can lead to incorrect results, making inexact solvers inappropriate for direct use in theorem proving. Previous efforts to leverage such solvers in the context of SMT have concluded that in addition to being potentially unsound, such solvers are too heavyweight to compete in the context of SMT. In this paper, we describe a technique for integrating LP solvers that improves the performance of SMT solvers without compromising correctness. These techniques have been implemented using the SMT solver CVC4 and the LP solver GLPK. Experiments show that this implementation outperforms other state-of-the-art SMT solvers on the QF_LRA SMT-LIB benchmarks and is competitive on the QF_LIA benchmarks.
SMT求解器将SAT推理与专门的理论求解器结合起来,要么找到一组约束的可行解,要么证明不存在这样的解。线性规划(LP)求解器源于传统的优化问题,其目的是寻找相对于某个优化函数最优的可行解。典型的LP求解器设计用于使用浮点运算快速求解大型系统。由于浮点运算是不精确的,舍入误差可能导致不正确的结果,使得不精确解算器不适合直接用于定理证明。以前在SMT上下文中利用此类求解器的努力得出的结论是,除了可能不健全之外,此类求解器在SMT上下文中过于重量级而无法竞争。在本文中,我们描述了一种集成LP求解器的技术,该技术在不影响正确性的情况下提高了SMT求解器的性能。这些技术已经使用SMT求解器CVC4和LP求解器GLPK实现。实验表明,该实现在QF_LRA SMT- lib基准测试上优于其他最先进的SMT求解器,并且在QF_LIA基准测试上具有竞争力。
{"title":"Leveraging linear and mixed integer programming for SMT","authors":"Tim King, Clark W. Barrett, C. Tinelli","doi":"10.1109/FMCAD.2014.6987606","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987606","url":null,"abstract":"SMT solvers combine SAT reasoning with specialized theory solvers either to find a feasible solution to a set of constraints or to prove that no such solution exists. Linear programming (LP) solvers come from the tradition of optimization, and are designed to find feasible solutions that are optimal with respect to some optimization function. Typical LP solvers are designed to solve large systems quickly using floating point arithmetic. Because floating point arithmetic is inexact, rounding errors can lead to incorrect results, making inexact solvers inappropriate for direct use in theorem proving. Previous efforts to leverage such solvers in the context of SMT have concluded that in addition to being potentially unsound, such solvers are too heavyweight to compete in the context of SMT. In this paper, we describe a technique for integrating LP solvers that improves the performance of SMT solvers without compromising correctness. These techniques have been implemented using the SMT solver CVC4 and the LP solver GLPK. Experiments show that this implementation outperforms other state-of-the-art SMT solvers on the QF_LRA SMT-LIB benchmarks and is competitive on the QF_LIA benchmarks.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114672031","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 18
Efficient symbolic execution for software testing 有效的符号执行软件测试
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987585
Johannes Kinder
Summary form only given. Symbolic execution has proven to be a practical technique for building automated test case generation and bug finding tools. While the basic technique had been introduced already in the 70s, the advent of modern SAT and SMT solvers has lead to a surge of tools and techniques in the area over the last decade. This tutorial will introduce and compare the different approaches to using symbolic execution for testing and discuss the specific challenges and trade-offs. A main challenge in symbolic execution is path explosion, and various proposals have been made to combat it. I will discuss how these techniques affect the number and type of solver queries that have to be made, and how this can lead to surprising effects on the efficiency of a symbolic execution engine. Going further, we will look at developments to increase the scope of symbolic execution to larger software systems. Specific topics covered include state merging, procedure summaries, abstraction, search strategies, and parallelization.
只提供摘要形式。符号执行已被证明是构建自动化测试用例生成和bug查找工具的实用技术。虽然基本技术早在70年代就已经被引入,但在过去的十年里,现代SAT和SMT求解器的出现导致了该领域工具和技术的激增。本教程将介绍和比较使用符号执行进行测试的不同方法,并讨论具体的挑战和权衡。符号执行的一个主要挑战是路径爆炸,已经提出了各种解决方案。我将讨论这些技术如何影响必须执行的求解器查询的数量和类型,以及这如何对符号执行引擎的效率产生惊人的影响。进一步,我们将研究如何将符号执行的范围扩展到更大的软件系统。涉及的特定主题包括状态合并、过程摘要、抽象、搜索策略和并行化。
{"title":"Efficient symbolic execution for software testing","authors":"Johannes Kinder","doi":"10.1109/FMCAD.2014.6987585","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987585","url":null,"abstract":"Summary form only given. Symbolic execution has proven to be a practical technique for building automated test case generation and bug finding tools. While the basic technique had been introduced already in the 70s, the advent of modern SAT and SMT solvers has lead to a surge of tools and techniques in the area over the last decade. This tutorial will introduce and compare the different approaches to using symbolic execution for testing and discuss the specific challenges and trade-offs. A main challenge in symbolic execution is path explosion, and various proposals have been made to combat it. I will discuss how these techniques affect the number and type of solver queries that have to be made, and how this can lead to surprising effects on the efficiency of a symbolic execution engine. Going further, we will look at developments to increase the scope of symbolic execution to larger software systems. Specific topics covered include state merging, procedure summaries, abstraction, search strategies, and parallelization.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"431 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122801414","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Small inductive safe invariants 小的归纳安全不变量
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987603
A. Ivrii, A. Gurfinkel, A. Belov
Computing minimal (or even just small) certificates is a central problem in automated reasoning and, in particular, in automated formal verification. For example, Minimal Unsatisfiable Subsets (MUSes) have a wide range of applications in verification ranging from abstraction and generalization to vacuity detection and more. In this paper, we study the problem of computing minimal certificates for safety properties. In this setting, a certificate is a set of clauses Inυ such that each clause contains initial states, and their conjunction is safe (no bad states) and inductive. A certificate is minimal, if no subset of Inυ is safe and inductive. We propose a two-tiered approach for computing a Minimal Safe Inductive Subset (MSIS) of Inv. The first tier is two efficient approximation algorithms that under-and over-approximate MSIS, respectively. The second tier is an optimized reduction from MSIS to a sequence of computations of Maximal Inductive Subsets (MIS). We evaluate our approach on the HWMCC benchmarks and certificates produced by our variant of IC3. We show that our approach is several orders of magnitude more effective than the naive reduction of MSIS to MIS.
计算最小的(甚至是很小的)证书是自动推理中的一个中心问题,特别是在自动形式验证中。例如,最小不可满足子集(muse)在验证中有广泛的应用,从抽象和泛化到真空检测等等。本文研究了安全属性最小证书的计算问题。在这种设置中,证书是一组子句Inυ,这样每个子句都包含初始状态,并且它们的连接是安全的(没有坏状态)和归纳的。如果没有一个Inυ子集是安全和归纳的,那么证书是最小的。我们提出了一种计算Inv的最小安全归纳子集(MSIS)的两层方法。第一层是两种有效的近似算法,分别低于和过近似MSIS。第二层是从MSIS到最大归纳子集(MIS)计算序列的优化简化。我们在HWMCC基准和由我们的IC3变体生成的证书上评估我们的方法。我们表明,我们的方法比将MSIS简化为MIS的简单方法有效几个数量级。
{"title":"Small inductive safe invariants","authors":"A. Ivrii, A. Gurfinkel, A. Belov","doi":"10.1109/FMCAD.2014.6987603","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987603","url":null,"abstract":"Computing minimal (or even just small) certificates is a central problem in automated reasoning and, in particular, in automated formal verification. For example, Minimal Unsatisfiable Subsets (MUSes) have a wide range of applications in verification ranging from abstraction and generalization to vacuity detection and more. In this paper, we study the problem of computing minimal certificates for safety properties. In this setting, a certificate is a set of clauses Inυ such that each clause contains initial states, and their conjunction is safe (no bad states) and inductive. A certificate is minimal, if no subset of Inυ is safe and inductive. We propose a two-tiered approach for computing a Minimal Safe Inductive Subset (MSIS) of Inv. The first tier is two efficient approximation algorithms that under-and over-approximate MSIS, respectively. The second tier is an optimized reduction from MSIS to a sequence of computations of Maximal Inductive Subsets (MIS). We evaluate our approach on the HWMCC benchmarks and certificates produced by our variant of IC3. We show that our approach is several orders of magnitude more effective than the naive reduction of MSIS to MIS.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122472818","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
Challenging problems in industrial formal verification 工业形式验证中的挑战问题
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987583
Z. Hanna
Summary form only given. The electronic design industry has emerged in the recent years to adopt the system-on-chip (SoC) design methodology, where systems become a smart and complex integration of many configurable and reusable intellectual properties (IP) designs such as CPU, GPU, DSP, etc. SoC design methodologies have become common to a wide range of systems, starting from high-end servers, down to tablets, smartphones, Internet-of-things and wearable devices. The aggressive time-to-market and the hard competition add a major challenge to the electronic design companies to deliver high volume, and high quality products. Integration and validation of such designs has become the major challenge. The EDA industry and the academia has continued the innovation pipeline trying to cope with the complexity of such systems however major challenges are still ahead. Formal verification has emerged in the recent years to become a mainstream technology in SoC/IP design and verification methodologies. In the past, the usage of formal verification was limited to a small range of applications and it was mainly for verifying complex protocols, or some tricky logic functionality by formal experts. However in the recent years, we see a rapid adoption of formal, and we see a widespread of formal verification applications for low power design, security, SoC connectivity, configuration status register, and many more. In this talk, we provide an overview of the challenges that we see in designing SoC systems and configurable IPs, and provide some ideas to stimulate the academic research, aiming at increasing the research and innovation in such areas for keeping bridging the emerging gap that the electronic design industry is facing now and will face in the future.
只提供摘要形式。近年来,电子设计行业开始采用片上系统(SoC)设计方法,其中系统成为许多可配置和可重用的知识产权(IP)设计(如CPU, GPU, DSP等)的智能和复杂集成。从高端服务器到平板电脑、智能手机、物联网和可穿戴设备,SoC设计方法已经在广泛的系统中变得普遍。快速的上市时间和激烈的竞争给电子设计公司提供大批量、高质量的产品带来了重大挑战。集成和验证这些设计已经成为主要的挑战。EDA行业和学术界一直在继续创新管道,试图应对此类系统的复杂性,但主要挑战仍在前面。形式验证近年来已经成为SoC/IP设计和验证方法的主流技术。在过去,形式验证的使用仅限于小范围的应用程序,主要用于验证复杂的协议,或者由形式专家验证一些棘手的逻辑功能。然而,近年来,我们看到了正式的快速采用,我们看到了广泛的低功耗设计,安全性,SoC连接,配置状态寄存器等正式验证应用。在本次演讲中,我们概述了我们在设计SoC系统和可配置ip时所看到的挑战,并提供了一些想法来刺激学术研究,旨在增加这些领域的研究和创新,以不断弥合电子设计行业现在和未来面临的新兴差距。
{"title":"Challenging problems in industrial formal verification","authors":"Z. Hanna","doi":"10.1109/FMCAD.2014.6987583","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987583","url":null,"abstract":"Summary form only given. The electronic design industry has emerged in the recent years to adopt the system-on-chip (SoC) design methodology, where systems become a smart and complex integration of many configurable and reusable intellectual properties (IP) designs such as CPU, GPU, DSP, etc. SoC design methodologies have become common to a wide range of systems, starting from high-end servers, down to tablets, smartphones, Internet-of-things and wearable devices. The aggressive time-to-market and the hard competition add a major challenge to the electronic design companies to deliver high volume, and high quality products. Integration and validation of such designs has become the major challenge. The EDA industry and the academia has continued the innovation pipeline trying to cope with the complexity of such systems however major challenges are still ahead. Formal verification has emerged in the recent years to become a mainstream technology in SoC/IP design and verification methodologies. In the past, the usage of formal verification was limited to a small range of applications and it was mainly for verifying complex protocols, or some tricky logic functionality by formal experts. However in the recent years, we see a rapid adoption of formal, and we see a widespread of formal verification applications for low power design, security, SoC connectivity, configuration status register, and many more. In this talk, we provide an overview of the challenges that we see in designing SoC systems and configurable IPs, and provide some ideas to stimulate the academic research, aiming at increasing the research and innovation in such areas for keeping bridging the emerging gap that the electronic design industry is facing now and will face in the future.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116755138","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Disproving termination with overapproximation 用过度近似否定终止
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987597
B. Cook, Carsten Fuhs, K. Nimkar, P. O'Hearn
When disproving termination using known techniques (e.g. recurrence sets), abstractions that overapproximate the program's transition relation are unsound. In this paper we introduce live abstractions, a natural class of abstractions that can be combined with the recent concept of closed recurrence sets to soundly disprove termination. To demonstrate the practical usefulness of this new approach we show how programs with nonlinear, nondeterministic, and heap-based commands can be shown nonterminating using linear overapproximations.
当使用已知技术(如递归集)证明终止时,过度近似程序转换关系的抽象是不合理的。在本文中,我们引入了活抽象,这是一类自然的抽象,它可以与最近的闭递归集概念相结合,以完全否定终止。为了演示这种新方法的实际用途,我们展示了如何使用线性过逼近显示具有非线性、不确定性和基于堆的命令的程序是非终止的。
{"title":"Disproving termination with overapproximation","authors":"B. Cook, Carsten Fuhs, K. Nimkar, P. O'Hearn","doi":"10.1109/FMCAD.2014.6987597","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987597","url":null,"abstract":"When disproving termination using known techniques (e.g. recurrence sets), abstractions that overapproximate the program's transition relation are unsound. In this paper we introduce live abstractions, a natural class of abstractions that can be combined with the recent concept of closed recurrence sets to soundly disprove termination. To demonstrate the practical usefulness of this new approach we show how programs with nonlinear, nondeterministic, and heap-based commands can be shown nonterminating using linear overapproximations.","PeriodicalId":363683,"journal":{"name":"2014 Formal Methods in Computer-Aided Design (FMCAD)","volume":"279 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125854395","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 30
期刊
2014 Formal Methods in Computer-Aided Design (FMCAD)
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1