Verified Functional Programming of an Abstract Interpreter

07/20/2021
by   Lucas Franceschino, et al.
0

Abstract interpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the soundness of their computations. While some formally verified abstract interpreters have been written in the past, writing and understanding them requires expertise in the use of proof assistants, and requires a non-trivial amount of interactive proofs. This paper presents a formally verified abstract interpreter fully programmed and proved correct in the F* verified programming environment. Thanks to F* refinement types and SMT prover capabilities we demonstrate a substantial saving in proof effort compared to previous works based on interactive proof assistants. Almost all the code of our implementation, proofs included, written in a functional style, are presented directly in the paper.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/03/2017

Formalising Type-Logical Grammars in Agda

In recent years, the interest in using proof assistants to formalise and...
research
07/20/2022

Auto-active Verification of Graph Algorithms, Written in OCaml

Functional programming offers the perfect ground for building correct-by...
research
04/09/2019

The Last Mile: High-Assurance and High-Speed Cryptographic Implementations

We develop a new approach for building cryptographic implementations. Ou...
research
07/23/2018

Constructive Galois Connections

Galois connections are a foundational tool for structuring abstraction i...
research
08/05/2020

Extensional equality preservation and verified generic programming

In verified generic programming, one cannot exploit the structure of con...
research
05/24/2022

Syntheto: A Surface Language for APT and ACL2

Syntheto is a surface language for carrying out formally verified progra...
research
05/20/2023

Interactive Model Expansion in an Observable Environment

Many practical problems can be understood as the search for a state of a...

Please sign up or login with your details

Forgot password? Click here to reset