Verified Mutable Data Structures

07/16/2021
by   Samuel Chassot, et al.
0

Malfunctions in software like airplane control systems or nuclear plant control systems can have catastrophic consequences. Formal verification is the only form of sofware testing that can guarantee the absence of bugs. Formally verified software gives a mathematical proof that the specification is correctly implemented and that no bugs would induce unwanted behaviour. This has a high development cost and having an entirely verified program takes time and effort. However, having verified components already has great benefits. We implement in Scala and formally verify with Stainless a hash map that can then be reused and act as a basis on which to rely. The implementation we propose is based on the LongMap of the Scala standard library with some minor adaptations. This map is implemented with mutable arrays. We give the specification with respect to an implementation of a map based on a list of tuples, that we implement and formally verify as well.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/08/2018

A Verified Timsort C Implementation in Isabelle/HOL

Formal verification of traditional algorithms are of great significance ...
research
05/24/2022

Verified Implementation of an Efficient Term-Rewriting Algorithm for Multiplier Verification on ACL2

Automatic and efficient verification of multiplier designs, especially t...
research
01/09/2023

Case studies of development of verified programs with Dafny for accessibility assessment

Formal verification techniques aim at formally proving the correctness o...
research
05/20/2023

Formal Verification of Chase-Lev Deque in Concurrent Separation Logic

Chase-Lev deque is a concurrent data structure designed for efficient lo...
research
08/06/2021

Plotting in a Formally Verified Way

An invaluable feature of computer algebra systems is their ability to pl...
research
06/09/2021

Verification of a Merkle Patricia Tree Library Using F*

A Merkle tree is a data structure for representing a key-value store as ...
research
11/20/2019

CleanQ: a lightweight, uniform, formally specified interface for intra-machine data transfer

We present CleanQ, a high-performance operating-system interface for des...

Please sign up or login with your details

Forgot password? Click here to reset