-rw-r--r-- 1748 holtrace-20250629/doc/install.md raw
## 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](save.html)
and
[verify](verify.html)
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](test.html) the installation.