Jason Gross, Andres Erbsen, Jade Philipoom, Rajashree Agrawal, Adam Chlipala
{"title":"迈向可扩展的证明引擎:用于 Coq 的高性能原型重写原语","authors":"Jason Gross, Andres Erbsen, Jade Philipoom, Rajashree Agrawal, Adam Chlipala","doi":"10.1007/s10817-024-09705-6","DOIUrl":null,"url":null,"abstract":"<p>We address the challenges of scaling verification efforts to match the increasing complexity and size of systems. We propose a research agenda aimed at building a performant proof engine by studying the asymptotic performance of proof engines and redesigning their building blocks. As a case study, we explore equational rewriting and introduce a novel prototype proof engine building block for rewriting in Coq, utilizing proof by reflection for enhanced performance. Our prototype implementation can significantly improve the development of verified compilers, as demonstrated in a case study with the Fiat Cryptography toolchain. The resulting extracted command-line compiler is about 1000<span>\\(\\times \\)</span> faster while featuring simpler compiler-specific proofs. This work lays some foundation for scaling verification efforts and contributes to the broader goal of developing a proof engine with good asymptotic performance, ultimately aimed at enabling the verification of larger and more complex systems.</p>","PeriodicalId":15082,"journal":{"name":"Journal of Automated Reasoning","volume":"48 1","pages":""},"PeriodicalIF":0.9000,"publicationDate":"2024-08-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Towards a Scalable Proof Engine: A Performant Prototype Rewriting Primitive for Coq\",\"authors\":\"Jason Gross, Andres Erbsen, Jade Philipoom, Rajashree Agrawal, Adam Chlipala\",\"doi\":\"10.1007/s10817-024-09705-6\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<p>We address the challenges of scaling verification efforts to match the increasing complexity and size of systems. We propose a research agenda aimed at building a performant proof engine by studying the asymptotic performance of proof engines and redesigning their building blocks. As a case study, we explore equational rewriting and introduce a novel prototype proof engine building block for rewriting in Coq, utilizing proof by reflection for enhanced performance. Our prototype implementation can significantly improve the development of verified compilers, as demonstrated in a case study with the Fiat Cryptography toolchain. The resulting extracted command-line compiler is about 1000<span>\\\\(\\\\times \\\\)</span> faster while featuring simpler compiler-specific proofs. This work lays some foundation for scaling verification efforts and contributes to the broader goal of developing a proof engine with good asymptotic performance, ultimately aimed at enabling the verification of larger and more complex systems.</p>\",\"PeriodicalId\":15082,\"journal\":{\"name\":\"Journal of Automated Reasoning\",\"volume\":\"48 1\",\"pages\":\"\"},\"PeriodicalIF\":0.9000,\"publicationDate\":\"2024-08-14\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Journal of Automated Reasoning\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://doi.org/10.1007/s10817-024-09705-6\",\"RegionNum\":3,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q4\",\"JCRName\":\"COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Automated Reasoning","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1007/s10817-024-09705-6","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE","Score":null,"Total":0}
引用次数: 0
摘要
随着系统的复杂性和规模不断增加,我们面临着如何扩展验证工作的挑战。我们提出了一个研究议程,旨在通过研究证明引擎的渐进性能和重新设计其构建模块来构建高性能的证明引擎。作为一个案例研究,我们探讨了等式重写,并介绍了一种用于 Coq 中重写的新型原型证明引擎构件,利用反射证明来提高性能。正如 Fiat Cryptography 工具链的案例研究所示,我们的原型实现可以显著改善验证编译器的开发。最终提取的命令行编译器速度快了约1000(times),同时具有更简单的编译器特定证明。这项工作为扩展验证工作奠定了一定的基础,并有助于实现开发具有良好渐进性能的证明引擎这一更广泛的目标,最终目的是实现对更大型、更复杂系统的验证。
Towards a Scalable Proof Engine: A Performant Prototype Rewriting Primitive for Coq
We address the challenges of scaling verification efforts to match the increasing complexity and size of systems. We propose a research agenda aimed at building a performant proof engine by studying the asymptotic performance of proof engines and redesigning their building blocks. As a case study, we explore equational rewriting and introduce a novel prototype proof engine building block for rewriting in Coq, utilizing proof by reflection for enhanced performance. Our prototype implementation can significantly improve the development of verified compilers, as demonstrated in a case study with the Fiat Cryptography toolchain. The resulting extracted command-line compiler is about 1000\(\times \) faster while featuring simpler compiler-specific proofs. This work lays some foundation for scaling verification efforts and contributes to the broader goal of developing a proof engine with good asymptotic performance, ultimately aimed at enabling the verification of larger and more complex systems.
期刊介绍:
The Journal of Automated Reasoning is an interdisciplinary journal that maintains a balance between theory, implementation and application. The spectrum of material published ranges from the presentation of a new inference rule with proof of its logical properties to a detailed account of a computer program designed to solve various problems in industry. The main fields covered are automated theorem proving, logic programming, expert systems, program synthesis and validation, artificial intelligence, computational logic, robotics, and various industrial applications. The papers share the common feature of focusing on several aspects of automated reasoning, a field whose objective is the design and implementation of a computer program that serves as an assistant in solving problems and in answering questions that require reasoning.
The Journal of Automated Reasoning provides a forum and a means for exchanging information for those interested purely in theory, those interested primarily in implementation, and those interested in specific research and industrial applications.