Skip to content

coq-community/coq-mmaps

Repository files navigation

Modular Finite Maps over Ordered Types

Docker CI Contributing Code of Conduct Zulip

This project contains several implementations of finite maps, including implementations based on AVL trees and red-black trees. The finite maps are parameterized on arbitrary ordered types using Coq functors. This is an updated version of the Coq Stdlib's FMaps that is meant to complement the Stdlib's MSet library.

Meta

Building and installation instructions

The easiest way to install the latest released version of Modular Finite Maps over Ordered Types is via OPAM:

opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq-mmaps

To instead build and install manually, do:

git clone https://github.com/coq-community/coq-mmaps.git
cd coq-mmaps
make   # or make -j <number-of-cores-on-your-machine> 
make install

Documentation

This library of finite maps is a modernization of FMaps in Coq's standard library. Compared to FMaps, MMaps has a richer interface and provides additional finite map implementations, including a performant implementation based on red-black trees.

As starting points for understanding how to use the library, we recommend looking at MMaps.Interface and MMaps.demo.