Using ACL2 in the Design of Efficient, Verifiable Data Structures for High-Assurance Systems

CoRR Pub Date : 2018-10-10 DOI:10.4204/EPTCS.280.5
D. Hardin, Konrad Slind
{"title":"Using ACL2 in the Design of Efficient, Verifiable Data Structures for High-Assurance Systems","authors":"D. Hardin, Konrad Slind","doi":"10.4204/EPTCS.280.5","DOIUrl":null,"url":null,"abstract":"Verification of algorithms and data structures utilized in modern autonomous and semi-autonomous vehicles for land, sea, air, and space presents a significant challenge. Autonomy algorithms, e.g., route planning, pattern matching, and inference, are based on complex data structures such as directed graphs and algebraic data types. Proof techniques for these data structures exist, but are oriented to unbounded, functional realizations, which are not typically efficient in either space or time. Autonomous systems designers, on the other hand, generally limit the space and time allocations for any given function, and require that algorithms deliver results within a finite time, or suffer a watchdog timeout. Furthermore, high-assurance design rules frown on dynamic memory allocation, preferring simple array-based data structure implementations. \nIn order to provide efficient implementations of high-level data structures used in autonomous systems with the high assurance needed for accreditation, we have developed a verifying compilation technique that supports the \"natural\" functional proof style, but yet applies to more efficient data structure implementations. Our toolchain features code generation to mainstream programming languages, as well as GPU-based and hardware-based realizations. We base the Intermediate Verification Language for our toolchain upon higher-order logic; however, we have used ACL2 to develop our efficient yet verifiable data structure design. ACL2 is particularly well-suited for this work, with its sophisticated libraries for reasoning about aggregate data structures of arbitrary size, efficient execution of formal specifications, as well as its support for \"single-threaded objects\" -- functional datatypes with imperative \"under the hood\" implementations. \nIn this paper, we detail our high-assurance data structure design approach, including examples in ACL2 of common algebraic data types implemented using this design approach, proofs of correctness for those data types carried out in ACL2, as well as sample ACL2 implementations of relevant algorithms utilizing these efficient, high-assurance data structures.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"1 1","pages":"61-76"},"PeriodicalIF":0.0000,"publicationDate":"2018-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"CoRR","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4204/EPTCS.280.5","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

Abstract

Verification of algorithms and data structures utilized in modern autonomous and semi-autonomous vehicles for land, sea, air, and space presents a significant challenge. Autonomy algorithms, e.g., route planning, pattern matching, and inference, are based on complex data structures such as directed graphs and algebraic data types. Proof techniques for these data structures exist, but are oriented to unbounded, functional realizations, which are not typically efficient in either space or time. Autonomous systems designers, on the other hand, generally limit the space and time allocations for any given function, and require that algorithms deliver results within a finite time, or suffer a watchdog timeout. Furthermore, high-assurance design rules frown on dynamic memory allocation, preferring simple array-based data structure implementations. In order to provide efficient implementations of high-level data structures used in autonomous systems with the high assurance needed for accreditation, we have developed a verifying compilation technique that supports the "natural" functional proof style, but yet applies to more efficient data structure implementations. Our toolchain features code generation to mainstream programming languages, as well as GPU-based and hardware-based realizations. We base the Intermediate Verification Language for our toolchain upon higher-order logic; however, we have used ACL2 to develop our efficient yet verifiable data structure design. ACL2 is particularly well-suited for this work, with its sophisticated libraries for reasoning about aggregate data structures of arbitrary size, efficient execution of formal specifications, as well as its support for "single-threaded objects" -- functional datatypes with imperative "under the hood" implementations. In this paper, we detail our high-assurance data structure design approach, including examples in ACL2 of common algebraic data types implemented using this design approach, proofs of correctness for those data types carried out in ACL2, as well as sample ACL2 implementations of relevant algorithms utilizing these efficient, high-assurance data structures.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
利用ACL2设计高效、可验证的高保证系统数据结构
验证用于陆地、海上、空中和太空的现代自主和半自主车辆的算法和数据结构提出了重大挑战。自治算法,如路线规划、模式匹配和推理,都是基于复杂的数据结构,如有向图和代数数据类型。这些数据结构的证明技术是存在的,但它们面向无界的功能实现,通常在空间或时间上都不是有效的。另一方面,自治系统设计者通常会限制任何给定功能的空间和时间分配,并要求算法在有限时间内交付结果,否则会遭受看门狗超时。此外,高保证设计规则不赞成动态内存分配,更喜欢简单的基于数组的数据结构实现。为了在具有认证所需的高保证的自治系统中提供高级数据结构的有效实现,我们开发了一种验证编译技术,该技术支持“自然”功能证明风格,但仍适用于更有效的数据结构实现。我们的工具链具有主流编程语言的代码生成功能,以及基于gpu和基于硬件的实现。我们将工具链的中间验证语言建立在高阶逻辑之上;然而,我们已经使用ACL2来开发我们高效且可验证的数据结构设计。ACL2特别适合这项工作,它有复杂的库来推断任意大小的聚合数据结构,有效地执行正式规范,以及它对“单线程对象”的支持——具有“底层”实现的命令式功能数据类型。在本文中,我们详细介绍了我们的高保证数据结构设计方法,包括在ACL2中使用这种设计方法实现的常见代数数据类型的示例,在ACL2中执行的这些数据类型的正确性证明,以及利用这些高效,高保证数据结构的相关算法的ACL2实现示例。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Intersection Types for Unboundedness Problems Natural Deduction and Normalization Proofs for the Intersection Type Discipline Intersection Subtyping with Constructors Formalization of Automated Trading Systems in a Concurrent Linear Framework Taking Linear Logic Apart
×
引用
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