首页 > 最新文献

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

英文 中文
SWAPPER: A framework for automatic generation of formula simplifiers based on conditional rewrite rules SWAPPER:一个基于条件重写规则自动生成公式简化器的框架
Pub Date : 2016-02-23 DOI: 10.1109/FMCAD.2016.7886678
Rohit Singh, Armando Solar-Lezama
This paper addresses the problem of creating simplifiers for logic formulas based on conditional term rewriting. In particular, the paper focuses on a program synthesis application where formula simplifications have been shown to have a significant impact. We show that by combining machine learning techniques with constraint-based synthesis, it is possible to synthesize a formula simplifier fully automatically from a corpus of representative problems, making it possible to create formula simplifiers tailored to specific problem domains. We demonstrate the benefits of our approach for synthesis benchmarks from the SyGuS competition and automated grading.
本文讨论了基于条件项重写的逻辑公式简化器的创建问题。特别地,本文着重于程序合成应用,其中公式简化已被证明具有显著的影响。我们表明,通过将机器学习技术与基于约束的合成相结合,可以从代表性问题的语料库中完全自动地合成公式简化器,从而可以创建适合特定问题领域的公式简化器。我们从SyGuS竞赛和自动评分中展示了我们的合成基准方法的好处。
{"title":"SWAPPER: A framework for automatic generation of formula simplifiers based on conditional rewrite rules","authors":"Rohit Singh, Armando Solar-Lezama","doi":"10.1109/FMCAD.2016.7886678","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886678","url":null,"abstract":"This paper addresses the problem of creating simplifiers for logic formulas based on conditional term rewriting. In particular, the paper focuses on a program synthesis application where formula simplifications have been shown to have a significant impact. We show that by combining machine learning techniques with constraint-based synthesis, it is possible to synthesize a formula simplifier fully automatically from a corpus of representative problems, making it possible to create formula simplifiers tailored to specific problem domains. We demonstrate the benefits of our approach for synthesis benchmarks from the SyGuS competition and automated grading.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"24 1","pages":"185-192"},"PeriodicalIF":0.0,"publicationDate":"2016-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84112189","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
Equivalence checking by logic relaxation 用逻辑松弛法进行等价性检验
Pub Date : 2015-11-04 DOI: 10.1109/FMCAD.2016.7886660
E. Goldberg
We introduce a new framework for Equivalence Checking (EC) of Boolean circuits based on a general technique called Logic Relaxation (LoR). LoR is meant for checking if a propositional formula G has only “good” satisfying assignments specified by a design property. The essence of LoR is to relax G into a formula Grlx and compute a set S that contains all assignments that satisfy Grlx but do not satisfy G. If all bad satisfying assignments are in S, formula G can have only good ones and the design property in question holds. Set S is built by a procedure called partial quantifier elimination. The appeal of EC by LoR is twofold. First, it facilitates generation of powerful inductive proofs. Second, proving inequiv-alence comes down to checking the existence of some assignments satisfying Grlx i.e. a simpler version of the original formula. We give experimental evidence that supports our approach.
提出了一种基于逻辑松弛(LoR)技术的布尔电路等效检验(EC)框架。LoR用于检查命题公式G是否只有“好”满足设计属性指定的赋值。LoR的本质是将G松弛为公式Grlx,并计算一个集合S,其中包含所有满足Grlx但不满足G的赋值。如果所有不满足赋值的赋值都在S中,则公式G中只能有好的赋值,且所讨论的设计性质成立。集合S是通过一个称为部分量词消除的过程建立的。上诉法院对欧共体的上诉是双重的。首先,它有利于生成强大的归纳证明。其次,证明不等价性归结为检查满足Grlx的赋值的存在性,即原公式的一个更简单的版本。我们给出了实验证据来支持我们的方法。
{"title":"Equivalence checking by logic relaxation","authors":"E. Goldberg","doi":"10.1109/FMCAD.2016.7886660","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886660","url":null,"abstract":"We introduce a new framework for Equivalence Checking (EC) of Boolean circuits based on a general technique called Logic Relaxation (LoR). LoR is meant for checking if a propositional formula G has only “good” satisfying assignments specified by a design property. The essence of LoR is to relax G into a formula Grlx and compute a set S that contains all assignments that satisfy Grlx but do not satisfy G. If all bad satisfying assignments are in S, formula G can have only good ones and the design property in question holds. Set S is built by a procedure called partial quantifier elimination. The appeal of EC by LoR is twofold. First, it facilitates generation of powerful inductive proofs. Second, proving inequiv-alence comes down to checking the existence of some assignments satisfying Grlx i.e. a simpler version of the original formula. We give experimental evidence that supports our approach.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"65 1","pages":"49-56"},"PeriodicalIF":0.0,"publicationDate":"2015-11-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78799830","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
Compiler verification for fun and profit 编译验证的乐趣和利润
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987587
X. Leroy
Formal verification of software or hardware systems --- be it by model checking, deductive verification, abstract interpretation, type checking, or any other kind of static analysis --- is generally conducted over high-level programming or description languages, quite remote from the actual machine code and circuits that execute in the system. To bridge this particular gap, we all rely on compilers and other code generators to automatically produce the executable artifact. Compilers are, however, vulnerable to miscompilation: bugs in the compiler that cause incorrect code to be generated from a correct source code, possibly invalidating the guarantees so painfully obtained by source-level formal verification. Recent experimental studies [1] show that many widely-used production-quality compilers suffer from miscompilation. The formal verification of compilers and related code generators is a radical, mathematically-grounded answer to the miscompilation issue. By applying formal verification (typically, interactive theorem proving) to the compiler itself, it is possible to guarantee that the compiler preserves the semantics of the source programs it transforms, or at least preserves the properties of interest that were formally verified over the source programs. Proving the correctness of compilers is an old idea [2], [3] that took a long time to scale all the way to realistic compilers. In the talk, I give an overview of CompCert C [4], a moderately-optimizing compiler for almost all of the ISO C 99 language that has been formally verified using the Coq proof assistant [5]. The CompCert project is one point in a space of code generators whose verification deserves attention. For example, functional languages and object-oriented languages raise the issue of jointly verifying the compiler and the run-time system (memory management, exception handling, etc) that the generated code depends on. At the other end of the expressiveness spectrum, synchronous languages and hardware description languages also raise interesting verified generation issues, as exemplified by Pnueli's seminal work on translation validation for Signal [6] and Braibant and Chlipala's recent work on verified hardware synthesis [7]. Orthogonally, the integration of verification tools and compilers that are both verified against a shared formal semantics opens fascinating opportunities for "super-optimizations" that generate better code by exploiting the properties of the source code that were formally verified.
软件或硬件系统的正式验证——无论是通过模型检查、演绎验证、抽象解释、类型检查,还是任何其他类型的静态分析——通常是在高级编程或描述语言上进行的,与系统中执行的实际机器代码和电路相当遥远。为了弥补这个特殊的差距,我们都依赖编译器和其他代码生成器来自动生成可执行工件。然而,编译器容易出现错误编译:编译器中的错误会导致从正确的源代码生成不正确的代码,这可能会使通过源代码级别的形式验证痛苦地获得的保证无效。最近的实验研究[1]表明,许多广泛使用的生产质量的编译器存在编译错误。对编译器和相关代码生成器的正式验证是对错误编译问题的根本的、基于数学的回答。通过对编译器本身应用形式化验证(通常是交互式定理证明),可以保证编译器保留其转换的源程序的语义,或者至少保留对源程序进行形式化验证的感兴趣的属性。证明编译器的正确性是一个老想法[2],[3],需要很长时间才能扩展到现实的编译器。在演讲中,我概述了CompCert C[4],这是一个针对几乎所有ISO c99语言进行适度优化的编译器,已经使用Coq证明助手[5]进行了正式验证。在代码生成器领域,CompCert项目是一个值得关注的验证点。例如,函数式语言和面向对象语言提出了联合验证生成代码所依赖的编译器和运行时系统(内存管理、异常处理等)的问题。在表达谱的另一端,同步语言和硬件描述语言也提出了有趣的验证生成问题,如Pnueli在Signal翻译验证方面的开创性工作[6],以及Braibant和Chlipala最近在验证硬件合成方面的工作[7]。正交地,验证工具和编译器的集成都是根据共享的形式语义进行验证的,这为“超级优化”提供了迷人的机会,通过利用经过正式验证的源代码的属性来生成更好的代码。
{"title":"Compiler verification for fun and profit","authors":"X. Leroy","doi":"10.1109/FMCAD.2014.6987587","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987587","url":null,"abstract":"Formal verification of software or hardware systems --- be it by model checking, deductive verification, abstract interpretation, type checking, or any other kind of static analysis --- is generally conducted over high-level programming or description languages, quite remote from the actual machine code and circuits that execute in the system. To bridge this particular gap, we all rely on compilers and other code generators to automatically produce the executable artifact. Compilers are, however, vulnerable to miscompilation: bugs in the compiler that cause incorrect code to be generated from a correct source code, possibly invalidating the guarantees so painfully obtained by source-level formal verification. Recent experimental studies [1] show that many widely-used production-quality compilers suffer from miscompilation. \u0000 \u0000The formal verification of compilers and related code generators is a radical, mathematically-grounded answer to the miscompilation issue. By applying formal verification (typically, interactive theorem proving) to the compiler itself, it is possible to guarantee that the compiler preserves the semantics of the source programs it transforms, or at least preserves the properties of interest that were formally verified over the source programs. Proving the correctness of compilers is an old idea [2], [3] that took a long time to scale all the way to realistic compilers. In the talk, I give an overview of CompCert C [4], a moderately-optimizing compiler for almost all of the ISO C 99 language that has been formally verified using the Coq proof assistant [5]. \u0000 \u0000The CompCert project is one point in a space of code generators whose verification deserves attention. For example, functional languages and object-oriented languages raise the issue of jointly verifying the compiler and the run-time system (memory management, exception handling, etc) that the generated code depends on. At the other end of the expressiveness spectrum, synchronous languages and hardware description languages also raise interesting verified generation issues, as exemplified by Pnueli's seminal work on translation validation for Signal [6] and Braibant and Chlipala's recent work on verified hardware synthesis [7]. \u0000 \u0000Orthogonally, the integration of verification tools and compilers that are both verified against a shared formal semantics opens fascinating opportunities for \"super-optimizations\" that generate better code by exploiting the properties of the source code that were formally verified.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"10 1","pages":"9"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79554710","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
Computer-aided verification technology for biology 生物学计算机辅助验证技术
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987588
T. Henzinger
We summarize some recent results on using computed-aided verification technology for understanding biological systems. This includes the use of reactive models for specifying cellular mechanisms, the use of symbolic state space exploration for analyzing molecular reaction networks, and the use of SMT solvers for studying the evolution of gene regulatory circuits.
我们总结了利用计算机辅助验证技术来理解生物系统的一些最新成果。这包括使用反应模型来指定细胞机制,使用符号状态空间探索来分析分子反应网络,以及使用SMT求解器来研究基因调控回路的进化。
{"title":"Computer-aided verification technology for biology","authors":"T. Henzinger","doi":"10.1109/FMCAD.2014.6987588","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987588","url":null,"abstract":"We summarize some recent results on using computed-aided verification technology for understanding biological systems. This includes the use of reactive models for specifying cellular mechanisms, the use of symbolic state space exploration for analyzing molecular reaction networks, and the use of SMT solvers for studying the evolution of gene regulatory circuits.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"59 2 1","pages":"11"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79836646","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
The FMCAD 2014 graduate student forum FMCAD 2014研究生论坛
Pub Date : 2014-10-21 DOI: 10.1109/FMCAD.2014.6987589
R. Piskac
{"title":"The FMCAD 2014 graduate student forum","authors":"R. Piskac","doi":"10.1109/FMCAD.2014.6987589","DOIUrl":"https://doi.org/10.1109/FMCAD.2014.6987589","url":null,"abstract":"","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"13 1","pages":"13"},"PeriodicalIF":0.0,"publicationDate":"2014-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82089546","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}
引用次数: 6
Automatic inference of memory fences 内存栅栏的自动推理
Pub Date : 2010-10-20 DOI: 10.1145/2261417.2261438
M. Kuperstein, Martin T. Vechev, Eran Yahav
This paper addresses the problem of placing memory fences in a concurrent program running on a relaxed memory model. Modern architectures implement relaxed memory models which may reorder memory operations or execute them non-atomically. Special instructions called memory fences are provided to the programmer, allowing control of this behavior. To ensure correctness of many algorithms, in particular of non-blocking ones, a programmer is often required to explicitly insert memory fences into her program. However, she must use as few fences as possible, or the benefits of the relaxed architecture may be lost. Placing memory fences is challenging and very error prone, as it requires subtle reasoning about the underlying memory model. We present a framework for automatic inference of memory fences in concurrent programs, assisting the programmer in this complex task. Given a finite-state program, a safety specification and a description of the memory model, our framework computes a set of ordering constraints that guarantee the correctness of the program under the memory model. The computed constraints are maximally permissive: removing any constraint from the solution would permit an execution violating the specification. Our framework then realizes the computed constraints as additional fences in the input program. We implemented our approach in a tool called FENDER and used it to infer correct and efficient placements of fences for several non-trivial algorithms, including practical concurrent data structures.
本文讨论了在一个运行在宽松内存模型上的并发程序中放置内存栅栏的问题。现代架构实现了宽松的内存模型,可以重新排序内存操作或非原子地执行它们。为程序员提供了称为内存栅栏的特殊指令,允许控制这种行为。为了确保许多算法的正确性,特别是非阻塞算法,程序员通常需要显式地在程序中插入内存围栏。然而,她必须尽可能少地使用栅栏,否则可能会失去轻松架构的好处。设置内存栅栏是一项挑战,而且非常容易出错,因为它需要对底层内存模型进行微妙的推理。我们提出了一个在并发程序中自动推断内存栅栏的框架,以帮助程序员完成这一复杂的任务。给定一个有限状态程序,一个安全规范和内存模型的描述,我们的框架计算一组排序约束,以保证程序在内存模型下的正确性。计算约束是最大限度允许的:从解决方案中删除任何约束将允许违反规范的执行。然后,我们的框架将计算出的约束作为输入程序中的附加藩篱来实现。我们在一个名为FENDER的工具中实现了我们的方法,并使用它来推断几种重要算法(包括实际的并发数据结构)中围栏的正确和有效位置。
{"title":"Automatic inference of memory fences","authors":"M. Kuperstein, Martin T. Vechev, Eran Yahav","doi":"10.1145/2261417.2261438","DOIUrl":"https://doi.org/10.1145/2261417.2261438","url":null,"abstract":"This paper addresses the problem of placing memory fences in a concurrent program running on a relaxed memory model. Modern architectures implement relaxed memory models which may reorder memory operations or execute them non-atomically. Special instructions called memory fences are provided to the programmer, allowing control of this behavior. To ensure correctness of many algorithms, in particular of non-blocking ones, a programmer is often required to explicitly insert memory fences into her program. However, she must use as few fences as possible, or the benefits of the relaxed architecture may be lost. Placing memory fences is challenging and very error prone, as it requires subtle reasoning about the underlying memory model. We present a framework for automatic inference of memory fences in concurrent programs, assisting the programmer in this complex task. Given a finite-state program, a safety specification and a description of the memory model, our framework computes a set of ordering constraints that guarantee the correctness of the program under the memory model. The computed constraints are maximally permissive: removing any constraint from the solution would permit an execution violating the specification. Our framework then realizes the computed constraints as additional fences in the input program. We implemented our approach in a tool called FENDER and used it to infer correct and efficient placements of fences for several non-trivial algorithms, including practical concurrent data structures.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"76 1","pages":"111-119"},"PeriodicalIF":0.0,"publicationDate":"2010-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75284758","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}
引用次数: 127
Verifying shadow page table algorithms 验证影子页表算法
Pub Date : 2010-10-20 DOI: 10.5555/1998496.1998543
Eyad Alkassar, Ernie Cohen, Mark A. Hillebrand, Mikhail Kovalev, W. Paul
Efficient virtualization of translation lookaside buffers (TLBs), a core component of modern hypervisors, is complicated by the concurrent, speculative walking of page tables in hardware. We give a formal model of an x64-like TLB, criteria for its correct virtualization, and outline the verification of a virtualization algorithm using shadow page tables. The verification is being carried out in VCC, a verifier for concurrent C code.
翻译暂置缓冲区(tlb)是现代管理程序的核心组件,它的高效虚拟化由于硬件中页表的并发、推测式遍历而变得复杂。我们给出了类似x64的TLB的形式化模型、正确虚拟化的标准,并概述了使用影子页表对虚拟化算法的验证。验证是在VCC中进行的,VCC是并发C代码的验证器。
{"title":"Verifying shadow page table algorithms","authors":"Eyad Alkassar, Ernie Cohen, Mark A. Hillebrand, Mikhail Kovalev, W. Paul","doi":"10.5555/1998496.1998543","DOIUrl":"https://doi.org/10.5555/1998496.1998543","url":null,"abstract":"Efficient virtualization of translation lookaside buffers (TLBs), a core component of modern hypervisors, is complicated by the concurrent, speculative walking of page tables in hardware. We give a formal model of an x64-like TLB, criteria for its correct virtualization, and outline the verification of a virtualization algorithm using shadow page tables. The verification is being carried out in VCC, a verifier for concurrent C code.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"1 1","pages":"267-270"},"PeriodicalIF":0.0,"publicationDate":"2010-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82959043","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}
引用次数: 35
Formal verification of arbiters using property strengthening and underapproximations 使用属性强化和欠近似的仲裁者的正式验证
Pub Date : 2010-10-20 DOI: 10.5555/1998496.1998504
Gadiel Auerbach, Fady Copty, Viresh Paruthi
Arbiters are commonly used components in electronic systems to control access to shared resources. In this paper, we describe a novel method to check starvation in random priority-based arbiters. Typical implementations of random priority-based arbiters use pseudo-random number generators such as linear feedback shift registers (LFSRs) which makes them sequentially deep precluding a direct analysis of the design. The proposed technique checks a stronger bounded-starvation property; if the stronger property fails, we use the counterexample to construct an underapproximation abstraction. We next check the original property on the abstraction to check for its validity. We have found the approach to be a very effective bug hunting technique to reveal starvation issues in LFSR-based arbiters. We describe its successful application on formal verification of arbiters on a commercial processor design.
仲裁器是电子系统中常用的组件,用于控制对共享资源的访问。在本文中,我们描述了一种基于随机优先级的仲裁器中检测饥饿的新方法。基于随机优先级的仲裁器的典型实现使用伪随机数生成器,如线性反馈移位寄存器(LFSRs),这使得它们顺序深度排除了对设计的直接分析。该技术具有更强的有界饥饿特性;如果较强的性质失效,我们使用反例来构造一个欠近似抽象。接下来,我们检查抽象上的原始属性以检查其有效性。我们发现这种方法是一种非常有效的bug搜索技术,可以在基于lfsr的仲裁器中发现饥饿问题。我们描述了它在商业处理器设计上的仲裁器形式化验证的成功应用。
{"title":"Formal verification of arbiters using property strengthening and underapproximations","authors":"Gadiel Auerbach, Fady Copty, Viresh Paruthi","doi":"10.5555/1998496.1998504","DOIUrl":"https://doi.org/10.5555/1998496.1998504","url":null,"abstract":"Arbiters are commonly used components in electronic systems to control access to shared resources. In this paper, we describe a novel method to check starvation in random priority-based arbiters. Typical implementations of random priority-based arbiters use pseudo-random number generators such as linear feedback shift registers (LFSRs) which makes them sequentially deep precluding a direct analysis of the design. The proposed technique checks a stronger bounded-starvation property; if the stronger property fails, we use the counterexample to construct an underapproximation abstraction. We next check the original property on the abstraction to check for its validity. We have found the approach to be a very effective bug hunting technique to reveal starvation issues in LFSR-based arbiters. We describe its successful application on formal verification of arbiters on a commercial processor design.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"59 1","pages":"21-24"},"PeriodicalIF":0.0,"publicationDate":"2010-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89188743","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}
引用次数: 5
Incremental component-based construction and verification using invariants 增量的基于组件的构造和使用不变量的验证
Pub Date : 2010-10-20 DOI: 10.5555/1998496.1998542
S. Bensalem, M. Bozga, Axel Legay, Thanh-Hung Nguyen, J. Sifakis, Rongjie Yan
We propose invariant-based techniques for the efficient verification of safety and deadlock properties of concurrent systems. We assume that components and component interactions are described within the BIP framework, a tool for component-based design. We build on a compositional methodology in which the invariant is obtained by combining the invariants of the individual components with an interaction invariant that takes concurrency and interaction between components into account. In this paper, we propose new efficient techniques for computing interaction invariants. This is achieved in several steps. First, we propose a formalization of incremental component-based design. Then we suggest sufficient conditions that ensure the preservation of invariants through the introduction of new interactions. For cases in which these conditions are not satisfied, we propose methods for generation of new invariants in an incremental manner. The reuse of existing invariants reduces considerably the verification effort. Our techniques have been implemented in the D-Finder toolset. Among the experiments conducted, we have been capable of verifying properties and deadlock-freedom of DALA, an autonomous robot whose behaviors in the functional level are described with 500000 lines of C Code. This experiment, which is conducted with industrial partners, is far beyond the scope of existing academic tools such as NuSMV or SPIN.
我们提出了基于不变量的技术来有效地验证并发系统的安全性和死锁特性。我们假设组件和组件交互是在BIP框架(一种基于组件的设计工具)中描述的。我们建立在一种组合方法的基础上,其中不变量是通过将单个组件的不变量与考虑组件之间并发性和交互的交互不变量相结合而获得的。在本文中,我们提出了新的计算交互不变量的有效技术。这可以通过几个步骤实现。首先,我们提出了增量式基于组件的设计的形式化。然后,我们提出了通过引入新的相互作用来保证不变量保留的充分条件。对于不满足这些条件的情况,我们提出了以增量方式生成新不变量的方法。现有不变量的重用大大减少了验证工作。我们的技术已经在D-Finder工具集中实现了。在进行的实验中,我们已经能够验证DALA的属性和死锁自由性,DALA是一个自主机器人,其功能层面的行为用50万行C代码描述。这项实验是与工业伙伴一起进行的,远远超出了NuSMV或SPIN等现有学术工具的范围。
{"title":"Incremental component-based construction and verification using invariants","authors":"S. Bensalem, M. Bozga, Axel Legay, Thanh-Hung Nguyen, J. Sifakis, Rongjie Yan","doi":"10.5555/1998496.1998542","DOIUrl":"https://doi.org/10.5555/1998496.1998542","url":null,"abstract":"We propose invariant-based techniques for the efficient verification of safety and deadlock properties of concurrent systems. We assume that components and component interactions are described within the BIP framework, a tool for component-based design. We build on a compositional methodology in which the invariant is obtained by combining the invariants of the individual components with an interaction invariant that takes concurrency and interaction between components into account. In this paper, we propose new efficient techniques for computing interaction invariants. This is achieved in several steps. First, we propose a formalization of incremental component-based design. Then we suggest sufficient conditions that ensure the preservation of invariants through the introduction of new interactions. For cases in which these conditions are not satisfied, we propose methods for generation of new invariants in an incremental manner. The reuse of existing invariants reduces considerably the verification effort. Our techniques have been implemented in the D-Finder toolset. Among the experiments conducted, we have been capable of verifying properties and deadlock-freedom of DALA, an autonomous robot whose behaviors in the functional level are described with 500000 lines of C Code. This experiment, which is conducted with industrial partners, is far beyond the scope of existing academic tools such as NuSMV or SPIN.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"20 1","pages":"257-256"},"PeriodicalIF":0.0,"publicationDate":"2010-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82556919","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}
引用次数: 63
Dimensions in program synthesis 程序综合的维度
Pub Date : 2010-07-26 DOI: 10.1145/1836089.1836091
M. Gyssens, J. Paredaens, D. V. Gucht, G. Fletcher
Program Synthesis, which is the task of discovering programs that realize user intent, can be useful in several scenarios: discovery of new algorithms, helping regular programmers automatically discover tricky/mundane programming details, enabling people with no programming background to develop scripts for performing repetitive tasks (end-user programming), and even problem solving in the context of automating teaching. In this tutorial, I will describe the three key dimensions that should be taken into account in designing any program synthesis system: expression of user intent, space of programs over which to search, and the search technique [1]. (i) The user intent can be expressed in the form of logical relations between inputs and outputs, input-output examples, demonstrations, natural language, and inefficient or related programs. (ii) The search space can be over imperative or functional programs (with possible restrictions on the control structure or the operator set), or over restricted models of computations such as regular/context-free grammars/transducers, or succinct logical representations. (iii) The search technique can be based on exhaustive search, version space algebras, machine learning techniques (such as belief propagation or genetic programming), or logical reasoning techniques based on SAT/SMT solvers. I will illustrate these concepts by brief description of various program synthesis projects that target synthesis of a wide variety of programs such as standard undergraduate textbook algorithms (e.g., sorting, dynamic programming), program inverses (e.g., decoders, deserializers), bitvector manipulation routines, deobfuscated programs, graph algorithms, text-manipulating routines, geometry algorithms etc.
程序合成是发现实现用户意图的程序的任务,它在以下几个场景中很有用:发现新算法,帮助普通程序员自动发现棘手/平凡的编程细节,使没有编程背景的人能够开发执行重复任务的脚本(最终用户编程),甚至在自动化教学的背景下解决问题。在本教程中,我将描述在设计任何程序合成系统时应该考虑的三个关键维度:用户意图的表达、搜索的程序空间以及搜索技术[1]。(1)用户意图可以通过输入和输出之间的逻辑关系、输入-输出示例、演示、自然语言和低效或相关程序的形式来表达。(ii)搜索空间可以是命使式或函数式程序(可能对控制结构或操作符集有限制),或者是受限制的计算模型,如规则/上下文无关的语法/换能器,或简洁的逻辑表示。(iii)搜索技术可以基于穷举搜索、版本空间代数、机器学习技术(如信念传播或遗传规划)或基于SAT/SMT求解器的逻辑推理技术。我将通过对各种程序合成项目的简要描述来说明这些概念,这些项目的目标是合成各种各样的程序,例如标准的本科教科书算法(例如,排序,动态规划),程序逆(例如,解码器,反序列化器),位向量操作例程,去混淆程序,图形算法,文本操作例程,几何算法等。
{"title":"Dimensions in program synthesis","authors":"M. Gyssens, J. Paredaens, D. V. Gucht, G. Fletcher","doi":"10.1145/1836089.1836091","DOIUrl":"https://doi.org/10.1145/1836089.1836091","url":null,"abstract":"Program Synthesis, which is the task of discovering programs that realize user intent, can be useful in several scenarios: discovery of new algorithms, helping regular programmers automatically discover tricky/mundane programming details, enabling people with no programming background to develop scripts for performing repetitive tasks (end-user programming), and even problem solving in the context of automating teaching. In this tutorial, I will describe the three key dimensions that should be taken into account in designing any program synthesis system: expression of user intent, space of programs over which to search, and the search technique [1]. (i) The user intent can be expressed in the form of logical relations between inputs and outputs, input-output examples, demonstrations, natural language, and inefficient or related programs. (ii) The search space can be over imperative or functional programs (with possible restrictions on the control structure or the operator set), or over restricted models of computations such as regular/context-free grammars/transducers, or succinct logical representations. (iii) The search technique can be based on exhaustive search, version space algebras, machine learning techniques (such as belief propagation or genetic programming), or logical reasoning techniques based on SAT/SMT solvers. I will illustrate these concepts by brief description of various program synthesis projects that target synthesis of a wide variety of programs such as standard undergraduate textbook algorithms (e.g., sorting, dynamic programming), program inverses (e.g., decoders, deserializers), bitvector manipulation routines, deobfuscated programs, graph algorithms, text-manipulating routines, geometry algorithms etc.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"25 1","pages":"1-1"},"PeriodicalIF":0.0,"publicationDate":"2010-07-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81712855","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}
引用次数: 77
期刊
2016 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