Published December 30, 2023 | Version v2
Software Open

Formally Verifying an Efficient Sorter - Verification and Benchmarking Artifact

  • 1. Karlsruhe Institute of Technology

Description

This artifact zip contains the proof and evaluation material for the
following contribution to the TACAS 2024 conference:

  Formally Verifying an Efficient Sorter
  by Bernhard Beckert, Peter Sanders, Mattias Ulbrich,
  Julian Wiesler, and Sascha Witt

The material contained in this archive was used in
1) the deductive program verification proofs conducted in KeY and
2) the empirical evaluation regarding the performance of the sorting algorithm.

This artifact is intended to be run inside the TACAS 2023 virtual
machine [1].  In order to be able to use the artifact, some more
software needs to be installed. Copy this archive into the VM, unzip
it and execute

   sudo bash setup.sh

from the directory in which this README.txt resides. It will install a
Java 21 runtime, the SMT solver Z3, ant and a bit more.

Afterwards you can head to the directory ips4o-verify/ for the KeY
proofs and to ips4o-java-benchmark/ for the empirical evaluation.

KeY proofs
----------

This is a snapshot of the repository
   https://github.com/KeYProject/ips4o-verify

In order to replay all KeY proofs, you can invoke "make check" in the
subdirectory ips4o-verify/ on the CLI.

The JML annotated Java sources that have been verified are located in
the directory "src/main/java".

When executed in an environment which has a GUI option, the tool can
also be run interactively using "make run" or "make run-overflow".
(On the CLI a number of "project.key" files will be suggestes which
are good starting points for loading proof obligations, one can also
load ".proof" files from src directory. Since there are two tool
versions involved, be sure to use "make run-overflow" for the files
inside "key-overflow" and "make run" for the directory "key").

For further information see the README inside the repository.

Empirical evaluation
--------------------

This is a snapshot of the repository
   https://github.com/SaschaWitt/ips4o-java-benchmark
(with a modified symbolic link)

You need to run

   ant

from inside the directory ips4o-java-benchmark/. Further information
can be found in the README there.


[1] G. Fedyukovich and S. Mover, “TACAS 23 Artifact Evaluation VM -
Ubuntu 22.04 LTS”. Zenodo, Sep. 26, 2022. doi: 10.5281/zenodo.7113223.

Files

ips4o-key-artifact.zip

Files (382.2 MB)

Name Size Download all
md5:0df68af244a010aa7b59e3fcea8d82a4
382.2 MB Preview Download