4 ms·
This is an excellent use case of formal verification. I can definitely see the merit in using tools like this in my code. They mention KeY http://www.key-proje
by inglor 12y ago
This is an excellent use case of formal verification. I can definitely see the merit in using tools like this in my code.
They mention KeY http://www.key-project.org/ http://www.key-project.org/ . Is anyone using this here? Are there any good resources on it except for the official site (and this blog post)?
- amund 12y agoHi, I will ask the authors of the blog post and corresponding academic paper about additional KeY resources and follow-up.
- inglor 12y agoThanks and thanks for the interesting read. I've been looking for real uses of formal verification for a long time. I've played a lot with code contracts in C# and I've played some with languages like Eifel - the advantage of this approach is that it's static and it performs actual proof rather than enforcement. These forms of formal verification could really help with building robust software and if someone makes them easy enough to use I can definitely see them as useful alongside if not instead of unit tests.
- deleted 12y ago[deleted]
- iso8859-1 12y agoIt is in use for undergraduate courses in the universities that develop it, and I used it too. It ships with small training problems. What would you like to know? There are many documents on JML. The prover works for you, you just left click logic expressions in KeY and you can prove large parts by point-and-click. It can also finish proofs for you if it's trivial. Often, you only need to specify the loop invariants. I'd recommend opening up KeY, loading one of the trivial examples first: Contraposition. This will be a quick reminder on the logic concepts like implication, but you pretty much cannot screw it up. Try to understand why the proof tree branches when you choose certain steps. Afterwards, try something else from "Getting started" like the examples that the proof searcher can prove (for example SumAndMax) and exploring the proof tree, and trying out yourself from scratch. The automatic proofs are not always pretty, so it's more for to do the manual work first. KeY will only let you do valid proof steps, so you learn quickly how proofs work.