Fast Verified SCCs for Probabilistic Model Checking

Browsing the Theories

You can view an html version of the theories. Here are some default starting points for browsing:

Skeleton Algorithm Abstract level and Gabow’s data structure

SCC Algorithm Abstract level and Gabow’s data structure

Bit-Packed Intervals

Modest MDP Data Structure

LLVM Code Generation

Main Correctness Theorem

Downloads

dist.tgz contains the Isabelle theories

modest.tgz contains our modified version of Modest (~1GiB)

Prerequisites

Viewing the Theories

Warning: the .thy files in this arrtifact are best viewed with the Isabelle/HOL IDE. There is also a html version, that can be viewed in the browser. Look for html/index.html if you are viewing this file as README.md!

Verifying the Theories and Building the LLVM code

In the main directory, run

On Linux: Make sure that the isabelle command points to your installation of Isabelle 2022. If this is not the case, we recommend you do this first. Run:

isabelle build -D.

On Windows: You can start a cygwin terminal via $ISABELLE_HOME/Cygwin-Terminal.bat. You then have to navigate to the folder that this projects ROOT file is in. Note that the document path is expressed in the cygwin environment. If the path to the ROOT is located in “E:/example/mec-isabelle/ROOT” then you should enter “cd /cygdrive/e/example/mec-isabelle” into the terminal and run:

isabelle build -D.

This will check all proofs, and (re)generate the files Gabow_SCC/modest_gabow.{ll,h} that contain the executable code.

NOTE: The build process may fail on Windows. If this happens, you have to rerun the command.

Compiling into shared library for Modest

In Windows/Linux, this generates GabowIsabelle.dll/.so in the current folder.

Replaying the Benchmarks

Viewing the Plots

Inspecting the results