首页 > 最新文献

Proceedings of the 2015 Conference on Certified Programs and Proofs最新文献

英文 中文
A Typed C11 Semantics for Interactive Theorem Proving 用于交互定理证明的类型化C11语义
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693571
R. Krebbers, F. Wiedijk
We present a semantics of a significant fragment of the C programming language as described by the C11 standard. It consists of a small step semantics of a core language, which uses a structured memory model to capture subtleties of C11, such as strict-aliasing restrictions related to unions, that have not yet been addressed by others. The semantics of actual C programs is defined by translation into this core language. We have an explicit type system for the core language, and prove type preservation and progress, as well as type correctness of the translation. Due to unspecified order of evaluation, our operational semantics is non-deterministic. To explore all defined and undefined behaviors, we present an executable semantics that computes a stream of finite sets of reachable states. It is proved sound and complete with respect to the operational semantics. Both the translation into the core language and the executable semantics are defined as Coq programs. Extraction to OCaml is used to obtain a C interpreter to run and test the semantics on actual C programs. All proofs are fully formalized in Coq.
我们提出了C11标准所描述的C编程语言的一个重要片段的语义。它由核心语言的小步骤语义组成,它使用结构化内存模型来捕捉C11的细微之处,例如与联合相关的严格混叠限制,这是其他人尚未解决的问题。实际C程序的语义是通过翻译成这种核心语言来定义的。我们对核心语言有一个明确的类型系统,并证明了类型的保存和进步,以及翻译的类型正确性。由于未指定的求值顺序,我们的操作语义是非确定的。为了探索所有已定义和未定义的行为,我们提出了一个可执行语义,它计算可达状态的有限集合流。就运算语义而言,它被证明是健全和完备的。核心语言的翻译和可执行语义都被定义为Coq程序。提取到OCaml用于获得C解释器,以便在实际的C程序上运行和测试语义。所有的证明都在Coq中完全形式化。
{"title":"A Typed C11 Semantics for Interactive Theorem Proving","authors":"R. Krebbers, F. Wiedijk","doi":"10.1145/2676724.2693571","DOIUrl":"https://doi.org/10.1145/2676724.2693571","url":null,"abstract":"We present a semantics of a significant fragment of the C programming language as described by the C11 standard. It consists of a small step semantics of a core language, which uses a structured memory model to capture subtleties of C11, such as strict-aliasing restrictions related to unions, that have not yet been addressed by others. The semantics of actual C programs is defined by translation into this core language. We have an explicit type system for the core language, and prove type preservation and progress, as well as type correctness of the translation. Due to unspecified order of evaluation, our operational semantics is non-deterministic. To explore all defined and undefined behaviors, we present an executable semantics that computes a stream of finite sets of reachable states. It is proved sound and complete with respect to the operational semantics. Both the translation into the core language and the executable semantics are defined as Coq programs. Extraction to OCaml is used to obtain a C interpreter to run and test the semantics on actual C programs. All proofs are fully formalized in Coq.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130879168","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}
引用次数: 25
Recording Completion for Certificates in Equational Reasoning 方程式推理证书的完成记录
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693171
Thomas Sternagel, S. Winkler, Harald Zankl
We introduce recording completion, a variant of Knuth-Bendix completion which facilitates the construction of certificates for various equational logic proofs (completion proofs, entailment proofs and dis-proofs). The approach generalizes to more powerful variants of completion such as ordered completion and AC completion. We implemented recording completion in the tools KBCV and MKBTT. Both tools allow to choose among different formats of proof certificates, namely conversions, proof trees, and conversions with history. We report on experimental results in which all generated certificates have been verified by the trustable checker CeTA.
我们介绍了记录补全,这是Knuth-Bendix补全的一种变体,它有助于构建各种等式逻辑证明(补全证明,蕴涵证明和反证明)的证书。该方法推广到更强大的补全变体,如有序补全和AC补全。我们在KBCV和MKBTT工具中实现了记录补全。这两个工具都允许选择不同格式的证明证书,即转换、证明树和具有历史记录的转换。我们报告了实验结果,其中所有生成的证书都经过了可信检查器CeTA的验证。
{"title":"Recording Completion for Certificates in Equational Reasoning","authors":"Thomas Sternagel, S. Winkler, Harald Zankl","doi":"10.1145/2676724.2693171","DOIUrl":"https://doi.org/10.1145/2676724.2693171","url":null,"abstract":"We introduce recording completion, a variant of Knuth-Bendix completion which facilitates the construction of certificates for various equational logic proofs (completion proofs, entailment proofs and dis-proofs). The approach generalizes to more powerful variants of completion such as ordered completion and AC completion. We implemented recording completion in the tools KBCV and MKBTT. Both tools allow to choose among different formats of proof certificates, namely conversions, proof trees, and conversions with history. We report on experimental results in which all generated certificates have been verified by the trustable checker CeTA.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115027113","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
Formal Reasoning about the C11 Weak Memory Model C11弱内存模型的形式化推理
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693181
Viktor Vafeiadis
This abstract introduces the C11 weak memory model, summarises known verification results, and discusses some open problems.
摘要介绍了C11弱内存模型,总结了已知的验证结果,并讨论了一些有待解决的问题。
{"title":"Formal Reasoning about the C11 Weak Memory Model","authors":"Viktor Vafeiadis","doi":"10.1145/2676724.2693181","DOIUrl":"https://doi.org/10.1145/2676724.2693181","url":null,"abstract":"This abstract introduces the C11 weak memory model, summarises known verification results, and discusses some open problems.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132680208","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}
引用次数: 8
Correctness of Isabelle's Cyclicity Checker: Implementability of Overloading in Proof Assistants 伊莎贝尔循环检查器的正确性:重载在证明助手中的可实现性
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693175
Ondrej Kuncar
Overloaded constant definitions are an important feature of the proof assistant Isabelle because they allow us to provide Haskell-like type classes to our users. There has been an ongoing question as to under which conditions we can practically guarantee that overloading is a safe theory extension, i.e., preserves consistency or is conservative. The natural condition is that a rewriting system generated by overloaded definitions must always terminate. The current system imposes restrictions on accepted overloaded definitions and decides the termination by an algorithm that is part of the trusted code base of Isabelle. Therefore we aim to prove its correctness. Thanks to our work we discovered not only completeness shortcomings but also a correctness issue---we could prove False. In our paper we present a modified version of the algorithm together with a proof of completeness and correctness of it. Although our work deals with Isabelle, our paper provides a more general result: how to practically implement overloading in proof assistants.
重载常量定义是证明助手Isabelle的一个重要特性,因为它们允许我们向用户提供类似haskell的类型类。一直存在一个问题,即在什么条件下我们可以实际保证重载是一个安全的理论扩展,即保持一致性或保守性。自然的情况是,由重载定义生成的重写系统必须总是终止。当前系统对可接受的重载定义施加限制,并通过算法决定终止,该算法是Isabelle可信代码库的一部分。因此,我们的目标是证明其正确性。由于我们的工作,我们不仅发现了完整性缺陷,而且还发现了正确性问题——我们可以证明为False。本文给出了该算法的一个改进版本,并证明了该算法的完备性和正确性。虽然我们的工作涉及伊莎贝尔,但我们的论文提供了一个更一般的结果:如何在证明助手中实际实现过载。
{"title":"Correctness of Isabelle's Cyclicity Checker: Implementability of Overloading in Proof Assistants","authors":"Ondrej Kuncar","doi":"10.1145/2676724.2693175","DOIUrl":"https://doi.org/10.1145/2676724.2693175","url":null,"abstract":"Overloaded constant definitions are an important feature of the proof assistant Isabelle because they allow us to provide Haskell-like type classes to our users. There has been an ongoing question as to under which conditions we can practically guarantee that overloading is a safe theory extension, i.e., preserves consistency or is conservative. The natural condition is that a rewriting system generated by overloaded definitions must always terminate. The current system imposes restrictions on accepted overloaded definitions and decides the termination by an algorithm that is part of the trusted code base of Isabelle. Therefore we aim to prove its correctness. Thanks to our work we discovered not only completeness shortcomings but also a correctness issue---we could prove False. In our paper we present a modified version of the algorithm together with a proof of completeness and correctness of it. Although our work deals with Isabelle, our paper provides a more general result: how to practically implement overloading in proof assistants.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132150360","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}
引用次数: 24
The Speedup Theorem in a Primitive Recursive Framework 原始递归框架中的加速定理
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693178
A. Asperti
Blum's speedup theorem is a major theorem in computational complexity, showing the existence of computable functions for which no optimal program can exist: for any speedup function r there exists a function fr such that for any program computing fr we can find an alternative program computing it with the desired speedup r. The main corollary is that algorithmic problems do not have, in general, a inherent complexity. Traditional proofs of the speedup theorem make an essential use of Kleene's fix point theorem to close a suitable diagonal argument. As a consequence, very little is known about its validity in subrecursive settings, where there is no universal machine, and no fixpoints. In this article we discuss an alternative, formal proof of the speedup theorem that allows us to spare the invocation of the fix point theorem and sheds more light on the actual complexity of the function fr.
Blum加速定理是计算复杂性中的一个重要定理,它表明存在不存在最优程序的可计算函数:对于任何加速函数r,存在一个函数,使得对于任何程序计算,我们都可以找到一个替代程序,以期望的加速r来计算它。主要推论是算法问题通常不具有固有的复杂性。加速定理的传统证明,本质上是利用Kleene不动点定理来闭合一个合适的对角线辐角。因此,对于其在子递归设置中的有效性知之甚少,因为没有通用机器,也没有固定点。在本文中,我们将讨论加速定理的另一种形式证明,它允许我们避免调用不动点定理,并更清楚地了解函数的实际复杂性。
{"title":"The Speedup Theorem in a Primitive Recursive Framework","authors":"A. Asperti","doi":"10.1145/2676724.2693178","DOIUrl":"https://doi.org/10.1145/2676724.2693178","url":null,"abstract":"Blum's speedup theorem is a major theorem in computational complexity, showing the existence of computable functions for which no optimal program can exist: for any speedup function r there exists a function fr such that for any program computing fr we can find an alternative program computing it with the desired speedup r. The main corollary is that algorithmic problems do not have, in general, a inherent complexity. Traditional proofs of the speedup theorem make an essential use of Kleene's fix point theorem to close a suitable diagonal argument. As a consequence, very little is known about its validity in subrecursive settings, where there is no universal machine, and no fixpoints. In this article we discuss an alternative, formal proof of the speedup theorem that allows us to spare the invocation of the fix point theorem and sheds more light on the actual complexity of the function fr.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128738683","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 Decision Procedure for Univariate Real Polynomials in Isabelle/HOL Isabelle/HOL中单变量实多项式的一个决策过程
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693166
Manuel Eberl
Sturm sequences are a method for computing the number of real roots of a univariate real polynomial inside a given interval efficiently. In this paper, this fact and a number of methods to construct Sturm sequences efficiently have been formalised with the interactive theorem prover Isabelle/HOL. Building upon this, an Isabelle/HOL proof method was then implemented to prove interesting statements about the number of real roots of a univariate real polynomial and related properties such as non-negativity and monotonicity.
Sturm序列是一种在给定区间内有效计算单变量实数多项式实根个数的方法。本文用交互定理证明者Isabelle/HOL将这一事实和一些有效构造Sturm序列的方法形式化。在此基础上,实现了Isabelle/HOL证明方法,以证明关于单变量实数多项式的实根数和相关性质(如非负性和单调性)的有趣陈述。
{"title":"A Decision Procedure for Univariate Real Polynomials in Isabelle/HOL","authors":"Manuel Eberl","doi":"10.1145/2676724.2693166","DOIUrl":"https://doi.org/10.1145/2676724.2693166","url":null,"abstract":"Sturm sequences are a method for computing the number of real roots of a univariate real polynomial inside a given interval efficiently. In this paper, this fact and a number of methods to construct Sturm sequences efficiently have been formalised with the interactive theorem prover Isabelle/HOL. Building upon this, an Isabelle/HOL proof method was then implemented to prove interesting statements about the number of real roots of a univariate real polynomial and related properties such as non-negativity and monotonicity.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"81 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122171497","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}
引用次数: 20
Verified Validation of Program Slicing 程序切片的验证验证
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693169
Sandrine Blazy, A. Maroneze, David Pichardie
Program slicing is a well-known program transformation which simplifies a program wrt a given criterion while preserving its semantics. Since the seminal paper published by Weiser in 1981, program slicing is still widely used in various application domains. State of the art program slicers operate over program dependence graphs (PDG), a sophisticated data structure combining data and control dependences. In this paper, we follow the a posteriori validation approach to formally verify (in Coq) a general program slicer. Our validator for program slicing is efficient and validates the results of a run of an unverified program slicer. Program slicing is interesting for a posteriori validation because the correctness proof of program slicing requires to compute new supplementary information from the PDG, thus decoupling the slicing algorithm from its proof. Our semantics-preserving program slicer is integrated into the CompCert formally verified compiler. It operates over an intermediate language of the compiler having the same expressiveness as C. Our experiments show that our formally verified validator scales on large realistic programs.
程序切片是一种著名的程序转换方法,它在保留程序语义的同时,根据给定的标准简化程序。自1981年Weiser发表了开创性的论文以来,程序切片仍然广泛应用于各个应用领域。最先进的程序切片器在程序依赖图(PDG)上操作,PDG是一种结合了数据和控制依赖的复杂数据结构。在本文中,我们遵循后验验证方法来正式验证(在Coq中)通用程序切片器。我们的程序切片验证器非常高效,可以验证未验证的程序切片器的运行结果。程序切片对于后验验证很有趣,因为程序切片的正确性证明需要从PDG中计算新的补充信息,从而将切片算法与其证明解耦。我们的语义保留程序切片器集成到CompCert正式验证的编译器中。它在编译器的中间语言上运行,具有与c语言相同的表达能力。我们的实验表明,我们正式验证的验证器适用于大型实际程序。
{"title":"Verified Validation of Program Slicing","authors":"Sandrine Blazy, A. Maroneze, David Pichardie","doi":"10.1145/2676724.2693169","DOIUrl":"https://doi.org/10.1145/2676724.2693169","url":null,"abstract":"Program slicing is a well-known program transformation which simplifies a program wrt a given criterion while preserving its semantics. Since the seminal paper published by Weiser in 1981, program slicing is still widely used in various application domains. State of the art program slicers operate over program dependence graphs (PDG), a sophisticated data structure combining data and control dependences. In this paper, we follow the a posteriori validation approach to formally verify (in Coq) a general program slicer. Our validator for program slicing is efficient and validates the results of a run of an unverified program slicer. Program slicing is interesting for a posteriori validation because the correctness proof of program slicing requires to compute new supplementary information from the PDG, thus decoupling the slicing algorithm from its proof. Our semantics-preserving program slicer is integrated into the CompCert formally verified compiler. It operates over an intermediate language of the compiler having the same expressiveness as C. Our experiments show that our formally verified validator scales on large realistic programs.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"82 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116311557","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}
引用次数: 13
A Compositional Semantics for Verified Separate Compilation and Linking 可验证的独立编译和链接的组合语义
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693167
T. Ramananandro, Zhong Shao, Shu-Chun Weng, Jérémie Koenig, Yuchen Fu
Recent ground-breaking efforts such as CompCert have made a convincing case that mechanized verification of the compiler correctness for realistic C programs is both viable and practical. Unfortunately, existing verified compilers can only handle whole programs---this severely limits their applicability and prevents the linking of verified C programs with verified external libraries. In this paper, we present a novel compositional semantics for reasoning about open modules and for supporting verified separate compilation and linking. More specifically, we replace external function calls with explicit events in the behavioral semantics. We then develop a verified linking operator that makes lazy substitutions on (potentially reacting) behaviors by replacing each external function call event with a behavior simulating the requested function. Finally, we show how our new semantics can be applied to build a refinement infrastructure that supports both vertical composition and horizontal composition.
最近,诸如CompCert之类的突破性工作已经令人信服地证明,对现实的C程序进行编译器正确性的机械化验证是可行且实用的。不幸的是,现有的经过验证的编译器只能处理整个程序——这严重限制了它们的适用性,并阻止了经过验证的C程序与经过验证的外部库的链接。在本文中,我们提出了一种新的组合语义,用于对开放模块进行推理,并支持经过验证的独立编译和链接。更具体地说,我们用行为语义中的显式事件替换外部函数调用。然后,我们开发一个经过验证的链接操作符,该操作符通过将每个外部函数调用事件替换为模拟所请求函数的行为,从而对(可能发生反应的)行为进行惰性替换。最后,我们将展示如何应用我们的新语义来构建同时支持垂直组合和水平组合的精化基础设施。
{"title":"A Compositional Semantics for Verified Separate Compilation and Linking","authors":"T. Ramananandro, Zhong Shao, Shu-Chun Weng, Jérémie Koenig, Yuchen Fu","doi":"10.1145/2676724.2693167","DOIUrl":"https://doi.org/10.1145/2676724.2693167","url":null,"abstract":"Recent ground-breaking efforts such as CompCert have made a convincing case that mechanized verification of the compiler correctness for realistic C programs is both viable and practical. Unfortunately, existing verified compilers can only handle whole programs---this severely limits their applicability and prevents the linking of verified C programs with verified external libraries. In this paper, we present a novel compositional semantics for reasoning about open modules and for supporting verified separate compilation and linking. More specifically, we replace external function calls with explicit events in the behavioral semantics. We then develop a verified linking operator that makes lazy substitutions on (potentially reacting) behaviors by replacing each external function call event with a behavior simulating the requested function. Finally, we show how our new semantics can be applied to build a refinement infrastructure that supports both vertical composition and horizontal composition.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126779286","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}
引用次数: 25
Certified Abstract Interpretation with Pretty-Big-Step Semantics 具有相当大步骤语义的认证抽象解释
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693174
Martin Bodin, T. Jensen, Alan Schmitt
This paper describes an investigation into developing certified abstract interpreters from big-step semantics using the Coq proof assistant. We base our approach on Schmidt's abstract interpretation principles for natural semantics, and use a pretty-big-step (PBS) semantics, a semantic format proposed by Charguéraud. We propose a systematic representation of the PBS format and implement it in Coq. We then show how the semantic rules can be abstracted in a methodical fashion, independently of the chosen abstract domain, to produce a set of abstract inference rules that specify an abstract interpreter. We prove the correctness of the abstract interpreter in Coq once and for all, under the assumption that abstract operations faithfully respect the concrete ones. We finally show how to define correct-by-construction analyses: their correction amounts to proving they belong to the abstract semantics.
本文描述了一种利用Coq证明助手从大步语义开发认证抽象解释器的研究。我们的方法基于Schmidt对自然语义的抽象解释原则,并使用了一个相当大的步骤(PBS)语义,这是chargusamuraud提出的一种语义格式。我们提出了PBS格式的系统表示,并在Coq中实现。然后,我们将展示如何以一种系统的方式对语义规则进行抽象,而不依赖于所选择的抽象领域,从而生成一组指定抽象解释器的抽象推理规则。在假设抽象操作忠实地尊重具体操作的前提下,我们一次性地证明了Coq中抽象解释器的正确性。我们最后展示了如何定义按结构正确的分析:它们的纠正等于证明它们属于抽象语义。
{"title":"Certified Abstract Interpretation with Pretty-Big-Step Semantics","authors":"Martin Bodin, T. Jensen, Alan Schmitt","doi":"10.1145/2676724.2693174","DOIUrl":"https://doi.org/10.1145/2676724.2693174","url":null,"abstract":"This paper describes an investigation into developing certified abstract interpreters from big-step semantics using the Coq proof assistant. We base our approach on Schmidt's abstract interpretation principles for natural semantics, and use a pretty-big-step (PBS) semantics, a semantic format proposed by Charguéraud. We propose a systematic representation of the PBS format and implement it in Coq. We then show how the semantic rules can be abstracted in a methodical fashion, independently of the chosen abstract domain, to produce a set of abstract inference rules that specify an abstract interpreter. We prove the correctness of the abstract interpreter in Coq once and for all, under the assumption that abstract operations faithfully respect the concrete ones. We finally show how to define correct-by-construction analyses: their correction amounts to proving they belong to the abstract semantics.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122126041","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
A Verified Algorithm for Geometric Zonotope/Hyperplane Intersection 一种几何分区/超平面相交的验证算法
Pub Date : 2015-01-13 DOI: 10.1145/2676724.2693164
Fabian Immler
To perform rigorous numerical computations, one can use a generalization of interval arithmetic, namely affine arithmetic (AA), which works with zonotopes instead of intervals. Zonotopes are also widely used for reachability analysis of continuous or hybrid systems, where an important operation is the geometric intersection of zonotopes with hyperplanes. We have implemented a functional algorithm to compute the zonotope/hyperplane intersection and verified it in Isabelle/HOL. The algorithm is similar to convex hull computations, our verification is therefore inspired by Knuth's axioms for an orientation predicate of points in the plane, which have been successfully used to verify convex hull algorithms. The interesting fact is that we combine a mixture of different fields: a discrete geometrical algorithm to perform operations on the continuous sets represented by zonotopes.
为了进行严格的数值计算,可以使用区间算法的推广,即仿射算法(AA),它适用于分区而不是区间。分区拓扑也广泛用于连续或混合系统的可达性分析,其中一个重要的运算是分区拓扑与超平面的几何相交。我们实现了一种计算分区/超平面相交的函数式算法,并在Isabelle/HOL中进行了验证。该算法类似于凸包计算,因此我们的验证受到Knuth关于平面中点的方向谓词的公理的启发,该公理已成功地用于验证凸包算法。有趣的事实是,我们结合了不同领域的混合物:一个离散的几何算法对由分区表示的连续集合执行操作。
{"title":"A Verified Algorithm for Geometric Zonotope/Hyperplane Intersection","authors":"Fabian Immler","doi":"10.1145/2676724.2693164","DOIUrl":"https://doi.org/10.1145/2676724.2693164","url":null,"abstract":"To perform rigorous numerical computations, one can use a generalization of interval arithmetic, namely affine arithmetic (AA), which works with zonotopes instead of intervals. Zonotopes are also widely used for reachability analysis of continuous or hybrid systems, where an important operation is the geometric intersection of zonotopes with hyperplanes. We have implemented a functional algorithm to compute the zonotope/hyperplane intersection and verified it in Isabelle/HOL. The algorithm is similar to convex hull computations, our verification is therefore inspired by Knuth's axioms for an orientation predicate of points in the plane, which have been successfully used to verify convex hull algorithms. The interesting fact is that we combine a mixture of different fields: a discrete geometrical algorithm to perform operations on the continuous sets represented by zonotopes.","PeriodicalId":187702,"journal":{"name":"Proceedings of the 2015 Conference on Certified Programs and Proofs","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-01-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132611735","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}
引用次数: 17
期刊
Proceedings of the 2015 Conference on Certified Programs and Proofs
全部 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