A case study in formal verification of a Java program

09/10/2018
by   Dmitry Brizhinev, et al.
0

We describe a successful attempt to formally verify a simple genetic algorithm written in Java. To this end, we compare several formal verification tools designed for Java, and select Krakatoa as the most appropriate for the task. Based on our experience, we present several suggestions for making the tools more user friendly, which we hope will lead to wider adoption of formal methods. In particular, we discuss at length how useful it would be for provers to perform some form of abduction, that is, for them to guess which extra assumptions they need to prove a statement. It is our opinion that progress in this area would produce the largest improvement in the usability of formal verification tools.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/11/2019

Verifying OpenJDK's LinkedList using KeY

As a particular case study of the formal verification of state-of-the-ar...
research
11/27/2018

Experience Report on Formally Verifying Parts of OpenJDK's API with KeY

Deductive verification of software has not yet found its way into indust...
research
04/01/2019

A benchmark for C program verification

We present twenty-five C programs, as a benchmark for C program verifica...
research
11/16/2021

RemoteVote and SAFE Vote: Towards Usable End-to-End Verification for Vote-by-Mail

Postal voting is growing rapidly in the U.S., with 43 ballots by mail in...
research
03/27/2018

Ten Diverse Formal Models for a CBTC Automatic Train Supervision System

Communications-based Train Control (CBTC) systems are metro signalling p...
research
12/04/2022

Differential Testing of a Verification Framework for Compiler Optimizations (Experience Paper)

We want to verify the correctness of optimization phases in the GraalVM ...
research
07/17/2018

Formal Verification of a Programmable Hypersurface

A metasurface is a surface that consists of artificial material, called ...

Please sign up or login with your details

Forgot password? Click here to reset