Title
Proving Jdk'S Dual Pivot Quicksort Correct
Abstract
Sorting is a fundamental functionality in libraries, for which efficiency is crucial. Correctness of the highly optimised implementations is often taken for granted. De Gouw et al. have shown that this certainty is deceptive by revealing a bug in the Java Development Kit (JDK) implementation of TimSort.We have formally analysed the other implementation of sorting in the JDK standard library: A highly efficient implementation of a dual pivot quicksort algorithm. We were able to deductively prove that the algorithm implementation is correct. However, a loop invariant which is annotated to the source code does not hold.This paper reports on how an existing piece of non-trivial Java software can be made accessible to deductive verification and successfully proved correct, for which we use the Java verification engine KeY.
Year
DOI
Venue
2017
10.1007/978-3-319-72308-2_3
VERIFIED SOFTWARE: THEORIES, TOOLS, AND EXPERIMENTS (VSTTE 2017)
Field
DocType
Volume
Programming language,Certainty,Timsort,Computer science,Correctness,Implementation,Theoretical computer science,Quicksort,Sorting,Java
Conference
10712
ISSN
Citations 
PageRank 
0302-9743
0
0.34
References 
Authors
8
4
Name
Order
Citations
PageRank
Bernhard Beckert186286.50
Jonas Schiffl201.35
Peter H. Schmitt3151.93
Mattias Ulbrich418317.83