Building HIP and SLEEK

You will need opam and a recent OCaml compiler (tested on 4.14.1).

opam install . --deps-only
dune build @hipsleek

# To use ocamldebug
rake debug:hip debug:sleek

Try verifying some small programs. You will need Z3 (from opam, pip, or a system package manager) and Omega (below) on the PATH.

dune exec ./hip.exe dune-tests/hip/ll.t/ll.ss
dune exec ./sleek.exe dune-tests/sleek/sleek2.t/sleek2.ss

Installing SLEEK as a library

opam install .

Running tests

dune test

Installing external provers

Other external provers HIP/SLEEK uses can be built from source. They will be installed in their respective directories and should be made available on the PATH.

Here is an example .envrc file which makes all the provers available, after following the steps below to build each one:

eval "$(opam env --switch=4.14.1 --set-switch)"
PATH_add omega_modified/omega_calc/obj
PATH_add mona-1.4/bin
PATH_add fixcalc_src

Omega

(cd omega_modified; make oc)

Mona

tar -xvf mona-1.4-modif.tar.gz
cd mona-1.4
./configure --prefix=$(pwd)
make install
cp mona_predicates.mona ..
cd -

Try some tests:

./hip -tp mona dune-tests/hip/ll.t/ll.ss
./sleek -tp mona dune-tests/sleek/sleek2.t/sleek2.ss

Fixcalc

You will need GHC 9.4.8.

cabal install --lib regex-compat old-time
cabal install happy

Build Omega first. Then, in the hipsleek project directory,

git clone https://github.com/hipsleek/omega_stub.git
(cd omega_stub; make)

git clone https://github.com/hipsleek/fixcalc.git fixcalc_src
(cd fixcalc_src; make fixcalc)