Published August 7, 2021 | Version v1
Software Open

Verified Functional Programming of an Abstract Interpreter

  • 1. INRIA Rennes
  • 2. ENS Rennes

Description

This is the artifact accompanying the paper "Verified Functional Programming of an Abstract Interpreter".

The artifact is distributed either as an archive with reproducible nix expressions for our interpreter (repository.tar.gz), or as an ISO image (artifact.iso).

Abstract

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.

Files

README.md

Files (1.2 GB)

Name Size Download all
md5:780739dc0aafdafba449525477b6cdbf
1.2 GB Download
md5:539668c5321152ab25282bd08066ac50
6.1 kB Preview Download
md5:64967f72eff2d7b8511413ef5c509eb1
11.4 MB Download

Additional details

Related works

Is supplement to
arXiv:2107.09472 (arXiv)

Funding

VESTA – VErified STAtic analysis platform 772568
European Commission