Formal Specification and Verification of JDK’s Identity Hash Map Implementation
Saved in:
| 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 |
| 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 |
Nájsť tento článok vo Web of Science