首页 > 最新文献

Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs最新文献

英文 中文
Under-Approximation for Scalable Bug Detection (Keynote) 可扩展错误检测的欠逼近(主题演讲)
Azalea Raad
Incorrectness Logic (IL) has recently been advanced as a logical under-approximate theory for proving the presence of bugs - dual to Hoare Logic, which is an over-approximate theory for proving the absence of bugs. To facilitate scalable bug detection, later we developed incorrectness separation logic (ISL) by marrying the under-approximate reasoning of IL with the local reasoning of separation logic and its frame rule. This locality leads to techniques that are compositional both in code (concentrating on a program component) and in the resources accessed (spatial locality), without tracking the entire global state or the global program within which a component sits. This enables reasoning to scale to large teams and codebases: reasoning can be done even when a global program is not present. We then developed Pulse-X, an automatic program analysis for catching memory safety errors, underpinned by ISL. Using PulseX, deployed at Meta, we found a number of real bugs in codebases such as OpenSSL, which were subsequently confirmed and fixed. We have compared the performance of Pulse-X against the state-of-the-art tool Infer on a number of large programs; our comparison shows that Pulse-X is comparable with Infer in terms of performance, and in certain cases its fix-rate surpasses that of Infer.
不正确性逻辑(IL)最近作为一种证明存在错误的欠近似逻辑理论而被提出,它与胡尔逻辑(Hoare Logic)是对立的,后者是一种证明不存在错误的超近似理论。为了便于进行可扩展的错误检测,我们后来开发了不正确性分离逻辑(ISL),将 IL 的欠近似推理与分离逻辑的局部推理及其框架规则结合起来。这种局部性带来了在代码(集中于程序组件)和访问资源(空间局部性)中都具有组成性的技术,而无需跟踪整个全局状态或组件所在的全局程序。这使得推理可以扩展到大型团队和代码库:即使没有全局程序,也能进行推理。随后,我们开发了 Pulse-X,这是一种以 ISL 为基础、用于捕捉内存安全错误的自动程序分析方法。利用部署在 Meta 的 PulseX,我们在 OpenSSL 等代码库中发现了许多真正的错误,并在随后进行了确认和修复。我们将 Pulse-X 与最先进的工具 Infer 在一些大型程序上的性能进行了比较;比较结果表明,Pulse-X 的性能与 Infer 不相上下,在某些情况下,其修复率还超过了 Infer。
{"title":"Under-Approximation for Scalable Bug Detection (Keynote)","authors":"Azalea Raad","doi":"10.1145/3636501.3637683","DOIUrl":"https://doi.org/10.1145/3636501.3637683","url":null,"abstract":"Incorrectness Logic (IL) has recently been advanced as a logical under-approximate theory for proving the presence of bugs - dual to Hoare Logic, which is an over-approximate theory for proving the absence of bugs. To facilitate scalable bug detection, later we developed incorrectness separation logic (ISL) by marrying the under-approximate reasoning of IL with the local reasoning of separation logic and its frame rule. This locality leads to techniques that are compositional both in code (concentrating on a program component) and in the resources accessed (spatial locality), without tracking the entire global state or the global program within which a component sits. This enables reasoning to scale to large teams and codebases: reasoning can be done even when a global program is not present. We then developed Pulse-X, an automatic program analysis for catching memory safety errors, underpinned by ISL. Using PulseX, deployed at Meta, we found a number of real bugs in codebases such as OpenSSL, which were subsequently confirmed and fixed. We have compared the performance of Pulse-X against the state-of-the-art tool Infer on a number of large programs; our comparison shows that Pulse-X is comparable with Infer in terms of performance, and in certain cases its fix-rate surpasses that of Infer.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140511620","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
Rooting for Efficiency: Mechanised Reasoning about Array-Based Trees in Separation Logic 为效率扎根:分离逻辑中基于数组的树的机械化推理
Qiyuan Zhao, George Pîrlea, Zhendong Ang, Umang Mathur, Ilya Sergey
Array-based encodings of tree structures are often preferable to linked or abstract data type-based representations for efficiency reasons. Compared to the more traditional encodings, array-based trees do not immediately offer convenient induction principles, and the programs that manipulate them often implement traversals non-recursively, requiring complex loop invariants for their correctness proofs. In this work, we provide a set of definitions, lemmas, and reasoning principles that streamline proofs about array-based trees and programs that work with them. We showcase our proof techniques via a series of small but characteristic examples, culminating with a large case study: verification of a C implementation of a recently published tree clock data structure in a Separation Logic embedded into Coq.
出于效率的考虑,基于数组的树结构编码通常优于基于链接或抽象数据类型的表示法。与更传统的编码方式相比,基于数组的树并不能立即提供方便的归纳原则,而且操作这些树的程序往往以非递归方式实现遍历,因此需要复杂的循环不变式来证明其正确性。在这项工作中,我们提供了一系列定义、lemmas 和推理原则,简化了对基于数组的树和使用它们的程序的证明。我们通过一系列小而有特色的例子展示了我们的证明技术,最后还进行了一个大型案例研究:用嵌入 Coq 的分离逻辑验证最近发布的树时钟数据结构的 C 语言实现。
{"title":"Rooting for Efficiency: Mechanised Reasoning about Array-Based Trees in Separation Logic","authors":"Qiyuan Zhao, George Pîrlea, Zhendong Ang, Umang Mathur, Ilya Sergey","doi":"10.1145/3636501.3636944","DOIUrl":"https://doi.org/10.1145/3636501.3636944","url":null,"abstract":"Array-based encodings of tree structures are often preferable to linked or abstract data type-based representations for efficiency reasons. Compared to the more traditional encodings, array-based trees do not immediately offer convenient induction principles, and the programs that manipulate them often implement traversals non-recursively, requiring complex loop invariants for their correctness proofs. In this work, we provide a set of definitions, lemmas, and reasoning principles that streamline proofs about array-based trees and programs that work with them. We showcase our proof techniques via a series of small but characteristic examples, culminating with a large case study: verification of a C implementation of a recently published tree clock data structure in a Separation Logic embedded into Coq.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140511485","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 Temporal Differential Dynamic Logic Formal Embedding 时态差分动态逻辑形式嵌入
Lauren White, Laura Titolo, J. Slagel, César Muñoz
Differential temporal dynamic logic dTL2 is a logic to specify and verify temporal properties of hybrid systems. It extends differential dynamic logic (dL) with temporal operators that enable reasoning on intermediate states in both discrete and continuous dynamics. This paper presents an embedding of dTL2 in the Prototype Verification System (PVS). The embedding includes the formalization of a trace semantics as well as the logic and proof calculus of dTL, which have been enhanced to support the verification of universally quantified reachability properties. The embedding is fully functional and can be used to interactively verify hybrid programs in PVS using a combination of PVS proof commands and specialized proof strategies.
微分时态动态逻辑 dTL2 是一种用于指定和验证混合系统时态属性的逻辑。它扩展了微分动态逻辑(dL),并增加了时间运算符,可对离散和连续动态的中间状态进行推理。本文介绍了 dTL2 在原型验证系统(PVS)中的嵌入。该嵌入包括踪迹语义的形式化以及 dTL 的逻辑和证明微积分,dTL 的逻辑和证明微积分已得到增强,以支持普遍量化可达性属性的验证。该嵌入功能齐全,可用于在 PVS 中使用 PVS 证明命令和专门的证明策略进行交互式验证混合程序。
{"title":"A Temporal Differential Dynamic Logic Formal Embedding","authors":"Lauren White, Laura Titolo, J. Slagel, César Muñoz","doi":"10.1145/3636501.3636943","DOIUrl":"https://doi.org/10.1145/3636501.3636943","url":null,"abstract":"Differential temporal dynamic logic dTL2 is a logic to specify and verify temporal properties of hybrid systems. It extends differential dynamic logic (dL) with temporal operators that enable reasoning on intermediate states in both discrete and continuous dynamics. This paper presents an embedding of dTL2 in the Prototype Verification System (PVS). The embedding includes the formalization of a trace semantics as well as the logic and proof calculus of dTL, which have been enhanced to support the verification of universally quantified reachability properties. The embedding is fully functional and can be used to interactively verify hybrid programs in PVS using a combination of PVS proof commands and specialized proof strategies.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140511464","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 Mechanised and Constructive Reverse Analysis of Soundness and Completeness of Bi-intuitionistic Logic 双直觉逻辑健全性和完备性的机制化和构造性反向分析
Ian Shillito, Dominik Kirst
Using the Coq proof assistant, we investigate the minimal non-constructive principles needed to show soundness and completeness of propositional bi-intuitionistic logic. Before being revisited and corrected by Goré and Shillito, the completeness of bi-intuitionistic logic, an extension of intuitionistic logic with a dual operation to implication, had a rather erratic history, making it an ideal case for computer mechanisation. Moreover, contributing a constructive perspective, we observe that the completeness of bi-intuitionistic logic explicates the same characteristics already observed in an ongoing effort to analyse completeness theorems in general.
利用 Coq 证明助手,我们研究了证明命题双直觉逻辑的健全性和完备性所需的最小非构造原则。双直觉逻辑是直觉逻辑的扩展,具有蕴涵的双重运算,在被戈雷和希利托重新审视和修正之前,其完备性的历史相当不稳定,是计算机机械化的理想案例。此外,我们从建设性的角度观察到,双直觉逻辑的完备性解释了在分析一般完备性定理的持续努力中已经观察到的相同特征。
{"title":"A Mechanised and Constructive Reverse Analysis of Soundness and Completeness of Bi-intuitionistic Logic","authors":"Ian Shillito, Dominik Kirst","doi":"10.1145/3636501.3636957","DOIUrl":"https://doi.org/10.1145/3636501.3636957","url":null,"abstract":"Using the Coq proof assistant, we investigate the minimal non-constructive principles needed to show soundness and completeness of propositional bi-intuitionistic logic. Before being revisited and corrected by Goré and Shillito, the completeness of bi-intuitionistic logic, an extension of intuitionistic logic with a dual operation to implication, had a rather erratic history, making it an ideal case for computer mechanisation. Moreover, contributing a constructive perspective, we observe that the completeness of bi-intuitionistic logic explicates the same characteristics already observed in an ongoing effort to analyse completeness theorems in general.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140511978","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 Last Yard: Foundational End-to-End Verification of High-Speed Cryptography 最后一码高速密码学的端到端基础验证
Philipp G. Haselwarter, B. S. Hvass, Lasse Letager Hansen, Théo Winterhalter, Cătălin Hriţcu, Bas Spitters
The field of high-assurance cryptography is quickly maturing, yet a unified foundational framework for end-to-end formal verification of efficient cryptographic implementations is still missing. To address this gap, we use the Coq proof assistant to formally connect three existing tools: (1) the Hacspec emergent cryptographic specification language; (2) the Jasmin language for efficient, high-assurance cryptographic implementations; and (3) the SSProve foundational verification framework for modular cryptographic proofs. We first connect Hacspec with SSProve by devising a new translation from Hacspec specifications to imperative SSProve code. We validate this translation by considering a second, more standard translation from Hacspec to purely functional Coq code and generate a proof of the equivalence between the code produced by the two translations. We further define a translation from Jasmin to SSProve, which allows us to formally reason in SSProve about efficient cryptographic implementations in Jasmin. We prove this translation correct in Coq with respect to Jasmin's operational semantics. Finally, we demonstrate the usefulness of our approach by giving a foundational end-to-end Coq proof of an efficient AES implementation. For this case study, we start from an existing Jasmin implementation of AES that makes use of hardware acceleration and prove that it conforms to a specification of the AES standard written in Hacspec. We use SSProve to formalize the security of the encryption scheme based on the Jasmin implementation of AES.
高保真密码学领域正在迅速走向成熟,但目前仍缺少一个统一的基础框架来对高效密码实现进行端到端形式验证。为了填补这一空白,我们使用 Coq 证明助手将三个现有工具正式连接起来:(1) Hacspec 新兴密码规范语言;(2) 用于高效、高保证密码实现的 Jasmin 语言;(3) 用于模块化密码证明的 SSProve 基础验证框架。我们首先将 Hacspec 与 SSProve 连接起来,设计了一种从 Hacspec 规范到 SSProve 指令代码的新翻译。我们通过考虑从 Hacspec 到纯函数式 Coq 代码的第二种更标准的翻译来验证这种翻译,并生成两种翻译产生的代码之间的等价性证明。我们进一步定义了从 Jasmin 到 SSProve 的翻译,它允许我们在 SSProve 中正式推理 Jasmin 中的高效加密实现。根据 Jasmin 的操作语义,我们在 Coq 中证明了这一翻译的正确性。最后,我们通过给出高效 AES 实现的端到端基础 Coq 证明,证明了我们的方法的实用性。在这个案例研究中,我们从现有的 AES Jasmin 实现(利用硬件加速)出发,证明它符合用 Hacspec 编写的 AES 标准规范。我们使用 SSProve 形式化了基于 Jasmin AES 实现的加密方案的安全性。
{"title":"The Last Yard: Foundational End-to-End Verification of High-Speed Cryptography","authors":"Philipp G. Haselwarter, B. S. Hvass, Lasse Letager Hansen, Théo Winterhalter, Cătălin Hriţcu, Bas Spitters","doi":"10.1145/3636501.3636961","DOIUrl":"https://doi.org/10.1145/3636501.3636961","url":null,"abstract":"The field of high-assurance cryptography is quickly maturing, yet a unified foundational framework for end-to-end formal verification of efficient cryptographic implementations is still missing. To address this gap, we use the Coq proof assistant to formally connect three existing tools: (1) the Hacspec emergent cryptographic specification language; (2) the Jasmin language for efficient, high-assurance cryptographic implementations; and (3) the SSProve foundational verification framework for modular cryptographic proofs. We first connect Hacspec with SSProve by devising a new translation from Hacspec specifications to imperative SSProve code. We validate this translation by considering a second, more standard translation from Hacspec to purely functional Coq code and generate a proof of the equivalence between the code produced by the two translations. We further define a translation from Jasmin to SSProve, which allows us to formally reason in SSProve about efficient cryptographic implementations in Jasmin. We prove this translation correct in Coq with respect to Jasmin's operational semantics. Finally, we demonstrate the usefulness of our approach by giving a foundational end-to-end Coq proof of an efficient AES implementation. For this case study, we start from an existing Jasmin implementation of AES that makes use of hardware acceleration and prove that it conforms to a specification of the AES standard written in Hacspec. We use SSProve to formalize the security of the encryption scheme based on the Jasmin implementation of AES.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139640505","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
Displayed Monoidal Categories for the Semantics of Linear Logic 线性逻辑语义学的显示单义范畴
Benedikt Ahrens, Ralph Matthes, N. V. D. Weide, Kobe Wullaert
We present a formalization of different categorical structures used to interpret linear logic. Our formalization takes place in UniMath, a library of univalent mathematics based on the Coq proof assistant. All the categorical structures we formalize are based on monoidal categories. As such, one of our contributions is a practical, usable library of formalized results on monoidal categories. Monoidal categories carry a lot of structure, and instances of monoidal categories are often built from complicated mathematical objects. This can cause challenges of scalability, regarding both the vast amount of data to be managed by the user of the library, as well as the time the proof assistant spends on checking code. To enable scalability, and to avoid duplication of computer code in the formalization, we develop "displayed monoidal categories". These gadgets allow for the modular construction of complicated monoidal categories by building them in layers; we demonstrate their use in many examples. Specifically, we define linear-non-linear categories and construct instances of them via Lafont categories and linear categories.
我们介绍了用于解释线性逻辑的不同分类结构的形式化。我们的形式化在 UniMath 中进行,这是一个基于 Coq 证明助手的单值数学库。我们形式化的所有分类结构都基于一元范畴。因此,我们的贡献之一就是提供了一个实用的、可用的单价范畴形式化结果库。单义范畴包含大量结构,而单义范畴的实例通常由复杂的数学对象构建而成。这可能会带来可扩展性方面的挑战,包括库用户需要管理的大量数据,以及证明助手花费在检查代码上的时间。为了实现可扩展性,并避免形式化过程中计算机代码的重复,我们开发了 "显示单环类别"。这些小工具允许通过分层构建来模块化地构建复杂的单值范畴;我们在许多例子中演示了它们的使用。具体来说,我们定义了线性-非线性范畴,并通过拉丰范畴和线性范畴构建了它们的实例。
{"title":"Displayed Monoidal Categories for the Semantics of Linear Logic","authors":"Benedikt Ahrens, Ralph Matthes, N. V. D. Weide, Kobe Wullaert","doi":"10.1145/3636501.3636956","DOIUrl":"https://doi.org/10.1145/3636501.3636956","url":null,"abstract":"We present a formalization of different categorical structures used to interpret linear logic. Our formalization takes place in UniMath, a library of univalent mathematics based on the Coq proof assistant. All the categorical structures we formalize are based on monoidal categories. As such, one of our contributions is a practical, usable library of formalized results on monoidal categories. Monoidal categories carry a lot of structure, and instances of monoidal categories are often built from complicated mathematical objects. This can cause challenges of scalability, regarding both the vast amount of data to be managed by the user of the library, as well as the time the proof assistant spends on checking code. To enable scalability, and to avoid duplication of computer code in the formalization, we develop \"displayed monoidal categories\". These gadgets allow for the modular construction of complicated monoidal categories by building them in layers; we demonstrate their use in many examples. Specifically, we define linear-non-linear categories and construct instances of them via Lafont categories and linear categories.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139640508","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
Compositional Verification of Concurrent C Programs with Search Structure Templates 利用搜索结构模板对并发 C 语言程序进行组合验证
Duc T. Nguyen, Lennart Beringer, William Mansky, Shengyi Wang
Concurrent search structure templates are a technique for separating the verification of a concurrent data structure into concurrency-control and data-structure components, which can then be modularly combined with no additional proof effort. In this paper, we implement the template approach in the Verified Software Toolchain (VST), and use it to prove correctness of C implementations of fine-grained concurrent data structures. This involves translating code, specifications, and proofs to the idiom of C and VST, and gives us another look at the requirements and limitations of the template approach. We encounter several questions about the boundaries between template and data structure, as well as some common data structure operations that cannot naturally be decomposed into templates. Nonetheless, the approach appears promising for modular verification of real-world concurrent data structures.
并发搜索结构模板是一种将并发数据结构的验证分为并发控制和数据结构两部分的技术,然后可以模块化地将这两部分结合起来,而无需额外的证明工作。在本文中,我们在验证软件工具链(VST)中实现了模板方法,并用它来证明细粒度并发数据结构的 C 语言实现的正确性。这涉及将代码、规范和证明转换为 C 语言和 VST 的习惯用法,并让我们再次审视模板方法的要求和局限性。我们遇到了一些关于模板和数据结构之间界限的问题,以及一些无法自然分解为模板的常见数据结构操作。尽管如此,这种方法在现实世界并发数据结构的模块化验证方面仍大有可为。
{"title":"Compositional Verification of Concurrent C Programs with Search Structure Templates","authors":"Duc T. Nguyen, Lennart Beringer, William Mansky, Shengyi Wang","doi":"10.1145/3636501.3636940","DOIUrl":"https://doi.org/10.1145/3636501.3636940","url":null,"abstract":"Concurrent search structure templates are a technique for separating the verification of a concurrent data structure into concurrency-control and data-structure components, which can then be modularly combined with no additional proof effort. In this paper, we implement the template approach in the Verified Software Toolchain (VST), and use it to prove correctness of C implementations of fine-grained concurrent data structures. This involves translating code, specifications, and proofs to the idiom of C and VST, and gives us another look at the requirements and limitations of the template approach. We encounter several questions about the boundaries between template and data structure, as well as some common data structure operations that cannot naturally be decomposed into templates. Nonetheless, the approach appears promising for modular verification of real-world concurrent data structures.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140511646","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
Formalizing Giles Gardam’s Disproof of Kaplansky’s Unit Conjecture 吉尔斯-加尔丹对卡普兰斯基单位猜想的形式化反证
Siddhartha Gadgil, Anand Tadipatri
We describe a formalization in Lean 4 of Giles Gardam's disproof of Kaplansky's Unit Conjecture. This makes use of a combination of deductive proving and formally verified computation, using the nature of Lean 4 as a programming language which is also a proof assistant. Our goal in this work, besides formalization of the specific result, is to show what is possible with the current state of the art and illustrate how it can be achieved. Specifically we illustrate real time formalization of an important mathematical result and the seamless integration of proofs and computations in Lean 4.
我们描述了在精益 4 中对吉尔斯-加达姆反证卡普兰斯基单位猜想的形式化。这结合了演绎证明和形式化验证计算,利用了 Lean 4 作为编程语言的特性,它同时也是一种证明助手。除了对具体结果进行形式化之外,我们在这项工作中的目标是展示在当前技术水平下的可能性,并说明如何实现这一目标。具体来说,我们展示了一个重要数学结果的实时形式化,以及 Lean 4 中证明和计算的无缝集成。
{"title":"Formalizing Giles Gardam’s Disproof of Kaplansky’s Unit Conjecture","authors":"Siddhartha Gadgil, Anand Tadipatri","doi":"10.1145/3636501.3636947","DOIUrl":"https://doi.org/10.1145/3636501.3636947","url":null,"abstract":"We describe a formalization in Lean 4 of Giles Gardam's disproof of Kaplansky's Unit Conjecture. This makes use of a combination of deductive proving and formally verified computation, using the nature of Lean 4 as a programming language which is also a proof assistant. Our goal in this work, besides formalization of the specific result, is to show what is possible with the current state of the art and illustrate how it can be achieved. Specifically we illustrate real time formalization of an important mathematical result and the seamless integration of proofs and computations in Lean 4.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140511790","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
PfComp: A Verified Compiler for Packet Filtering Leveraging Binary Decision Diagrams PfComp:利用二进制判定图进行数据包过滤的验证编译器
Clément Chavanon, Frédéric Besson, Tristan Ninet
We present PfComp, a verified compiler for stateless firewall policies. The policy is first compiled into an intermediate representation taking the form of a binary decision diagram that is optimised in terms of decision nodes. The decision diagram is then compiled into a program. The compiler is proved correct using the Coq proof assistant and extracted into OCaml code. Our preliminary experiments show promising results. The compiler generates code for relatively large firewall policies and the generated code outperforms a sequential evaluation of the policy rules.
我们介绍的 PfComp 是一种用于无状态防火墙策略的验证编译器。首先将策略编译成二进制决策图形式的中间表示,该决策图在决策节点方面进行了优化。然后将决策图编译成程序。编译器使用 Coq 证明助手证明其正确性,并提取为 OCaml 代码。我们的初步实验结果很有希望。编译器能生成相对较大的防火墙策略代码,而且生成的代码优于策略规则的顺序评估。
{"title":"PfComp: A Verified Compiler for Packet Filtering Leveraging Binary Decision Diagrams","authors":"Clément Chavanon, Frédéric Besson, Tristan Ninet","doi":"10.1145/3636501.3636954","DOIUrl":"https://doi.org/10.1145/3636501.3636954","url":null,"abstract":"We present PfComp, a verified compiler for stateless firewall policies. The policy is first compiled into an intermediate representation taking the form of a binary decision diagram that is optimised in terms of decision nodes. The decision diagram is then compiled into a program. The compiler is proved correct using the Coq proof assistant and extracted into OCaml code. Our preliminary experiments show promising results. The compiler generates code for relatively large firewall policies and the generated code outperforms a sequential evaluation of the policy rules.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140512008","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
Lean Formalization of Extended Regular Expression Matching with Lookarounds 带查找功能的扩展正则表达式匹配的精益形式化
Ekaterina Zhuchko, Margus Veanes, Gabriel Ebner
We present a formalization of a matching algorithm for extended regular expression matching based on locations and symbolic derivatives which supports intersection, complement and lookarounds and whose implementation mirrors an extension of the recent .NET NonBacktracking regular expression engine. The formalization of the algorithm and its semantics uses the Lean 4 proof assistant. The proof of its correctness is with respect to standard matching semantics.
我们介绍了基于位置和符号导数的扩展正则表达式匹配算法的形式化,该算法支持交集、补码和查找,其实现反映了最近的 .NET NonBacktracking 正则表达式引擎的扩展。该算法及其语义的形式化使用了 Lean 4 证明助手。其正确性的证明与标准匹配语义有关。
{"title":"Lean Formalization of Extended Regular Expression Matching with Lookarounds","authors":"Ekaterina Zhuchko, Margus Veanes, Gabriel Ebner","doi":"10.1145/3636501.3636959","DOIUrl":"https://doi.org/10.1145/3636501.3636959","url":null,"abstract":"We present a formalization of a matching algorithm for extended regular expression matching based on locations and symbolic derivatives which supports intersection, complement and lookarounds and whose implementation mirrors an extension of the recent .NET NonBacktracking regular expression engine. The formalization of the algorithm and its semantics uses the Lean 4 proof assistant. The proof of its correctness is with respect to standard matching semantics.","PeriodicalId":516581,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2024-01-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140511460","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
期刊
Proceedings of the 13th ACM SIGPLAN International 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