首页 > 最新文献

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

英文 中文
Program synthesis for networks 网络程序综合
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886653
Pavol Cerný
Software is eating the world. But how will we write all the programs to control everything from sensors to data centers? Program synthesis provides an answer. It increases the productivity of programmers by enabling them to capture their insights in a variety of forms, not just in standard code. In this tutorial, we focus on some challenges in programming networks, and we show how program synthesis algorithms can help. Developing network programs is difficult, as networks are large distributed systems. In particular, implementing programs that update the configuration of a network in response to events is an intricate problem. First, even if initial and final configurations are correct, subtle bugs in update programs can lead to incorrect transient behaviors, including forwarding loops, black holes, and access control violations. Second, if the update program reacts to events occurring near simultaneously in different parts of the network, naive implementations can lead to causality violations and conflicts. We present scalable program synthesis algorithms that produce network programs that are both correct by construction and efficient.
软件正在吞噬世界。但是,我们将如何编写所有的程序来控制从传感器到数据中心的一切?程序综合提供了一个答案。它使程序员能够以各种形式获取他们的见解,而不仅仅是在标准代码中,从而提高了程序员的生产力。在本教程中,我们将关注编程网络中的一些挑战,并展示程序合成算法如何提供帮助。开发网络程序是困难的,因为网络是大型分布式系统。特别是,实现更新网络配置以响应事件的程序是一个复杂的问题。首先,即使初始和最终配置是正确的,更新程序中的细微错误也可能导致不正确的瞬态行为,包括转发循环、黑洞和访问控制违规。其次,如果更新程序对几乎同时发生在网络不同部分的事件作出反应,天真的实现可能导致因果关系的违反和冲突。我们提出了可扩展的程序合成算法,该算法生成的网络程序既正确又高效。
{"title":"Program synthesis for networks","authors":"Pavol Cerný","doi":"10.1109/FMCAD.2016.7886653","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886653","url":null,"abstract":"Software is eating the world. But how will we write all the programs to control everything from sensors to data centers? Program synthesis provides an answer. It increases the productivity of programmers by enabling them to capture their insights in a variety of forms, not just in standard code. In this tutorial, we focus on some challenges in programming networks, and we show how program synthesis algorithms can help. Developing network programs is difficult, as networks are large distributed systems. In particular, implementing programs that update the configuration of a network in response to events is an intricate problem. First, even if initial and final configurations are correct, subtle bugs in update programs can lead to incorrect transient behaviors, including forwarding loops, black holes, and access control violations. Second, if the update program reacts to events occurring near simultaneously in different parts of the network, naive implementations can lead to causality violations and conflicts. We present scalable program synthesis algorithms that produce network programs that are both correct by construction and efficient.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"7 1","pages":"7-7"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81877148","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
A consistency checker for memory subsystem traces 内存子系统跟踪的一致性检查器
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886671
Matthew Naylor, S. Moore, A. Mujumdar
Verifying the memory subsystem in a modern shared-memory multiprocessor is a big challenge. Optimized implementations are highly sophisticated, yet must provide subtle consistency and liveness guarantees for the correct execution of concurrent programs. We present a tool that supports efficient specification-based testing of the memory subsystem against a range of formally specified consistency models. Our tool operates directly on the memory subsystem interface, promoting a compositional approach to system-on-chip verification, and can be used to search for simple failure cases — assisting rapid debug. It has recently been incorporated into the development flows of two open-source implementations — Berkeley's Rocket Chip(RISC-V) and Cambridge's BERI (MIPS) — where it has uncovered a number of serious bugs.
在现代共享内存多处理器中验证内存子系统是一个很大的挑战。优化的实现非常复杂,但必须为正确执行并发程序提供微妙的一致性和活动性保证。我们提供了一个工具,它支持针对一系列正式指定的一致性模型对内存子系统进行有效的基于规范的测试。我们的工具直接在内存子系统接口上运行,促进了对片上系统验证的组合方法,并且可以用于搜索简单的故障案例-帮助快速调试。它最近被整合到两个开源实现的开发流程中——伯克利的火箭芯片(RISC-V)和剑桥的BERI (MIPS)——在那里它发现了许多严重的错误。
{"title":"A consistency checker for memory subsystem traces","authors":"Matthew Naylor, S. Moore, A. Mujumdar","doi":"10.1109/FMCAD.2016.7886671","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886671","url":null,"abstract":"Verifying the memory subsystem in a modern shared-memory multiprocessor is a big challenge. Optimized implementations are highly sophisticated, yet must provide subtle consistency and liveness guarantees for the correct execution of concurrent programs. We present a tool that supports efficient specification-based testing of the memory subsystem against a range of formally specified consistency models. Our tool operates directly on the memory subsystem interface, promoting a compositional approach to system-on-chip verification, and can be used to search for simple failure cases — assisting rapid debug. It has recently been incorporated into the development flows of two open-source implementations — Berkeley's Rocket Chip(RISC-V) and Cambridge's BERI (MIPS) — where it has uncovered a number of serious bugs.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"8 1","pages":"133-140"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84079799","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}
引用次数: 4
Proof certificates for SMT-based model checkers for infinite-state systems 用于无限状态系统的基于smt模型检查器的证明证书
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886669
A. Mebsout, C. Tinelli
We present a dual technique for generating and verifying proof certificates in SMT-based model checkers, focusing on proofs of invariant properties. Certificates for two major model checking algorithms are extracted as k-inductive invariants, minimized and then reduced to a formal proof term with the help of an independent proof-producing SMT solver. SMT-based model checkers typically translate input problems into an internal first-order logic representation. In our approach, the correctness of translation from the model checker's input to the internal representation is verified in a lightweight manner by proving the observational equivalence between the results of two independent translations. This second proof is done by the model checker itself and generates in turn its own proof certificate. Our experimental evaluation show that, at the price of minimal instrumentation in the model checker, the approach allows one to efficiently generate and verify proof certificates for non-trivial transition systems and invariance queries.
我们提出了一种在基于smt的模型检查器中生成和验证证明证书的双重技术,重点关注不变属性的证明。两种主要模型检查算法的证书被提取为k归纳不变量,最小化,然后在独立的证明生成SMT求解器的帮助下简化为形式证明项。基于smt的模型检查器通常将输入问题转换为内部一阶逻辑表示。在我们的方法中,通过证明两个独立翻译结果之间的观察等效性,以轻量级的方式验证了从模型检查器的输入到内部表示的翻译的正确性。第二个证明由模型检查器自己完成,并生成自己的证明证书。我们的实验评估表明,以模型检查器中最小仪器的代价,该方法允许人们有效地为重要的转换系统和不变性查询生成和验证证明证书。
{"title":"Proof certificates for SMT-based model checkers for infinite-state systems","authors":"A. Mebsout, C. Tinelli","doi":"10.1109/FMCAD.2016.7886669","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886669","url":null,"abstract":"We present a dual technique for generating and verifying proof certificates in SMT-based model checkers, focusing on proofs of invariant properties. Certificates for two major model checking algorithms are extracted as k-inductive invariants, minimized and then reduced to a formal proof term with the help of an independent proof-producing SMT solver. SMT-based model checkers typically translate input problems into an internal first-order logic representation. In our approach, the correctness of translation from the model checker's input to the internal representation is verified in a lightweight manner by proving the observational equivalence between the results of two independent translations. This second proof is done by the model checker itself and generates in turn its own proof certificate. Our experimental evaluation show that, at the price of minimal instrumentation in the model checker, the approach allows one to efficiently generate and verify proof certificates for non-trivial transition systems and invariance queries.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"1 1","pages":"117-124"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82931795","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}
引用次数: 19
Verifying hyperproperties of hardware systems 验证硬件系统的超属性
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886651
B. Finkbeiner, Markus N. Rabe
This tutorial presents hardware verification techniques for hyperproperties. The most prominent application of hyperproperties is information flow security: information flow policies characterize the secrecy and integrity of a system by comparing two or more execution traces, for example by comparing the observations made by an external observer on execution traces that result from different values of a secret variable. Such a comparison cannot be represented as a set of traces and thus falls outside the standard notion of trace properties. A comparison between execution traces can, however, be represented as a set of sets of traces, which is called a hyperproperty. Hyperproperties occur naturally in many applications beyond their origins in security: examples include the symmetric access to critical resources in distributed protocols and Hamming distances between code words in coding theory. The hardware verification approach of the tutorial is based on recently developed temporal logics for hyperproperties. Unlike classic temporal logics like LTL or CTL, which refer to one computation path at a time, temporal logics for hyperproperties like HyperLTL and HyperCTL can express properties that relate multiple traces by explicitly quantifying over multiple computation paths simultaneously. We will relate the logics to the linear-branching spectrum of process equivalences, and show that even though the satisfiability problem of the logics is undecidable in general, the model checking problem can be solved efficiently. We will show how the logics can be used to verify real hardware designs, including an I2C bus master, the symmetric access to a shared resource in a mutual exclusion protocol, and the functional correctness of encoders and decoders for error resistant codes.
本教程介绍了超属性的硬件验证技术。超属性最突出的应用是信息流安全性:信息流策略通过比较两个或多个执行轨迹来描述系统的保密性和完整性,例如,通过比较外部观察者对由秘密变量的不同值所产生的执行轨迹的观察结果。这种比较不能表示为一组轨迹,因此不属于轨迹属性的标准概念。但是,执行跟踪之间的比较可以表示为跟踪集的集合,这称为超属性。超属性在许多应用程序中自然出现,超出了它们在安全性中的起源:示例包括分布式协议中对关键资源的对称访问和编码理论中码字之间的汉明距离。本教程的硬件验证方法基于最近开发的超属性时态逻辑。与经典的时间逻辑(如LTL或CTL)一次引用一条计算路径不同,超属性(如HyperLTL和hypertl)的时间逻辑可以通过同时显式量化多个计算路径来表达与多个跟踪相关的属性。我们将逻辑与过程等价的线性分支谱联系起来,并证明即使逻辑的可满足性问题一般是不可判定的,模型检验问题也可以有效地解决。我们将展示如何使用逻辑来验证真实的硬件设计,包括I2C总线主机,在互斥协议中对共享资源的对称访问,以及编码器和解码器的功能正确性。
{"title":"Verifying hyperproperties of hardware systems","authors":"B. Finkbeiner, Markus N. Rabe","doi":"10.1109/FMCAD.2016.7886651","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886651","url":null,"abstract":"This tutorial presents hardware verification techniques for hyperproperties. The most prominent application of hyperproperties is information flow security: information flow policies characterize the secrecy and integrity of a system by comparing two or more execution traces, for example by comparing the observations made by an external observer on execution traces that result from different values of a secret variable. Such a comparison cannot be represented as a set of traces and thus falls outside the standard notion of trace properties. A comparison between execution traces can, however, be represented as a set of sets of traces, which is called a hyperproperty. Hyperproperties occur naturally in many applications beyond their origins in security: examples include the symmetric access to critical resources in distributed protocols and Hamming distances between code words in coding theory. The hardware verification approach of the tutorial is based on recently developed temporal logics for hyperproperties. Unlike classic temporal logics like LTL or CTL, which refer to one computation path at a time, temporal logics for hyperproperties like HyperLTL and HyperCTL can express properties that relate multiple traces by explicitly quantifying over multiple computation paths simultaneously. We will relate the logics to the linear-branching spectrum of process equivalences, and show that even though the satisfiability problem of the logics is undecidable in general, the model checking problem can be solved efficiently. We will show how the logics can be used to verify real hardware designs, including an I2C bus master, the symmetric access to a shared resource in a mutual exclusion protocol, and the functional correctness of encoders and decoders for error resistant codes.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"30 1","pages":"5-5"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85184416","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
Synthesizing adaptive test strategies from temporal logic specifications 从时序逻辑规范中综合自适应测试策略
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886656
R. Bloem, Robert Könighofer, Ingo Pill, Franz Röck
Constructing good test cases is difficult and time-consuming, especially if the system under test is still under development and its exact behavior is not yet fixed. We propose a new approach to compute test cases for reactive systems from a given temporal logic specification. The tests are guaranteed to reveal certain simple bugs (like occasional bit-flips) in every realization of the specification and for every behavior of the uncontrollable part of the system's environment. We aim at unveiling faults for the lowest of four fault occurrence frequencies possible (ranging from a single occurrence to persistence). Based on well-established hypotheses from fault-based testing, we argue that such tests are also sensitive for more complex bugs. Since the specification may not define the system behavior completely, we use reactive synthesis algorithms (with partial information) to compute adaptive test strategies that react to behavior at runtime. We work out the underlying theory and present first experiments demonstrating that our approach can be applied to industrial specifications and that the resulting strategies are capable of detecting bugs that are hard to detect with random testing.
构建良好的测试用例是困难和耗时的,特别是如果测试中的系统仍处于开发阶段,并且其确切的行为尚未确定。我们提出了一种新的方法来根据给定的时间逻辑规范为响应性系统计算测试用例。这些测试可以保证在规范的每个实现和系统环境中不可控部分的每个行为中揭示某些简单的错误(比如偶尔的位翻转)。我们的目标是揭示四种故障发生频率中最低的故障(从单个故障到持续故障)。基于基于故障的测试的成熟假设,我们认为这样的测试对更复杂的错误也很敏感。由于规范可能没有完全定义系统行为,我们使用反应性合成算法(带有部分信息)来计算在运行时对行为做出反应的自适应测试策略。我们提出了基本理论,并提出了第一个实验,证明我们的方法可以应用于工业规范,并且由此产生的策略能够检测到随机测试难以检测到的错误。
{"title":"Synthesizing adaptive test strategies from temporal logic specifications","authors":"R. Bloem, Robert Könighofer, Ingo Pill, Franz Röck","doi":"10.1109/FMCAD.2016.7886656","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886656","url":null,"abstract":"Constructing good test cases is difficult and time-consuming, especially if the system under test is still under development and its exact behavior is not yet fixed. We propose a new approach to compute test cases for reactive systems from a given temporal logic specification. The tests are guaranteed to reveal certain simple bugs (like occasional bit-flips) in every realization of the specification and for every behavior of the uncontrollable part of the system's environment. We aim at unveiling faults for the lowest of four fault occurrence frequencies possible (ranging from a single occurrence to persistence). Based on well-established hypotheses from fault-based testing, we argue that such tests are also sensitive for more complex bugs. Since the specification may not define the system behavior completely, we use reactive synthesis algorithms (with partial information) to compute adaptive test strategies that react to behavior at runtime. We work out the underlying theory and present first experiments demonstrating that our approach can be applied to industrial specifications and that the resulting strategies are capable of detecting bugs that are hard to detect with random testing.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"112 1","pages":"17-24"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79592454","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}
引用次数: 1
A paradigm shift in verification methodology 验证方法的范式转变
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886652
P. Ashar
Todays SoCs are driving unprecedented verification complexity. The combination of billions of gates, system-level functionality on a chip, complex design methodologies like asynchronous clock domains and an explosion of untimed paths on a chip, interacting dynamic power domains, aggressive reset schemes etcetera could have been the perfect storm to staunch productivity. Instead it has turned out to be the mother of all necessities that has driven significant innovation in verification and brought about a paradigm shift. Static sign-off has proven to be a pillar in this new paradigm. This talk will discuss the template for what has made static techniques successful in verifying modern SoCs. The recent successes are, in no small part, due to the FMCAD community that has pursued formal methods doggedly for decades despite glacial practical adoption. Complementing the efforts of the research community has been the equally determined pursuit in the EDA community to bring structure and automation into the verification process. Through this partnership, we have been able to bring about an analysis framework within which a combination of semantic analysis and formal methods enables a systematic verification process that leads to sign-off level confidence for important failure modes. It will be gratifying for the FMCAD audience to realize that SAT, model checking, functional abstraction, QBF etcetera have become essential in being able to tape out some of the most complex chips in the world on time and within budget. The adoption of IC3/PDR into the verification process was almost immediate. The recent successes represent a strong debut for static methods. What is the vision to extend the promise into bigger slices of the verification pie? System-level verification continues to be an art-form with very little of the automation, process and problem-framing that have proven successful in other domains. May be the FMCAD community should adopt that as its next major challenge.
今天的soc正在推动前所未有的验证复杂性。数十亿门、芯片上的系统级功能、复杂的设计方法(如异步时钟域和芯片上非定时路径的爆炸)、相互作用的动态电源域、激进的重置方案等的组合,可能会成为稳定生产力的完美风暴。相反,它已被证明是所有必需品之母,推动了核查方面的重大创新,并带来了范式转变。静态签名已被证明是这个新范例的支柱。本次演讲将讨论使静态技术成功验证现代soc的模板。最近的成功在很大程度上要归功于FMCAD社区几十年来坚持不懈地追求正式方法,尽管实际应用很少。与研究界的努力相辅相成的是EDA界同样坚定的追求,即将结构和自动化引入验证过程。通过这种伙伴关系,我们已经能够带来一个分析框架,在这个框架中,语义分析和形式化方法的结合使系统的验证过程成为可能,从而导致对重要故障模式的签出级别的置信度。对于FMCAD的观众来说,意识到SAT,模型检查,功能抽象,QBF等已经成为能够及时和在预算范围内磁带出一些世界上最复杂的芯片的关键,这将是令人满意的。IC3/PDR几乎立即被纳入核查进程。最近的成功代表了静态方法的首次亮相。将承诺扩展到更大的验证蛋糕中的愿景是什么?系统级验证仍然是一种艺术形式,很少有自动化、过程和问题框架,而这些在其他领域已经被证明是成功的。也许FMCAD社区应该将其作为下一个主要挑战。
{"title":"A paradigm shift in verification methodology","authors":"P. Ashar","doi":"10.1109/FMCAD.2016.7886652","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886652","url":null,"abstract":"Todays SoCs are driving unprecedented verification complexity. The combination of billions of gates, system-level functionality on a chip, complex design methodologies like asynchronous clock domains and an explosion of untimed paths on a chip, interacting dynamic power domains, aggressive reset schemes etcetera could have been the perfect storm to staunch productivity. Instead it has turned out to be the mother of all necessities that has driven significant innovation in verification and brought about a paradigm shift. Static sign-off has proven to be a pillar in this new paradigm. This talk will discuss the template for what has made static techniques successful in verifying modern SoCs. The recent successes are, in no small part, due to the FMCAD community that has pursued formal methods doggedly for decades despite glacial practical adoption. Complementing the efforts of the research community has been the equally determined pursuit in the EDA community to bring structure and automation into the verification process. Through this partnership, we have been able to bring about an analysis framework within which a combination of semantic analysis and formal methods enables a systematic verification process that leads to sign-off level confidence for important failure modes. It will be gratifying for the FMCAD audience to realize that SAT, model checking, functional abstraction, QBF etcetera have become essential in being able to tape out some of the most complex chips in the world on time and within budget. The adoption of IC3/PDR into the verification process was almost immediate. The recent successes represent a strong debut for static methods. What is the vision to extend the promise into bigger slices of the verification pie? System-level verification continues to be an art-form with very little of the automation, process and problem-framing that have proven successful in other domains. May be the FMCAD community should adopt that as its next major challenge.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"51 1","pages":"6-6"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86046014","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
Equivalence checking using Gröbner bases 使用Gröbner碱基进行等价性检查
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886676
Amr A. R. Sayed-Ahmed, Daniel Große, Mathias Soeken, R. Drechsler
Motivated by the recent success of the algebraic computation technique in formal verification of large and optimized gate-level multipliers, this paper proposes algebraic equivalence checking for handling circuits that contain both complex arithmetic components as well as control logic. These circuits pose major challenges for existing proof techniques. The basic idea of Algebraic Combinational Equivalence Checking (ACEC) is to model the two compared circuits in form of Gröbner bases and combine them into a single algebraic model. It generates bit and word relationship candidates between the internal variables of the two circuits and tests their membership in the combined model. Since the membership testing does not scale for the described setting, we propose reverse engineering to extract arithmetic components and to abstract them to canonical representations. Further we propose arithmetic sweeping which utilizes the abstracted components to find and prove internal equivalences between both circuits. We demonstrate the applicability of ACEC for checking the equivalence of a floating point multiplier (including full IEEE-754 rounding scheme) against several optimized and diversified implementations.
由于最近代数计算技术在大型优化门级乘法器的形式化验证中取得了成功,本文提出了包含复杂算术组件和控制逻辑的处理电路的代数等效检验。这些电路对现有的证明技术提出了重大挑战。代数组合等价检验(ACEC)的基本思想是将两个比较电路以Gröbner基的形式建模,并将它们组合成一个代数模型。它在两个电路的内部变量之间生成位和字的候选关系,并在组合模型中测试它们的隶属关系。由于成员测试不能扩展到所描述的设置,我们提出了逆向工程来提取算术组件并将其抽象为规范表示。在此基础上,我们提出了一种算法扫描,利用抽象的元件来寻找和证明两个电路之间的内部等价。我们演示了ACEC在检查浮点乘法器(包括完整的IEEE-754舍入方案)对几种优化和多样化实现的等效性方面的适用性。
{"title":"Equivalence checking using Gröbner bases","authors":"Amr A. R. Sayed-Ahmed, Daniel Große, Mathias Soeken, R. Drechsler","doi":"10.1109/FMCAD.2016.7886676","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886676","url":null,"abstract":"Motivated by the recent success of the algebraic computation technique in formal verification of large and optimized gate-level multipliers, this paper proposes algebraic equivalence checking for handling circuits that contain both complex arithmetic components as well as control logic. These circuits pose major challenges for existing proof techniques. The basic idea of Algebraic Combinational Equivalence Checking (ACEC) is to model the two compared circuits in form of Gröbner bases and combine them into a single algebraic model. It generates bit and word relationship candidates between the internal variables of the two circuits and tests their membership in the combined model. Since the membership testing does not scale for the described setting, we propose reverse engineering to extract arithmetic components and to abstract them to canonical representations. Further we propose arithmetic sweeping which utilizes the abstracted components to find and prove internal equivalences between both circuits. We demonstrate the applicability of ACEC for checking the equivalence of a floating point multiplier (including full IEEE-754 rounding scheme) against several optimized and diversified implementations.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"46 3 1","pages":"169-176"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88148150","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
Integrating proxy theories and numeric model lifting for floating-point arithmetic 将代理理论与浮点运算的数值模型提升相结合
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886674
Jaideep Ramachandran, T. Wahl
Precise reasoning for floating-point arithmetic (FPA) is as critical for accurate software analysis as it is hard to achieve. Several recent approaches reduce solving an FPA formula f to reasoning over a related but easier-to-solve proxy theory. The rationale is that a satisfying proxy assignment may directly correspond to a model for f. But what if it doesn't? Prior work deals with this case somewhat crudely, or discards the proxy assignment altogether. In this paper we present an FPA decision framework, parameterized by the choice of proxy theory T, that attempts to lift an encountered T model to a numerically close FPA model. Other than assuming some “proximity” of T to FPA, our lifting procedure is T-agnostic; it is in fact designed to work independently of how the proxy assignment was obtained. Should the lifting fail, our procedure gradually reduces the gap between the FPA and the proxy interpretations of f. We have instantiated the framework using real arithmetic and reduced-precision FPA as proxy theories, and demonstrate that we can, in many cases, decide f more efficiently than earlier work.
浮点运算(FPA)的精确推理对于准确的软件分析至关重要,因为很难实现。最近的几种方法将求解FPA公式f简化为对相关但更容易求解的代理理论的推理。其基本原理是,令人满意的代理分配可能直接对应于f的模型。但如果不是呢?之前的工作稍微粗糙地处理了这种情况,或者完全抛弃了代理分配。在本文中,我们提出了一个FPA决策框架,通过选择代理理论T来参数化,它试图将遇到的T模型提升到数值接近的FPA模型。除了假设T与FPA“接近”外,我们的举升程序是T不可知的;事实上,它被设计成独立于如何获得代理分配而工作。如果提升失败,我们的过程逐渐减少FPA和f的代理解释之间的差距。我们使用真实算法和降低精度的FPA作为代理理论实例化了框架,并证明在许多情况下,我们可以比以前的工作更有效地确定f。
{"title":"Integrating proxy theories and numeric model lifting for floating-point arithmetic","authors":"Jaideep Ramachandran, T. Wahl","doi":"10.1109/FMCAD.2016.7886674","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886674","url":null,"abstract":"Precise reasoning for floating-point arithmetic (FPA) is as critical for accurate software analysis as it is hard to achieve. Several recent approaches reduce solving an FPA formula f to reasoning over a related but easier-to-solve proxy theory. The rationale is that a satisfying proxy assignment may directly correspond to a model for f. But what if it doesn't? Prior work deals with this case somewhat crudely, or discards the proxy assignment altogether. In this paper we present an FPA decision framework, parameterized by the choice of proxy theory T, that attempts to lift an encountered T model to a numerically close FPA model. Other than assuming some “proximity” of T to FPA, our lifting procedure is T-agnostic; it is in fact designed to work independently of how the proxy assignment was obtained. Should the lifting fail, our procedure gradually reduces the gap between the FPA and the proxy interpretations of f. We have instantiated the framework using real arithmetic and reduced-precision FPA as proxy theories, and demonstrate that we can, in many cases, decide f more efficiently than earlier work.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"49 1","pages":"153-160"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82690118","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
Routing under constraints 约束下的路由
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886670
Alexander Nadel
Routing is an essential stage in physical design, where already placed components are connected by wires. Routing must satisfy various manufacturing requirements, referred to as design rules. We formalize the problem of design-rule-aware routing and introduce a solver, called DRouter, for the resulting problem. Plain routing is often modeled as follows: given an undirected weighted graph and a set of m disjoint nets (each net being a set of vertices), a routing is a (minimal) forest of m disjoint trees, where each tree spans a net. DRouter's input comprises a plain routing instance and a bit-vector formula, whose variables include the edges of the graph as Boolean variables (along with other variables). DRouter looks for a satisfying assignment to F, such that the satisfied edges comprise a routing. DRouter implements an A∗-based router inside a SAT solver. It overrides the solver's decision and restart strategies and enhances its learning with routing-aware algorithms. We demonstrate that, on a set of crafted routing instances, DRouter has substantially better capacity than either plain reduction to bit-vector reasoning or Monosat, a solver that is able to reason about SAT and graph predicates. We show that DRouter can route large clips from Intel designs while obeying up to millions of applications of the design rules — a task two industrial routers failed to accomplish.
布线是物理设计中的一个重要阶段,已经放置的组件通过电线连接。布线必须满足各种制造要求,称为设计规则。我们形式化了设计规则感知路由的问题,并引入了一个称为DRouter的求解器来解决由此产生的问题。普通路由通常是这样建模的:给定一个无向加权图和一组m个不相交的网络(每个网络是一组顶点),路由是一个由m棵不相交树组成的(最小)森林,其中每棵树跨越一个网络。DRouter的输入包括一个普通路由实例和一个位向量公式,其变量包括图的边缘作为布尔变量(以及其他变量)。DRouter寻找对F的一个满意的赋值,使得满足的边组成一条路由。路由器在SAT求解器中实现了一个基于A *的路由器。它覆盖求解器的决策和重启策略,并通过路由感知算法增强其学习能力。我们证明,在一组手工制作的路由实例上,DRouter具有比普通简化为位向量推理或Monosat(能够对SAT和图谓词进行推理的求解器)更好的容量。我们的研究表明,DRouter可以在遵循设计规则的数百万个应用程序的情况下,从英特尔的设计中路由大量的芯片——这是两个工业路由器无法完成的任务。
{"title":"Routing under constraints","authors":"Alexander Nadel","doi":"10.1109/FMCAD.2016.7886670","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886670","url":null,"abstract":"Routing is an essential stage in physical design, where already placed components are connected by wires. Routing must satisfy various manufacturing requirements, referred to as design rules. We formalize the problem of design-rule-aware routing and introduce a solver, called DRouter, for the resulting problem. Plain routing is often modeled as follows: given an undirected weighted graph and a set of m disjoint nets (each net being a set of vertices), a routing is a (minimal) forest of m disjoint trees, where each tree spans a net. DRouter's input comprises a plain routing instance and a bit-vector formula, whose variables include the edges of the graph as Boolean variables (along with other variables). DRouter looks for a satisfying assignment to F, such that the satisfied edges comprise a routing. DRouter implements an A∗-based router inside a SAT solver. It overrides the solver's decision and restart strategies and enhances its learning with routing-aware algorithms. We demonstrate that, on a set of crafted routing instances, DRouter has substantially better capacity than either plain reduction to bit-vector reasoning or Monosat, a solver that is able to reason about SAT and graph predicates. We show that DRouter can route large clips from Intel designs while obeying up to millions of applications of the design rules — a task two industrial routers failed to accomplish.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"9 1","pages":"125-132"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87858478","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
Optimizing horn solvers for network repair 优化网络修复喇叭求解器
Pub Date : 2016-10-03 DOI: 10.1109/FMCAD.2016.7886663
Hossein Hojjat, Philipp Rümmer, Jedidiah McClurg, Pavol Cerný, Nate Foster
Automatic program repair modifies a faulty program to make it correct with respect to a specification. Previous approaches have typically been restricted to specific programming languages and a fixed set of syntactical mutation techniques — e.g., changing the conditions of if statements. We present a more general technique based on repairing sets of unsolvable Horn clauses. Working with Horn clauses enables repairing programs from many different source languages, but also introduces challenges, such as navigating the large space of possible repairs. We propose a conservative semantic repair technique that only removes incorrect behaviors and does not introduce new behaviors. Our proposed framework allows the user to request the best repairs — it constructs an optimization lattice representing the space of possible repairs, and uses a novel local search technique that exploits heuristics to avoid searching through sub-lattices with no feasible repairs. To illustrate the applicability of our approach, we apply it to problems in software-defined networking (SDN), and illustrate how it is able to help network operators fix buggy configurations by properly filtering undesired traffic. We show that interval and Boolean lattices are effective choices of optimization lattices in this domain, and we enable optimization objectives such as modifying the minimal number of switches. We have implemented a prototype repair tool, and present preliminary experimental results on several benchmarks using real topologies and realistic repair scenarios in data centers and congested networks.
自动程序修复修改一个有缺陷的程序,使其符合规范。以前的方法通常局限于特定的编程语言和一组固定的语法突变技术——例如,改变if语句的条件。我们提出了一种基于修复不可解霍恩子句集的更通用的技术。使用Horn子句可以修复来自许多不同源语言的程序,但也引入了挑战,例如导航可能修复的大空间。我们提出了一种保守的语义修复技术,它只删除不正确的行为,而不引入新的行为。我们提出的框架允许用户请求最佳修复-它构建了一个表示可能修复空间的优化格,并使用了一种新颖的局部搜索技术,该技术利用启发式来避免在没有可行修复的子格中搜索。为了说明我们的方法的适用性,我们将其应用于软件定义网络(SDN)中的问题,并说明它如何能够通过适当过滤不需要的流量来帮助网络运营商修复错误的配置。我们证明了区间格和布尔格是该域优化格的有效选择,并实现了修改最小开关数等优化目标。我们已经实现了一个原型修复工具,并在数据中心和拥塞网络中使用真实拓扑和现实修复场景在几个基准测试中展示了初步实验结果。
{"title":"Optimizing horn solvers for network repair","authors":"Hossein Hojjat, Philipp Rümmer, Jedidiah McClurg, Pavol Cerný, Nate Foster","doi":"10.1109/FMCAD.2016.7886663","DOIUrl":"https://doi.org/10.1109/FMCAD.2016.7886663","url":null,"abstract":"Automatic program repair modifies a faulty program to make it correct with respect to a specification. Previous approaches have typically been restricted to specific programming languages and a fixed set of syntactical mutation techniques — e.g., changing the conditions of if statements. We present a more general technique based on repairing sets of unsolvable Horn clauses. Working with Horn clauses enables repairing programs from many different source languages, but also introduces challenges, such as navigating the large space of possible repairs. We propose a conservative semantic repair technique that only removes incorrect behaviors and does not introduce new behaviors. Our proposed framework allows the user to request the best repairs — it constructs an optimization lattice representing the space of possible repairs, and uses a novel local search technique that exploits heuristics to avoid searching through sub-lattices with no feasible repairs. To illustrate the applicability of our approach, we apply it to problems in software-defined networking (SDN), and illustrate how it is able to help network operators fix buggy configurations by properly filtering undesired traffic. We show that interval and Boolean lattices are effective choices of optimization lattices in this domain, and we enable optimization objectives such as modifying the minimal number of switches. We have implemented a prototype repair tool, and present preliminary experimental results on several benchmarks using real topologies and realistic repair scenarios in data centers and congested networks.","PeriodicalId":6479,"journal":{"name":"2016 Formal Methods in Computer-Aided Design (FMCAD)","volume":"20 1","pages":"73-80"},"PeriodicalIF":0.0,"publicationDate":"2016-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82403813","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}
引用次数: 22
期刊
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