This projects contains a Rocq proof of the correctness of the Huffman coding algorithm, as described in David A. Huffman's paper A Method for the Construction of Minimum-Redundancy Codes, Proc. IRE, pp. 1098-1101, September 1952.
- Author(s):
- Rocq-community maintainer(s):
- Karl Palmskog (@palmskog)
- License: GNU Lesser General Public License v2.1 or later
- Compatible Rocq/Coq versions: 8.12 or later
- Additional dependencies: none
- Rocq/Coq namespace:
Huffman - Related publication(s):
The easiest way to install the latest released version of Huffman is via OPAM:
opam repo add rocq-released https://rocq-prover.org/opam/released
opam install coq-huffmanTo instead build and install manually, do:
git clone https://github.com/rocq-community/huffman.git
cd huffman
make # or make -j <number-of-cores-on-your-machine>
make installFor more information about the project, see the technical report describing the formalization.
To extract code and obtain the program, run
make run_huffman.mlNext, open an OCaml toplevel (e.g., ocaml) and do
#use "run_huffman.ml";;To get the code that gives the frequency string:
let code = huffman "abbcccddddeeeee";;To code a string:
let c = encode code "abcde";;To decode a string:
decode code c;;