Formal Verification of a Database Management System

Diego Medina-Martínez, E. Bárcenas, G. Molero-Castillo, A. Velázquez-Mena, Rocío Aldeco-Pérez
{"title":"Formal Verification of a Database Management System","authors":"Diego Medina-Martínez, E. Bárcenas, G. Molero-Castillo, A. Velázquez-Mena, Rocío Aldeco-Pérez","doi":"10.1109/CONISOFT50191.2020.00024","DOIUrl":null,"url":null,"abstract":"Assertion based program verification is a well-known formal approach to (dis)prove correctness of algorithms associated to software systems. Assertions are input and output properties a correct program must satisfy. These properties are traditionally written in a specification language based on classical logic. Associated classical reasoning (inference) systems are then used to (dis)prove program correctness. However, when programs manipulate mutable data structures such as pointers, classical logical operators have been unable to successfully model syntactically unrelated expressions. In this article, we study separation logics, which are equipped with specially-purposed operators to model mutable data structures. We describe the use of this logic as a specification language in the verification of a database management system (DMS). In particular, we detect several bugs in two DMS libraries regarding heap manipulation. We describe these bugs in detail and propose solutions.","PeriodicalId":294992,"journal":{"name":"2020 8th International Conference in Software Engineering Research and Innovation (CONISOFT)","volume":"53 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 8th International Conference in Software Engineering Research and Innovation (CONISOFT)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CONISOFT50191.2020.00024","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Assertion based program verification is a well-known formal approach to (dis)prove correctness of algorithms associated to software systems. Assertions are input and output properties a correct program must satisfy. These properties are traditionally written in a specification language based on classical logic. Associated classical reasoning (inference) systems are then used to (dis)prove program correctness. However, when programs manipulate mutable data structures such as pointers, classical logical operators have been unable to successfully model syntactically unrelated expressions. In this article, we study separation logics, which are equipped with specially-purposed operators to model mutable data structures. We describe the use of this logic as a specification language in the verification of a database management system (DMS). In particular, we detect several bugs in two DMS libraries regarding heap manipulation. We describe these bugs in detail and propose solutions.
数据库管理系统的正式验证
基于断言的程序验证是一种众所周知的证明与软件系统相关的算法正确性的形式化方法。断言是一个正确的程序必须满足的输入和输出属性。这些属性传统上是用基于经典逻辑的规范语言编写的。然后使用相关的经典推理(推理)系统来证明程序的正确性。然而,当程序操作指针等可变数据结构时,经典逻辑运算符无法成功地对语法无关的表达式进行建模。在本文中,我们研究分离逻辑,它配备了专门用于建模可变数据结构的操作符。我们描述了在数据库管理系统(DMS)的验证中使用这种逻辑作为规范语言。特别是,我们在两个DMS库中检测到一些关于堆操作的bug。我们将详细描述这些错误并提出解决方案。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信
小红书