Home

Awesome

The Candle Interactive Theorem Prover

This repository contains the Candle theorem prover sources. The repository is a fork of John Harrison's HOL Light sources, which are available in the repository here: https://github.com/jrh13/hol-light. The original README of this repository can be found here.

This repository differs from the original HOL Light repository in that some files have been patched to work with the Candle theorem prover. It also contains some custom ML source files required to run Candle (these carry the prefix candle_ in their filenames). The patches are stored under candle_patches/.

Features

Requirements and Installation

Candle requires the CakeML compiler. The latest release of the compiler can be found here.

The CakeML compiler requires a x86_64 Linux machine with a C compiler and make. The CakeML compiler assembly stubs need to be modified to work with Candle. Please see build-instructions.sh for instructions on how to do this. You can also run

$ ./build-instructions.sh

from the shell, which will download the CakeML compiler using curl, and patch it. After this, you can run Candle by writing either:

$ ./cake --candle

or:

$ ./candle

from the shell. Then, load the HOL Light sources by writing:

#use "hol.ml";;

into the REPL.

Compatibility and Porting

Candle supports much (but not all) of the HOL Light 'base' theories and scripts. See hol.ml for a list of the files that are loaded by Candle. Notable omissions are:

Most proof scripts that contain tactic proofs will be accepted by Candle with no changes. However, because Candle runs on CakeML (not OCaml), there are some things that Candle does differently, notably: