Formal Specification and Verification of JDK’s Identity Hash Map Implementation

Saved in:
Bibliographic Details
Title: Formal Specification and Verification of JDK’s Identity Hash Map Implementation
Authors: Boer, Martin de, Gouw, Stijn de, Klamroth, Jonas, Jung, Christian, Ulbrich, Mattias, Weigl, Alexander
Publication Year: 2022
Collection: KITopen (Karlsruhe Institute of Technologie)
Subject Terms: Real-world case study \and, Deductive Program Verification, Java Modeling Language, Verified Hash Map, Verified Data Structure, Cooperative Verification, ddc:004, DATA processing & computer science, info:eu-repo/classification/ddc/004
Description: Hash maps are a common and important data structure in efficient algorithm implementations. Despite their wide-spread use, real-world implementations are not regularly verified. In this paper, we present the first case study of the \IHM class in the Java JDK. We specified its behavior using the Java Modeling Language (JML) and proved correctness for the main insertion and lookup methods with \key, a semi-interactive theorem prover for JML-annotated Java programs. Furthermore, we report how unit testing and bounded model checking can be leveraged to find a suitable specification more quickly. We also investigated where the bottlenecks in the verification of hash maps lie for \key by comparing required automatic proof effort for different hash map implementations and draw conclusions for the choice of hash map implementations regarding their verifiability.
Document Type: book
report
File Description: application/pdf
Language: English
ISBN: 978-1-00-014572-4
1-00-014572-7
Relation: https://publikationen.bibliothek.kit.edu/1000145727; https://publikationen.bibliothek.kit.edu/1000145727/148721232; https://doi.org/10.5445/IR/1000145727
DOI: 10.5445/IR/1000145727
Availability: https://publikationen.bibliothek.kit.edu/1000145727
https://publikationen.bibliothek.kit.edu/1000145727/148721232
https://doi.org/10.5445/IR/1000145727
Rights: KITopen License, https://publikationen.bibliothek.kit.edu/kitopen-lizenz ; info:eu-repo/semantics/openAccess
Accession Number: edsbas.266E1CD2
Database: BASE
Description
Abstract:Hash maps are a common and important data structure in efficient algorithm implementations. Despite their wide-spread use, real-world implementations are not regularly verified. In this paper, we present the first case study of the \IHM class in the Java JDK. We specified its behavior using the Java Modeling Language (JML) and proved correctness for the main insertion and lookup methods with \key, a semi-interactive theorem prover for JML-annotated Java programs. Furthermore, we report how unit testing and bounded model checking can be leveraged to find a suitable specification more quickly. We also investigated where the bottlenecks in the verification of hash maps lie for \key by comparing required automatic proof effort for different hash map implementations and draw conclusions for the choice of hash map implementations regarding their verifiability.
ISBN:9781000145724
1000145727
DOI:10.5445/IR/1000145727