Published June 24, 2024 | Version 1.0
Software Open

The Java Verification Tool KeY: A Tutorial

  • 1. Karlsruhe Institute of Technology
  • 2. ROR icon Technical University of Darmstadt

Description

The KeY tool is a state-of-the-art deductive program verifier for the Java language. Its verification engine is based on a sequent calculus for dynamic logic, realizing forward symbolic execution of the target program, whereby all symbolic paths  through a program are explored. Method contracts make verification scalable, because one can prove one method at a time to be correct relative to its contract. KeY combines auto-active and fine-grained proof interaction, which is possible both at the level of  the verification target and its specification, as well as at the level of proof rules and program logic. This makes KeY well-suited for  teaching program verification, but also permits proof debugging at the source code level. The latter made it possible to verify some of the most complex Java code to date. The article provides a self-contained introduction to the working principles and the practical usage of KeY for anyone with basic knowledge in logic and formal methods.

Files

tutorial-fm-2024.zip

Files (22.9 MB)

Name Size Download all
md5:eb9a8b55b1260cdcffe1ba002a93e10f
4.7 kB Preview Download
md5:12f73c9f22c51ae0319c16cd4b5aae6e
22.9 MB Preview Download

Additional details

Software

Repository URL
https://github.com/keyproject/key
Programming language
Java
Development Status
Active