Skip to content

Commit

Permalink
updated readme
Browse files Browse the repository at this point in the history
  • Loading branch information
mattulbrich committed Jun 14, 2024
1 parent 4308b70 commit a86f480
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
# KeY Tool Tutorial, FM 2024

This repository contains the necessary tools for the KeY Tool tutorial on the Formal Methods 2024.
This repository contains the accompanying material and the tool executables for the KeY tutorial at [Formal Methods 2024](https://www.fm24.polimi.it/)

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 with KeY. 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.
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 with KeY. The accompanying 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.

A video of the tutorial will be provided [here](#).
Video material extening the tutorial can be found [here](#).

The content of this tutorial:
The accompanying article can be downloaded [here](LETS MAKE A DURABLE LINK).

* `BinarySearch/src` -- contains the binary examples
* `ArrayList/src` -- contains the example
This tutorial covers two small examples:

* `BinarySearch/src` -- contains an example implementation of a binary search for an integer value in an array.
* `ArrayList/src` -- contains an example implementation of List interface together with an

Additionally, we provide in this artifact the proofs for all proof obligations in the sub-folder `*/proofs`.

Expand All @@ -19,6 +21,9 @@ We also provide a copy of the current working KeY and version: You can easily us
$ java -jar tools/key-2.13.0-exe.jar # to start KeY
```

Beschreiben wie man die Projekte startet.


```
$ cd BinarySearch; ./prove.sh # verify binary search
```
Expand Down

0 comments on commit a86f480

Please sign in to comment.