HOLTrace
HOLTrace: Install

Prerequisites

The instructions below have been tested on a server named rome1 running Debian 11 with the build-essential, opam, python3, pypy3, texlive-xetex, and xdot packages installed, in a user account that ran

time opam init github git+https://github.com/ocaml/opam-repository.git --disable-sandboxing -a
time opam switch create 5.2.0
time opam install 'hol_light=3.0.0' -y
eval `opam env`

to install HOL Light 3.0.0 with the OCaml 5.2 bytecode compiler.

The server has two AMD EPYC 7742 CPUs, but timings reported in this documentation use only one core (except for holtrace2tex). Overclocking on the server has been (manually) disabled, so the CPUs run at 2.245GHz.

HOLTrace installation

Make sure you are in the holtrace-* package directory.

Run make -j8 to compile the C/C++ tools.

Find the HOL Light installation directory, and set HOLLIGHT_DIR to the name of that directory. For example:

HOLLIGHT_DIR=$HOME/.opam/5.2.0/lib/hol_light

Copy holtrace.ml into that directory:

cp holtrace.ml $HOLLIGHT_DIR/

Patch hol_lib.ml in that directory to use holtrace.ml:

sed -i '/nets.ml/iloads "holtrace.ml";;' $HOLLIGHT_DIR/hol_lib.ml

This should have no effect on normal HOL Light usage, but lets you use HOL Light to save and verify traces.

Optionally, patch the installation in that directory to precompute hashes of types and terms:

./hashtt $HOLLIGHT_DIR

This speeds up saving traces. However, this is more invasive than just using holtrace.ml, has a higher risk of bugs, and increases CPU time for normal usage by about 15%. You can run

./hashtt-undo $HOLLIGHT_DIR

to undo the patch.

Now test the installation.


Version: This is version 2025.06.29 of the "Install" web page.