Skip to the content.

ACSL by Example

This repository contains version 32.0.1 of ACSL by Example — a curated collection of C functions and data types whose behavior has been formally specified using ACSL (ANSI/ISO C Specification Language) and formally verified with Frama-C/WP.

The material is intended as an outward-facing reference and tutorial for deductive verification of C programs. It accompanies the report ACSL by Example, which provides the conceptual background, specification patterns, and verification discussions for the examples contained here.

This version targets Frama-C 32.0 (Germanium) and relies, among others, on the following software packages:

Package Version
Why3 1.8.2
Alt-Ergo 2.6.2
CVC5 1.3.2
Z3 4.15.2
Coq 8.20.1

Repository structure


Example groups

The examples are organised into groups, not as an unstructured collection of individual files.

This README deliberately avoids duplicating the chapter-level descriptions from the report and instead focuses on the overall structure of the repository.


Intended use

This repository is intended for:

Readers are encouraged to consult the report alongside the source code, as the report provides the conceptual structure and explanatory context.


Getting started

A detailed description of the build and verification setup is intentionally kept separate.

At a high level, working with the examples involves:

  1. Installing a compatible Frama-C version with the WP plugin.
  2. Ensuring suitable automatic provers (and optionally Coq) are available.
  3. Selecting an example group via StandardAlgorithms/filelist.path.
  4. Running Frama-C/WP on the corresponding source files.
  5. Inspecting proof results and, where applicable, interactive proofs.

Verification outcomes and methodological remarks are documented in the report.


License

This repository is released under the MIT License.